wangbohust 发表于 2007-8-17 09:50

白噪声功率谱密度小结

大家讨论了这么多的matlab生成白噪声的程序,关于白噪声功率谱密度强度的问题一直没搞清楚(我不是学电信专业的,对“wgn”中的几个单位也不是很熟悉,经过这几天的琢磨,现将matlab中两种生成白噪声的程序中的谱强度总结如下,不对之处,请多多指教。

randn命令,生成的白噪声的谱强度为1

wgn---‘linear’能生成任意谱强度因子的白噪声,输入的数值即为谱强度因子



wgn---‘dbw’同randn,生成的白噪声的谱强度为1


wgn---‘dbM’同randn,输入为1时,生成的白噪声的谱强度为0.0012,输入0.1时谱强度为0.001.

所以,建议大家用wgn---‘linear’命令!

请大家多多讨论,互相学习,互相提高!!!

[ 本帖最后由 eight 于 2007-8-17 20:05 编辑 ]

octopussheng 发表于 2007-8-17 09:57

总结的确实很好!

有几个区别要注意:
1. rand产生的是均匀分布白噪声序列
2. randn产生的是正态分布的白噪声序列
3. WGN产生的是高斯白噪声序列

fuheshan 发表于 2007-11-30 12:47

请问下楼主,你的强度图是怎么做出来的呢?
怎么计算的强度?
我用功率谱估计的方法对产生的高斯白噪声求功率谱得到下图
幅度是0.32不是你得到的1。所以我想问你下 你是怎么计算的强度。
http://photo.store.qq.com/http_imgload.cgi?/rurl2=28232aaf480e0b0cc762cd57f64c099b27ed9de7cad9506d31ac247a19d830c69af044d5bff93eb88a9f28ffef6c87728bba65d9ccddde8556f866f1ca4777f3b002bd805ed4329cbf9dfd55d2ea87113886dff5
以上的实现代码是
clear all;
close all;
clc
randn('state',0)%
y=wgn(1,200000,1,'linear');
yk=pburg(y,8,1024);
plot(yk)

或者
clear all;
close all;
clc
leng_num=200000;
x=randn(1,leng_num);
x=(x-mean(x))/std(x);
xk=pburg(x,8,1024);
plot(xk)

[ 本帖最后由 fuheshan 于 2007-11-30 14:40 编辑 ]

kjyqcl 发表于 2009-9-9 21:15

原帖由 octopussheng 于 2007-8-17 09:57 发表 http://www.chinavib.com/forum/images/common/back.gif
总结的确实很好!

有几个区别要注意:
1. rand产生的是均匀分布白噪声序列
2. randn产生的是正态分布的白噪声序列
3. WGN产生的是高斯白噪声序列

只用过 rand 和 randn,没有用过 WGN。
但,正态分布不就是高斯分布吗?

kyu16866 发表于 2012-12-7 00:16

我也算不出普强度为1,我用的pwelch方法

happy 发表于 2012-12-11 11:16

本帖最后由 happy 于 2012-12-11 11:17 编辑

kyu16866 发表于 2012-12-7 00:16 static/image/common/back.gif
我也算不出普强度为1,我用的pwelch方法
这里指的是信号强度,而不是功率谱密度具体可以看http://forum.chinavib.com/thread-31086-1-1.html

kyu16866 发表于 2012-12-12 00:42

本帖最后由 kyu16866 于 2012-12-12 00:44 编辑

happy 发表于 2012-12-11 11:16 static/image/common/back.gif
这里指的是信号强度,而不是功率谱密度具体可以看http://forum.chinavib.com/thread-31086-1-1.html
信号的强度是一个值,就像您说提到的sigPower = sum(abs(sig(:)).^2))/length(sig(:))。我想知道为何第二副图中幅值也都在1左右?????
楼主提出的第二图,wgn(n,1,1,'linear'),信号强度是以watt为单位,所以例如y=wgn(1,2000,1,'linear');那么信号的能量sigpower确实是1左右。
window=hamming(512);=pwelch(y,window,256,1024,10);plot(f,Pxx)得到的曲线应该是楼主的图,可幅值在0.3左右,不是1.即使改成plot(f,10*log10(Pxx)),单位为Y轴单位为dbw,值也在0以下。


后来我看到如果白噪声功率谱密度为1,那么它一个周期能量为2*pi,然后,y=wgn(1,2000,2*pi,'linear');window=hamming(1024);=pwelch(y,window,100,1024,10);figure;plot(f,Pxx),得到的曲线图如下,在1上下。为什么要把功率设置2*pi,这跟一个周期有什么关系?

当均值为0,能量方差=均方差,就是功率谱密度积分/2pi,也跟这没关系呀!!!!求解释!!




kyu16866 发表于 2012-12-12 00:59

对一个randn,用randn(n,1)就能得到
NFFT=1024;         %NFFT为取样点数
    Fs=10000;             %Fs为取样频率   
    t=(0:NFFT-1)/Fs;         %时间
    y=randn(NFFT,1);   %产生高斯白噪声,
    figure(1);
    subplot(3,1,1);
plot(t,y);
grid on;
title('白噪声波形');
%计算白噪声的自相关系数
    =xcorr(y,200,'unbiased');
    subplot(3,1,2);
    plot(lags,cory);      %自相关函数(无偏差的), cory为要求的自相关函数,lag为自相关函数的长度。
   title('白噪声相关数');
grid on;
   f=fft(cory);          %对自相关系数进行傅里叶变换
   k=abs(f);
    fl=(0:length(k)-1)*Fs/length(k);       %fl为fc的长度。
    subplot(3,1,3)
    plot(fl,k);
    grid on;      
title('白噪声功率谱谱');%谱值在1上下。

kyu16866 发表于 2012-12-12 01:00

kyu16866 发表于 2012-12-12 01:02

fuheshan 发表于 2007-11-30 12:47 static/image/common/back.gif
请问下楼主,你的强度图是怎么做出来的呢?
怎么计算的强度?
我用功率谱估计的方法对产生的高斯白噪声求 ...

说明,楼主提出的直接用wgn还是点问题。

lihaitao123 发表于 2013-8-1 23:53

弱弱的问一句,正态分布的白噪声序列和高斯分布不是一回事吗?

1022liwei 发表于 2014-12-19 14:54

谢谢分享!!

454715753 发表于 2015-7-20 17:53

1111111111111111111111111
页: [1]
查看完整版本: 白噪声功率谱密度小结