DSPRelated.com
Forums

Hilbert transform using FFT approach

Started by w106pjs September 21, 2005
in article Xns96D8B87FF3D8Eaclarkdanvillesignal@66.133.129.71, Al Clark at
dsp@danvillesignal.com wrote on 09/21/2005 19:08:

> Jerry Avins <jya@ieee.org> wrote in news:Pv6dneqMBPQ6S6zeRVn-gg@rcn.net: > >> Al Clark wrote: >>> Jerry Avins <jya@ieee.org> wrote in >>> news:DNqdnTN5Vq4ZM6zenZ2dnUVZ_tCdnZ2d@rcn.net:
...
>>>> >>>> A Hilbert transformer can be just an antisymmetric FIR with alternate >>>> taps zero and the other coefficients inversely proportional to the >>>> tap's distance from the center. If the number of taps is odd, there's >>>> a bonus in that the signal at the center tap (which must be zero for >>>> the FT) is the delayed version of the input without the quadrature >>>> shift. Neither an extra delay line nor half-period delay are needed. >>>> But thinking more on it, the possibly cheaper filter pair with >>>> relatively quadrature outputs ought to work also with negligible >>>> distortion unless the modulating waveform is wide compared to the >>>> carrier. >>> >>> The alternate taps are not always 0. This is true (or perhaps tends >>> to be true) for window based designs of Hilbert transformers. If you >>> use the PM (remez exchange) method, you will have values at all taps
this does not have to be true, Al. if you give the PM algorithm design constraints that are perfectly half-band symmetric, then the alternate taps do go to zero in theory and virtually in MATLAB (and then kill them explicitly to see how your half-band hilbert xformer does).
>>> except the middle coefficient for an odd length FIR filter. The >>> coefficients will always be antisymmetric. >>> >>> The reason to use remez exchange vs windowing methods is that >>> although the phase will always be exactly 90 degrees apart if the FIR >>> filter is antisymmetric, the amplitude response will have errors in >>> the passband (the filter will be bandpass). You can make the the >>> passband very flat with the remez exchange method. This makes your 0 >>> and 90 degree outputs a nearly perfect pair (as long as you are in >>> the passbamd of the FIR) It many cases, you have plenty of MIPS for >>> the additional non zero calculations. The length of the FIR filter >>> needs to be long enough to accommodate the lowest frequency of >>> interest. If you want a 90 phase shift of DC, it would take a FIR >>> filter with infinite taps (it would have a very long group delay as >>> well). >> >> In my limited experience, if a longer filter is no problem, windowed >> filters can execute faster. Although they have longer delay lines, one >> can step through them with a stride of two. I found that a Nuttall >> window worked very well. > > Clearly, an advantage of the windowed filters is that you can use a > filter of twice the length for the same computation cost (and twice the > group delay). > > This is a good illustration of "there's no free lunch" principle. It's > always about balancing one choice against another.
the tradeoff is the restriction of exact half-band symmetry. i usually don't give a rat's ass that the magnitude response is flat up to Nyquist - 50Hz, but it is much more important to me that it is flat down to DC + 50 Hz. so, to get that alternate zero tap advantage, i end up having to put up with weighting that is less than optimal. -- r b-j rbj@audioimagination.com "Imagination is more important than knowledge."
>in article Xns96D8B87FF3D8Eaclarkdanvillesignal@66.133.129.71, Al Clark
at
>dsp@danvillesignal.com wrote on 09/21/2005 19:08: > >> Jerry Avins <jya@ieee.org> wrote in
news:Pv6dneqMBPQ6S6zeRVn-gg@rcn.net:
>> >>> Al Clark wrote: >>>> Jerry Avins <jya@ieee.org> wrote in >>>> news:DNqdnTN5Vq4ZM6zenZ2dnUVZ_tCdnZ2d@rcn.net: >... >>>>> >>>>> A Hilbert transformer can be just an antisymmetric FIR with
alternate
>>>>> taps zero and the other coefficients inversely proportional to the >>>>> tap's distance from the center. If the number of taps is odd,
there's
>>>>> a bonus in that the signal at the center tap (which must be zero
for
>>>>> the FT) is the delayed version of the input without the quadrature >>>>> shift. Neither an extra delay line nor half-period delay are
needed.
>>>>> But thinking more on it, the possibly cheaper filter pair with >>>>> relatively quadrature outputs ought to work also with negligible >>>>> distortion unless the modulating waveform is wide compared to the >>>>> carrier. >>>> >>>> The alternate taps are not always 0. This is true (or perhaps tends >>>> to be true) for window based designs of Hilbert transformers. If you >>>> use the PM (remez exchange) method, you will have values at all taps > >this does not have to be true, Al. if you give the PM algorithm design >constraints that are perfectly half-band symmetric, then the alternate
taps
>do go to zero in theory and virtually in MATLAB (and then kill them >explicitly to see how your half-band hilbert xformer does). > >>>> except the middle coefficient for an odd length FIR filter. The >>>> coefficients will always be antisymmetric. >>>> >>>> The reason to use remez exchange vs windowing methods is that >>>> although the phase will always be exactly 90 degrees apart if the
FIR
>>>> filter is antisymmetric, the amplitude response will have errors in >>>> the passband (the filter will be bandpass). You can make the the >>>> passband very flat with the remez exchange method. This makes your 0 >>>> and 90 degree outputs a nearly perfect pair (as long as you are in >>>> the passbamd of the FIR) It many cases, you have plenty of MIPS for >>>> the additional non zero calculations. The length of the FIR filter >>>> needs to be long enough to accommodate the lowest frequency of >>>> interest. If you want a 90 phase shift of DC, it would take a FIR >>>> filter with infinite taps (it would have a very long group delay as >>>> well). >>> >>> In my limited experience, if a longer filter is no problem, windowed >>> filters can execute faster. Although they have longer delay lines,
one
>>> can step through them with a stride of two. I found that a Nuttall >>> window worked very well.
>> Clearly, an advantage of the windowed filters is that you can use a >> filter of twice the length for the same computation cost (and twice
the
>> group delay). >> >> This is a good illustration of "there's no free lunch" principle. It's >> always about balancing one choice against another. > >the tradeoff is the restriction of exact half-band symmetry. i usually >don't give a rat's ass that the magnitude response is flat up to >Nyquist - 50Hz, but it is much more important to me that it is flat down
to
>DC + 50 Hz. so, to get that alternate zero tap advantage, i end up
having
>to put up with weighting that is less than optimal. > > >-- > >r b-j rbj@audioimagination.com > >"Imagination is more important than knowledge." >
Thanks for all your advice, you guys seems to have more than one solution practically to solve any DSP problem. I am trying my best to grasp to your expert advice.Please continue to help beginners like me. One thing, that I am afraid from the using filter approach, is that the as the pass band may have small amount of ripple, the envelope may not follow the peaks of the signal very closely. Also I am not quite familiar about implementing this filter approach in MATLAB. Fsig = 240khz, Fs= 10Mhz thanks Paul This message was sent using the Comp.DSP web interface on www.DSPRelated.com
"w106pjs" <w106pjs@yahoo.com> wrote in
news:EsWdnY1skc8HOK_eRVn-gg@giganews.com: 

>>in article Xns96D8B87FF3D8Eaclarkdanvillesignal@66.133.129.71, Al >>Clark > at >>dsp@danvillesignal.com wrote on 09/21/2005 19:08: >> >>> Jerry Avins <jya@ieee.org> wrote in > news:Pv6dneqMBPQ6S6zeRVn-gg@rcn.net: >>> >>>> Al Clark wrote: >>>>> Jerry Avins <jya@ieee.org> wrote in >>>>> news:DNqdnTN5Vq4ZM6zenZ2dnUVZ_tCdnZ2d@rcn.net: >>... >>>>>> >>>>>> A Hilbert transformer can be just an antisymmetric FIR with > alternate >>>>>> taps zero and the other coefficients inversely proportional to >>>>>> the tap's distance from the center. If the number of taps is odd, > there's >>>>>> a bonus in that the signal at the center tap (which must be zero > for >>>>>> the FT) is the delayed version of the input without the >>>>>> quadrature shift. Neither an extra delay line nor half-period >>>>>> delay are > needed. >>>>>> But thinking more on it, the possibly cheaper filter pair with >>>>>> relatively quadrature outputs ought to work also with negligible >>>>>> distortion unless the modulating waveform is wide compared to the >>>>>> carrier. >>>>> >>>>> The alternate taps are not always 0. This is true (or perhaps >>>>> tends to be true) for window based designs of Hilbert >>>>> transformers. If you use the PM (remez exchange) method, you will >>>>> have values at all taps >> >>this does not have to be true, Al. if you give the PM algorithm >>design constraints that are perfectly half-band symmetric, then the >>alternate > taps >>do go to zero in theory and virtually in MATLAB (and then kill them >>explicitly to see how your half-band hilbert xformer does). >> >>>>> except the middle coefficient for an odd length FIR filter. The >>>>> coefficients will always be antisymmetric. >>>>> >>>>> The reason to use remez exchange vs windowing methods is that >>>>> although the phase will always be exactly 90 degrees apart if the > FIR >>>>> filter is antisymmetric, the amplitude response will have errors >>>>> in the passband (the filter will be bandpass). You can make the >>>>> the passband very flat with the remez exchange method. This makes >>>>> your 0 and 90 degree outputs a nearly perfect pair (as long as you >>>>> are in the passbamd of the FIR) It many cases, you have plenty of >>>>> MIPS for the additional non zero calculations. The length of the >>>>> FIR filter needs to be long enough to accommodate the lowest >>>>> frequency of interest. If you want a 90 phase shift of DC, it >>>>> would take a FIR filter with infinite taps (it would have a very >>>>> long group delay as well). >>>> >>>> In my limited experience, if a longer filter is no problem, >>>> windowed filters can execute faster. Although they have longer >>>> delay lines, > one >>>> can step through them with a stride of two. I found that a Nuttall >>>> window worked very well. > > > >>> Clearly, an advantage of the windowed filters is that you can use a >>> filter of twice the length for the same computation cost (and twice > the >>> group delay). >>> >>> This is a good illustration of "there's no free lunch" principle. >>> It's always about balancing one choice against another. >> >>the tradeoff is the restriction of exact half-band symmetry. i >>usually don't give a rat's ass that the magnitude response is flat up >>to Nyquist - 50Hz, but it is much more important to me that it is flat >>down > to >>DC + 50 Hz. so, to get that alternate zero tap advantage, i end up > having >>to put up with weighting that is less than optimal. >> >> >>-- >> >>r b-j rbj@audioimagination.com >> >>"Imagination is more important than knowledge." >> > Thanks for all your advice, you guys seems to have more than one > solution practically to solve any DSP problem. > I am trying my best to grasp to your expert advice.Please continue to > help beginners like me. > One thing, that I am afraid from the using filter approach, is that > the as > the pass band may have small amount of ripple, the envelope may not > follow > the peaks of the signal very closely. > Also I am not quite familiar about implementing this filter approach > in MATLAB. > Fsig = 240khz, Fs= 10Mhz > > thanks > Paul > > > > This message was sent using the Comp.DSP web interface on > www.DSPRelated.com >
There is never an absolutely perfect solution. The FFT approach is not perfect either. You can make the passband ripple very small. What is you sample rate and what is your desired passband? -- Al Clark Danville Signal Processing, Inc. -------------------------------------------------------------------- Purveyors of Fine DSP Hardware and other Cool Stuff Available at http://www.danvillesignal.com
>"w106pjs" <w106pjs@yahoo.com> wrote in >news:EsWdnY1skc8HOK_eRVn-gg@giganews.com: > >>>in article Xns96D8B87FF3D8Eaclarkdanvillesignal@66.133.129.71, Al >>>Clark >> at >>>dsp@danvillesignal.com wrote on 09/21/2005 19:08: >>> >>>> Jerry Avins <jya@ieee.org> wrote in >> news:Pv6dneqMBPQ6S6zeRVn-gg@rcn.net: >>>> >>>>> Al Clark wrote: >>>>>> Jerry Avins <jya@ieee.org> wrote in >>>>>> news:DNqdnTN5Vq4ZM6zenZ2dnUVZ_tCdnZ2d@rcn.net: >>>... >>>>>>> >>>>>>> A Hilbert transformer can be just an antisymmetric FIR with >> alternate >>>>>>> taps zero and the other coefficients inversely proportional to >>>>>>> the tap's distance from the center. If the number of taps is odd, >> there's >>>>>>> a bonus in that the signal at the center tap (which must be zero >> for >>>>>>> the FT) is the delayed version of the input without the >>>>>>> quadrature shift. Neither an extra delay line nor half-period >>>>>>> delay are >> needed. >>>>>>> But thinking more on it, the possibly cheaper filter pair with >>>>>>> relatively quadrature outputs ought to work also with negligible >>>>>>> distortion unless the modulating waveform is wide compared to the >>>>>>> carrier. >>>>>> >>>>>> The alternate taps are not always 0. This is true (or perhaps >>>>>> tends to be true) for window based designs of Hilbert >>>>>> transformers. If you use the PM (remez exchange) method, you will >>>>>> have values at all taps >>> >>>this does not have to be true, Al. if you give the PM algorithm >>>design constraints that are perfectly half-band symmetric, then the >>>alternate >> taps >>>do go to zero in theory and virtually in MATLAB (and then kill them >>>explicitly to see how your half-band hilbert xformer does). >>> >>>>>> except the middle coefficient for an odd length FIR filter. The >>>>>> coefficients will always be antisymmetric. >>>>>> >>>>>> The reason to use remez exchange vs windowing methods is that >>>>>> although the phase will always be exactly 90 degrees apart if the >> FIR >>>>>> filter is antisymmetric, the amplitude response will have errors >>>>>> in the passband (the filter will be bandpass). You can make the >>>>>> the passband very flat with the remez exchange method. This makes >>>>>> your 0 and 90 degree outputs a nearly perfect pair (as long as you >>>>>> are in the passbamd of the FIR) It many cases, you have plenty of >>>>>> MIPS for the additional non zero calculations. The length of the >>>>>> FIR filter needs to be long enough to accommodate the lowest >>>>>> frequency of interest. If you want a 90 phase shift of DC, it >>>>>> would take a FIR filter with infinite taps (it would have a very >>>>>> long group delay as well). >>>>> >>>>> In my limited experience, if a longer filter is no problem, >>>>> windowed filters can execute faster. Although they have longer >>>>> delay lines, >> one >>>>> can step through them with a stride of two. I found that a Nuttall >>>>> window worked very well. >> >> >> >>>> Clearly, an advantage of the windowed filters is that you can use a >>>> filter of twice the length for the same computation cost (and twice >> the >>>> group delay). >>>> >>>> This is a good illustration of "there's no free lunch" principle. >>>> It's always about balancing one choice against another. >>> >>>the tradeoff is the restriction of exact half-band symmetry. i >>>usually don't give a rat's ass that the magnitude response is flat up >>>to Nyquist - 50Hz, but it is much more important to me that it is flat >>>down >> to >>>DC + 50 Hz. so, to get that alternate zero tap advantage, i end up >> having >>>to put up with weighting that is less than optimal. >>> >>> >>>-- >>> >>>r b-j rbj@audioimagination.com >>> >>>"Imagination is more important than knowledge." >>> >> Thanks for all your advice, you guys seems to have more than one >> solution practically to solve any DSP problem. >> I am trying my best to grasp to your expert advice.Please continue to >> help beginners like me. >> One thing, that I am afraid from the using filter approach, is that >> the as >> the pass band may have small amount of ripple, the envelope may not >> follow >> the peaks of the signal very closely. >> Also I am not quite familiar about implementing this filter approach >> in MATLAB. >> Fsig = 240khz, Fs= 10Mhz >> >> thanks >> Paul >> >> >> >> This message was sent using the Comp.DSP web interface on >> www.DSPRelated.com >> > >There is never an absolutely perfect solution. The FFT approach is not >perfect either. You can make the passband ripple very small. What is you
>sample rate and what is your desired passband? > >-- >Al Clark >Danville Signal Processing, Inc. >-------------------------------------------------------------------- >Purveyors of Fine DSP Hardware and other Cool Stuff >Available at http://www.danvillesignal.com >
Fp1 = 180khz , Fp2 = 300khz Fs1 = 120khz, Fs2 = 360khz Fs = 10Mhz This message was sent using the Comp.DSP web interface on www.DSPRelated.com
w106pjs wrote:

   ...

> One thing, that I am afraid from the using filter approach, is that the as > the pass band may have small amount of ripple, the envelope may not follow > the peaks of the signal very closely. > Also I am not quite familiar about implementing this filter approach in > MATLAB. > Fsig = 240khz, Fs= 10Mhz
Of course the passband will have ripple; that's unavoidable with any method. The pertinent questions are How much? and How much is tolerable? Problems don't have perfect solutions. "Solving" a problem means finding a compromise that suits your needs. Think "error budget". Jerry -- You know that the outhouse is in the right place if &#4294967295;&#4294967295;&#4294967295; it seems too close in summer and too far in winter. &#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;
in article Xns96D9564CEE1F0aclarkdanvillesignal@66.133.129.71, Al Clark at
dsp@danvillesignal.com wrote on 09/22/2005 09:29:

>> Thanks for all your advice, you guys seems to have more than one >> solution practically to solve any DSP problem. >> I am trying my best to grasp to your expert advice.Please continue to >> help beginners like me. >> One thing, that I am afraid from the using filter approach, is that >> the as >> the pass band may have small amount of ripple, the envelope may not >> follow the peaks of the signal very closely. >> Also I am not quite familiar about implementing this filter approach >> in MATLAB. >> Fsig = 240khz, Fs= 10Mhz >> > > There is never an absolutely perfect solution. The FFT approach is not > perfect either. You can make the passband ripple very small. What is you > sample rate and what is your desired passband?
the other thing is that, if i understand the OP correctly, when he says "FFT approach" vs. "filter approach", they are both methods of accomplishing the same task, that is filtering. his/her "FFT approach" is the "fast convolution" implementation of an FIR approximation to a delayed hilbert transformer. (so the design of the filter, windowed 1/t vs. Parks-McClellan, is not material.) if that's not the case, i am totally bewildered. -- r b-j rbj@audioimagination.com "Imagination is more important than knowledge."
w106pjs wrote:
> >w106pjs wrote: > > > > ... > > > >> The purpose [of the quadrature signals] is to generate the envelope of > the real > >> sequence of data using the analytic signal approach using the FFT > approach > > > > > >Then you don't want the phase distortion that comes with computationally > > >cheaper ways. If the frequencies that in the envelope lie in a > >relatively narrow band around the carrier, and the sample rate is high > >enough to reproduce the carrier, then it sounds quite doable. > >Narrow-band HTs aren't too hard. Do you have Matlab or anything like it? > > > >Where does the FFT fit in? Given quadrature signals I[n] and Q[n], the > >envelope is E[n] = sqrt(I[n]^2 + Q[n]^2]. There are decent > >approximations for the square root of the sum of squares. > > > >Jerry > >-- > >Engineering is the art of making what you want from things you can get. > > Jerry, > > what I meant is Hilbert function in MATLAB uses fft approach in generating > the analytic signal. > Is that similar approach implementable in real time. ? > FYI > Fsig = 240khz, Fs = 10 Mhz.. > > > > > This message was sent using the Comp.DSP web interface on > www.DSPRelated.com
One way to split this real signal into quadrature channels is to apply two bandpass filters constructed from lowpass prototypes. Make a FIR LPF with half your desired bandwidth. Then multiply the taps by sine and cosine of 240 kHz to make them into BPFs. If you pass the input through each of the filters (sine and cosine), the outputs will be in quadrature. This can also be done by mixing the signal down to DC using sine and cosine of 240 kHz, filtering with the same LPFs (identical on each channel), and then complex mixing back up to 240 kHz. The real and imaginary parts will be your quadrature channels. John
w106pjs wrote:
> >w106pjs wrote: > > > > ... > > > >> The purpose [of the quadrature signals] is to generate the envelope of > the real > >> sequence of data using the analytic signal approach using the FFT > approach > > > > > >Then you don't want the phase distortion that comes with computationally > > >cheaper ways. If the frequencies that in the envelope lie in a > >relatively narrow band around the carrier, and the sample rate is high > >enough to reproduce the carrier, then it sounds quite doable. > >Narrow-band HTs aren't too hard. Do you have Matlab or anything like it? > > > >Where does the FFT fit in? Given quadrature signals I[n] and Q[n], the > >envelope is E[n] = sqrt(I[n]^2 + Q[n]^2]. There are decent > >approximations for the square root of the sum of squares. > > > >Jerry > >-- > >Engineering is the art of making what you want from things you can get. > > Jerry, > > what I meant is Hilbert function in MATLAB uses fft approach in generating > the analytic signal. > Is that similar approach implementable in real time. ? > FYI > Fsig = 240khz, Fs = 10 Mhz.. > > > > > This message was sent using the Comp.DSP web interface on > www.DSPRelated.com
One way to split this real signal into quadrature channels is to apply two bandpass filters constructed from lowpass prototypes. Make a FIR LPF with half your desired bandwidth. Then multiply the taps by sine and cosine of 240 kHz to make them into BPFs. If you pass the input through each of the filters (sine and cosine), the outputs will be in quadrature. This can also be done by mixing the signal down to DC using sine and cosine of 240 kHz, filtering with the same LPFs (identical on each channel), and then complex mixing back up to 240 kHz. The real and imaginary parts will be your quadrature channels. John
"w106pjs" <w106pjs@yahoo.com> wrote in 
news:TfmdnUvxGOSsLq_enZ2dnUVZ_tCdnZ2d@giganews.com:

>>"w106pjs" <w106pjs@yahoo.com> wrote in >>news:EsWdnY1skc8HOK_eRVn-gg@giganews.com: >> >>>>in article Xns96D8B87FF3D8Eaclarkdanvillesignal@66.133.129.71, Al >>>>Clark >>> at >>>>dsp@danvillesignal.com wrote on 09/21/2005 19:08: >>>> >>>>> Jerry Avins <jya@ieee.org> wrote in >>> news:Pv6dneqMBPQ6S6zeRVn-gg@rcn.net: >>>>> >>>>>> Al Clark wrote: >>>>>>> Jerry Avins <jya@ieee.org> wrote in >>>>>>> news:DNqdnTN5Vq4ZM6zenZ2dnUVZ_tCdnZ2d@rcn.net: >>>>... >>>>>>>> >>>>>>>> A Hilbert transformer can be just an antisymmetric FIR with >>> alternate >>>>>>>> taps zero and the other coefficients inversely proportional to >>>>>>>> the tap's distance from the center. If the number of taps is
odd,
>>> there's >>>>>>>> a bonus in that the signal at the center tap (which must be zero >>> for >>>>>>>> the FT) is the delayed version of the input without the >>>>>>>> quadrature shift. Neither an extra delay line nor half-period >>>>>>>> delay are >>> needed. >>>>>>>> But thinking more on it, the possibly cheaper filter pair with >>>>>>>> relatively quadrature outputs ought to work also with negligible >>>>>>>> distortion unless the modulating waveform is wide compared to
the
>>>>>>>> carrier. >>>>>>> >>>>>>> The alternate taps are not always 0. This is true (or perhaps >>>>>>> tends to be true) for window based designs of Hilbert >>>>>>> transformers. If you use the PM (remez exchange) method, you will >>>>>>> have values at all taps >>>> >>>>this does not have to be true, Al. if you give the PM algorithm >>>>design constraints that are perfectly half-band symmetric, then the >>>>alternate >>> taps >>>>do go to zero in theory and virtually in MATLAB (and then kill them >>>>explicitly to see how your half-band hilbert xformer does). >>>> >>>>>>> except the middle coefficient for an odd length FIR filter. The >>>>>>> coefficients will always be antisymmetric. >>>>>>> >>>>>>> The reason to use remez exchange vs windowing methods is that >>>>>>> although the phase will always be exactly 90 degrees apart if the >>> FIR >>>>>>> filter is antisymmetric, the amplitude response will have errors >>>>>>> in the passband (the filter will be bandpass). You can make the >>>>>>> the passband very flat with the remez exchange method. This makes >>>>>>> your 0 and 90 degree outputs a nearly perfect pair (as long as
you
>>>>>>> are in the passbamd of the FIR) It many cases, you have plenty of >>>>>>> MIPS for the additional non zero calculations. The length of the >>>>>>> FIR filter needs to be long enough to accommodate the lowest >>>>>>> frequency of interest. If you want a 90 phase shift of DC, it >>>>>>> would take a FIR filter with infinite taps (it would have a very >>>>>>> long group delay as well). >>>>>> >>>>>> In my limited experience, if a longer filter is no problem, >>>>>> windowed filters can execute faster. Although they have longer >>>>>> delay lines, >>> one >>>>>> can step through them with a stride of two. I found that a Nuttall >>>>>> window worked very well. >>> >>> >>> >>>>> Clearly, an advantage of the windowed filters is that you can use a >>>>> filter of twice the length for the same computation cost (and twice >>> the >>>>> group delay). >>>>> >>>>> This is a good illustration of "there's no free lunch" principle. >>>>> It's always about balancing one choice against another. >>>> >>>>the tradeoff is the restriction of exact half-band symmetry. i >>>>usually don't give a rat's ass that the magnitude response is flat up >>>>to Nyquist - 50Hz, but it is much more important to me that it is
flat
>>>>down >>> to >>>>DC + 50 Hz. so, to get that alternate zero tap advantage, i end up >>> having >>>>to put up with weighting that is less than optimal. >>>> >>>> >>>>-- >>>> >>>>r b-j rbj@audioimagination.com >>>> >>>>"Imagination is more important than knowledge." >>>> >>> Thanks for all your advice, you guys seems to have more than one >>> solution practically to solve any DSP problem. >>> I am trying my best to grasp to your expert advice.Please continue to >>> help beginners like me. >>> One thing, that I am afraid from the using filter approach, is that >>> the as >>> the pass band may have small amount of ripple, the envelope may not >>> follow >>> the peaks of the signal very closely. >>> Also I am not quite familiar about implementing this filter approach >>> in MATLAB. >>> Fsig = 240khz, Fs= 10Mhz >>> >>> thanks >>> Paul >>> >>> >>> >>> This message was sent using the Comp.DSP web interface on >>> www.DSPRelated.com >>> >> >>There is never an absolutely perfect solution. The FFT approach is not >>perfect either. You can make the passband ripple very small. What is
you
> >>sample rate and what is your desired passband? >> >>-- >>Al Clark >>Danville Signal Processing, Inc. >>-------------------------------------------------------------------- >>Purveyors of Fine DSP Hardware and other Cool Stuff >>Available at http://www.danvillesignal.com >> > > Fp1 = 180khz , Fp2 = 300khz > Fs1 = 120khz, Fs2 = 360khz > Fs = 10Mhz > > This message was sent using the Comp.DSP web interface on > www.DSPRelated.com
I came up with a 63 tap filter for about .2dB of ripple. If you only care about 180 to 300 kHz however you might reduce the sampling rate considerably first by decimation. This will make the hilbert filter much shorter. If the sample rate is reduced to 1MHz (decimate by 10), the hilbert transformer was just 7 taps for a very good filter in your passband. Decimation by 10 would probably work out better by decimating twice by maybe 3 or 4 each time. This probably makes the low pass filtering cheaper. You can run your own scenerios in matlab or another filter program (I used QEDesign). -- Al Clark Danville Signal Processing, Inc. -------------------------------------------------------------------- Purveyors of Fine DSP Hardware and other Cool Stuff Available at http://www.danvillesignal.com
robert bristow-johnson wrote:
> in article Xns96D9564CEE1F0aclarkdanvillesignal@66.133.129.71, Al Clark at > dsp@danvillesignal.com wrote on 09/22/2005 09:29: > > >>>Thanks for all your advice, you guys seems to have more than one >>>solution practically to solve any DSP problem. >>>I am trying my best to grasp to your expert advice.Please continue to >>>help beginners like me. >>>One thing, that I am afraid from the using filter approach, is that >>>the as >>>the pass band may have small amount of ripple, the envelope may not >>>follow the peaks of the signal very closely. >>>Also I am not quite familiar about implementing this filter approach >>>in MATLAB. >>>Fsig = 240khz, Fs= 10Mhz >>> >> >>There is never an absolutely perfect solution. The FFT approach is not >>perfect either. You can make the passband ripple very small. What is you >>sample rate and what is your desired passband? > > > the other thing is that, if i understand the OP correctly, when he says "FFT > approach" vs. "filter approach", they are both methods of accomplishing the > same task, that is filtering. his/her "FFT approach" is the "fast > convolution" implementation of an FIR approximation to a delayed hilbert > transformer. (so the design of the filter, windowed 1/t vs. > Parks-McClellan, is not material.) if that's not the case, i am totally > bewildered.
I didn't even consider that he might mean fast convolution. With his relatively narrow bandwidth need, a transversal convolution is pretty short, as Al pointed out. 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;