用matlab实现滑动平均去噪是工程上普遍应用的去噪方法,设受噪声干扰的信号为 f [ n ]= s [ n ]+ d [ n ],其中 s [ n ]=(2n)0.9"为有用信号为, d [ n ]为噪声。已知 M 点滑动平均系统的输入输出关系为 y [ n ]=,编程实现用M点滑动平均系统对受噪声干扰的信号的去噪
时间: 2024-03-05 14:48:38 浏览: 58
滑动平均系统的去噪处理
以下是用 MATLAB 实现 M 点滑动平均系统对受噪声干扰的信号的去噪的代码:
```matlab
% 假设原始信号为 f[n]
N = 100; % 信号长度
d = randn(1, N); % 假设噪声为高斯白噪声
s = 2*(0:N-1).^0.9; % 假设有用信号为 s[n]=(2n)^0.9
f = s + d; % 受噪声干扰的信号
% 假设 M=5
M = 5;
% 对 f[n] 进行 M 点滑动平均
filtered_f = zeros(1, N);
for i = 1:N
if i < M
filtered_f(i) = mean(f(1:i));
else
filtered_f(i) = mean(f(i-M+1:i));
end
end
% 去噪后的信号为 filtered_f[n]
```
其中,`randn(1, N)` 生成长度为 N 的高斯白噪声,`s = 2*(0:N-1).^0.9` 生成长度为 N 的有用信号。在实现中,我们通过循环遍历信号的每一个点,并根据窗口大小计算出该点的输出值,最后将所有的输出值组成一个数组返回。
阅读全文