DSPRelated.com
Forums

Hilbert transform using FFT approach

Started by w106pjs September 21, 2005
Hi All..

1. As MATLAB uses the FFT approach computing the hilbert transform of the
signal, is this approach suitable for real time implementation on a SHARC
or TI DSP. ?

2. Can somebody point out some good references for real time
implementation of Hilbert transform.

Thanks
Paul

		
This message was sent using the Comp.DSP web interface on
www.DSPRelated.com
w106pjs wrote:
> Hi All.. > > 1. As MATLAB uses the FFT approach computing the hilbert transform of the > signal, is this approach suitable for real time implementation on a SHARC > or TI DSP. ? > > 2. Can somebody point out some good references for real time > implementation of Hilbert transform. > > Thanks > Paul > > > This message was sent using the Comp.DSP web interface on > www.DSPRelated.com
Do you really need an output that it in quadrature with the input, or can you settle for two outputs, each in quadrature with the other? Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������
>w106pjs wrote: >> Hi All.. >> >> 1. As MATLAB uses the FFT approach computing the hilbert transform of
the
>> signal, is this approach suitable for real time implementation on a
SHARC
>> or TI DSP. ? >> >> 2. Can somebody point out some good references for real time >> implementation of Hilbert transform. >> >> Thanks >> Paul >> >> >> This message was sent using the Comp.DSP web interface on >> www.DSPRelated.com > >Do you really need an output that it in quadrature with the input, or >can you settle for two outputs, each in quadrature with the other? > >Jerry >-- >Engineering is the art of making what you want from things you can get.
Jerry The purpose is to generate the envelope of the real sequence of data using the analytic signal approach using the FFT approach Paul This message was sent using the Comp.DSP web interface on www.DSPRelated.com
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. �����������������������������������������������������������������������
>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
"w106pjs" <w106pjs@yahoo.com> wrote in news:486dnfE5tKEBCKzeRVn-
qg@giganews.com:

> > Hi All.. > > 1. As MATLAB uses the FFT approach computing the hilbert transform of
the
> signal, is this approach suitable for real time implementation on a
SHARC
> or TI DSP. ? > > 2. Can somebody point out some good references for real time > implementation of Hilbert transform. > > Thanks > Paul > > > This message was sent using the Comp.DSP web interface on > www.DSPRelated.com
You can use an FFT to generate Hilbert transforms but it is often not the easiest way. The way we usually generate a Hilbert transform is two use antisymmetrical odd length FIR filters. This method is clearly discussed in Rick Lyon's book: Understanding Digital Signal Processing (second edition). We implemented a hilbert tranformer for essentially this same purpose last week for an AM demodulator application running on one of our SHARC based DSP boards. You often need a square root for envelope detectors. This is very easy with a SHARC since it has an instruction for this purpose. You can certainly use an FFT method as well. I prefer floating point DSPs for FFTs since the scaling between butterflies is not an issue. Please take a look at our dspstak boards for this application. -- Al Clark Danville Signal Processing, Inc. -------------------------------------------------------------------- Purveyors of Fine DSP Hardware and other Cool Stuff Available at http://www.danvillesignal.com
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..
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. 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:DNqdnTN5Vq4ZM6zenZ2dnUVZ_tCdnZ2d@rcn.net: 

> 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.. > > 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. > > Jerry
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 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). -- 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:DNqdnTN5Vq4ZM6zenZ2dnUVZ_tCdnZ2d@rcn.net: > > >>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.. >> >>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. >> >>Jerry > > > 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 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. 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:Pv6dneqMBPQ6S6zeRVn-gg@rcn.net:

> Al Clark wrote: >> Jerry Avins <jya@ieee.org> wrote in >> news:DNqdnTN5Vq4ZM6zenZ2dnUVZ_tCdnZ2d@rcn.net: >> >> >>>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.. >>> >>>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. >>> >>>Jerry >> >> >> 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 >> 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. > > Jerry
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. -- Al Clark Danville Signal Processing, Inc. -------------------------------------------------------------------- Purveyors of Fine DSP Hardware and other Cool Stuff Available at http://www.danvillesignal.com