最小均方误差算法matlab
时间: 2023-07-06 17:15:40 浏览: 96
最小均方误差算法(Least Mean Squares,LMS)是一种常用的自适应滤波算法,常用于信号处理、通信、控制等领域。在 MATLAB 中,可以使用“lms”函数实现最小均方误差算法。下面是一个简单的示例代码:
```matlab
% 生成输入信号
x = randn(1, 1000);
% 生成噪声信号
n = 0.5 * randn(1, 1000);
% 生成待估计信号
d = sin(2 * pi * 0.05 * (1:1000));
% 加入噪声
s = d + n;
% 初始化 LMS 算法参数
mu = 0.01; % 步长
order = 10; % 滤波器阶数
w = zeros(order, 1); % 初始滤波器系数
% 用 LMS 算法估计信号
[y, e, w] = lms(s, d, mu, order, w);
% 绘制结果
subplot(3, 1, 1);
plot(d);
title('待估计信号');
subplot(3, 1, 2);
plot(s);
title('加噪声信号');
subplot(3, 1, 3);
plot(y);
title('估计信号');
```
在这个示例中,我们首先生成一个正弦信号作为待估计信号,然后加入一些高斯白噪声作为干扰。接着,我们使用 LMS 算法估计信号,并将结果绘制出来。最终的结果应该能够大致还原出原始的正弦信号,并抑制噪声。
阅读全文