Bob M
2004-09-22 02:42:11 UTC
I've been a lurker for quite some time now and have learned a lot from
everybody's questions and answers. Now it's time to jump in..
I'm trying to implement an envelope detector for the first time. I've
done some reading on the web and in a few books, and my understanding
is that a process using the Hilbert transform works well. However, I'm
unable to find a clear description of how to implement it for
real-time operation. This is the process as I understand it:
1. Find the Hilbert transform of x. This gives a pi/2 phase shift.
2. Find the magnitude using a sum of squares: (x^2 + hilbert(x)^2)^0.5
3. Low-pass filter the above result.
First, is this correct?
Is low-pass filtering the result necessary? I did a quick trial in
Excel with a couple of sine waves and a triangular shaped envelope
and, while this is a very simple example, it perfectly finds the
envelope (using only steps 1 and 2 above). There seems to be no need
for low-pass filtering in this case.
How is a hilbert transform implemented? My understanding is that
coefficients can be generated (using Scilab for example), and
implemented as an FIR filter. But how dependent is the outcome on the
number of coefficients used?
Thanks for any help,
Bob
everybody's questions and answers. Now it's time to jump in..
I'm trying to implement an envelope detector for the first time. I've
done some reading on the web and in a few books, and my understanding
is that a process using the Hilbert transform works well. However, I'm
unable to find a clear description of how to implement it for
real-time operation. This is the process as I understand it:
1. Find the Hilbert transform of x. This gives a pi/2 phase shift.
2. Find the magnitude using a sum of squares: (x^2 + hilbert(x)^2)^0.5
3. Low-pass filter the above result.
First, is this correct?
Is low-pass filtering the result necessary? I did a quick trial in
Excel with a couple of sine waves and a triangular shaped envelope
and, while this is a very simple example, it perfectly finds the
envelope (using only steps 1 and 2 above). There seems to be no need
for low-pass filtering in this case.
How is a hilbert transform implemented? My understanding is that
coefficients can be generated (using Scilab for example), and
implemented as an FIR filter. But how dependent is the outcome on the
number of coefficients used?
Thanks for any help,
Bob