I have received from a client a 32-coefficient FIR filter running at 1 kHz. I would like to adapt the filter to a 24-coefficient FIR filter running at 750 Hz while preserving the 0-375 Hz frequency response as much as possible, especially the 0-30 Hz band. Is there a way to resample my FIR coefficients?

Edit :

The FIR has linear phase, is a low-pass filter, and also has zeroes at specific frequencies (multiples of 60 Hz)

  • 2
    $\begingroup$ Can you say a bit more about the filter? Does it have linear phase? What about its magnitude response? I ask because it might be easier to actually re-design it than to resample it. $\endgroup$ – Matt L. Jul 30 '20 at 14:44
  • $\begingroup$ Linear phase and zeroes at specific frequencies. $\endgroup$ – Ben Jul 30 '20 at 15:05

As mentioned in a comment, I would probably try to re-design the filter at the new sampling rate. Take equidistant samples of the magnitude of the existing filter between DC and the new Nyquist frequency as a desired response. Since you want to make sure that the new filter has zeros at integer multiples of $60$ Hertz, split your new filter response into two parts:


where $P(z)$ is a polynomial with zeros at integer multiples of $60$ Hz. Your desired magnitude is then defined by equidistant samples of


where $H_D(z)$ is the transfer function of the original filter. In your frequency grid, avoid frequencies at which the zeros of $P(z)$ occur. Of course, those zeros are cancelled by the zeros of $H_D(z)$, but you might nevertheless have some numerical problems otherwise.

Now you find a linear phase transfer function $G(z)$ approximating $M_D(e^{j\omega})$ on the unit circle, and your final filter transfer function is given by Eq. $(1)$.

I would use a weighted least squares approximation, which just requires the solution of a system of linear equations. If the range between DC and $30$ Hz is especially important, you can assign those frequencies a higher weight, such that the approximation is better in that range (at the cost of the approximation outside that range).


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.