利用matlab采用最小均方算法的数字滤波器的计算机仿真
时间: 2024-05-24 09:12:26 浏览: 9
以下是一个利用matlab实现最小均方算法数字滤波器的计算机仿真的例子:
首先,我们定义一个带有噪声的信号:
```matlab
N = 1000; % 信号长度
t = 0:N-1;
s = sin(0.2*t) + sin(0.5*t); % 原始信号
n = 0.5*randn(1,N); % 高斯白噪声
x = s + n; % 带噪声信号
```
然后,我们定义一个3阶的最小均方算法数字滤波器:
```matlab
W = zeros(3,1); % 初始权值
mu = 0.01; % 步长
for i = 4:N
x_vec = [x(i-1); x(i-2); x(i-3)]; % 输入向量
y = W'*x_vec; % 滤波器输出
e = s(i) - y; % 误差
W = W + mu*e*x_vec; % 更新权值
end
```
最后,我们对滤波器进行仿真,并绘制原始信号、带噪声信号和滤波后的信号的图像:
```matlab
y = filter(W, 1, x); % 滤波器仿真
figure;
subplot(3,1,1); plot(t, s); title('Original signal');
subplot(3,1,2); plot(t, x); title('Noisy signal');
subplot(3,1,3); plot(t, y); title('Filtered signal');
```
运行上述代码,可以得到如下图像:
![matlab最小均方算法数字滤波器仿真](https://i.loli.net/2021/09/25/I7vSh8NlWuCZzPF.png)
可以看到,滤波器成功地去除了原始信号中的噪声。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)