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? -- Al Clark Danville Signal Processing, Inc. -------------------------------------------------------------------- Purveyors of Fine DSP Hardware and other Cool Stuff Available at http://www.danvillesignal.com
Odd length Hilbert FIR Implementation
Started by ●February 27, 2006
Reply by ●February 27, 20062006-02-27
Al Clark <dsp@danvillesignal.com> writes:> 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 don't see why the 4i-1 length filter has different coefficients from the 4i+1 case. Is it the window that has zeros? (Hmm. w0, w2 etc suggests that.) Ciao, Peter K. -- "And he sees the vision splendid of the sunlit plains extended And at night the wondrous glory of the everlasting stars."
Reply by ●February 27, 20062006-02-27
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?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. �����������������������������������������������������������������������
Reply by ●February 28, 20062006-02-28
p.kootsookos@remove.ieee.org (Peter K.) wrote in news:uvev0xnav.fsf@remove.ieee.org:> Al Clark <dsp@danvillesignal.com> writes: > >> Assuming a Window approach: >> >> If the length of the filter is 4i-1, that is 3,7,11,..... there willbe>> 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 willbe>> 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 don't see why the 4i-1 length filter has different coefficients from > the 4i+1 case. > > Is it the window that has zeros? (Hmm. w0, w2 etc suggests that.) > > Ciao, > > Peter K. >They are different and the "longer" filter gives better results, at least near fs/4 where these filters are best. In my case I need a hilbert pair in a region not too far from fs/4 so I get very good results with a short filter. I just don't understand the difference. -- Al Clark Danville Signal Processing, Inc. -------------------------------------------------------------------- Purveyors of Fine DSP Hardware and other Cool Stuff Available at http://www.danvillesignal.com
Reply by ●February 28, 20062006-02-28
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 istaken 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 havecoefficients for each tap of the filter.> If you use a window approach instead, The coefficients are 0 forevery 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 willbe 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 willbe 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+1length filters.> > I calculated both N=11 and N=13 hilbert filters using a KaiserWindow. 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 aredifferent, 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. �����������������������������������������������������������������������
Reply by ●February 28, 20062006-02-28
Jerry Avins <jya@ieee.org> wrote in news:BOOdnfXlxoWte57ZnZ2dnUVZ_sadnZ2d@rcn.net:> 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. > > JerrySince the 7,11,15,set have non zero values at the endpoints, I assume that this must have been done for all the filters. I used a Kaiser window using QED1000. -- Al Clark Danville Signal Processing, Inc. -------------------------------------------------------------------- Purveyors of Fine DSP Hardware and other Cool Stuff Available at http://www.danvillesignal.com
Reply by ●February 28, 20062006-02-28
Al Clark wrote:> Jerry Avins <jya@ieee.org> wrote in > news:BOOdnfXlxoWte57ZnZ2dnUVZ_sadnZ2d@rcn.net: > > >>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 > > > Since the 7,11,15,set have non zero values at the endpoints, I assume > that this must have been done for all the filters. I used a Kaiser window > using QED1000.What I'm saying is that there are two ways to make a windowed H with 2n-1 coefficients (including any zeros). Both use a window with 2n+1 points (including the zeros at the ends). One starts with 2n-1 points, the other with 2n+1 points. They are clearly not the same. Just as clearly, the same applies to even numbers of taps. A Kaiser window of n+2 points produces a filter of n points whether the unwindowed filter has n points or n+2. I lost track of the question. :-) Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������
Reply by ●February 28, 20062006-02-28
Al Clark wrote: > Jerry Avins <jya@ieee.org> wrote in > news:BOOdnfXlxoWte57ZnZ2dnUVZ_sadnZ2d@rcn.net: > >> 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 > > > > Since the 7,11,15,set have non zero values at the endpoints, I assume that this must have been done for all the filters. I used a Kaiser window using QED1000. What I'm saying is that there are two ways to make a windowed filter with 2n-1 coefficients (including any zeros). Both use a window with 2n+1 points (including the zeros at the ends). One starts with 2n-1 points, the other with 2n+1 points. They are clearly not the same. Just as clearly, the same applies to even numbers of taps. A Kaiser window of n+2 points produces a filter of n points whether the unwindowed filter has n points or n+2. I lost track of the question. :-) Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������
Reply by ●February 28, 20062006-02-28
Jerry Avins <jya@ieee.org> wrote in news:Ot6dnYs9OrlK65nZRVn-hg@rcn.net:> Al Clark wrote: > > > Jerry Avins <jya@ieee.org> wrote in > > news:BOOdnfXlxoWte57ZnZ2dnUVZ_sadnZ2d@rcn.net: > > > >> 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 usingan> >>> odd- length FIR filter with antisymmetrical coefficients. The Ipart> >>> 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 MACssince> >> half the MACs are 0. > >> > >>> Assuming a Window approach: > >>> > >>> If the length of the filter is 4i-1, that is 3,7,11,..... therewill> >> > >> > >> be 2i nonzero coefficients and 2i-1 zero coefficients. The sequenceis> >> w0,0,w2,0,......w(4i-2) > >> > >>> If the length of the filter is 4i+1, that is 5,9,13,..... therewill> >> > >> > >> be 2i nonzero coefficients and 2i+1 zero coefficients. The sequenceis> >> 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 ofnon> >> 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 coefficientsare> >> > >> > >> 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 toHamming,> >> 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 > > > > > > > > Since the 7,11,15,set have non zero values at the endpoints, I assume > that this must have been done for all the filters. I used a Kaiser > window using QED1000. > > > What I'm saying is that there are two ways to make a windowed filter > with 2n-1 coefficients (including any zeros). Both use a window with > 2n+1 points (including the zeros at the ends). One starts with 2n-1 > points, the other with 2n+1 points. They are clearly not the same. Just > as clearly, the same applies to even numbers of taps. A Kaiser windowof> n+2 points produces a filter of n points whether the unwindowed filter > has n points or n+2. > > I lost track of the question. :-) > > JerryThe 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. BTW, better was determined strictly by plotting results for each case from my filter program (Momentum Data Systems - QEDesign). The frequency range of interest is near Fs/4, which is the center frequency of the hilbert bandpass filter. I used a Kaiser Window in all cases. Al -- Al Clark Danville Signal Processing, Inc. -------------------------------------------------------------------- Purveyors of Fine DSP Hardware and other Cool Stuff Available at http://www.danvillesignal.com
Reply by ●February 28, 20062006-02-28
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 -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������