DSPRelated.com
Forums

Odd length Hilbert FIR Implementation

Started by Al Clark February 27, 2006
Jerry Avins <jya@ieee.org> wrote in news:LNSdndwvdJ1SLZnZRVn-uQ@rcn.net:

> Al Clark wrote: > > ... > >> The basic question is why does the hilbert filter with length 4i+1, >> for example 9 or 13 have better performance than a fir filter of >> length 4i-1, for example 7 or 11, even though the number of non zero >> coefficients is the same for the 4i+1 & 4i-1 filters. In the 4i+1 >> case, the first and last coefficients are zero, which allows the >> filter size to be reduced to a 4i-1 length. > > The 4n+1 filter has two more points. It's just that the end two being > zero allows you the efficiency of not including them in the > computation. Try it with a low-pass. The same thing happens but it's > harder to see in the plots. Unless the window includes a pedestal, > windowed FIRs are always better with a window that's wider than the > raw coefficients by two. > > ... > > Jerry
Sometimes a remez exchange FIR is desirable for hilbert transformers since you may be able to reduce ripple over a wider range of frequencies. The catch is that every coefficient will be non zero. The window techniques reduce your computation load by about a factor of 2, if you take advantage of the trivial multiplies (by ignoring them). This makes it interesting to compare a fir filter with twice the length using windowing techniques versus a remez exchange method. It seems to me that the 4n+1 tap filter converted to a 4n-1 tap filter is a little trick since it my give you a little better performance for no added cost. I still can't say I understand everything that is happening, but I guess it might be added to our little bag of hilbert transformer tricks. -- Al Clark Danville Signal Processing, Inc. -------------------------------------------------------------------- Purveyors of Fine DSP Hardware and other Cool Stuff Available at http://www.danvillesignal.com
i'm very pleased that it is possible to build a hilbert transformer
I'd like to start building a new hilbert transformer in my master study

could you please help me in drawing flow chart for what to start with
abdullah

"ABEFAR" <AbdullahFarouk@gmail.com> wrote in 
news:1141712329.876771.308340@u72g2000cwu.googlegroups.com:

> i'm very pleased that it is possible to build a hilbert transformer > I'd like to start building a new hilbert transformer in my master study > > could you please help me in drawing flow chart for what to start with > abdullah > >
Hilbert transformers are very easy using the odd length FIR filter method. This is illustrated in Rick Lyon's book: Understanding Digital Signal Processing (second edition). Basically you create antisymmetric coefficients around the center of your FIR. The output of this filter with be the Q part. You can take the center tap of the delay line to get the I part. The catch to hilbert transformers of this type is that the FIR will be a bandpass. If you need a wide hilbert transformer, you need a long FIR. This makes some sense if you think about it. How would you delay to create 90 degrees at DC (about an infinite number of taps). The other catch to hilbert transformers is that the amplitude response of the Q section will not be exactly 1. It will always have some ripple. You extend the length to improve both the frequency response and bandwidth. The FIR can be created using a windowing method or remez exchange. The windowing method has an interesting property in that 1/2 of the coefficients are 0 anbd therefore you can omit them from your calculation. The center of the hilbert bandpass will be 1/4 the sampling rate. I use Kaiser windows when using the window method. The trick I learned recently is that the there will be the same number of 0 values for a filter length of 4n-1 as 4n+1. Therefore you might create a 4n+1 filter and then truncate to 4n-1 length. I got better results in my last application for exactly the same computation requirements. The remez exchange will have non zero vaues for each tap, but may yield a flatter response for a wider bandwidth. I use hilbert transformers all the time to make detectors, since SQRT(I^2 + Q^2) is the magnitude. In many cases, I skip the SQRT since a comparision to a known value might be all that is important (MS vs RMS) -- Al Clark Danville Signal Processing, Inc. -------------------------------------------------------------------- Purveyors of Fine DSP Hardware and other Cool Stuff Available at http://www.danvillesignal.com
Al Clark wrote:

   ...

> Hilbert transformers are very easy using the odd length FIR filter > method. > > This is illustrated in Rick Lyon's book: Understanding Digital Signal > Processing (second edition). > > Basically you create antisymmetric coefficients around the center of your > FIR. The output of this filter with be the Q part. You can take the > center tap of the delay line to get the I part. > > The catch to hilbert transformers of this type is that the FIR will be a > bandpass. If you need a wide hilbert transformer, you need a long FIR. > This makes some sense if you think about it. How would you delay to > create 90 degrees at DC (about an infinite number of taps).
Is any kind of realizable Hilbert transformer /not/ a bandpass?
> > The other catch to hilbert transformers is that the amplitude response of > the Q section will not be exactly 1. It will always have some ripple. You > extend the length to improve both the frequency response and bandwidth. > The FIR can be created using a windowing method or remez exchange. The > windowing method has an interesting property in that 1/2 of the > coefficients are 0 anbd therefore you can omit them from your > calculation. The center of the hilbert bandpass will be 1/4 the sampling > rate. I use Kaiser windows when using the window method.
A Nuttall window works very well too. I think the ripple is smaller except maybe near the ends of the passband.
> The trick I > learned recently is that the there will be the same number of 0 values > for a filter length of 4n-1 as 4n+1. Therefore you might create a 4n+1 > filter and then truncate to 4n-1 length. I got better results in my last > application for exactly the same computation requirements. > > The remez exchange will have non zero vaues for each tap, but may yield a > flatter response for a wider bandwidth.
If the taps are designated -i to +i with i=0 in the middle, then the even tap coefficients are zero, and the odd coefficients are proportional to 1/i (including the sign of i) before the window is applied. There's a neat formula for the scale factor that I forget, but it's easily computed from the gain of a signal at Fs/4. The three-tap case is interesting. It is a (not terribly good) differentiator with 90 degree phase shift.
> I use hilbert transformers all the time to make detectors, since SQRT(I^2 > + Q^2) is the magnitude. In many cases, I skip the SQRT since a > comparision to a known value might be all that is important (MS vs RMS)
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;
Jerry Avins wrote:

   ...

> If the taps are designated -i to +i with i=0 in the middle, then the > even tap coefficients are zero, and the odd coefficients are > proportional to 1/i (including the sign of i) before the window is > applied. There's a neat formula for the scale factor that I forget, but > it's easily computed from the gain of a signal at Fs/4.
... Obviously, I ran out of coffee there. Change that to ... taps are designated i=-k to i=+k with i=0 in the middle ... N is the (odd) length of the delay line and k = (N+1)/2. Note that the end coefficients are zero if k is even and the window will make them zero if k is odd, so there are only N taps needed in the delay line, as Al said. 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;
Jerry Avins <jya@ieee.org> wrote in news:d6CdnUNiMcm5MZDZRVn-gQ@rcn.net:

> Al Clark wrote: > > ... > >> Hilbert transformers are very easy using the odd length FIR filter >> method. >> >> This is illustrated in Rick Lyon's book: Understanding Digital Signal >> Processing (second edition). >> >> Basically you create antisymmetric coefficients around the center of >> your FIR. The output of this filter with be the Q part. You can take >> the center tap of the delay line to get the I part. >> >> The catch to hilbert transformers of this type is that the FIR will >> be a bandpass. If you need a wide hilbert transformer, you need a >> long FIR. This makes some sense if you think about it. How would you >> delay to create 90 degrees at DC (about an infinite number of taps). > > Is any kind of realizable Hilbert transformer /not/ a bandpass?
The even length FIR does not place a zero at PI. I never use these since the In Phase tap would be 1/2 of a delay unit.
>> >> The other catch to hilbert transformers is that the amplitude >> response of the Q section will not be exactly 1. It will always have >> some ripple. You extend the length to improve both the frequency >> response and bandwidth. The FIR can be created using a windowing >> method or remez exchange. The windowing method has an interesting >> property in that 1/2 of the coefficients are 0 anbd therefore you can >> omit them from your calculation. The center of the hilbert bandpass >> will be 1/4 the sampling rate. I use Kaiser windows when using the >> window method. > > A Nuttall window works very well too. I think the ripple is smaller > except maybe near the ends of the passband.
I'll have to check this out.
> >> The trick I >> learned recently is that the there will be the same number of 0 >> values for a filter length of 4n-1 as 4n+1. Therefore you might >> create a 4n+1 filter and then truncate to 4n-1 length. I got better >> results in my last application for exactly the same computation >> requirements. >> >> The remez exchange will have non zero vaues for each tap, but may >> yield a flatter response for a wider bandwidth. > > If the taps are designated -i to +i with i=0 in the middle, then the > even tap coefficients are zero, and the odd coefficients are > proportional to 1/i (including the sign of i) before the window is > applied. There's a neat formula for the scale factor that I forget, > but it's easily computed from the gain of a signal at Fs/4. > > The three-tap case is interesting. It is a (not terribly good) > differentiator with 90 degree phase shift. > >> I use hilbert transformers all the time to make detectors, since >> SQRT(I^2 + Q^2) is the magnitude. In many cases, I skip the SQRT >> since a comparision to a known value might be all that is important >> (MS vs RMS) > > Jerry
-- Al Clark Danville Signal Processing, Inc. -------------------------------------------------------------------- Purveyors of Fine DSP Hardware and other Cool Stuff Available at http://www.danvillesignal.com
in article Xns977F83DA5E7BEaclarkdanvillesignal@66.133.129.71, Al Clark at
dsp@danvillesignal.com wrote on 03/07/2006 14:00:
> > The even length FIR does not place a zero at PI. I never use these since > the In Phase tap would be 1/2 of a delay unit.
i think it's an even length linear-phase FIR that does that. the delay of a symmetric FIR with N taps is (N-1)/2 . so N should be odd. (one thing is that if half-band symmetry is taken advantage of, every odd-indexed tap will have a zero coefficient which can cut the computational cost in half.) -- r b-j rbj@audioimagination.com "Imagination is more important than knowledge."
robert bristow-johnson <rbj@audioimagination.com> wrote in
news:C03382A7.1063A%rbj@audioimagination.com: 

> in article Xns977F83DA5E7BEaclarkdanvillesignal@66.133.129.71, Al > Clark at dsp@danvillesignal.com wrote on 03/07/2006 14:00: >> >> The even length FIR does not place a zero at PI. I never use these >> since the In Phase tap would be 1/2 of a delay unit. > > i think it's an even length linear-phase FIR that does that. the > delay of a symmetric FIR with N taps is (N-1)/2 . so N should be odd. > (one thing is that if half-band symmetry is taken advantage of, every > odd-indexed tap will have a zero coefficient which can cut the > computational cost in half.) >
I think that is what I said. I always use the odd length. -- Al Clark Danville Signal Processing, Inc. -------------------------------------------------------------------- Purveyors of Fine DSP Hardware and other Cool Stuff Available at http://www.danvillesignal.com
Al Clark wrote:
> robert bristow-johnson <rbj@audioimagination.com> wrote in > news:C03382A7.1063A%rbj@audioimagination.com: > > > in article Xns977F83DA5E7BEaclarkdanvillesignal@66.133.129.71, Al > > Clark at dsp@danvillesignal.com wrote on 03/07/2006 14:00: > >> > >> The even length FIR does not place a zero at PI. I never use these > >> since the In Phase tap would be 1/2 of a delay unit. > > > > i think it's an even length linear-phase FIR that does that. the > > delay of a symmetric FIR with N taps is (N-1)/2 . so N should be odd. > > (one thing is that if half-band symmetry is taken advantage of, every > > odd-indexed tap will have a zero coefficient which can cut the > > computational cost in half.) > > > > I think that is what I said. I always use the odd length.
ooops. upon review, i dunno how i read that. r b-j