HilbertPDN:
Filter:
Classes (extension) | Libraries > Hilbert > Pseudo-UGens | UGens > Filters > Nonlinear

HilbertPDN : Object
ExtensionExtension

Applies the Hilbert Transform to an input signal. [1]
Source: Hilbert.sc

Description

Offers the Hilbert and related transforms and analyses of an input signal via Weaver's Second Method,1 known as Hartley Phasing,2 expressed as a 12th-order Phase Differencing Network.3

[1] this is a composite pseudo UGen. HilbertPDN is built with SOS. Method *arSSB also includes SinOsc.

Class Methods

HilbertPDN.ar(in, mul: 1.0, add: 0)

The Hilbert Transform, returning two signals in phase-quadrature. Considered as a complex analytic signal,4 the first may be regarded as the real component and the second as the imaginary.

Arguments:

in

The input signal to transform.

mul

Output will be multiplied by this value.

add

This value will be added to the output.

Returns:

An array of channels: [real, imag]

HilbertPDN.arRotate(in, angle: 0.0, mul: 1, add: 0)

Rotate5 the phase of the input.

Arguments:

in

The input signal.

angle

Rotation angle, in radians.

mul

Output will be multiplied by this value.

add

This value will be added to the output.

Returns:

Phase rotated input.

HilbertPDN.arSSB(in, freq: 0.0, mul: 1, add: 0)

Single-Sideband Modulate6 (SSB) the input.

Arguments:

in

The input signal.

freq

Frequency to shift by. May be positive or negative.

mul

Output will be multiplied by this value.

add

This value will be added to the output.

Returns:

SSB modulated input.

HilbertPDN.arMag(in, mul: 1, add: 0)

Analyze the instantaneous amplitude of the input.

Arguments:

in

The input signal to analyze.

mul

Output will be multiplied by this value.

add

This value will be added to the output.

Returns:

Instantaneous amplitude.

HilbertPDN.arPhase(in, mul: 1, add: 0)

Analyze the instantaneous phase of the input.

Arguments:

in

The input signal to analyze.

mul

Output will be multiplied by this value.

add

This value will be added to the output.

Returns:

Instantaneous phase, in radians.

Inherited class methods

Undocumented class methods

HilbertPDN.calcSOSCoefs(poles)

Instance Methods

Inherited instance methods

Examples

ar

arRotate

arSSB

arMag

arPhase

Frequency response

Magnitude

The both the real & imag outputs of HilbertPDN return an allpass magnitude response.

Phase

The both the real & imag outputs of HilbertPDN return a nonlinear phase response, where imag is offset by -pi/2 radians with respect to real.

[1] - Weaver, Donald. “A Third Method of Generation and Detection of Single-Sideband Signals.” Proceedings of the IRE, vol. 44, no. 12, 1956, pp. 1703–1705.
[2] - US Patent 1,666,206, Modulation System, April 17, 1928, United States Patent and Trademark Office.
[3] - B. Hutchins, “The Design of Wideband Analog 90° Phase Differencing Networks without Large Spread of Capacitor Values”, Electronotes, Special Issue G, No. 168, http://electronotes.netfirms.com/EN168-90degreePDN.PDF, accessed 2017-08-08.
[4] - Smith, J.O. “Analytic Signals and Hilbert Transform Filters”, in Mathematics of the Discrete Fourier Transform (DFT) with Audio Applications, Second Edition, https://ccrma.stanford.edu/~jos/st/Analytic_Signals_Hilbert_Transform.html, online book, 2007 edition, accessed 2017-08-08.
[5] - decrement
[6] - Aka, frequency-shifting.