matlab 产生白噪声

matlab 产生白噪声,第1张

y=randn(1,100)高斯分布

y=rand(1,100)均与分布

R=exprnd(MU,m,n) 生成m×n形式的指数分布的随机数矩阵。

RAYLCDF Rayleigh cumulative distribution function.

P = RAYLCDF(X,B) returns the Rayleigh cumulative distribution

function with parameter B at the values in X.

The size of P is the common size of X and B. A scalar input

functions as a constant matrix of the same size as the other input.

扩展资料

matlab中噪声功率、噪声方差关系,以matlab中awgn函数为例说明:

在matlab中无论是wgn还是awgn函数,实质都是由randn函数产生的噪声。即:wgn函数中调用了randn函数,而awgn函数中调用了wgn函数。

根据awgn的实现代码可以知道”向已知信号添加某个信噪比(SNR)的高斯白噪声“,即:awgn(x,snr,’measured’,'linear’),命令的作用是对原信号x添加信噪比(比值)为SNR的噪声,在添加之前先估计信号x的强度。

在求出x的强度后,结合指定的信噪比,就可以求出需要添加的噪声的强度noisePower=sigPower/SNR。

由于使用的是高斯白噪声即randn函数,而randn的结果是一个强度为1的随机序列(自己试试sum(randn(1000,1).^2)/1000就知道了,注意信号的长度不能太小)。于是,所要添加的噪声信号显然就是:sqrt(noisePower)*randn(n,1)

其中n为信号长度,自然要求的白噪声的方差也可以求出来。

参考资料来源:百度百科 - 白噪声

百度百科 - MATLAB

百度百科 - AWGN

用matlab产生一个均值为1,方差为0.2的高斯白噪声的方法如下:

1、R

=

normrnd(MU,SIGMA)

2、R

=

normrnd(MU,SIGMA,m)

3、R

=

normrnd(MU,SIGMA,m,n)

4、假设输入信号为X,则给X加上一个均值为0,方差为1的高斯白噪声信号的方法为:

Y=X+normrnd(0,1)

5、%

设置采样区间

k=(0:300)'/100

6、%

计算采样值

x=sin(2*pi*k)

7、%

施加高斯白噪声

y=awgn(x,0)

figure(1)

8、%

设置绘图位置,左下角距屏幕左200像素,下200像素,宽800像素,高300像素

set(gcf,'Position',[200,200,800,300])

9、%

绘图网格1*2,左图绘制原始信号,右图绘制噪声信号

subplot(1,2,1),plot(k,x)

subplot(1,2,2),plot(k,y)

所谓高斯白噪声中的高斯是指概率分布是正态函数,而白噪声是指它的二阶矩不相关,一阶矩为常数,是指先后信号在时间上的相关性。这是考查一个信号的两个不同方面的问题。

高斯白噪声:如果一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度又是均匀分布的,则称它为高斯白噪声。

热噪声和散粒噪声是高斯白噪声

matlab中awgn函数用来在信号中加入高斯白噪声,用法为:

y = awgn(x,SNR)

信噪比SNR以dB为单位。题目要求信噪比为5%,那就是大噪声中的小信号。

如果纯信号为幅值为1的正弦信号,代码如下:

clear all

close all

x=0:0.2:10

data1=sin(x)

plot(x,data1)

hold on

data2=awgn(data1,10*log10(0.08))

plot(x,data2,'r-')

hold off


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11927991.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存