📄 dfe_main.m
字号:
clear all
close all
clc
global cir_matrix_t
global N
global flag
flag = 1; %%%%% flag = 0 表示使用的是两茎信道
snr = [6:16];
iter_num = 10;
N = 1000;
% N = 32;
ber = [];
for snr_index=1:length(snr)
err = 0;
lambda = power(10,-snr(snr_index)/20);
for iter =1:iter_num
equal_bit = [];
bit_signal = randint(1,N);
% bit_signal = [ 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1];
modul_signal = mod_4PSK(bit_signal);
rx_sym = Through_channel(modul_signal,N/2);
rx_signal = awgn(rx_sym,snr(snr_index));
% rx_signal = rx_sym;
equal_signal = equalizer(rx_signal,lambda);
for k=1:N/2
if real(equal_signal(1,k))>0.5
equal_bit = [equal_bit 0 0];
elseif real(equal_signal(1,k)<-0.5)
equal_bit = [equal_bit 1 1];
elseif imag(equal_signal(1,k))>0.5
equal_bit = [equal_bit 1 0];
else equal_bit = [equal_bit 0 1 ];
end
end
errr = sum(abs(equal_bit-bit_signal));
% if errr>0
% errr
% c = (cir_matrix_t(:,1)+cir_matrix_t(:,end))/2;
% ci(1,1:506) = real(c(1)) ;
% cr = real(cir_matrix_t(1,:));
% plot(cr)
% hold on
% plot(ci,'r')
% pause
% close
% end
err = err+ errr;
end
% if (err/(N*iter_num))>0.0001
err/(N*iter_num);
snr_index;
% end
ber = [ber err/(N*iter_num)];
end
ber
semilogy(snr,ber,'*-')
hold on
grid on
% c = (cir_matrix_t(:,1)+cir_matrix_t(:,end))/2;
% ci(1,1:506) = real(c(1)) ;
% cr = real(cir_matrix_t(1,:));
% plot(cr)
% hold on
% plot(ci)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -