Thread Subject: How are the values for h taken in Hilbert transformation?

Subject: How are the values for h taken in Hilbert transformation?

From: Vahila Chowdary

Date: 4 Nov, 2009 13:53:02

Message: 1 of 2

Helllo everybody!

I would like to know the way 'h' in hilbert transformation is given values. This is the thing i found in MATLAB but really could nt understand how they do it.

In detail, hilbert uses a four-step algorithm:

   1.It calculates the FFT of the input sequence, storing the result in a vector x.
   2.It creates a vector h whose elements h(i) have the values:
          * 1 for i = 1, (n/2)+1
          * 2 for i = 2, 3, ... , (n/2)
          * 0 for i = (n/2)+2, ... , n
   3.It calculates the element-wise product of x and h.
   4.It calculates the inverse FFT of the sequence obtained in step 3 and returns the first n elements of the result.

Could someone tell me the 2nd step clearly?

Thank you

Subject: How are the values for h taken in Hilbert transformation?

From: Wayne King

Date: 4 Nov, 2009 14:07:01

Message: 2 of 2

"Vahila Chowdary " <k.vahila@gmail.com> wrote in message <hcs0vu$8ti$1@fred.mathworks.com>...
> Helllo everybody!
>
> I would like to know the way 'h' in hilbert transformation is given values. This is the thing i found in MATLAB but really could nt understand how they do it.
>
> In detail, hilbert uses a four-step algorithm:
>
> 1.It calculates the FFT of the input sequence, storing the result in a vector x.
> 2.It creates a vector h whose elements h(i) have the values:
> * 1 for i = 1, (n/2)+1
> * 2 for i = 2, 3, ... , (n/2)
> * 0 for i = (n/2)+2, ... , n
> 3.It calculates the element-wise product of x and h.
> 4.It calculates the inverse FFT of the sequence obtained in step 3 and returns the first n elements of the result.
>
> Could someone tell me the 2nd step clearly?
>
> Thank you

Hi Vahila,
The analytic signal (corresponding to a signal X) has a Fourier transform which is zero for the negative frequencies, equal to the Fourier transform of X at zero frequency (DC), and 2 times the value of the Fourier transform of X at positive frequencies.

What step two in the algorithm is saying is that Matlab sets up a vector that scales the Fourier transform of the input signal X according to the definition (a vector of the appropriate scaling factors). Negative frequencies are multiplied by zero. Zero frequency (and the Nyquist) are multiplied by 1 (unscaled), and the positive frequencies are multiplied by two. Once you have the appropriate scaling on the Fourier transform of X, taking the inverse Fourier transform yields the analytic signal.

Hope that helps,
Wayne

Tags for this Thread

Add a New Tag:

Separated by commas
Ex.: root locus, bode

What are tags?

A tag is like a keyword or category label associated with each thread. Tags make it easier for you to find threads of interest.

Anyone can tag a thread. Tags are public and visible to everyone.

rssFeed for this Thread
 

MATLAB Central Terms of Use

NOTICE: Any content you submit to MATLAB Central, including personal information, is not subject to the protections which may be afforded information collected under other sections of The MathWorks, Inc. Web site. You are entirely responsible for all content that you upload, post, e-mail, transmit or otherwise make available via MATLAB Central. The MathWorks does not control the content posted by visitors to MATLAB Central and, does not guarantee the accuracy, integrity, or quality of such content. Under no circumstances will The MathWorks be liable in any way for any content not authored by The MathWorks, or any loss or damage of any kind incurred as a result of the use of any content posted, e-mailed, transmitted or otherwise made available via MATLAB Central. Read the complete Terms prior to use.

Contact us at files@mathworks.com