% -----------实值信号~均衡器 ----------------% clear all; close all; %% -----------实值信号~均衡器----------------% % ----生成2PAM信号,点数为Num------- Num=3e3; Xn=rand(1,Num); Xn(Xn>=0.5)=1; Xn (Xn<0.5)=-1; %% ----经过信道,并加噪------- H=[0.005,0.009,-0.024,0.854,-0.218,0.049,-0.016]; %电话信道系数矩阵,长度为7. H(z)=0.005+0.009*(z^-1)-0.024*(z^-2)+...-0.016*(z^-6)、 Yn=filter(H,1,Xn);% 通过信道未加噪声序列,长度Num+6 SNR=20; sig=awgn(Yn,SNR); %加噪SNR=20dB W=[0,0,0,1,0,0,0]; % 初始化均衡滤波器系数,长度为7 Y=[0,0,0,0,0,0,0]; % 长度为7 Lf=7; mu=0.0008; R2=1; %恒模常量,2PAM for m=1:1:Num % Num+6卷积后Yn的长度 %------经过滤波器模块------ Y=[sig(m) Y(1:6)]; s= Y(Lf:-1:1)*W(1:Lf).'; X(m)=s; %------判决模块------ a(m)=1; if X(m)<=0 a(m)=-1; end %------误差信号计算模块------ En=s *(s*s-R2); %------迭代模块(系数更新)------ W=W-mu*En*Y(Lf:-1:1); end % ----- 计算误码率----- j=0; l=0; for k=1:Num-Lf+1 if a(k+Lf-1)==Xn(k) l=l+1; else j=j+1; % 计算错误的数量 C(j)=k; % 计算出错位置 end end BER=j/( Num-Lf+1); %% ------------------程序后处理---------------------
|