如何用matlab产生标准高斯噪声

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用matlab产生标准高斯噪声相关的知识,希望对你有一定的参考价值。

可以使用AWGN和WGN产生高斯白噪声。WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声。

加性高斯白噪声 AWGN(Additive White Gaussian Noise) 是最基本的噪声与干扰模型。加性噪声:叠加在信号上的一种噪声,通常记为n(t),而且无论有无信号,噪声n(t)都是始终存在的。因此通常称它为加性噪声或者加性干扰。白噪声:噪声的功率谱密度在所有的频率上均为一常数,则称这样的噪声为白噪声。如果白噪声取值的概率分布服从高斯分布,则称这样的噪声为高斯白噪声。
MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
所谓高斯白噪声(White Gaussian Noise)中的高斯是指概率分布是正态函数,而白噪声是指它的二阶矩不相关,一阶矩为常数,是指先后信号在时间上的相关性。这是考查一个信号的两个不同方面的问题。高斯白噪声:如果一个噪声,它的瞬时值服从高斯分布,而它的功率谱密度又是均匀分布的,则称它为高斯白噪声。
参考技术A 生成高斯分布的随机数就用randn();
要给指定信号加噪就用awgn()。
给你举一例子:
t = 0:.1:10;
x = sawtooth(t); % Create sawtooth signal.
y = awgn(x,10,'measured'); % Add white Gaussian noise.
plot(t,x,t,y) % Plot both signals.
legend('Original signal','Signal with AWGN');
在给你补充一下:

没有任何方法可以产生真正的白噪声。你的那个冲击函数怎么也是有宽度的吧?所以求出的功率谱密度不是直线很正常。
并且求功率谱的算法也决定了功率谱计算不可避免的误差。功率谱的基本估计算法是FFT,FFT求功率谱的时候本身就有很多非理想性,所以有些误差也不奇怪。

怎么在matlab中仿真功率谱密度为1的高斯白噪声?

功率谱为1,则在一个周期内的功率为2*pi,那么由函数wgn产生高斯白噪声即可。

>> y=wgn(100,100,2*pi,‘linear’);%%产生高斯白噪声,100*100为高斯白噪声的矩阵大小,2*pi为其功率,linear表示其输出的幅度为功率形式。

>> imshow(y)

参考技术A

       功率谱为1,则在一个周期内的功率为2*pi,那么由函数wgn产生高斯白噪声即可。

例如:y=wgn(100,100,2*pi,‘linear’);%%产生高斯白噪声,100*100为高斯白噪声的矩阵大小,2*pi为其功率,linear表示其输出的幅度为功率形式。

则 imshow(y)

以上是关于如何用matlab产生标准高斯噪声的主要内容,如果未能解决你的问题,请参考以下文章

matlab中怎么产生高斯白噪声

matlab数组中怎么加入高斯白噪声

怎么用matlab给声音加入噪音?

matlab 产生白噪声

怎么在matlab中仿真功率谱密度为1的高斯白噪声?

基于MATLAB给数据点添加高斯噪声