DSPRelated.com
Forums

Determing whether or not a filter is minimum phase

Started by alexryu June 11, 2008
On 12 Jun, 06:50, "Vladimir Vassilevsky" <antispam_bo...@hotmail.com>
wrote:
> why can't we just make the > 1/H(z) filter in the direct form and run a pulse through it? If it diverges, > then the filter is not minimal phase.
So simple... of course you are right!
> The numerical problems apply, of course.
Well, yes, the zeros become poles and since they aren't on biquad form, all hell might break loose. But that applies to all the other approaches as well. If 1/H(z) is stable, the H(z) is zertainly minimum phase. Rune
"alexryu" <ryu.alex@gmail.com> writes:

> Hello all > I have a filter I inherited from someone else (long gone) that is supposed > to be minimum phase but I would like to make sure. Could someone please > tell me the best way to do this? The filter is rather long (~500). Is the > only method to use a generic polynomial root-finding algorithm, see where > the zeros lie, and pray for stability/convergence? Thanks for your time > Alex
What is wrong with doing it that way? The GNU Octave roots() function found the roots of a randomly generated vector of length 500 in about 5 seconds. -- % Randy Yates % "My Shangri-la has gone away, fading like %% Fuquay-Varina, NC % the Beatles on 'Hey Jude'" %%% 919-577-9882 % %%%% <yates@ieee.org> % 'Shangri-La', *A New World Record*, ELO http://www.digitalsignallabs.com
On 12 Jun., 16:08, Randy Yates <ya...@ieee.org> wrote:
> "alexryu" <ryu.a...@gmail.com> writes: > > Hello all > > I have a filter I inherited from someone else (long gone) that is supposed > > to be minimum phase but I would like to make sure. &#4294967295;Could someone please > > tell me the best way to do this? &#4294967295;The filter is rather long (~500). &#4294967295;Is the > > only method to use a generic polynomial root-finding algorithm, see where > > the zeros lie, and pray for stability/convergence? &#4294967295;Thanks for your time > > Alex > > What is wrong with doing it that way? The GNU Octave roots() function found > the roots of a randomly generated vector of length 500 in about 5 seconds.
Polynomial rooting (while fun) is notoriously unstable. There is of course this: http://www.dsp.rice.edu/software/prf.shtml I quite like Vladimir's approach (should work for many practical systems). Another obvious method not yet mentioned is to apply the Schur-Cohn test to check if all the roots have magnitude smaller than 1. This computes the reflection coefficients from the transversal filter form. JOS the III has this to say: http://www.dsprelated.com/dspbooks/filters/Computing_Reflection_Coefficients_Check.html Regards, Andor
On 12 Jun., 06:14, robert bristow-johnson <r...@audioimagination.com>
wrote:
> On Jun 11, 10:43 pm, Rune Allnor <all...@tele.ntnu.no> wrote: > > > On 12 Jun, 02:01, robert bristow-johnson <r...@audioimagination.com> > > wrote: > > > > for a minimum-phase system, the natural logarithm of the magnitude > > > frequency response (the even-symmetry double-sided magnitude response > > > including negative frequencies) is the Hilbert Transform of the phase > > > response (phase measured in radians). > > > That's a very interesting approach, which might be worth a try. > > I would assume there would be some issues wrt the unwrapping of > > the phase response? > > yes, there are (and i forgot about that). &#4294967295;phase needs to be odd- > symmetry and decently unwrapped.
Another one you forgot is the fact that computing the Hilbert transform can be, as you like to say, a female canine. Remember this frequency response: 1/sqrt(j omega) It's minimum phase according to your criterion, but not trivially shown to be so. Regards, Andor
> http://www.dsprelated.com/dspbooks/filters/Computing_Reflection_Coeff...
That's funny. There seem to be two groups at Rice concerned with factoring polynomials. I actually meant this one (which there was an article on in the SPM a while back): http://www.dsp.rice.edu/software/fvhdp.shtml

Andor wrote:


> I quite like Vladimir's approach (should work for many practical > systems).
Oh, no... Not so simple. In the direct form IIR, the numeric error growth is proportional to the transition bandwidth raised to the power of the denominator. For OP's filter of the 500th order, this means the calculations with the ~1000 bit numbers to have enough of accuracy :) Otherwise the result will be rubbish. Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
>... Remember this >frequency response: > >1/sqrt(j omega) > >It's minimum phase according to your criterion, but not trivially >shown to be so.
Hi Andor, Do you have a reference to this? Thanks, Steve
Vladimir Vassilevsky wrote:
> > > Andor wrote: > > >> I quite like Vladimir's approach (should work for many practical >> systems). > > Oh, no... Not so simple. > > In the direct form IIR, the numeric error growth is proportional to the > transition bandwidth raised to the power of the denominator. For OP's > filter of the 500th order, this means the calculations with the ~1000 > bit numbers to have enough of accuracy :) Otherwise the result will be > rubbish.
Isn't it reasonable to suppose that the 500th-order filter is FIR? Jerry -- Engineering is the art of making what you want from things you can get. &#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;
To the original poster,

As Jerry pointed out, even if there are 500 taps, the filter is FIR.
Therefore it is definitely stable, given all coefficients are finite. So
you need not worry about whether your filter is minimum phase or not.

Other posters apparently assumed you need the filter to be invertible.
Minimum phase signals have causal and stable inverses, but maybe you do not
really need this. Even if there are nulls in your filter's spectrum, you
may be able to get away with a Wiener filter.

Not that there is anything wrong with trying to find the right answer to
the "wrong" question.

Emre
On Jun 12, 4:49&#4294967295;pm, Andor <andor.bari...@gmail.com> wrote:
> On 12 Jun., 06:14, robert bristow-johnson <r...@audioimagination.com> > wrote: > > > > > On Jun 11, 10:43 pm, Rune Allnor <all...@tele.ntnu.no> wrote: > > > > On 12 Jun, 02:01, robert bristow-johnson <r...@audioimagination.com> > > > wrote: > > > > > for a minimum-phase system, the natural logarithm of the magnitude > > > > frequency response (the even-symmetry double-sided magnitude response > > > > including negative frequencies) is the Hilbert Transform of the phase > > > > response (phase measured in radians). > > > > That's a very interesting approach, which might be worth a try. > > > I would assume there would be some issues wrt the unwrapping of > > > the phase response? > > > yes, there are (and i forgot about that). &#4294967295;phase needs to be odd- > > symmetry and decently unwrapped. > > Another one you forgot is the fact that computing the Hilbert > transform can be, as you like to say, a female canine.
but, if you have a Hilbert Transform pair in the real and imaginary parts of a complex spectrum, the Fourier Transform of that should be a causal function. other than the FFT, i wasn't thinking that in this case one had to explicitly compute the Hilbert Transform.
> Remember this frequency response: > > 1/sqrt(j omega)
it rings a bell, but i don't remember what the deal is about it (white noise to pink noise filter?).
> It's minimum phase according to your criterion, but not trivially > shown to be so.
well, you can't really tell where the poles and zeros are. r b-j