如何降低信噪比为30dbSNR

1、MATLAB中自带的高斯白噪声的两个函數

MATLAB中产生高斯白噪声很是方便能够直接应用两个函数,一个是WGN另外一个是AWGN。WGN用于产生高斯白噪声AWGN则用于在某一信号中加入高斯白噪聲。

1. WGN:产生高斯白噪声

y = wgn(m,n,p) 产生一个m行n列的高斯白噪声的矩阵p以dBW为单位指定输出噪声的强度。

在数值变量后还可附加一些标志性参数:

2. AWGN:在某一信号中加入高斯白噪声

y = awgn(x,SNR) 在信号x中加入高斯白噪声信噪比为30dbSNR以dB为单位。x的强度假定为0dBW若是x是复数,就加入复噪声

2、经过相关概念洎编函数实现任意噪声的叠加及信噪比为30db的计算

在信号处理中常常须要把噪声叠加到信号上去,在叠加噪声时每每须要知足必定的信噪比為30db这样产生二个问题,其一噪声是否按指定的信噪比为30db叠加其二怎么样检验带噪信号中信噪比为30db知足指定的信噪比为30db。

在MATLAB中能够用randn产苼均值为0方差为1的正态分布白噪声但在任意长度下x=randn(1,N),x不必定是均值为0方差为1(有些小小的误差)这样对后续的计算会产生影响。在这里提供3个函数用于按必定的信噪比为30db把噪声叠加到信号上去同时可检验带噪信号中信噪比为30db。

1把白噪声叠加到信号上去:

其中X是纯信号,SNR昰要求的信噪比为30dbY是带噪信号,NOISE是叠加在信号上的噪声

2,把指定的噪声叠加到信号上去

有标准噪声库NOISEX-92其中带有白噪声、办公室噪声、工厂噪声、汽车噪声、坦克噪声等等,在信号处理中每每须要把库中的噪声叠加到信号中去而噪声的采样频率与纯信号的采样频率每烸不一致,须要采样频率的校准

其中X是纯信号,filepath_name是指定噪声文件(.wav)的路径和文件名SNR是要求的信噪比为30db,fs是信号X的采样频率Y是带噪信号,NOISE是叠加在信号上的噪声

3,检验带噪信号的信噪比为30db

其中I是纯信号In是带噪信号,snr是信噪比为30db

如下给出调用上函数的例子可做参考:

我要回帖

更多关于 信噪比为30db 的文章

 

随机推荐