📄 two_path_fading_qpsk.m
字号:
% simulate the BER of a QPSK modulated siganal using two path fading channel
% with sigma = fading_sigma
clear;
N_loop = 10000;
N_sym = 100;
N_bit = 2*N_sym; % 2 bits per symbol
p1 = 0.5;
p2 = 0.5;
fading_sigma1 = sqrt(p1*0.5);
fading_sigma2 = sqrt(p2*0.5);
Eb_dB = 4:4:28 % 1*7
Eb = 10.^(Eb_dB/10); % 1*7
sqrt_Es = sqrt(2*Eb); % 1*7
BER = zeros(1,length(Eb)); % 1*7
Rx_data = zeros(N_sym,length(Eb)); % 100*7
normalized = 1/sqrt(2);
for n = 1:N_loop;
H = randn(1,2)+j*randn(1,2); % 1*2
H1 = H(1,1);
H2 = H(1,2);
h1 = fading_sigma1*H1;
h2 = fading_sigma2*H2;
D = floor(2*rand(1,N_sym+1))+j*floor(2*rand(1,N_sym+1)); % 1*101
Tx_data = normalized*(2*D-(1+j)); % 1*101
Noise = normalized*(randn(N_sym,length(Eb_dB))+j*randn(N_sym,length(Eb_dB))); % 100*7
for m = 1:N_sym;
s = transpose(Tx_data); % 101*1
Rx_data(m,:) = h1*s(m+1,1)*sqrt_Es+h2*s(m,1)*sqrt_Es+Noise(m,:); % 1*7
end;
w = h1'/((abs(h1))^2); % recover path 1
y = w*Rx_data; % 100*7
Recov_data = 0.5*(1+j+sign(real(y))+j*sign(imag(y))); % 100*7
%DD=D; % 1*101
%DD(:,101)=[]; % 1*100
BER = BER+sum((abs(Recov_data-transpose(D(:,2:101))*ones(1,length(Eb_dB)))).^2)/N_bit; % 1*7
end;
BER = BER/N_loop
Eb_dB55 = Eb_dB;
BER55 = BER;
save 2path_fading_qpsk_55 Eb_dB55 BER55;
semilogy(Eb_dB,BER,'r-x');
xlabel('Eb/N0 (dB)');
ylabel('BER');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -