Matlab, FFT и Centroid Frequency - PullRequest
       30

Matlab, FFT и Centroid Frequency

1 голос
/ 27 октября 2011

Я взял FFT в Matlab таким образом.

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

Я заинтересован в нахождении частоты центроида этого графика.Я понимаю, что частота центроидов задается как:

enter image description here

Где x (n) представляет взвешенное значение частоты или величину числа бинов n, а f (n) представляетцентральная частота этого бина.

Теперь я испытываю желание сказать, что f (n) являются значениями от T в моем сценарии, но это абсолютные значения мнимых и реальных компонентов БПФ и такЯ не знаю, как найти x (n), который должен быть взвешенной частотой.

1 Ответ

2 голосов
/ 27 октября 2011

Вы говорите, что f(n) - центральная частота n-го бина;это не имеет ничего общего с вашими данными.Это просто функция вашей частоты дискретизации:

f(n) = n * fs / N

Вы, конечно, можете выделить это в приведенном выше уравнении:

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

Звучит так: x - это то, что вы 'В вашем коде мы назвали T.

...