A Hilbert transform UGen. This transformation produces two signals from a given
input with identical frequency content, but with their respective phases shifted
to be 90 degrees apart (0.5 pi radians).
The two signals output by Hilbert correspond to the real and imaginary part
of the complex transformed signal. Due to the method used (an IIR filter),
distortion occurs in the upper octave of the frequency spectrum.
The transform can be used to implemented single-side-band (SSB) modulation, but
a dedicated UGen FreqShift is already provided for this case.
Examples
// a form of envelope tracking
play {
val in = SinOsc.ar(440)
val h = Hilbert.ar(in)
val x = h.real.squared + h.imag.squared
x.poll(1) // cos(x)^2 + sin(x)^2 == 1 (ideally)0
}
A Hilbert transform UGen. This transformation produces two signals from a given input with identical frequency content, but with their respective phases shifted to be 90 degrees apart (0.5 pi radians).
The two signals output by
Hilbert
correspond to the real and imaginary part of the complex transformed signal. Due to the method used (an IIR filter), distortion occurs in the upper octave of the frequency spectrum.The transform can be used to implemented single-side-band (SSB) modulation, but a dedicated UGen
FreqShift
is already provided for this case.Examples
FreqShift