mimo_svd_flat.m

来自「MIMO信道编码,主要由matlab编写而成,可供参考」· M 代码 · 共 57 行

M
57
字号
%*****************************************************
%  SVD receiver demo on flat fading MIMO channel.
%  no antenna spatial correlation
%*****************************************************
clear all
N=2;                            % number of transmitter antennas
M=2;                            % number of receiver antennas
SNR = [10];                     % signal to noise ratio, dB
SNRPow = 10.^(SNR/10);          % signal to noise ratio
Sigma = sqrt(1/(2*SNRPow));     % standard deviation of the noise

% random channel matrix generation
H=(1/sqrt(2))*(randn(M,N)+i*randn(M,N));

% singlar value decomposition
[U,S,V]=svd(H);

%Gray-labelled QPSK
m=2;
cons=[0.7071+i*0.7071; 0.7071-i*0.7071; -0.7071+i*0.7071;-0.7071-i*0.7071];

%generate user data
for (j=1:N)
    data(j,:) = sign(rand(1,m)-0.5);
end

%QPSK modulations
symbol = zeros(2,1);
for (j=1:m)
    [symbol(j) ind(j)] = QPSK(data(j,:),cons);
end

%Pre-filter
TransData = V*symbol;

%Channel
Noise=Sigma*(randn(M,1)+i*randn(M,1));

%Received Data
RecvData = H*TransData + Noise;
RecvData = U'*RecvData;

%Demodulation
M=2^m;
for (k=1:m)
        [dist(k) decision(k)]= min(abs(RecvData(k) - S(k,k)*cons));
end
decision
ind


function [symbol, ind] = QPSK(data,cons)
if (data(1)==-1 & data(2)==-1) symbol = cons(1); ind =1;end
if (data(1)==1 & data(2)==-1) symbol = cons(2);  ind =2;end
if (data(1)==-1 & data(2)==1) symbol = cons(3);  ind =3;end
if (data(1)==1 & data(2)==1) symbol = cons(4);  ind =4;end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?