DSPRelated.com
Forums

Hilbert IIR filter implementation

Started by praveen July 29, 2003
Al:

[snip]
"Al Clark" <dsp@danvillesignal.com> wrote in message > Peter,
> > I think I'm still missing something. Doesn't rotating the low pass > prototype just create a bandpass filter? How do you structure the filter > to get the hilbert pair? Maybe I need pictures or coffee. Can you create > a simple example? > -- > Al Clark > Danville Signal Processing, Inc.
[snip] Of course it's a "complex" bandpass filter. Isn't that *exactly* what a Hilbert Transformer in "parallel" with a constant delay does? i.e. the "pair" forms a *complex* bandpass filter which rejects negative frequencies. The "rotated" low pass filter is really two real filters sharing a common input sequence with separate output sequences. Each of the output sequences is a real sequence and the two are Hilbert Transforms of each other i.e. in the frequency domain they differ by 90 degrees in their phase angles. You don't have to take the complex signal viewpoint if you are more comfortable with real sequences, but a complex sequence is nothing more than a pair of real sequences. If you wish to take the view of complex signals and complex frequencies [includes the concept of positive and negative frequencies] it will help with the understanding of the 90 degree phase splitter, in this *complex* view then the two output sequences would be simply "labeled" the "real" sequence" and the other the "imaginary sequence". i.e. One way of looking at a Hilbert Transformer placed in parallel with a pure constant delay network equal to the average latency of the Hilbert transformer is to view the parallel combination of the Hilbert Transformer and the pure constant delay pair as a complex filter. [In this case a filter that has one real input sequence and two output sequences, call one output sequence "real" and the other output sequence "imaginary" if you will.] The complex filter formed by a constant delay network in parallel with the Hilbert Transfromer then can be viewed as a *complex* bandpass filter passing a band of [complex] positive frequencies from [approximately] w = 0 up to its' specified upper cutoff frequency whilst suppressing all the negative frequencies which fall in its' lower stopband. i.e. a complex band pass filter. The pair of cross-coupled real filters resulting from the rotation of a real low pass filter about z = 0 in the z-plane produces a pair of real filters whose output sequences are Hilbert Transforms of each other. The advantages of this approach to producing a pair of sequences with a 90 degree phase difference, when compared to an FIR Hilbert Transformer in parallel with a constant delay is that the pair of IIR filters is *much* more efficient at producing the 90 degree phase shifted output sequences. By more effiecient I mean: The IIR method I proposed when designed to meet the same phase shift error specification will have: a) Considerably less over all latency than the Hilbert Transformer technique. b) Considerably fewer multiply-adds. c) Considerably less memory requirements. Sometimes the improvement in these implementation factors is almost an order of magnitude! Nice when you are short of power, memory and latenency, say in a mobile or span powered application. On the other hand the IIR implementation produces a non-linear phase angle when compared to the linear phase of the Hilbert Transformer constant delay pair. Often that simply doesn't matter. But if it does, it can be corrected by using all-pass delay equalizers in the two output paths, but that is a subject for another posting! :-) -- Peter Consultant Indialantic By-the-Sea, FL.