【实例简介】matlab实现的基于NLMS算法的判决反馈(DFE)均衡
【实例截图】
【核心代码】
clc;clear;
% load('channel.mat')
% load('originalBits');
% load('interleave');%交织位置
% load('qpsk_whiten_seq.mat')%白化序列
% load('codedBits.mat')%
% load('train');%训练符号
% load('H700');
h =[0 1 0];%指定仿真信道
N=1024;%数据长度
x=randsrc(1,N,[0,1;0.5,0.5]);%注释:产生有N个数的01随机序列,0、1概率都为0.5
SNRdB = 10:2:20;%信噪比
hMod= modem.qammod(4,-pi/2);%4QAM mode -pi/2的初始相位
hDemod = modem.qamdemod(hMod);%4QAM demode
treils=poly2trellis(3,[7 5]);%卷积编码网格 码率为1/2
data_trans=convenc(x,treils);
bits_trans_int=convert2dec(data_trans);%转为十进制
train=modulate(hMod,bits_trans_int);%调制
SNR = 10^(SNRdB(1)/10); % 注释:将信噪比dB值转化为线性值
ynoisy = conv(train,h);
ynoisy=awgn(ynoisy,SNR,'measured');
% oriBits=crc_bit_xor(originalBits(:,1),qpsk_whiten_seq);
[symerrate]=LMS_Equalization(ynoisy,train,hMod,hDemod);
%[MSER_errate10,DFE_MSER_errate10,DFE_LMS_errate10]=turbo_equalization(ynoisy,train,oriBits,interleave,5);
%[symerrate]=LMS_Equalization_track_time(ynoisy,train,hMod,hDemod);