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

📄 lms_filter.m

📁 对信道均衡的算法
💻 M
字号:

% 滤波型LMS算法滤波  
M  = 20;                        % 运行次数
N = 1000;                       % 信号的长度
n = 0:N-1;
s = sin(2*pi*n/10);             % 初始信号
u = s + 0.36*randn(1,N);        % 叠加噪声后的信号
% 信号叠加噪声波形图
figure(1); 
plot(n,u);
title('信号叠加噪声波形图');
xlabel('n');ylabel('u');

y = zeros(1,N);                 % 初始化经过自适应滤波器后的信号为零向量
w = zeros(1,N);                 % 初始化自适应滤波器的权向量为零向量
e = zeros(N);                   % 初始化误差e(n)的为零向量
a = zeros(1,N);                 % 初始化前向滤波器的权向量为零向量
vare = zeros(N);                % 初始化误差的平方e(n)^2的为零向量
estd = zeros(N);                % 初始化均方误差E{e(n)^2}的为零向量
vare1 = ones(1,N);              % 初始化误差的平方e(n)^2的为1向量
estd1 = ones(1,N);              % 初始化均方误差E{e(n)^2}的为1向量
k = 10;                         % 自适应滤波器的阶数

e1 = zeros(1,N);                % 初始化前向预测误差e1为零向量
e2 = zeros(1,N);                % 初始化滤波向量e为零向量
y(1:k) = u(1:k);

mu0 = 0.0065;                   % 初始更新步长因子

% 初始化前向滤波器的权向量
a(1:11) = [ 0.1642  , 0.1341 ,  0.0529,-0.0624 , -0.1586  ,-0.1932 , -0.1555 , -0.0599  , 0.0584, 0.1229 ,  0.1106];

% 滤波型LMS算法滤波
for j = (k + 1):M
     u = s + 0.36*randn(1,N);    % 叠加噪声后的信号 
for n=(k+2):N
    
     mu = mu0/(1 + (n/100));                                    % 先搜索后收敛步长因子 
    e(j,n) = s(n) - w((n-1):(n+9)) * u(n:-1:(n-10))';           % 误差
    
    e1(n) = u(n) + a((n-10):n)*u((n-1):-1:(n-11))';             % 前向预测误差
    
    e2(n) = e(j,n) + a((n-10):n)*e(j,(n:-1:(n-10)))';           % 滤波   
    
        
    w(n:(n+10)) = w((n-1):(n+9)) + mu*e1(n:-1:(n-10))*e2(n);    % 更新自适应滤波器的权向量
    
        
    y(n) = w((n):(n+10)) * u((n):-1:(n-10))';                   % 经过自适应滤波器后的信号
    
    vare(j,n) =e(j,n)^2;                                        % 误差的平方e(n)^2
    
    estd(j,n) = vare(j,(1:n))*vare(j,(1:n))'/n;                 % 均方误差E{e(n)^2}
end
end
vare1 = (vare1*vare)/M;                                         % 统计平均意义下e(n)^2
estd1 = (estd1*estd)/M;                                         % 统计平均意义下学习曲线

% 滤波型LMS自适应滤波输出
figure(2);
plot(y);
title('mu = 0.0065时滤波型LMS自适应滤波输出');
xlabel('n');ylabel('y');
% 滤波型LMS自适应滤波器的e(n)^2的曲线
figure(3);
plot(vare1); 
title('滤波型LMS自适应滤波器的e(n)^2的曲线 ');
xlabel('n');ylabel('e(n)^2');
% 滤波型LMS自适应滤波器的学习曲线图
figure(4);
plot(estd1); 
title('滤波型LMS自适应滤波器的学习曲线图 ');
xlabel('n');ylabel('E[e(n)^2]');

⌨️ 快捷键说明

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