疑问:频谱,功率谱????
本帖最后由 wdhd 于 2016-9-8 14:44 编辑我用VC做一个信号采集处理的程序,用信号采集卡AD转换后,进行FFT,现在需要得到采集的这一段信号的功率谱,而且要得到某个频率信号的真实功率,我认识的一个师姐告诉的方法是:
(1)FFT后,对得到的复数取模,再平方,除以处理的数据长度,再乘以2。
但是我看《数字信号处理》上面: 周期图法求取功率谱是:
(2)模的平方,然后除以处理的数据长度。
我在论坛上看到的有:
(3)对得到的复数取模,然后除以处理的数据长度,乘以2,得到单边的幅值谱,然后再平方,再除以频率分辨率,得到的就是单边功率谱。
(4)对得到的复数取模,然后除以数据的长度,再平方,然后乘以2,得到的是单边幅值谱,再除以频率分辨率,得到的就是单边功率谱。
疑问:
1.到底哪一种是正确的呢?
2.FFT变换后,怎么计算才能得到单边幅值谱(3,4方法中哪一个正确呢)?
3.以上几种方法得到的功率谱应该只是各个频率功率的相对值,如何得到实际真实的功率呢?
看了很多书,问了很多人,论坛上也看了很多帖子,疑问还是没解决,大家讨论一下,呵呵 。
fft_size=length(t);
F1=fft(s3,fft_size);
pxx=abs(F1).^2/fft_size;
P=10*log(pxx(1:fft_size/2));
f=2*pi*fs*(0:round(fft_size/2-1))/fft_size;
subplot(4,4,5);
plot(f,P);我一般是这样求的 这要看你的对象和目的.
1.如果你的对象是周期信号,想得到周期信号的参数,那么幅值谱就可以了.此时的步骤是:
对得到的复数取模,然后除以处理的数据长度,乘以2,得到单边的幅值谱.
2.如果你的对象是平稳随机过程,那么你能够定量是功率谱密度(功率在频带上"连续"分布),那么步骤是:对得到的复数取模,然后除以数据的长度,再平方,然后乘以2,再除以频率分辨率,得到的就是单边功率谱;!!!!!!!!!!必须重复N次后平均!!!!!!!!!!!!!! 除不除数据长度n的根本原因是:采用的FFT变换公式不一样,至少有两个版本的FFT变换公式,有的是正变换除了长度n,有的是反变换除了n,我考虑过这个问题。 #3正解! 谢谢各位的解答。
我要取的是周期信号,我到图书馆查了一下,又问了老师,得到的是:
1.功率谱=FFT后,模的平方,再除以数据长度N,然后乘以2。我想这个是对周期信号作功率谱时用的。
2.要是更广泛一点,是平稳随机信号,那3楼给出的第二个答案应该更准确。
不知道我的理解对不对,呵呵。欢迎指正!!!
问题:
1.我对周期信号采样,但是采样的数据长度不是整数个信号周期,比如,采样的数据是1.7个周期信号,这样我得到的功率谱是不是就不准确,应该进行频谱校正?????
2.得到功率谱以后,怎么样才能算出实际的信号功率呢?(放大器的放大倍数,放大后的数值都已经知道,时域信号单位是:电压 伏特) 严格地说, 周期信号的功率谱为无穷大。 这时有意义的是傅立叶级数的系数(有限,可以在计算机上操作)。
页:
[1]