3
$\begingroup$

I am using a test sweep with a flat power spectrum and linear group delay (Optimized Aoshima's Time Stretched Pulse) to measure a room's frequency response. Having obtained the impulse response of the room, I thought I would be able to deconvolve it from my test signal, record the result in the same spot and under the same conditions, and obtain an approximately flat signal. However, the result of the deconvolution sounds like random noise, not at all like my original sweep.

I've tried naive deconvolution by inverse filtering, regularising my IR to avoid zeroes in certain frequencies, even ignoring all phase information in the IR and divinding just the magnitude of the results, all to no avail. In every case, the result of the deconvolution of sweep with the room IR sounds like random noise. Any ideas where I might've gone wrong?

$\endgroup$
2
  • 1
    $\begingroup$ the problem might really be that your system simply isn't invertible. Look at it in frequency domain: you can only find the inverse to a frequency response at all if it's defined; it's not defined if the frequency response has nulls in the first place. If you regularize (and what ever that means in the first place), you're already changing your original system. $\endgroup$ Apr 29, 2018 at 15:50
  • $\begingroup$ Inverse filtering does not always provide the results you would like. You should also make sure you don't end up with an unstable and/or non-causal filter. Additionally, as Marcus Müller states, the system may very well not be invertible. Regularization may prove to be useful in this case, especially if you have control over it. All in all, if you don't provide more information on your setup and/or process I believe you won't be able to get much help. $\endgroup$
    – ZaellixA
    Mar 9, 2020 at 17:41

3 Answers 3

1
$\begingroup$

The dynamic system filters details from input signal. It is not possible to restore input by a model and output. It can be explained by elementary static nonlinearity of relay or rectifier. Assume you have continuous input x(t) and output y(t) that converted by relay, your y(t) is +1 when x(t) > 0 and -1 when x(t) < 0. When you know output and a model you can't find input. Same is true for dynamic system. The inverse problem can be solved only with a lot of conditions. First, there is infinity of inputs for the same output, you have to limit them. Second, most algorithms are unstable, they may give you result looking like random noise, but it is correct solution and your input is simply one of infinite possible solutions. If you don't like it, you have to modify your algorithm to narrow the class of possible solutions. I did that before for nonlinear systems, I can give you a link, but it is too different, it needs a knowledge of nonlinear integral equations of Urysohn type, it will take a while to understand what I did. So try to narrow your solutions to a limited set and find the best candidate. It works like that. List multiple possible solutions and find the best. If failed list again new set of possible solutions.

$\endgroup$
1
$\begingroup$

Yes, the answer is here : Compensating Loudspeaker frequency response in an audio signal , The filter here is your room transfer function.

$\endgroup$
0
$\begingroup$

What you are proposing, in the world of communication systems, is known as the zero-forcing equalizer (ZFE). There are various challenges as others have indicated in the comments, including that noise can blow up to huge levels.

Hence, the ZFE is not used in practical systems, which try to optimize for other criteria, such as minimum-mean-square-error.

$\endgroup$

Your Answer

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

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