matlab加入高斯噪声的代码
时间: 2024-09-09 14:12:36 浏览: 50
MATLAB混合高斯噪声
在MATLAB中,你可以使用`awgn`函数来向数据添加高斯白噪声,模拟实际信号受到噪声的影响。以下是一个简单的示例,展示如何在一个一维向量上添加高斯噪声:
```matlab
% 创建一个长度为n的数据向量
data = rand(1, 100); % 这里假设你的数据是一段随机生成的序列
% 定义噪声级别(信噪比SNR,单位是分贝dB)
SNR = 20; % 比如你想创建20分贝信噪比的噪声
% 计算等效的标准差σ (对于高斯分布,SNR(dB) = 10 * log10(σ²))
sigma = 1 / sqrt(10^(SNR/10));
% 添加高斯噪声
noisy_data = awgn(data, SNR, 'measured'); % 'measured'表示根据给定的SNR值计算标准偏差
% 显示原始数据和添加噪声后的数据
figure;
subplot(2, 1, 1);
plot(data, 'b', '-o');
title('Original Data');
xlabel('Index');
ylabel('Amplitude');
subplot(2, 1, 2);
plot(noisy_data, 'r', '-o');
title(['Noisy Data (SNR = ' num2str(SNR) ' dB)']);
xlabel('Index');
ylabel('Amplitude');
阅读全文