matlab中怎么产生高斯白噪声

Posted

tags:

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

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序列发生器产生均匀的随机分布的噪声,然后利用均匀分布和高斯分布之间的映射函数关系,采用线性插值拟合出一次曲线,进而产生高斯噪声。

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

参考技术A MATLAB中产生高斯白噪声的两个函数 MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN。WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声。 1. WGN:产生高斯白噪声 y = wgn(m,n,p) 产生一个m行n列的高斯白噪声的矩阵,p以dBW为单位指定输出噪声的强度。 y = wgn(m,n,p,imp) 以欧姆(Ohm)为单位指定负载阻抗。 y = wgn(m,n,p,imp,state) 重置RANDN的状态。 在数值变量后还可附加一些标志性参数: y = wgn(…,POWERTYPE) 指定p的单位。POWERTYPE可以是dBW, dBm或linear。线性强度(linear power)以瓦特(Watt)为单位。 y = wgn(…,OUTPUTTYPE) 指定输出类型。OUTPUTTYPE可以是real或complex。 2. AWGN:在某一信号中加入高斯白噪声 y = awgn(x,SNR) 在信号x中加入高斯白噪声。信噪比SNR以dB为单位。x的强度假定为0dBW。如果x是复数,就加入复噪声。 y = awgn(x,SNR,SIGPOWER) 如果SIGPOWER是数值,则其代表以dBW为单位的信号强度;如果SIGPOWER为measured,则函数将在加入噪声之前测定信号强度。 y = awgn(x,SNR,SIGPOWER,STATE) 重置RANDN的状态。 y = awgn(…,POWERTYPE) 指定SNR和SIGPOWER的单位。POWERTYPE可以是dB或linear。如果POWERTYPE是dB,那么SNR以dB为单位,而SIGPOWER以dBW为单位。如果POWERTYPE是linear,那么SNR作为比值来度量,而SIGPOWER以瓦特为单位。 注释 1. 分贝(decibel, dB):分贝(dB)是表示相对功率或幅度电平的标准单位,换句话说,就是我们用来表示两个能量之间的差别的一种表示单位,它不是一个绝对单位。例如,电子系统中将电压、电流、功率等物理量的强弱通称为电平,电平的单位通常就以分贝表示,即事先取一个电压或电流作为参考值(0dB),用待表示的量与参考值之比取对数,再乘以20作为电平的分贝数(功率的电平值改乘10)。 2. 分贝瓦(dBW, dB Watt):指以1W的输出功率为基准时,用分贝来测量的功率放大器的功率值。 3. dBm (dB-milliWatt):即与1milliWatt(毫瓦)作比较得出的数字。 0 dBm = 1 mW 10 dBm = 10 mW 20 dBm = 100 mW 也可直接用randn函数产生高斯分布序列,例如: y=randn(1,2500); y=y/std(y); y=y-mean(y); a=0.0128; b=sqrt(0.9596); y=a+b*y; 就得到了 N ( 0.0128, 0.9596 ) 的高斯分布序列。本回答被提问者采纳

python 写matlab中的加性高斯白噪声AWGN

定义 
原始信号:x 
噪声信号:n 
信噪比:SNR

信号长度:N

技术分享

技术分享

 

 

def wgn(x, snr):
    snr = 10**(snr/10.0)
    xpower = np.sum(x**2)/len(x)
    npower = xpower / snr
    return np.random.randn(len(x)) * np.sqrt(npower)

t = np.arange(0, 1000000) * 0.1
x = np.sin(t)
n = wgn(x, 6)
xn = x+n # 增加了6dBz信噪比噪声的信号

 




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

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

matlab 产生白噪声

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

我用matlab中的imnoise函数给图像加椒盐噪声为啥产生的噪声不是黑白的?

matlab中,给一个正弦信号加上一个均值为0,方差为1的高斯白噪声信号,想用awgn函数,怎么做?

高斯白噪声信道仿真