搜索
查看: 1710|回复: 0

matlab 高斯白噪声

[复制链接]

187

主题

394

帖子

648

积分

高级会员

Rank: 4

积分
648
发表于 2016-5-26 11:14:42 | 显示全部楼层 |阅读模式

高斯噪声是一种随机噪声,在任选瞬时中任取n个,其值按n个变数的高斯概率定律分布。

注:

1,高斯噪声完全由其时变平均值和两瞬时的协方差函数来确定,若噪声为平稳的,则平均值与时间无关,而协方差函数则变成仅和所考虑的两瞬时之差有关的相关函数,它在意义上等效于功率谱密度。

2,高斯噪声可以是大量独立的脉冲所产生的,从而在任何有限时间间隔内,这些脉冲中的每一个脉冲值与所有脉冲值的总和相比都可忽略不计。

3,实际上热噪声、散弹噪声及量子噪声都是高斯噪声。


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

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

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


时变信号,顾名思义,就是信号的幅度随时间变化的信号,幅度不随时间变化的信号,即幅度保持为常数的信号叫时不变信号。高斯白噪声是指信号中包含从负无穷到正无穷之间的所有频率分量,且各频率分量在信号中的权值相同。白光包含各个频率成分的光,白噪声这个名称是由此由此而来的。它在任意时刻的幅度是随机的,但在整体上满足高斯分布函数。时变信号的知识参考《信号与系统》,高斯白噪声参考《通信原理》类书籍

Re:【请教】什么是高斯白噪声,有色噪声,另外wden 中的scal是何意?

(1)带通噪声。带通噪声与白噪声相对又叫有色噪声,即在某个频带上信号的能量突然变大。这种噪声的典型例子为交流电噪声,它的能量主要集中在50Hz左右。对这种噪声的滤除可以先对语音信号进行加窗,然后再进行短时傅立叶变换并画出频谱图。在频谱图上,我们可以看出该噪声的能量主要集中在哪个频带上,得到此频带的上下限。根据此频带的上下限设计一个滤波器对语音信号进行滤波。一般情况下,该方法可以比较有效的去除带通噪声。               

(2)冲击噪声。所谓冲击噪声就是语音信号中的能量在时域内突然变大。这种噪声也很多,例如建筑工地上打桩机发出的打桩声,在语音信号中每隔一段时间就会出现一个能量峰值。对于这种噪声的消除需要对语音信号进行加窗,再进行短时傅立叶变换画出频谱图。在频谱图上对相应时间段上的语音信号的能量进行修改,即降低噪声的能量。该降噪方法一般能取得较满意的效果。

(3)白色噪声。所谓白色噪声就是在频域上不存在信号能量的突然变大的频带,在时域上也找不到信号能量突然变大的时间段,即它在频域和时域上的分布是一致的  。对于标准白噪声它的均值为零,方差为一常数。对于被这种噪声污染的语音信号,既不能在某个频带上修改语音信号又不能在时域上某个时刻修改语音信号。使用上两种降噪方法都很难达到令人满意的效果。主要原因是:白噪声的频带很宽几乎占据了整个频域,它与语音信号重叠无法区分有用信号和噪声;语音信号中的清音与白噪声的性质差不多很难区分等。


wden 中的scal的意思是:定义所乘的阈值是否要重新调整:

.SCAL='ONE'时,不用重新调整;

.SCAL='SLN'时,根据第一层的系数进行一次噪声层的估计来调整阈值

.SCAL='MLN'时,在不同层估计噪声层,以此来调整阈值

白噪声\高斯噪声\高斯白噪声的区别?


  白噪声,就是说功率谱为一常数;也就是说,其协方差函数在delay=0时不为0,在delay不等于0时值为零;换句话说,样本点互不相关。(条件:零均值。)

  所以,“白”与“不白”是和分布没有关系的。

  当随机的从高斯分布中获取采样值时,采样点所组成的随机过程就是“高斯白噪声”;

  同理,当随机的从均匀分布中获取采样值时,采样点所组成的随机过程就是“均匀白噪声”。

那么,是否有“非白的高斯”噪声呢?答案是肯定的,这就是”高斯色噪声“。这种噪声其分布是高斯的,但是它的频谱不是一个常数,或者说,对高斯信号采样的时候不是随机采样的,而是按照某种规律来采样的。

      仿真时经常采用高斯白噪声是因为实际系统(包括雷达和通信系统等大多数电子系统)中的主要噪声来源是热噪声,而热噪声是典型的高斯白噪声,高斯噪声下的理想系统都是线性系统。


相关讨论:

  1、白噪声是指功率谱在整个频域内为常数的噪声,其付氏反变换是单位冲击函数的n倍(n取决于功率谱的大小),说明噪声自相关函数在t=0时不为零,其他时刻都为0,自相关性最强。高斯噪声是一种随机噪声,其幅度的统计规律服从高斯分布。高斯白噪声是幅度统计规律服从高斯分布而功率谱为常数的噪声如果在系统通带内功率谱为常数,成为带限白噪声“高斯”与“白”没有直接关系,有时人们还会提出高斯型噪声,这指的是噪声功率谱呈高斯分布函数的形状而已。

  2、有一个问题我想提出来:

  连续白噪声和离散白噪声序列的关系是什么?它们之间不应该是简单的采样关系。因为连续白噪声的功率谱在整个频率轴上为常数,按照随机信号采样定理,对这样的信号采样,采样后的序列的功率谱必然发生混叠,而且混叠过后的功率谱是什么?应该是在整个频率轴上都为无穷大。这显然不满足离散白噪声序列的定义。

  那离散白噪声序列跟连续白噪声有何关系?我觉得是对带限的连续白噪声进行采样后得到的,这个带限的连续白噪声信号的带宽刚好满足Nyquist抽样定理。这样采样过后的信号的功率谱就能满足定义了。

  答:连续白噪声是离散白噪声在采样间隔趋近于零的极限。对带限的连续白噪声按照Nyquist采样定理进行采样就得到信息不损失的白噪声序列,当连续白噪声的带宽趋近于无穷大时,采样率也趋近于无穷大(采样间隔趋近于零),此时不会发生频谱混叠。用极限的概念理解二者的关系就很清楚了。需要说明的是,任何实际系统都是工作于一定频带范围内的,带宽为无穷大的信号仅仅存在于理论分析中,在实际系统中找不到。

  3、对随机信号而言也有采样定理,这个采样定理是针对功率谱而言的。具体的证明可以参看陆大金老师的随机过程教材。(清华的博士入学考试指定的参考教材)

  4、对于不限带的白噪声,已经分析的比较清楚了。

  而对于限带白噪声,我认为既然考虑采样定理,那么连续的限带白噪声可以利用采样函数作为正交基的系数来表示,这些系数就是对应的噪声采样值,这个过程就是连续噪声的离散化过程,以上分析也是分析连续信道容量使用的方法。

  那么在数字通信中我们讨论的噪声实际就是这些离散的以采样函数为正交基的系数(即噪声采样值),这时分析这些噪声采样值可知相关函数就是 N0×delta(n),这里delta(n)是离散的冲激函数。也即功率为N0×delta(0)=N0为有限值。以上分析具体可以参考John Proakis的一书。

有一个概念错误需要指出:“高斯白噪声的幅度服从高斯分布”的说法是错误的,高斯噪声的幅度服从瑞利分布。

另外,还必须区分高斯噪声和白噪声两个不同的概念。高斯噪声是指噪声的概率密度函数服从高斯分布,白噪声是指噪声的任意两个采样样本之间不相关,两者描述的角度不同。白噪声不必服从高斯分布,高斯分布的噪声不一定是白噪声。当然,实际系统中的热噪声是我们一般所说的白噪声的主要来源,它是服从高斯分布的,但一般具有有限的带宽,即常说的窄带白噪声,严格意义上它不是白噪声。


信号中高斯白噪声在频域中是否仍为高斯白噪声?谢谢。   严格来说,你这种提问的方法是有问题的,因为白噪声从定义上说就是指随机序列在时间上不相关。问题应该这样问:高斯白噪声序列变换到频域后是否仍然不想关?由于傅立叶变换是一种线性变换,高斯白噪声序列变换到频域后肯定服从高斯分布,而且仍然不相关。因为对一个满秩矩阵进行正交变换(傅立叶变换是一种正交变换)得到的矩阵仍然是满秩矩阵。

   当然,以上说法只在时间无穷的意义上是正确的。对任何有限点的实际序列,在相关的意义上看,即使用循环相关,得到的也是周期性相关函数,所以严格意义上不能称为白噪声;在分布特性上看,根据大数定理,只有时间趋于无穷时,一个序列的概率密度函数才能真正服从某一分布。从一个服从高斯分布的无限长序列中截取一段(时间加窗),理论上会导致其失去严格的高斯分布特性。但是,从实际应用的角度,我们一般并不从理论上这样较真,总是在背景噪声是高斯白噪声这样的前提下推导公式,预测系统在任意时刻(无穷时间上的一个时刻)的性能,信号处理时的有限点高斯白噪声样本虽然从严格理论意义上看已不是高斯白噪声,但还是把它当作高斯白噪声来处理。这样做的结果是,系统的整体性能在某一时刻可能与理论公式推导的性能有出入,但在无限时间的意义上看,系统性能会趋于理论分析结果。也是基于这一思想,我们经常用Monte-Carlo仿真预测系统的性能。


一维(实数)高斯白噪声的幅度是服从高斯分布的。只有二维的(复数)高斯白噪声的幅值是服从瑞利分布的。更高维的高斯白噪声的幅值则是服从X^2分布的。       错误!什么叫信号的幅度?幅度就是实信号的绝对值和复信号的模。因此,即使是一维的高斯白噪声,其幅度也不会服从高斯分布,而应该服从瑞利分布。二维不相关的复高斯白噪声包络服从指数分布(X^2分布的自由度为2的特例)。n个不相关的复高斯白噪声序列叠加后的复信号包络服从自由度为2n的X^2分布。这些在教科书上写得很清楚。


一个总结:


1. 高斯分布随机变量的绝对值的分布既不是高斯分布,也不是瑞利分布(见附件);高斯分布随机变量的平方服从自由度为1的(X2)分布;实部和虚部均服从高斯分布且统计独立的复随机变量的模服从瑞利分布;实部和虚部均服从高斯分布且统计独立的复随机变量的模的平方服从指数分布(或自由度为2的(X2)分布);N个实部和虚部均服从高斯分布且统计独立的复随机变量的模的平方和服从自由度为2N的(X2)分布。具体推导见附件。


2. 从概念上,高斯分布随机变量不存在“模”的说法,只能说“绝对值”(属于随机变量的函数)。在雷达领域,经常说“高斯噪声中信号的模服从瑞利分布”,这句话隐含着雷达信号包含I、Q两个正交通道。


3. 高斯噪声和白噪声是两个不同的概念,我就不重复了。


4. 由于傅立叶变换是一种线性运算,高斯分布随机变量样本的傅立叶变换是存在的,而且仍然是高斯分布。但某一个随便变量样本的傅立叶变换不能代表随机序列的性质,描述随机信号的频率特性要用功率谱密度,也就是随机信号的相关函数的傅立叶变换。

AWGN:加性高斯白噪声 (Additive White Gaussian Noise)是指:

加性高斯白噪声(AWGN)从统计上而言是随机无线噪声,其特点是其通信信道上的信号分布在很宽的频带范围内。

均匀分布的白噪声,正态分布的白噪声?最普通的白噪声信号如何用MATLAB产生,不是高斯白噪声(或者是我概念混淆了)


高斯白噪声:如果一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度又是均匀分布的,则称它为高斯白噪声。热噪声和散粒噪声是高斯白噪声。所谓高斯白噪声中的高斯是指概率分布是正态函数,而白噪声是指它的二阶矩不相关,一阶矩为常数,是指先后信号在时间上的相关性。这是考查一个信号的两个不同方面的问题。高斯随机过程是指它的任意 n维(n=1,2,…)概率密度函数,可以表示为: f (x , x ;t t ) = (3-3) 式中, = ; ; 为相关系数矩阵的行列式, = 是行列式中元素所对应的代数余因子。式子(3-1)就是高斯白噪声所对应的数学函数模型


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 ) 的高斯分布序列

产生指定方差和均值的随机数

设某个随机变量x均值为mu,方差为var^2,若要产生同样分布的随机变量y,但使新的随

机变量参数改变,均值为mu_1,方差为var_1^2,可以用如下公式进行变换:

y=var_1/var*(x-mu)+mu_1,其中x为随机变量,其余为常数(原分布参数)。

具体到正态分布,若要产生均值为u,方差为o^2的M*N的随机数矩阵,可以用

y=o*randn(M,N)+u得到。

对于均匀分布,若要产生[a,b]区间的均匀分布的M*N的随机数矩阵,则可以用

y=rand(M,N)*(b-a)+a得到。

%===========================================================%

上述资料基本上完整地描述了原始问题,不过有几点内容附带说明一下:

1. 首先更正一个错误,我认为在“生成N ( 0.0128, 0.9596 ) 的高斯分布序列”的程序中,应该改为以下的代码:


程序代码

y=randn(1,2500);

y=y-mean(y);

y=y/std(y);

a=0.0128;

b=sqrt(0.9596);

y=a+b*y;

2. 上面资料最后部分隐含了一个出自zhyuer 版友的结论:

%==========================zhyuer===================================%

1)        rand产生的是[0,1]上的均匀分布的随机序列

2)        randn产生均值为0,方差为1的高斯随机序列,也就是白噪声序列;

%===================================================================%

也就是说,可以直接使用上面两个函数对原始信号添加噪声(例如y=x+rand(length(x),1)或者y=x+randn(length(x),1))

3. 事实上,无论是wgn还是awgn函数,实质都是由randn函数产生的噪声。即,wgn函数中调用了randn函数,而awgn函数中调用了wgn函数。下面就我熟悉的“向已知信号添加某个信噪比(SNR)的高斯白噪声”来说明一下,不过如果大家阅读过awgn的实现代码就不用看下去了,呵呵。从上述可知,这个任务可以使用awgn函数实现,具体命令是:awgn(x,snr,’measured’,'linear’),命令的作用是对原信号f(x)添加信噪比(比值)为SNR的噪声,在添加之前先估计信号f的强度。这里涉及三个问题:在awgn这个函数中,SNR是如何计算的?什么是信号的强度?awgn函数具体是如何添加噪声的?事实上,前两个问题是相关的,因为根据定义,SNR就是信号的强度除以噪声的强度,所以,首先来讲讲信号的强度。其实信号的强度指的就是信号的能量,在连续的情形就是对f(x)平方后求积分,而在离散的情形自然是求和代替积分了。在matlab中也是这样实现的,只不过多了一个规范化步骤罢了:

  sigPower = sum(abs(sig().^2)/length(sig()

   这就是信号的强度。至此,SNR的具体实现也不用多说了(注:由于采用的是比值而非db,所以与下面“计算信噪比”所使用的方式不同,即没有求对数步骤)。

   最后说说awgn函数具体是如何添加噪声的。事实上也很简单,在求出f的强度后,结合指定的信噪比,就可以求出需要添加的噪声的强度noisePower=sigPower/SNR。由于使用的是高斯白噪声即randn函数,而randn的结果是一个强度为1的随机序列(自己试试sum(randn(1000,1).^2)/1000就知道了,注意信号的长度不能太小)。于是,所要添加的噪声信号显然就是:sqrt(noisePower)*randn(n,1),其中n为信号长度


回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /2 下一条

Archiver|手机版|小黑屋|RF技术社区

GMT+8, 2024-5-5 19:09 , Processed in 0.078386 second(s), 8 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表