matlab 在信号中添加乘性高斯白噪声代码
时间: 2023-08-14 18:03:20 浏览: 212
用MATLAB产生高斯白噪声
4星 · 用户满意度95%
以下是在 Matlab 中添加乘性高斯白噪声的代码:
```matlab
% 生成原始信号
t = linspace(0, 1, 1000); % 时间序列
f = 5; % 信号频率
A = 1; % 信号幅值
x = A * sin(2*pi*f*t); % 正弦信号
% 添加乘性高斯白噪声
SNR = 10; % 信噪比
N = length(x); % 信号长度
n = sqrt(A^2*N/(2*10^(SNR/10))) * randn(1, N); % 高斯白噪声
x_noisy = x .* n; % 乘性噪声信号
% 绘制信号图像
figure;
subplot(2, 1, 1);
plot(t, x);
title('Original Signal');
xlabel('Time (s)');
ylabel('Amplitude');
subplot(2, 1, 2);
plot(t, x_noisy);
title('Signal with Multiplicative Gaussian White Noise');
xlabel('Time (s)');
ylabel('Amplitude');
```
该代码首先生成一个频率为 5 Hz 的正弦信号,然后使用信噪比为 10 dB 的乘性高斯白噪声对信号进行了处理,最后绘制了原始信号和添加噪声后的信号图像。您可以根据需要调整信噪比、信号频率和信号长度等参数。
阅读全文