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
}
- See also
- Companion
- class