滤除高斯白噪声 matlab代码
时间: 2023-10-06 17:06:06 浏览: 1139
高斯白噪声matlab代码-Mario_Signals:EENG-341:制作歌曲,添加噪音并对其进行过滤
你可以使用matlab中的`awgn`函数来添加高斯白噪声,然后通过滤波器将噪声滤除。下面是一个示例代码:
```matlab
% 原始信号
fs = 1000; % 采样频率
t = 0:1/fs:1; % 时间向量
x = sin(2*pi*50*t) + sin(2*pi*120*t); % 生成包含两个频率成分的信号
% 添加高斯白噪声
SNR = 10; % 信噪比
y = awgn(x, SNR, 'measured');
% 滤波处理
fc = 100; % 截止频率
[b,a] = butter(4, fc/(fs/2)); % 4阶低通滤波器设计
filtered_y = filtfilt(b, a, y); % 零相移滤波
% 绘制结果
figure;
subplot(2,1,1);
plot(t,x);
title('原始信号');
subplot(2,1,2);
plot(t,filtered_y);
title('滤除噪声后的信号');
```
上述代码中,首先生成了一个包含两个频率成分的原始信号。然后使用`awgn`函数添加高斯白噪声,其中SNR参数表示信噪比。最后使用`butter`函数设计了一个4阶低通滤波器,并使用`filtfilt`函数进行零相移滤波,得到滤除噪声后的信号。
阅读全文