用mathlab生成幅度为1,初始相位为0,角频率为2的正弦波(横轴间隔0.001),并在该信号中加入高斯白噪音,使得信噪比分别为-10dBW和10dBW (1)画图(2)说明dBW的含义
时间: 2024-09-12 15:11:54 浏览: 34
exp1.rar_0-9语音数据_pcm mathlab_read wav file file_short time energ
在MATLAB中,你可以使用`sin`函数创建一个特定频率的正弦波,并结合`randn`函数添加高斯白噪声。首先,我们需要设置一些基本参数:
1. 初始相位(phase)为0,我们使用`angle`函数将其设为零:
```matlab
t = linspace(0, 1, 10000); % 横轴从0到1,间隔0.001秒,共10000个点
omega = 2; % 角频率为2 rad/s
```
2. 创建无噪声的正弦波:
```matlab
pure_sine = sin(omega * t);
```
3. 添加不同信噪比的高斯白噪声。dBW代表的是功率电平相对于1瓦特的分贝值。-10dBW意味着噪声功率是信号功率的1/10,10dBW则是10倍于信号功率。我们可以这样计算并加上噪声:
```matlab
% 计算信噪比为-10dBW和10dBW时的噪声水平
snr_dBm_10 = -10; % dBm to dBW转换系数(1mW ≈ 0.7751 dBm)
noise_power_10 = 10^(-snr_dBm_10 / 10); % -10dBW噪声功率
snr_dBm_20 = 10;
noise_power_20 = 10^(-snr_dBm_20 / 10); % 10dBW噪声功率
% 加入噪声
noisy_sine_10 = pure_sine + sqrt(noise_power_10) * randn(size(t));
noisy_sine_20 = pure_sine + sqrt(noise_power_20) * randn(size(t));
```
4. 绘制波形:
```matlab
figure;
subplot(2,1,1)
plot(t, noisy_sine_10, 'b', 'LineWidth', 1.5), hold on
hold off
title('信噪比 -10dBW 正弦波')
xlabel('时间 (s)')
ylabel('Amplitude')
subplot(2,1,2)
plot(t, noisy_sine_20, 'g', 'LineWidth', 1.5)
title('信噪比 10dBW 正弦波')
xlabel('时间 (s)')
ylabel('Amplitude')
```
阅读全文