1
$\begingroup$

I've seen examples of transforming a linear phase FIR into a minimum phase FIR, but is there a simple process to transform a minimum phase FIR into a linear phase FIR?

I would like to end up with a single FIR of linear phase. If the magnitude ends up being squared during the process (or the number of taps double), then that would be OK.

$\endgroup$
  • $\begingroup$ that is a tricky question! So the problem I have with your question is: You want to replace one filter (minimal phase, MP) with a different filter (linear phase, LP). So, per definition of "different", LP and MP can't be identical in every aspect. So what are the aspects of MP that you want LP to have? What are the things you don't care about? It might also be very worthwhile to explain why you want to do this, instead of e.g. designing the LP from scratch. $\endgroup$ – Marcus Müller Aug 19 '16 at 9:08
  • 1
    $\begingroup$ @Marcus Müller, I mentioned in my question I'd be happy if the magnitude gets squared. Matt's answer gives a solution where the magnitude gets squared which I kind of thought there would be way to do (so the question felt reasonable to me). The thing I cared about which I feel is implicit in the question is not redesigning anything. I wanted to know how to do it simply for the sake of knowing, need anyone have a better reason :-) $\endgroup$ – keith Aug 19 '16 at 13:03
  • $\begingroup$ reading this again, ... yes, you're right! $\endgroup$ – Marcus Müller Aug 19 '16 at 13:22
  • $\begingroup$ BTW, Keith, being that you're accepting squaring the frequency response magnitude, if you convolve your original $h[n]$ with the time-reversed copy $h[-n]$, you will get a symmetric impulse response (so it's phase linear) with frequency response that is the square of the magnitude of what you had started with. $\endgroup$ – robert bristow-johnson Aug 20 '16 at 20:23
  • $\begingroup$ @robert bristow-johnson, yep that's the way I had interpreted Matt's answer and is probably going to be the easiest to implement given h[n] are the FIR coefficients. $\endgroup$ – keith Aug 20 '16 at 21:00
3
$\begingroup$

It is generally impossible to transform a given minimum-phase FIR system into a linear phase FIR system with the same magnitude response. There is one special case for which this is possible, and that is if the zeros of the minimum phase system inside the unit circle haven even multiplicity. Because in that case you can, for each zero location, mirror half of the multiple zeros across the unit circle, which gives you a linear phase filter without changing the magnitude. But that's of course a quite artificial situation, so in general there's no way to obtain a linear phase filter from a minimum phase filter without changing the magnitude.

A way to transform a minimum-phase FIR system into a linear-phase FIR system with a squared magnitude is by simply doubling all zeros on the unit circle, and for each zero inside the unit circle adding a mirrored zero outside the unit circle. If $H(z)$ is a given $N^{th}$ order causal minimum-phase transfer function, the corresponding linear phase transfer function is given by

$$G(z)=H(z)H(1/z^*)z^{-N}\tag{1}$$

Note that the number of coefficients is (approximately) doubled and that

$$|G(e^{j\omega})|=|H(e^{j\omega})|^2\tag{2}$$

$\endgroup$
  • $\begingroup$ +1. It's alluded to in this answer, but I'll specifically point out that linear-phase filters have specific properties about where their zeros are located. If a LP filter has a zero at $z=z_0$, then it will also have them at $z=z_0^*$, $\frac{1}{z}$, and $\frac{1}{z^*}$. It's discussed on page 22 of these course notes. $\endgroup$ – Jason R Aug 19 '16 at 11:39
  • $\begingroup$ Thanks, inverting the zeros was the bit I was missing when trying to figure this out - doh! I mentioned in my question that I thought the magnitude would probably get squared, so you're answer is spot on for my purposes. $\endgroup$ – keith Aug 19 '16 at 12:57
  • $\begingroup$ @Jason R, thanks for the additional information. $\endgroup$ – keith Aug 19 '16 at 13:11
  • $\begingroup$ My comment above has some typos in it. It should be $\frac{1}{z_0}$ and $\frac{1}{z_0^*}$. $\endgroup$ – Jason R Aug 19 '16 at 13:15
  • 1
    $\begingroup$ @robertbristow-johnson: Try it and look at both frequency responses on a DFT grid with $10L$ points! (in short: it doesn't work). Of course the two impulse response have the same magnitude response on the grid of $L$ points, but in between those points the difference can be arbitrary. So you obviously get a linear phase FIR filter, but the magnitude response is different from the original filter (and larger FFT lengths via zero padding won't help either; it's like high-order polynomial interpolation of a smooth function, the polynomial will never approximate the function). $\endgroup$ – Matt L. Aug 20 '16 at 19:30

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.