I have a signal that I STFT and then filter using an ERB spaced filterbank. At some point after this I want to get the signal back into the time domain, how can I go about this? Using a standard iSTFT function won't work because it assumed linearly spaced frequency bins, AFAIK? I've put a code snippet below.

I'm also not sure what what to tag this question as apart from fourier-transform

Y = stft(sig) # Y.shape = (1025,4000)
fb = filterbank() # fb.shape = (20,1025)

Y_erb = matrix_multiply(fb,Y) # Y_erb.shape = (20,4000)

1 Answer 1


The short answer is that you can solve a least squares problem with the input signal as the decision variables.

About Nonequispaced FFT

There is a related question in stack overflow.

If you are not using python, you can take a look into the nfft github.

Here will find some information. Section 4.6 covers the inversion of such transforms.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.