如何添加高斯白噪声在matlab中
时间: 2023-12-16 10:03:23 浏览: 154
高斯白噪声的matlab实现.docx
在MATLAB中,可以使用 `randn()` 函数生成高斯白噪声。该函数可以生成指定大小和均值为0、方差为1的高斯分布随机数。
以下是一个示例代码,演示如何向一个信号中添加高斯白噪声:
```matlab
% 生成原始信号
t = linspace(0, 1, 1000);
x = sin(2*pi*50*t) + 0.5*sin(2*pi*120*t);
% 添加高斯白噪声
noise_power = 0.1; % 噪声功率
noise = sqrt(noise_power)*randn(size(x)); % 生成高斯白噪声
y = x + noise; % 添加噪声
% 绘制信号和带噪声的信号
figure;
plot(t, x);
hold on;
plot(t, y);
legend('Original Signal', 'Noisy Signal');
```
在这个代码中,我们首先生成了一个包含两个正弦波的原始信号。然后,我们使用 `randn()` 函数生成了一个与原始信号相同大小的高斯白噪声,并通过乘以 `sqrt(noise_power)` 计算出了指定功率的噪声。最后,我们将原始信号和高斯白噪声相加,得到了带噪声的信号,并绘制了两个信号的图形。
需要注意的是,噪声功率的大小将会影响信号的噪声水平。在实际应用中,可以根据需要调整 `noise_power` 的大小来控制噪声水平。
阅读全文