I was wondering if somebody made HHT objects in Pd like: [EMD x], splitting a signal in IMF (intrinsic mode) functions...?
How hard would it be to implement?
Greetings!
Hi, Ludwig
I've tried making some different Hilbert transform objects--although my attempts failed b/c I really didn't understand the calculations well enough. I was trying to make some that used a 1024-point table based on Fourier behavior.
However, there's an interesting and useful approximation given by the hilbert~.pd patch (provided in the extra directory perhaps?). It uses two all-pass biquad filters that are ~90 degrees out of phase with each other to approximate the hilbert transform.
Chuck
On Mon, Nov 15, 2010 at 9:34 AM, Ludwig Maes ludwig.maes@gmail.com wrote:
I was wondering if somebody made HHT objects in Pd like: [EMD x], splitting a signal in IMF (intrinsic mode) functions...?
How hard would it be to implement?
Greetings!
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
On Mon, 15 Nov 2010, Charles Henry wrote:
However, there's an interesting and useful approximation given by the hilbert~.pd patch (provided in the extra directory perhaps?). It uses two all-pass biquad filters that are ~90 degrees out of phase with each other to approximate the hilbert transform.
Unfortunately, there are two different things called Hilbert Transform, and the one with the two biquads doesn't approximate Hilbert's decomposition, they approximate the other thing called after Hilbert. (is that right ?)
| Mathieu Bouchard ---- tél: +1.514.383.3801 ---- Villeray, Montréal, QC
On Mon, 15 Nov 2010, Mathieu Bouchard wrote:
Unfortunately, there are two different things called Hilbert Transform, and the one with the two biquads doesn't approximate Hilbert's decomposition, they approximate the other thing called after Hilbert. (is that right ?)
I probably got that wrong. I could swear I read something about such a confusion between two different things, but I can't find it now.
| Mathieu Bouchard ---- tél: +1.514.383.3801 ---- Villeray, Montréal, QC
On Mon, Nov 15, 2010 at 10:54 AM, Mathieu Bouchard matju@artengine.cawrote:
On Mon, 15 Nov 2010, Charles Henry wrote:
However, there's an interesting and useful approximation given by the
hilbert~.pd patch (provided in the extra directory perhaps?). It uses two all-pass biquad filters that are ~90 degrees out of phase with each other to approximate the hilbert transform.
Unfortunately, there are two different things called Hilbert Transform, and the one with the two biquads doesn't approximate Hilbert's decomposition, they approximate the other thing called after Hilbert. (is that right ?)
I don't know... The Hilbert transform on a function g(t) is this thing: Hg = 1/pi * integral( s=-inf, inf , 1/(t-s)*g(s) *ds) or in other words, convolution by 1/(pi*t)
and there's a complex valued signal based on g(t) h(t) = g(t) + i*Hg(t)
The Hilbert transform gives you just the imaginary part. The hilbert~.pd patch approximates this complex valued signal h(t). I know there's a reference to single-sideband modulation in the help patch if that's related--is h(t) called the analytic signal?
I even mean a third algorithm... I am focused more the empirical mode decomposition put forward by Huang, ... after splitting the signal in IMFs they are individually analyzed by Hilbert transform, or other time frequency transform of choice... Im more looking to EMD, but I just found some matlab code which octave seems to be able to run, and theres some C functions... going to look how achievable it is, and going to ask permission from the author to make Pd externals based on them...