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
> 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."
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.
ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ
> 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.
>
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
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.
ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ
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.
--
Al Clark
Danville Signal Processing, Inc.
--------------------------------------------------------------------
Purveyors of Fine DSP Hardware and other Cool Stuff
Available at http://www.danvillesignal.com
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.
ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ
> 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.
ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ
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 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
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.
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
> 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.
ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ
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
"ABEFAR" <AbdullahFarouk@gmail.com> wrote in
news:1141712329.876771.308340@u72g2000cwu.googlegr oups.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
> 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.
ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ
> 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.
ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ
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.)
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.