Reply by Peter Brackett July 31, 20032003-07-31
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.
Reply by Matt Boytim July 31, 20032003-07-31
praveenkumar1979@rediffmail.com (praveen) wrote in message news:<ff8a3afb.0307290312.4438c8c3@posting.google.com>...
> Hello, > I wanted to know how to implement Hilbert transform using IIR filter. > Any reference or article or suggestion will be great. > I wanted to implement it on a DSP processor. > Hardware structure, filter coefficient????? > > > waiting for reply > With regards > praveen
This may not be exactly what you're looking for, but is is certainly related and interesting none the less. "A Simple Method for Sampling In-Phase and Quadrature Components", Charles M. Rader, Lincoln Labratory, IEEE Transactions on something (sorry, that's all I can read on my copy), 1984, pages 821-824 Matt
Reply by Al Clark July 31, 20032003-07-31
"Peter Brackett" <ab4bc@ix.netcom.com> wrote in
news:bga4h9$73p$1@slb1.atl.mindspring.net: 

> Praveen: > > [snip] > "praveen" <praveenkumar1979@rediffmail.com> wrote in message > news:ff8a3afb.0307290312.4438c8c3@posting.google.com... >> Hello, >> I wanted to know how to implement Hilbert transform using IIR filter. >> Any reference or article or suggestion will be great. >> I wanted to implement it on a DSP processor. >> Hardware structure, filter coefficient????? >> >> >> waiting for reply >> With regards >> praveen > [snip] > > Often one does not really need a Hilbert Transformer, what one > requires is a method of producing two sequences which are Hilbert > Transforms of each other from a single input sequence. i.e. a pair of > networks having approximately a 90 degree phase shift between their > outputs with no amplitude difference. > > If you don't care about phase linearity it's easy to generate a > complex IIR filter with a single input and two outputs whose two > output sequences are approximate Hilbert Transforms of each other to > whatever degree of precision you require in your approximation. And > the approximation can be couched in terms of dB [or Np] of suppression > of undesired [error] responses. > > Neat, eh? > > If you do require phase linearity as well as the requisite 90 degree > phase difference between the outputs then you must also design an > all-pass phase equalizer to linearize the phases, but often that is > not required. If it is required then it is still quite possible if > you have the capability to desing group delay phase equalizers. Group > delay all-pass equalizer design is not a widespread design method in > common dsp toolkits. > > To begin the design of a pair of networks which have a ninety degree > phase shift between their outputs, one simply designs an appropriate > complex IIR filter [i.e. a filter without even symmetry about zero > frequency in its' attenuation characteristic] having the desired > degree of approximation to the Hilbert Transform magnitude in a dB > sense. > > One method, perhaps the simplest of several methods, to accomplish > this is to first design an appropriate"prototype" "real" low pass IIR > filter to pass the desired bandwidth over which one desires the ninety > degree phase [Hilbert Transform] relationship using say the bilinear > transformation technique. Typically one might use say a Butterworth > or an Elliptic low pass design. > > The "prototype" low-pass filter is a "real" filter which has real > coefficients and, except in the case of odd order, for any single real > pole or > zero, all other poles and zeros will occur in complex conjugate pairs, > and the filter will have real sequences as inputs and outputs. > > Then, having the z-plane pole and zero factors for this real low pass > prototype filter in hand, simply rotate the whole pole zero > constellation about > zero in [say] the positive angular direction about z = zero in the > z-plane to place > the lower transition band in the appropriate location around zero > frequency. After this rotation of the pole-zero constellation you will > then have a pole zero > constellation where the poles and zeros no longer occur in complex > conjugate pairs. > i.e. this rotated low pass will now be a complex filter with complex > coefficients and > complex sequence outputs, i.e. two sequences as outputs, a real > sequence and an > imaginary sequence. > > The real and imaginary output sequences of this complex rotated low > pass filter will then be approximate Hilbert Transforms of each other > to whatever degree of approximation [in dB] was set up in the original > low pass prototype. > > Such IIR "Hilbert Transformers" are very efficient [economical in > multiply-adds and memory requirements] when compared to the "classic" > FIR Hilbert > Transformer techniques. > > -- > Peter > Consultant > Indialantic By-the-Sea, FL. > > >
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. -------------------------------------------------------------------- Purveyors of Fine DSP Hardware and other Cool Stuff Available at http://www.danvillesignal.com
Reply by Jerry Avins July 31, 20032003-07-31
Peter Brackett wrote:
>
...
> > If you don't care about phase linearity it's easy to generate a complex IIR > filter with a single input and two outputs whose two output sequences are > approximate Hilbert Transforms of each other to whatever degree of precision > you require in your approximation.
...
> > One method, perhaps the simplest of several methods, to accomplish this is > to first design an appropriate"prototype" "real" low pass IIR filter to pass > the desired bandwidth over which one desires the ninety degree phase > [Hilbert Transform] relationship using say the bilinear transformation > technique. Typically one might use say a Butterworth or an Elliptic > low pass design. >
... Peter, That's neat and almost intuitive. Please write it up with an example for http://www.dspguru.com I think it belongs there. 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;
Reply by Peter Brackett July 31, 20032003-07-31
Praveen:

[snip]
"praveen" <praveenkumar1979@rediffmail.com> wrote in message
news:ff8a3afb.0307290312.4438c8c3@posting.google.com...
> Hello, > I wanted to know how to implement Hilbert transform using IIR filter. > Any reference or article or suggestion will be great. > I wanted to implement it on a DSP processor. > Hardware structure, filter coefficient????? > > > waiting for reply > With regards > praveen
[snip] Often one does not really need a Hilbert Transformer, what one requires is a method of producing two sequences which are Hilbert Transforms of each other from a single input sequence. i.e. a pair of networks having approximately a 90 degree phase shift between their outputs with no amplitude difference. If you don't care about phase linearity it's easy to generate a complex IIR filter with a single input and two outputs whose two output sequences are approximate Hilbert Transforms of each other to whatever degree of precision you require in your approximation. And the approximation can be couched in terms of dB [or Np] of suppression of undesired [error] responses. Neat, eh? If you do require phase linearity as well as the requisite 90 degree phase difference between the outputs then you must also design an all-pass phase equalizer to linearize the phases, but often that is not required. If it is required then it is still quite possible if you have the capability to desing group delay phase equalizers. Group delay all-pass equalizer design is not a widespread design method in common dsp toolkits. To begin the design of a pair of networks which have a ninety degree phase shift between their outputs, one simply designs an appropriate complex IIR filter [i.e. a filter without even symmetry about zero frequency in its' attenuation characteristic] having the desired degree of approximation to the Hilbert Transform magnitude in a dB sense. One method, perhaps the simplest of several methods, to accomplish this is to first design an appropriate"prototype" "real" low pass IIR filter to pass the desired bandwidth over which one desires the ninety degree phase [Hilbert Transform] relationship using say the bilinear transformation technique. Typically one might use say a Butterworth or an Elliptic low pass design. The "prototype" low-pass filter is a "real" filter which has real coefficients and, except in the case of odd order, for any single real pole or zero, all other poles and zeros will occur in complex conjugate pairs, and the filter will have real sequences as inputs and outputs. Then, having the z-plane pole and zero factors for this real low pass prototype filter in hand, simply rotate the whole pole zero constellation about zero in [say] the positive angular direction about z = zero in the z-plane to place the lower transition band in the appropriate location around zero frequency. After this rotation of the pole-zero constellation you will then have a pole zero constellation where the poles and zeros no longer occur in complex conjugate pairs. i.e. this rotated low pass will now be a complex filter with complex coefficients and complex sequence outputs, i.e. two sequences as outputs, a real sequence and an imaginary sequence. The real and imaginary output sequences of this complex rotated low pass filter will then be approximate Hilbert Transforms of each other to whatever degree of approximation [in dB] was set up in the original low pass prototype. Such IIR "Hilbert Transformers" are very efficient [economical in multiply-adds and memory requirements] when compared to the "classic" FIR Hilbert Transformer techniques. -- Peter Consultant Indialantic By-the-Sea, FL.
Reply by Jerry Avins July 30, 20032003-07-30
Olli Niemitalo wrote:
> > On Tue, 29 Jul 2003, Jerry Avins wrote: > > > For analog work, it is customary to use a pair of third-order allpasses > > whose outputs have relative quadrature but are not specified relative to > > the input phase. How is the IIR case handled, and how is identical delay > > for the two channels achieved? > > Here is described a very effective structure for an IIR allpass pair: > > http://www.biochem.oulu.fi/~oniemita/dsp/hilbert/ > > Juicy specs of the example filter: > > * Takes 8 multiplications per input sample > * Phase difference 90 +/- 0.7 degrees over a band of width 0.998*Nyquist > > Unfortunately, I haven't written a software to calculate the coefficients > to a specification. Someone could do it, for sure! > > -olli
Thanks. That's very nice work and presentation. It is a digital equivalent of the two-channel, third-order analog quadrature circuit I'm familiar with. When Vladimir wrote "... for voice band IIR Hilbert with 1% accuracy you need 6-th order filter at least" I assumed he meant a single sixth-order filter. I was probably wrong about that. 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;
Reply by Olli Niemitalo July 30, 20032003-07-30
On Tue, 29 Jul 2003, Jerry Avins wrote:

> For analog work, it is customary to use a pair of third-order allpasses > whose outputs have relative quadrature but are not specified relative to > the input phase. How is the IIR case handled, and how is identical delay > for the two channels achieved?
Here is described a very effective structure for an IIR allpass pair: http://www.biochem.oulu.fi/~oniemita/dsp/hilbert/ Juicy specs of the example filter: * Takes 8 multiplications per input sample * Phase difference 90 +/- 0.7 degrees over a band of width 0.998*Nyquist Unfortunately, I haven't written a software to calculate the coefficients to a specification. Someone could do it, for sure! -olli
Reply by Peter Brackett July 29, 20032003-07-29
Praveen:

[snip]
> I wanted to know how to implement Hilbert transform using IIR filter. > Any reference or article or suggestion will be great. > I wanted to implement it on a DSP processor. > Hardware structure, filter coefficient????? > > waiting for reply > With regards > praveen
[snip] Often one does not really need a Hilbert Transformer, what one requires is a method of producing two sequences which are Hilbert Transforms of each other from a single input sequence. i.e. a pair of networks having approximately a 90 degree phase shift between there outputs with no amplitude difference. If you don't care about phase linearity it's easy to generate a complex IIR filter whose two output sequences are approximate Hilbert Transforms of each other to whatever degree of precision you require in your approximation. And the approximation can be couched in terms of dB [or Np] of suppression of undesired responses. Neat, eh? If you do require phase linearity as well as the requisite 90 degree phase difference between the outputs then you must also design an all-pass phase equalizer to linearize the phases, but often that is not required. If it is required then it is still quite possible if you have the capability to desing group delay phase equalizers. This latter all-pass group delay equalizer design is not a widespread method in common dsp toolkits. To begin the design of a pair of networks which have a ninety degree phase shift between their outputs, one simply designs an appropriate complex IIR filter [i.e. a filter without even symmetry about zero frequency in its' attenuation characteristic] having the desired degree of approximation to the Hilbert Transform magnitude. One method, perhaps the simplest of several methods, to accomplish this is to first design an appropriate"prototype" "real" low pass IIR filter to pass the desired bandwidth over which one desires the ninety degree phase [Hilbert Transform] relationship using say the bilinear transformation technique. The "prototype" low-pass filter is a "real" filter which has real coefficients, and except for any single real pole or zero in the case of odd order, all other poles and zeros will occur in complex conjugate pairs, and it will have real sequences as inputs and outputs. Then, having the z-plane pole and zero factors for this real low pass prototype filter in hand, simply rotate the pole zero constellation about zero in [say] the positive direction about z = zero in the z-plane to place the lower transition band in the appropriate location around zero frequency. You will then have a pole zero constellation where the poles and zeros do not occur in complex conjugate pairs. i.e. this rotated low pass will now be a complex filter with complex coefficients and complex sequence outputs, i.e. two sequences as outputs, a real sequence and an imaginary sequence. The real and imaginary output sequences of this complex rotated low pass filter will then be approximate Hilbert Transforms of each other to whatever degree of approximation was set up in the low pass prototype. Such IIR "Hilbert Transformers" are very efficient [economical in multiply-adds and memory requirements] when compared to the FIR Hilbert Transformer techniques. -- Peter Consultant Indialantic By-the-Sea, FL.
Reply by Jerry Avins July 29, 20032003-07-29
Vladimir Vassilevsky wrote:
> > Hello Praveen, > > The hardware structure for IIR Hilbert transformer is standard cascaded > allpass biquad sections. The number of sections depends on what kind of > frequency range, phase, and gain accuracy do you need. The coefficients > are usually optimized by Chebyshev approximation. For example, for voice > band IIR Hilbert with 1% accuracy you need 6-th order filter at least. > > Vladimir Vassilevsky, Ph.D. > > DSP and Mixed Signal Design Consultant
Vladimir, For analog work, it is customary to use a pair of third-order allpasses whose outputs have relative quadrature but are not specified relative to the input phase. How is the IIR case handled, and how is identical delay for the two channels achieved? 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;
Reply by Vladimir Vassilevsky July 29, 20032003-07-29
Hello Praveen,

The hardware structure for IIR Hilbert transformer is standard cascaded
allpass biquad sections. The number of sections depends on what kind of
frequency range, phase, and gain accuracy do you need. The coefficients
are usually optimized by Chebyshev approximation. For example, for voice
band IIR Hilbert with 1% accuracy you need 6-th order filter at least.   

Vladimir Vassilevsky, Ph.D.

DSP and Mixed Signal Design Consultant

http://www.abvolt.com


praveen wrote:
> > Hello, > I wanted to know how to implement Hilbert transform using IIR filter. > Any reference or article or suggestion will be great. > I wanted to implement it on a DSP processor. > Hardware structure, filter coefficient????? > > waiting for reply > With regards > praveen