Borrar filtros
Borrar filtros

How can I inverse a digital low pass filter?

63 visualizaciones (últimos 30 días)
twig27
twig27 el 4 de En. de 2017
Respondida: Thierry Zerozerosept el 6 de Jul. de 2021
Hello,
in Matlab it's easy to implement low pass filter. But how can I create another filter, which reverses the first filter, i.e. overall gain of 1 for all frequencies.
My idea is just to use the feedback function, i.e. put the low pass transfer function in the negative feedback. This means:
if true
num = 1;
den = [1/3000 1];
tf1 = tf(num,den);
bode(tf1)
tf_neg_feed = feedback(1,tf1);
bode(tf_neg_feed)
end
I would expect a frequency response of gain 1 up to a certain frequency, and a linear increase for higher frequencies. What I get however looks like this:
What is wrong with my approach? Thanks!

Respuestas (2)

Jayaram Theegala
Jayaram Theegala el 9 de En. de 2017
You can create the inverse of the original filter by exchanging the numerator and denominator of the filter transfer function, in other words:
if true
num = 1;
den = [1/3000 1];
tf1 = tf(num,den);
bode(tf1);
figure;
tf_inverse = tf(den,num);
bode(tf_inverse);
end
However, the inverse filter designed by the above approach may become unstable at higher frequencies. To design a inverse filter that is stable at higher frequencies you can refer to the following stackoverflow post:

Thierry Zerozerosept
Thierry Zerozerosept el 6 de Jul. de 2021
Like already answered, many techniques are unstable.
What I do is making a pulse signal of the length of the filtered signal [1,0,0,0,0,0 ... ]
I pass it through the filter to have the impulse response of the filter.
I do a deconvolution of the signal with the impulse response of the filter like that: real(ifft(fft( signal )./fft( impulseresponse )))
This strongly amplifies the high frequency noise but it is not unstable.

Categorías

Más información sobre Matched Filter and Ambiguity Function en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by