⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lmse.m

📁 研究用于自适应均衡器的LMS算法的性能
💻 M
字号:
%function [bi,r,d]=lmse(uu,w0,g,N,k);

% g=400; % 统计仿真次数为g
% N=1000; % 输入信号抽样点数N
% k=11; % 时域抽头LMS算法滤波器阶数
% u步长
% ww 通信信道参数

pp=zeros(g,N-k); % 将每次独立循环的误差结果存于矩阵pp中,以便后面对其平均
u=0.02; 
n=1:3;
ww=2.9;
av=0.001;

h=0.5*(1+cos(2*pi*(n-2)/ww));
r0=h(1)^2+h(2)^2+h(3)^2+av;
r1=h(1)*h(2)+h(2)*h(3);
r2=h(1)*h(3);
r=zeros(k,k);
for row=1:k
    for line=1:k
        if row==line
            r(row,line)=r0;
        elseif abs(row-line)==1
            r(row,line)=r1;
        elseif  abs(row-line)==2
            r(row,line)=r2;
        end
    end
end
d=eig(r);

yy=randn(1,N)>0.5;
for j=1:N
    if yy(j)
        s(j)=1;
    else
        s(j)=-1;
    end
end

x=zeros(size(s));
x(1:3)=s(1:3);
for j=4:N
    x(j)=h(1)*s(j-1)+h(2)*s(j-2)+h(3)*s(j-3);
end



for q=1:g 
    v=sqrt(0.001)*randn((size(s)));
    xn=x+v;
    y=zeros(1,N); % 输出信号y
    y(1:k)=xn(1:k); % 将输入信号xn的前k个值作为输出y的前k个值
    w=zeros(1,k); % 设置抽头加权初值
    e=zeros(1,N); % 误差信号
       % 用LMS算法迭代滤波
    for i=(k+1):N
        XN=xn((i-k+1):(i)); 
        y(i)=w*XN';
        e(i)=s(i-7)-y(i);
        w=w+u*e(i)*XN; 
    end
    pp(q,:)=(e(k+1:N)).^2; 
end
for b=1:N-k
     bi(b)=sum(pp(:,b))/g; % 求误差的统计平均
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -