I am trying to compute cepstrum of a signal x
An implementation of this in python is:
x_fft = np.fft.fft(x) cepstrum = np.real(np.fft.ifft(np.log(abs(x_fft)))) cepstrum = cepstrum[0:len(audio_signal_frame) // 2] # cepstrum_db = 10 * np.log10(cepstrum ** 2)
I wanted to zero pad x to hamming number length before the cepstrum calculation to make the fft more efficient, i.e.:
x_padded = zeros(fftpack.next_fast_len(len(x))) x_padded[0:len(x)] = x x_fft = np.fft.fft(x_padded) ...rest of the cepstrum calculation...
However I am worried that this will affect the ifft in unintended ways (besides changing the quefrency resolution by the padded amount)
Looking at the Interpolated Cepstrum Estimation section of this paper it seems that there is an additional step 6 where they pad the fft signal by power of 2. However I am not sure if this step is required or how to implement if padding isn't in powers of 2 since hamming number is not strictly K power of 2.