I'm testing some code to perform deconvolution of two audio signals to recover the impulse response. Presently, as part of testing, I am simply deconvovolving two identical signals.

I have the assumption that I should be able to recover a simple dirac-delta impulse response from this, but for some reason, there is a lot of spurious noise in the impulse response result.

I am using standard 8-byte doubles for data storage and FFTW as my FFT library. I'm also normalising the impulse response.

Is my assumption correct (regarding the unit impulse response)?

I'm still trying to figure out how to correctly compensate for wrap-around (circular convolution) by correctly padding the input buffers. I am using a similar strategy to my working convolution code [ M+L-1 ]

  • $\begingroup$ I think you can use time domain adaptive filter for such problems. $\endgroup$ – Arpit Jain Dec 22 '16 at 11:58
  • $\begingroup$ for deconvolution?! $\endgroup$ – Mark Dec 22 '16 at 13:09
  • $\begingroup$ you know input and output ? but you don't know transfer function which led input to output. right ? $\endgroup$ – Arpit Jain Dec 22 '16 at 13:13
  • $\begingroup$ Correct. Just be aware - I am an extreme newbie at DSP. I understand the basics of DSP and Convolution, but I am very much teaching myself this stuff, so please be gentle. I am no expert. $\endgroup$ – Mark Dec 22 '16 at 13:15
  • $\begingroup$ please read about adaptive filters to get clarity. you can find lot of implementations of same in many languages(c, python matlab, etc.). you can use your input signal as reference signal to adaptive filter and your output signal as input to adaptive filter. after proper adaptation/convergence the adaptive filter weight's/coefficients will be your required transfer function. $\endgroup$ – Arpit Jain Dec 22 '16 at 13:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.