(61)使用LMS算法估计线性预测器并计算估计误差的MATLAB仿真
前言
本文介绍了LMS自适应滤波器对线性预测器系统权系数的估计,进行100次独立实验,计算平均估计误差,得到LMS算法的学习曲线。
一、仿真说明
考虑一个AR过程u(n),使其为二阶线性预测器的输入,在μ=0.05的情况下,使用LMS滤波器来估计w1和w2。在此基础上,滤波器进行100次独立实验,计算平均估计误差,得出LMS算法的学习曲线。
二、仿真代码
使用LMS算法估计线性预测器的仿真代码:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%程序功能:产生500点的样本函数
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clc;
close all
clear all
N = 500; % 样本序列长度
M = 100; % 独立试验次数
sigma = sqrt(0.0731); % 标准差
a = [1 -0.975 0.95]; % AR模型系数
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%程序功能:用LMS算法来估计权系数w1和w2
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
miu = 0.05; % 步长
w = zeros(2,N); % 初始化权向量
w_sum = zeros(2,N); % 100次独立实验的权向量求和
e_sum = zeros(1,N);
for m = 1:M % 100次独立实验
vn = sigma * randn(N,1); % 高斯噪声
un = filter(1,a,vn); % 产生一组独立信号Nx1
e = zeros(1,N); % 初始化估计误差
d_hat = zeros(1,N); % 初始化期望信号估计量
for n = 3:N-1 % 信号向量时刻的迭代
w(:,n+1) = w(:,n) + miu * un(n-1:-1:n-2) * conj(e(n)); % 更新权向量
d_hat(n+1) = w(:,n+1)' * un(n:-1:n-1); % 更新期望信号估计
e(n+1) = un(n+1) - d_hat(n+1); % 计算估计误差
end
% 累加每一次实验的运行结果
w_sum = w_sum + w; % 权向量
e_sum = e_sum + e.^2; % 学习误差
end
w_avrg = w_sum/M; % 100次独立实验权向量的均值
e_avrg = e_sum/M; % 100次独立实验的学习误差均值
% 绘制权向量更新曲线
t = 1:N;
width_line = 1.5; % 绘图线宽
figure()
plot(t,w','LineWidth',width_line) % 权向量
grid on
hold on
plot(t,w_avrg','LineWidth',width_line) % 权向量平均值
title(['LMS算法权向量更新曲线(步长=',num2str(miu),')'])
legend('一次实验权系数w1','一次实验权系数w2', ...
'100次实验w1均值','100次实验w2均值', ...
'Location','east')
xlabel('迭代次数')
ylabel('权向量')
% 绘制学习曲线
figure()
plot(t,e_avrg,'LineWidth',1);
grid on
title(['LMS算法学习曲线(步长= ',num2str(miu),')'])
xlabel('迭代次数')
ylabel('均方误差')
figure()
subplot(211)
plot(un,'LineWidth',width_line)
grid on
title('期望信号')
xlabel('time index'); ylabel('signal value');
subplot(212)
plot(d_hat,'LineWidth',width_line)
grid on
title('输出信号')
xlabel('time index'); ylabel('signal value');
三、仿真结果
1.LMS自适应滤波器权向量更新曲线
2.LMS自适应滤波器算法学习曲线
3.期望信号与LMS自适应滤波器输出信号
从仿真结果可见,LMS自适应滤波器逐渐收敛于最优维纳解,输出信号近似期望信号。
原文地址:https://blog.csdn.net/weixin_45333185/article/details/143581782
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!