MATLAB 白噪声

Ammar Ali 2024年2月15日
  1. 使用 MATLAB 中的 wgn() 函数生成白噪声
  2. 在 MATLAB 中使用 awgn() 函数生成白噪声
MATLAB 白噪声

本教程将讨论如何在 MATLAB 中使用 awgn()wgn() 函数生成白噪声。

使用 MATLAB 中的 wgn() 函数生成白噪声

如果要向信号中添加白噪声,可以使用 wgn() 函数,该函数生成以伏特为单位的高斯白噪声样本。该函数的第一个和第二个参数是白噪声的 m×n 矩阵,第三个参数是噪声的功率,第三个参数是负载的阻抗,以欧姆为单位,依此类推。例如,让我们生成一个 101×1 的高斯白噪声矩阵,其负载功率为 -20 dbW,并将其添加到正弦波中。请参考下面的代码。

t = 1:0.01:2;
x = sin(2*pi*t);
figure
plot(t,x)
w_noise = wgn(1,101,-20);
hold on
plot(t,(x+w_noise))
legend('Sine Wave','Sine Wave with Noise')

输出:

在 matlab 中使用 wgn 函数的白噪声

在上面的代码中,我们生成了白噪声,并将其添加到一个正弦波中,结果如上图所示。需要注意的是,白噪声样本的数量应该等于加入了噪声的信号的样本数量;否则会出错。你可以通过更改 dbW 中的功率来更改噪声强度。检查此链接以获取有关 wgn() 函数的更多详细信息。

在 MATLAB 中使用 awgn() 函数生成白噪声

如果要向信号中添加白噪声,可以使用 awgn() 函数,该函数将高斯白噪声添加到输入信号中。该函数的第一个参数是输入信号,第二个参数是信噪比,第三个参数是输入信号功率,依此类推。例如,让我们将信噪比为 2 且信号功率为 -2 dbW 的白噪声添加到正弦波中。请参考下面的代码。

t = 1:0.01:2;
x = sin(2*pi*t);
figure
plot(t,x)
w_noise = awgn(x,2,-20);
hold on
plot(t,(x+w_noise))
legend('Sine Wave','Sine Wave with Noise')

输出:

白噪声在 matlab 中使用 awgn 函数

在上面的代码中,我们在正弦波中加入了白噪声,结果如上图所示。你可以通过更改 dbW 中的功率和信噪比来更改噪声强度。查看此链接以获取有关 awgn() 函数的更多详细信息。

作者: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook