White noise

White noise_第1张图片
本文科普一下高斯白噪声(white Gaussian noise,WGN)。

百度百科上解释为“高斯白噪声,幅度分布服从高斯分布,功率谱密度服从均匀分布”,听起来有些晦涩难懂,下面结合例子通俗而详细地介绍一下。

白噪声,如同白光一样,是所有颜色的光叠加而成,不同颜色的光本质区别是的它们的频率各不相同(如红色光波长长而频率低,相应的,紫色光波长短而频率高)。白噪声在功率谱上(若以频率为横轴,信号幅度的平方为功率)趋近为常值,即噪声频率丰富,在整个频谱上都有成分,即从低频到高频,低频指的是信号不变或缓慢变化,高频指的是信号突变。

由傅里叶变换性质可知,时域有限,频域无限;频域有限,时域无限。那么频域无限的信号变换到时域上,对应于冲击函数的整数倍(由公式也可推得:)。即说明在时间轴的某点上,噪声孤立,与其它点的噪声无关,也就是说,该点噪声幅值可以任意,不受前后点噪声幅值影响。简而言之,任意时刻出现的噪声幅值都是随机的(这句话实际上说的就是功率谱密度服从均与分布的意思,不同的是,前者从时域角度描述,而后者是从频域角度描述)。这里要指出功率谱密度(PowerSpectral Density,PSD)的概念,它从频域角度出发,定义了信号的功率是如何随频率分布的,即以频率为横轴,功率为纵轴。

既然白噪声信号是“随机”的,那么反过来,什么叫做“相关”呢?顾名思义,相关就是某一时刻的噪声点不孤立,和其它时刻的噪声幅值有关。其实相关的情况有很多种,比如此时刻的噪声幅值比上一时刻的大,而下一时刻的噪声幅值比此时刻的还大,即信号的幅值在时间轴上按从小到大的顺序排列。除此之外,幅值从大到小,或幅值一大一小等都叫做“相关”,而非“随机”的。

解释完了“白噪声”,再来谈谈“高斯分布”。高斯分布,又名正态分布(normal distribution)。概率密度函数曲线的形状又两个参数决定:平均值和方差。简单来说,平均值决定曲线对称中线,方差决定曲线的胖瘦,即贴近中线的程度。概率密度定义了信号出现的频率是如何随着其幅值变化的,即以信号幅值为横轴,以出现的频率为纵轴。因此,从概率密度角度来说,高斯白噪声的幅度分布服从高斯分布

描述了“白噪声”和“高斯噪声”两个含义,那么,回到文章开头的解释:高斯白噪声,幅度分布服从高斯分布,功率谱密度服从均匀分布。它的意义就很明确了,上半句是从空域(幅值)角度描述“高斯噪声”,而下半句是从频域角度描述“白噪声”。

下面以matlab程序演示,感性认识一下高斯白噪声。

程序1(高斯白噪声):

noise = wgn(1000,1,0); %生成1000*1个高斯白噪声,功率为0dBW(分贝瓦)
y1 = fft(noise,1000); %采样点个数1000个
p1 = y1.*conj(y1); %conj()得到相应的复共轭数,y1.*conj(y1)就是模的平方
ff = 0:499;
figure,stem(ff,p1(1:500)); %只显示一半
xlabel(‘频率’);
ylabel(‘功率’);
title(‘功率谱’);
White noise_第2张图片

由上图可以看出,高斯白噪声的功率谱密度服从均匀分布。

若对噪声进行由小到大排序,则使其从随机噪声变为相关噪声,则功率谱密度就不再是均匀分布了。

程序2(非高斯白噪声):

sort_noise = sort(noise); %对噪声进行由小到大排序,将随机噪声变为相关噪声
y2 = fft(sort_noise,1000);
p2 = y2.*conj(y2);
figure,stem(ff,p2(1:500));
xlabel(‘频率’);
ylabel(‘功率’);
title(‘功率谱’);

White noise_第3张图片

下面让我们从高斯白噪声的统计信息和幅值分布看一下它的特点。

程序3(高斯白噪声):

%从高斯白噪声的统计信息和幅值分布看一下它的特点
mean_value = mean(noise) %均值为0
variance = var(noise) %方差为1,功率为0dBW(10*log1=0)
figure,hist(noise);
xlabel(‘幅值’);
ylabel(‘频次’);
title(‘噪声幅值的直方图’);

White noise_第4张图片

直方图的纵轴为频次,而概率密度的纵轴为频率,但是两者大致的分布曲线确是一样的,因此,这幅图解释了高斯白噪声的幅度分布服从高斯分布。

PS:上面对噪声进行由小到大排序,则使其从随机噪声变为相关噪声,得到的噪声其幅度分布仍然服从高斯分布

代码:http://download.csdn.net/detail/szlcw1/8229587

二、MATLAB中 Band-Limited White Noise
Noise Power:指定白噪声PSD(能量谱密度)的高度,这个PSD并不是噪声的能量p(详细介绍请见:噪声能量),它与能量之间有一个转换关系,p=Noise power/tc,tc就在下面;

Sample time:指定噪声的相关时间tc,这个tc与系统的带宽之间的关系是tc=(1/N)**(2pi/fmax),其中fmax是系统的带宽(实际上是角频率,fmax=2pif,这个f才是我们常使用的频率Hz),N可以看成是采样率与系统频率的倍数关系(文档中推荐使用100),即采样率=N系统频率,这和采样定理一致;

Seed:这个参数是用来指定随机数生成器的初始值的。

White noise_第5张图片
Band-Limited White Noise模块服从正态分布(N(μ,σ))的随机数,所以它的能量可以视为σ2(即它的方差)。默认情况下Noise power为0.1,Sample time为0.1,实际上它的能量为0.1÷0.1=1,即σ=1,服从的是标准正态分布N(0,1)。你可以尝试直接将默认设置输出到工作空间。

例2:
产生一个均值为0,方差为0.01的白噪声,系统周期0.1s。则应该设置以上参数:
Noise power为0.00001
Sample time为0.001
seed :系统默认就好

你可能感兴趣的:(机器学习)