对下面这个信号添加高斯白噪声使信噪比为-10db。f = 50; % 频率 duty = 50; % 占空比 t = 0:0.0001:0.1; % 时间 y = square(2pif*t,duty); % 方波 plot(t,y) axis([0 0.1 -1.5 1.5])
时间: 2023-08-03 11:08:28 浏览: 89
关于信噪比的计算,高斯白噪声
5星 · 资源好评率100%
可以使用以下代码添加高斯白噪声:
```matlab
f = 50; % 频率
duty = 50; % 占空比
t = 0:0.0001:0.1; % 时间
y = square(2*pi*f*t,duty); % 方波
% 添加高斯白噪声
SNR = -10; % 信噪比为-10dB
signal_power = rms(y)^2;
noise_power = signal_power / 10^(SNR/10);
noise = sqrt(noise_power) * randn(size(y));
y_noisy = y + noise;
plot(t,y_noisy)
axis([0 0.1 -1.5 1.5])
```
这段代码首先计算了方波的波形,然后计算了所需的信噪比和噪声功率。最后,使用 `randn` 函数生成高斯白噪声,并将其加到方波上。最终的信号可以通过 `plot` 函数绘制出来。注意,这里使用了 `rms` 函数计算方波的均方根值,以便估计信号功率。
阅读全文