如何使用MATLAB实现了M=9点滑动平均滤波,对受噪声干扰的正弦信号进行滤波,去除噪声干扰后输出信号
时间: 2024-03-22 14:39:01 浏览: 21
可以使用MATLAB中的`filter`函数实现M=9点滑动平均滤波,对受噪声干扰的正弦信号进行滤波,去除噪声干扰后输出信号。具体步骤如下:
1. 生成受噪声干扰的正弦信号,其中噪声是均值为0、方差为1的高斯分布随机信号。
```matlab
N = 1000; % 信号长度
t = linspace(0, 1, N); % 时间序列
s = sin(2 * pi * 5 * t); % 正弦信号
n = randn(1, N); % 均值为0、方差为1的高斯分布随机噪声信号
x = s + n; % 受噪声干扰的正弦信号
```
2. 定义M=9点滑动平均滤波器的传递函数,对信号进行滤波。
```matlab
M = 9; % 滑动窗口大小
b = ones(1, M) / M; % 滑动平均滤波器的传递函数
a = 1; % 滤波器的分母系数
y = filter(b, a, x); % 对输入信号进行滤波
```
3. 绘制原始信号、受噪声干扰的输入信号、滤除噪声干扰的输出信号三个图像。
```matlab
subplot(3, 1, 1);
plot(t, s);
title('原始信号');
subplot(3, 1, 2);
plot(t, x);
title('受噪声干扰的输入信号');
subplot(3, 1, 3);
plot(t, y);
title('滤除噪声干扰的输出信号');
```
在绘制图像时,使用`subplot`函数将三个图像分别显示在一个窗口中。运行上述MATLAB代码,即可得到原始信号、受噪声干扰的输入信号、滤除噪声干扰的输出信号三个图像,其中第二个图像为蓝色,表示受噪声干扰的正弦信号,第三个图像为橙色,表示滤除噪声干扰的输出信号。可以看到,滤波后的输出信号已经去除了噪声干扰,基本还原了原始信号。