求序列的功率与能量问题
我有一个序列xn={976,975,976,978,...};共307个这样的元素;采样频率为1HZ。我的目的是:想求这个序列当频率在0.003HZ在0.4HZ区间内的能量。
我参考的资料中有两个matlab写的程序,一个是求能量的程序1,另一个是求功率谱的程序2。我为了满足我能取到0.003HZ对应点的能量,也就是说频率分辨率需要达到0.001HZ;所以我把N设置为1024 (我想这里应该设置为1000,但是暂时取最接近2的整数次幂1024测试)
程序1:
T=1;N=1024;
X=fft(xn,N);
k=3:400;
E=T/N*sum(abs(X(k+1)).^2)
程序2:
Fs=1; %采样频率
window=boxcar(length(xn)); %矩形窗
nfft=1024;
=periodogram(xn,window,nfft,Fs) %直接法
我想问的是:(1)求0.003HZ在0.4HZ区间能量是否可以用程序1?
(2)求序列xn的功率谱是否可以用程序2?
(3)如果程序1和程序2是对的,那么我用程序2求出功率谱后,是否可以利用功率求出其能量。(我是这样认为的,如果有:功率=能量/序列长度,那么我求能量的话,则 有:能量=功率*序列长度。是否这样求可以?)
(4)如果上面的(3)是成立的,为什么用(3)求出的能量与用程序1求出的能量完全不一样?数据为什么会相差好几个数量级?(我看到的现象是:程序1求出的能量是3.5e+008,而我按思路(3)中求出的话就是2.5*307=767.5)
(5)求序列xn当频率在0.003HZ在0.4HZ区间内的能量还有别的方法吗?
希望哪位大虾指点偶一下。多谢。。。!!!!
回复 楼主 lgf402 的帖子
专业问题请到相关板块求助
页:
[1]