matlab 叠加高斯噪声
时间: 2023-11-19 13:57:12 浏览: 216
matlab-对一幅灰度图像进行运动模糊并叠加高斯噪声,并采用维纳滤波进行复原-源码
在MATLAB中,可以使用awgn函数来实现在输入信号中叠加一定强度的高斯白噪声信号。该函数的语法如下:
awgn(x, snr)
其中,x为输入信号,snr为信噪比,以dB为单位。该函数会将高斯白噪声信号叠加到输入信号中,并返回叠加后的信号。
例如,以下代码演示了如何在一个正弦波信号中添加高斯白噪声:
```matlab
% 生成正弦波信号
fs = 1000; % 采样率
t = 0:1/fs:1-1/fs; % 时间向量
f = 10; % 信号频率
x = sin(2*pi*f*t); % 正弦波信号
% 添加高斯白噪声
snr = 10; % 信噪比为10dB
y = awgn(x, snr); % 叠加高斯白噪声
% 绘制信号和功率谱密度图
figure;
subplot(2,1,1);
plot(t, x);
hold on;
plot(t, y);
legend('原始信号', '添加噪声后的信号');
xlabel('时间');
ylabel('幅值');
title('信号和噪声');
subplot(2,1,2);
pwelch(y);
title('功率谱密度');
```
该代码会生成一个10Hz的正弦波信号,并在其中添加10dB信噪比的高斯白噪声。最后,绘制出原始信号、添加噪声后的信号以及信号的功率谱密度图。
阅读全文