2012-05-17 4 views
1

Я применил FFT к некоторым данным, которые я хотел бы обработать с помощью Matlab. Результирующие частоты довольно шумные, поэтому я применил фильтр скользящей средней к векторам частоты/амплитуды. Теперь я заинтересован в получении данных во временной области на основе данных фильтрованных частотных областей, которые будут использоваться на спектрографе позже.Получение данных из фильтра FFT

Чтобы получить/компоненты амплитуды частот, которые я использовал этот код из примера Mathworks:

NFFT=2^nextpow2(L); 
A=fft(a,NFFT)/L; %a is the data 
f=Fs/2*linspace(0,1,NFFT/2+1); 

и построены с использованием:

plot(f,2*abs(A(1:NFFT/2+1)) 

Можете ли вы порекомендовать способ получения данных временной области от отфильтрованные результаты FFT? Существует ли обратный БПФ?

спасибо!

ответ

2

IFFT - это инверсия БПФ. Если вы не изменяете частотные данные, вы должны получить те же данные из ifft (fft (x)) из той же библиотеки.

Если вы изменили данные и хотите вернуть реальные данные, вы должны отфильтровать все мнимые компоненты, а также реальные компоненты сложных результатов FFT и убедиться, что данные в частотной области все еще сложны сопряженными перед выполнением IFFT. Если вы используете только величины, это будет отбрасывать информацию о фазе, которая может сильно исказить результат.

Смежные вопросы