0
$\begingroup$

Problem:

I have to design a filter that should be able to resolve two ~20ns pulses as well as get rid of some ringing. I was able to find a filter kernel that if convolved with the noise signal is able to do the required filtering. Below are the graphs of the pulses before and after applying the convolution.

Pulses before and after applying filter kernel

The graph below is the filter kernel that I used to do the filter in both the time and frequency domain.

Filter kernel in time and frequency domain

Attempted solution:

According to my understanding -- which is very superficial -- the discrete Fourier transform of the filter kernel is the frequency response of the filter. Based on that I went on and tried to design a filter with a similar frequency response which according to the graph is a low-pass filter. However, when I design and apply a low-pass iir filter to the signal it is not able to resolve the pulses. What's wrong with my understanding? How could I go about designing a filter that has a similar filter response as the one I require? Is it possible to do it with an analog rather than a digital filter?

PS: I was not able to upload more pictures but if possible I will upload them to the comments as well as the code and data use to produce the graphs.

$\endgroup$
2
$\begingroup$

The problem is that your low-pass IIR filter matches the original filter's magnitude response but will definitely not match its phase response.

The IIR filter will have a kernel that is larger closer to $t=0$ than your plotted filter kernel. This means that, even if the magnitude frequency response matches, the phase frequency response will not be similar.

So you have the filter's impulse response, which is sort of like a long FIR filter.

Unfortunately, designing an analog filter that matches this response is a little tricky. Most techniques for designing such filters assume you don't care about the phase response.

One way might be to take your FIR current filter and perform model order reduction on it. See, for example, matlab's balred method that does balanced truncation (I think), though you may need to do some discrete-to-continuous or vice-versa transformation to get things to work.

$\endgroup$
  • $\begingroup$ Ohhh that makes complete sense. I completely neglected the phase response of the filter kernel. Do you know how can I obtain the kernel's filter phase response? Ideally I'd like to design an analog filter rather than a digital filter. But I don't know if this would be even possible. $\endgroup$ – Agustin Pacheco Jul 7 '17 at 18:59

Your Answer

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

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