Re: Odd length Hilbert FIR Implementation



I sent this earlier, but I don't see it, so here's a repeat.

Al Clark wrote:

As many of you know, Hilbert pairs are often constructed by using an odd-
length FIR filter with antisymmetrical coefficients. The I part is
taken from the middle of the delay line and the Q from the output of the
filter.

If you use a Parks/McClellan method for the filter, you will have
coefficients for each tap of the filter.
If you use a window approach instead, The coefficients are 0 for
every other value, so in principle, you need about 1/2 the MACs since
half the MACs are 0.

Assuming a Window approach:

If the length of the filter is 4i-1, that is 3,7,11,..... there will
be 2i nonzero coefficients and 2i-1 zero coefficients. The sequence is
w0,0,w2,0,......w(4i-2)

If the length of the filter is 4i+1, that is 5,9,13,..... there will
be 2i nonzero coefficients and 2i+1 zero coefficients. The sequence is
0, w1, 0, w3,....0

There is the same number of non zero coefficients for 4i-1 and 4i+1
length filters.

I calculated both N=11 and N=13 hilbert filters using a Kaiser
Window. The N=13 had a flatter passband even though the number of non
zero coefficients are the same. Since the end points of the N=13
coefficents are 0, I could truncate the filter to make it smaller. In
essense, I now have a N=11 filter.
I guess this doesn't make too much sense to me. The coefficients are
different, but I am surprised that the filter actually looks much better.

What am I missing?


Filters using windows without a pedestal (Hann, as opposed to Hamming,
e.g.) have zero coefficients at the ends even if all the unwindowed
coefficients are non zero, because the window value is zero there. For
such filters, compute the window for n + 2, where n is the number of
taps. The longer window gives better results. Computing the entire
filter for n + 2 and relying on the window of n + 2 elements to shorten
the result to n may be better yet; I haven't tried it.

Jerry
--
Engineering is the art of making what you want from things you can get.
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
.



Relevant Pages

  • Re: Odd length Hilbert FIR Implementation
    ... coefficients for each tap of the filter. ... be 2i nonzero coefficients and 2i-1 zero coefficients. ... because the window value is zero there. ...
    (comp.dsp)
  • Re: filter coefficient normalization
    ... I have a question about the filter coefficient normalization. ... normalize the filter coefficients to 1 and indicated to fix-point. ... You don't need to normalize filter coefficients to 1 under fixed point. ... the maximum tap gain to 1. ...
    (comp.dsp)
  • Re: suggestions for FIR hardware implementation?
    ... does anyone have suggestions on efficient ways to implement an FIR filter ... My filter will need to be 256 taps, and run at 27 Mhz (so I ... Round off the coefficients to sums of powers of two and implement ... Using the quantization level you decided on, ...
    (comp.dsp)
  • Re: change filter freq. w/o glitches
    ... The permanent modification of the IIR filter coefficients by ... slewing won't be large. ... stable for the whole duration of the glide. ... ALWAYS stable if the beginning and end coefficients were stable and all ...
    (comp.dsp)
  • Re: Odd length Hilbert FIR Implementation
    ... The I part is taken from the middle of the delay line and the Q from the output of the filter. ... If you use a Parks/McClellan method for the filter, you will have coefficients for each tap of the filter. ... If you use a window approach instead, The coefficients are 0 for every other value, so in principle, you need about 1/2 the MACs since half the MACs are 0. ... 2i nonzero coefficients and 2i-1 zero coefficients. ...
    (comp.dsp)