2011-10-26 203 views
1

我已经在这个给定的方式在Matlab中的FFT。Matlab,FFT和质心频率

X=fft(t); % Take Fourier Transform 
T=abs(X); % Take real parts of transform 
T=T(1:n/2); 

我很想找到这个图的质心频率。据我所知,该质心freuency被给定为:

enter image description here

其中x(n)表示的加权频率值或幅度的箱数n,并且f(n)表示该仓的中心频率。

现在我很想说我的脚本中f(n)是来自T的值,但这些是FFT的虚部和实部的绝对值,所以我不知道如何找到x(n)这应该是一个加权频率。

回答

2

你说f(n)是第n个仓的中心频率;这与您的数据无关。它只是你的采样频率的函数:

f(n) = n * fs/N 

你当然可以,在你上面的方程系数这一点:

centroid = (fs/N) * SUM { n x(n) }/SUM { x(n) } 

这听起来像x是你已经在你的代码叫什么T

+0

谢谢你的澄清! – Abid

+0

@奥利弗·查尔斯沃思,请问什么是N?信号的长度是多少? – Sam

+1

@Sam - 是...... –