📄 zf_mimo.m
字号:
% simulate the BER of a QPSK signal using Rayleigh fading channel
% with sigma = fading_sigma
% pxq MIMO
clear;
N_loop = 10^4;
N_sym = 64;
N_bit = 2*N_sym;
noise_sigma = sqrt(0.5);
Eb_dB = 4:4:28;
Eb = 10.^(Eb_dB/10);
sqrt_Es = sqrt(2*Eb);
BER = zeros(1, length(Eb));
normalized = 1/sqrt(2);
p = 3;
q = 3;
for n = 1:N_loop;
H = randn(q,p)+j*randn(q,p);
h = normalized*H/(sqrt(p));
for i = 1:7; %SNR
for k = 1:p;
D = floor(2*rand(1,N_sym))+j*floor(2*rand(1,N_sym));
Tx_data(k,:) = 2*D-(1+j);
Tx_D(k,:) = D;
end;
Tx_data = normalized*Tx_data;
for k = 1:q;
Noise(k,:) = noise_sigma*(randn(1,N_sym)+j*randn(1,N_sym));
end;
Rx_data = h*Tx_data*sqrt_Es(1,i) + Noise;
y = pinv(h)*Rx_data;
Recov_data = 0.5*(1+j+sign(real(y))+j*sign(imag(y)))
BER(1,i) = BER(1,i)+sum(sum((abs(Recov_data-Tx_D)).^2))/(N_bit*p);
end;
end;
BER = BER/N_loop;
save mimo_fading_qpsk_parameter Eb_dB BER;
semilogy(Eb_dB, BER, 'k--');
xlabel('Eb/N0 (dB)');
ylabel('BER');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -