I am not a DSP expert, so I would like someone to check my thought process:
I have a text file representing the spectrum (calculated by some FFT hardware), and I'd like to calculate a cepstrum. I'm using Octave in the examples below, but it's not required.
- My source data is two columns:
frequency
,amplitude
, i.e.:
+----------+----------+ | 0.00E+00 | 6.93E+01 | | 1.00E+01 | 6.95E+01 | | 2.00E+01 | 7.38E+01 | | ... | ... | | 2.00E+03 | 6.51E+01 | +----------+----------
Load the data in to Octave, and use
ifft
to put the spectrum into the time domain. Then userceps
to calculate the cepstrum:rceps(ifft(my_data(:,2))); % my_data is the 2000x2 matrix from above
Plot the result of
rceps
. The resulting curve should equal cepstrum that would have been produced if I had started with a time domain signal.
Is this a correct way to find the cepstrum when only spectrum (FFT) is available, or, is there a flaw in my thought process?