www.gusucode.com > 自适应信号的估计与处理,计算通信系统的误码率matlab源码程序 > 自适应信号的估计与处理,计算通信系统的误码率matlab源码程序/ser.m

    function ser=ser(flag,noise,Z,T)
step=0.01;
h_a=[0.389 1.000 0.389];
h_b=[0.407 0.815 0.407];
h_c=[0.04 -0.05 0.07 -0.21 -0.5 0.72 0.36 0.00 0.21 0.03 0.07];
if flag==2
    h=h_b;
    order=31;
elseif flag==3
    h=h_c;
    order=31;
else
    h=h_a;
    order=11;
end
M=(order-1)/2;
    w=[];
    for i=1:T 
        N=Z; 
%         s=bnl(N);
        wgn1=wgn(Z-1+size(h,2),1,10*log10(noise)); 
        u=conv(s,h)+wgn1; 
        u=u(1:Z,:);
        d=[0;s(1:Z-1,:)];
        
        [dn1,e1,wn]=LMS(u,d,order,step);
        w=[w wn];
    end
    w0=mean(w,2);
N=Z;
s=bnl(N);
wgn1=wgn(Z-1+size(h,2),1,10*log10(noise));
u=conv(s,h)+wgn1;
u=u(1:Z,:);
y=[];
u=[zeros(M,1);u;zeros(M,1)];

for n =1:N
    y(n) = w0' * u(n+order-1:-1:n);
end

%---计算误码率
for i=1:N
    if y(i)>0
        y(i)=1;
    else
        y(i)=-1;
    end
end
ser=sum(abs(s-y)/2)/Z;
end