matlab中pwelch函数的功率谱结果还需要修正吗?
最近用pwelch函数做信号功率谱,发现窗长的改变影响pwelch函数结果中的线谱幅度,例如:生成一个正弦信号,用pwelch函数求出正弦信号的功率谱,当改变fft长度(即窗长)时,正弦的线谱幅度也会随之改变。这使我对pwelch函数的准确性产生质疑。个人理解,功率谱已经与时间长度无关了,功率是单位时间的能量嘛。
因此想在这里提出以下问题:
1)pwelch函数得到的功率谱结果是否还需要进一步修正?
2)如果不再需要修正,那pwelch函数得到的功率谱幅值随fft窗长的改变而改变是正确的吗?其中的原因是什么?
我也关注这个问题,但也一直未得到解决,pwelch计算功率谱比较复杂,利用调用许多子函数而来的,而以前的psd函数计算功率谱则比较简单,只是fft后的幅值平方,再根据窗函数的功率系数修正幅值后得到的。
不过许多情况下关心的是功率谱的相对幅值,绝对幅值不是很有意义 学习下···· pwelch的计算过程应该说还是比较简单的,和信号处理树上的推导一致,可以用fft实现一下,就是能量在频率范围内的平均,我认为可以代表谱密度的概念,应该是不需要修正的
但是让我很迷惑的是几种算法,在幅值上的巨大差异如:periodgram和直接进行fft都不同有点崩溃
clear all
clc
fs=8000;
t=0:1/fs:1-1/fs;
x=sin(2*pi*600*t)+cos(2*pi*1000*t);
%------------pwelch算法----------------
%已经做过用fft来做Pwelch可以做到完全一致
% nfft=1024;
% window=hamming(nfft);
% =pwelch(x,window,[],'onesided',nfft,fs);
% Px1=10*log10(Px);
% figure; plot(f,Px1);hold on
%-------FFT法-------------------------
nfft=8192;
nfft1=nfft/2+1;
N=length(x);
Pxx=abs(fft(x,nfft)).^2/N;
Pxx(1)=Pxx(1)/2;
Pxx(nfft1)=Pxx(nfft1)/2;
Pxx1=10*log10(Pxx);
f1=(1:length(Pxx))/nfft*fs;
figure;plot(f1(1:nfft1),Pxx1(1:nfft1),'r');holdon
grid on
%--------周期图-----------------------
window=boxcar(length(x));
=periodogram(x);
Pxx2=10*log10(Pxx2);
plot(f2/pi*fs/2,Pxx2,'g');
figure
error=Pxx1(1:nfft1).'-Pxx2;
plot(error); zengwj0423 发表于 2012-10-25 22:45 static/image/common/back.gif
我也关注这个问题,但也一直未得到解决,pwelch计算功率谱比较复杂,利用调用许多子函数而来的,而以前的ps ...
您好!请问如何用matlab画功率谱图,地震动函数模型图,结构的抗震方面的,谢谢您啊!或者可以推荐下有关的书籍!祝您天天好心情! 清晨露珠 发表于 2013-1-24 16:20 static/image/common/back.gif
您好!请问如何用matlab画功率谱图,地震动函数模型图,结构的抗震方面的,谢谢您啊!或者可以推荐下有关 ...
一般情况下直接用matlab自带的pwelch函数,也可以自己编程计算,功率谱其实就是幅值谱的平方,不过要注意一下多次平均,也没注意过地震方面相关书籍,不是这一行的 谢谢楼上各位的关注!期待有行家解答。 zengwj0423 发表于 2013-1-25 10:57 static/image/common/back.gif
一般情况下直接用matlab自带的pwelch函数,也可以自己编程计算,功率谱其实就是幅值谱的平方,不过要注意 ...
恩,好的,很高兴能够收到您的答复!对我很有帮助!谢谢!祝你一生好运相伴~! huoran11 发表于 2012-11-12 23:28
pwelch的计算过程应该说还是比较简单的,和信号处理树上的推导一致,可以用fft实现一下,就是能量在频率范 ...
大神,请问你们求完功率谱密度都不检验么?尤其是自功率谱是由自相关函数得到,所以红噪音检验需要吧?可是这个pwelch里并不涉及检验的输入和输出参数啊。 清晨露珠 发表于 2013-1-24 16:20
您好!请问如何用matlab画功率谱图,地震动函数模型图,结构的抗震方面的,谢谢您啊!或者可以推荐下有关 ...
参考这个
http://forum.vibunion.com/forum.php?mod=viewthread&tid=139066&highlight=%B9%A6%C2%CA%C6%D7 本帖最后由 hcharlie 于 2016-8-9 09:55 编辑
menmen 发表于 2013-1-29 20:47
谢谢楼上各位的关注!期待有行家解答。
问题提了几年了,没有见到正确的回答!
问题错在什么地方呢?就错在用正弦函数去验证PSD。
PSD只是定义在稳态随机信号(白噪声)中;
正弦信号,周期信号没有PSD的定义,正弦信号的功率谱密度PSD在其频率上是无穷大,其它频率处是零,所以一做就错!
页:
[1]