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

📄 lms_descorr__2.m

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

% 解相关型LMS算法滤波
M  = 20;                           % 运行次数
N = 1000;                          % 信号的长度
n = 0:N-1;
p = 0.08;                          % 修整因子
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)的为零向量
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;                            % 自适应滤波器的阶数
l = zeros(1,N);                    % 学习速率参数
y(1:k) = u(1:k);                   % 令经过自适应滤波器后的信号y的前k个样值等于u的前k个样值


% 解相关型LMS算法滤波
for j = (k + 1):M
     u = s + 0.36*randn(1,N);      % 叠加噪声后的信号 
    for n=(k + 2):N
    
    
    e(j,n) = s(n) - w((n-1):(n+(k - 1))) * u(n:-1:(n-k))';          % 误差
    
    a(n) = (u((n-1):-1:(n-(k + 1)))*u(n:-1:(n-k))')/(u((n-1):-1:(n-(k + 1)))*u((n-1):-1:(n-(k + 1)))');  % 相关系数
    v(n:-1:(n-k)) =u(n:-1:(n-k)) - a(n)*u((n-1):-1:(n-(k + 1)));    % 更新方向向量
    
    l(n) = p*e(j,n)/(u(n:-1:(n-k))*v(n:-1:(n-k))');                 % 学习速率参数
    
    w((n):(n+k)) = w((n-1):(n+(k - 1))) + l(n)*v(n:-1:(n-k));       % 更新自适应滤波器的权向量
    
    
    
    y(n) = w((n):(n+k)) * u((n):-1:(n-k))';                         % 经过自适应滤波器后的信号
    
    vare(j,n) =e(j,n)^2;                                            % 误差的平方e(n)^2
    
    estd(j,n) = vare(j,(n:-1:1))*vare(j,(n:-1:1))'/n;               % 均方误差E{e(n)^2}
end
end
vare1 = (vare1*vare)/M;                                             % 统计平均意义下e(n)^2
estd1 = (estd1*estd)/M;                                             % 统计平均意义下学习曲线

% 自适应滤波输出
figure(2);
plot(y);
title('解相关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 + -