FFT的功率谱密度

Posted

技术标签:

【中文标题】FFT的功率谱密度【英文标题】:Power spectral density of FFT 【发布时间】:2014-07-27 18:10:22 【问题描述】:

我有一段代码可以获取部分信号的 FFT,我现在正在尝试获取 PSD,

Fs = 44100; 
cj = sqrt(-1);
 %T=.6; 
dt = 1/Fs; 
left=test(:,1);
 right=test(:,2); 
time = 45; 
interval =.636;
 w_range = time*Fs: (time+interval)*Fs-1;
 I = left(w_range);
 Q = right(w_range); 
n = interval * Fs; 
f = -Fs/2:Fs/n:Fs/2-Fs/n;

s = I+cj.*Q;

% Smooth the signal ss = smooth(s,201);

sf = (fftshift(fft(ss(1:n)))); %FFT of signal

figure(1) plot(f,((20*log10((abs(sf))./max(abs(sf))))))

据我了解,为了获得 PSD,我只需要将 sf 提高到 2 的幂,或者我还需要执行什么操作?

【问题讨论】:

我猜应该是sf.*conj(sf)(abs(sf)).^2? 我的意思是通过对频谱进行绝对平方来计算 PSD。另一种方法是使用 Wiener-Khinchin 定理,它使您能够通过傅里叶变换自相关函数计算 PSD。如果我提供了任何不相关的信息,我会说抱歉,因为我没有查找 PSD 的教科书。 【参考方案1】:

从技术上讲,是的,您可以通过取其 FFT 的平方幅度来获得周期性信号的功率谱密度 (PSD)。请注意,如果您要在对数分贝标度上绘制它,20*log10(abs(sf))10*log10(abs(sf).^2) 之间确实没有区别。

然而,通常情况下,以这种方式计算的 PSD 估计值往往具有相当大的方差。有许多techniques 可用于改进估计。一个简单的方法包括将window 应用于数据部分,执行 FFT,然后平均得到的 PSD(即平均平方大小)。

【讨论】:

【参考方案2】:

你完全正确。你只需要建立绝对值的平方。

【讨论】:

以上是关于FFT的功率谱密度的主要内容,如果未能解决你的问题,请参考以下文章

信噪比

转载时域信号的频谱功率谱和功率谱密度计算

高分!急!用matlab分析功率谱密度,采样频率的设定.高手进!

信号的频谱幅度谱相位谱及能量谱密度功率谱密度

随机过程 3 - 随机过程的频域分析1 - 功率谱

随机过程 3 - 随机过程的频域分析1 - 功率谱