如何给信号加高斯白噪声

如何给信号加高斯白噪声,第1张

MATLAB中,论证加噪信号经FRFT变换、滤波后,有效滤除噪声中需要给信号加入高斯白噪声,不要以为轻易的产生一个随机矩阵直接加到信号中就可以喽。那样的噪声大小既不可控,又没有意义。下面是给信号xt加入信噪比为-10db的MATLAB程序段:SNR_db=-10SNR=10^(SNR_db/10)%%%%%%%给LFM信号加高斯白噪声%%%%%%%%计算信号能量sigpower=0for i=1:length(xt)sigpower=sigpower+xt(1,i).^2end%生成噪声noisepower=sigpower/SNR%所需噪声能量noise=randn(1,length(xt))%产生均值为零,方差为一的随机高斯序列noise=noise-repmat(mean(mean(noise)),1,length(xt))%让均值更接近于零%噪声校正AWGNpower=0for i=1:length(xt)AWGNpower=AWGNpower+noise(1,length(xt)).^2%生成噪声的能量endK=noisepower/AWGNpower%所需噪声能量与实际生成噪声能量的比值k=sqrt(K)%校正生成噪声加权值snr=10*log10(sigpower/sum((k*noise).^2))%实际输出信噪比

MATLAB中产生高斯白噪声的两个函数MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN。WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声。

randn函数产生高斯分布序列,例如:

y=randn(1,2500) 

y=y/std(y) 

y=y-mean(y) 

a=0.0128 

b=sqrt(0.9596) 

y=a+b*y

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

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

相关研究

高斯噪声的产生作为一个系统的小模块,需要有速度快、占用资源小、精度高等特殊要求,采用FPGA生成高斯噪声,首先使用m序列发生器产生均匀的随机分布的噪声,然后利用均匀分布和高斯分布之间的映射函数关系,采用线性插值拟合出一次曲线,进而产生高斯噪声。

以上内容参考:百度百科-白噪声发生器


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

原文地址: http://outofmemory.cn/bake/11940018.html

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

发表评论

登录后才能评论

评论列表(0条)

保存