HilbertH:

Filter: Extension

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

Source: Hilbert.sc

Offers the Hilbert and related transforms and analyses of an input signal via Weaver's *Second Method*,^{1} known as *Hartley Phasing*.^{2}

[1] this is a composite pseudo UGen. HilbertH is built with DelayN and Convolution2. Method *arSSB also includes SinOsc.

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

in |
The input signal to transform. |

size |
The size of the kernel used for |

mul |
Output will be multiplied by this value. |

add |
This value will be added to the output. |

An array of channels: `[real, imag]`

NOTE: The kernel used for *Hartley Phasing* filtering is windowed with the Signal: *kaiserWindow, where *alpha* is set to 1.

Rotate^{4} the phase of the input.

in |
The input signal. |

angle |
Rotation angle, in radians. |

size |
The size of the kernel used for |

mul |
Output will be multiplied by this value. |

add |
This value will be added to the output. |

Phase rotated input.

Single-Sideband Modulate^{5} (SSB) the input.

in |
The input signal. |

freq |
Frequency to shift by. May be positive or negative. |

size |
The size of the kernel used for |

mul |
Output will be multiplied by this value. |

add |
This value will be added to the output. |

SSB modulated input.

Analyze the *instantaneous amplitude* of the input.

in |
The input signal to analyze. |

size |
The size of the kernel used for |

mul |
Output will be multiplied by this value. |

add |
This value will be added to the output. |

*Instantaneous amplitude*.

Analyze the *instantaneous phase* of the input.

in |
The input signal to analyze. |

size |
The size of the kernel used for |

mul |
Output will be multiplied by this value. |

add |
This value will be added to the output. |

*Instantaneous phase*, in radians.

Generate real coefficients.

size |
The size of the kernel used for |

WARNING: To be deprecated! Use Signal *hilbert.real instead.

Generate imaginary coefficients.

size |
The size of the kernel used for |

WARNING: To be deprecated! Use Signal *hilbert.imag instead.

The `real`

output of HilbertH returns an allpass magnitude response.

The `imag`

magnitude response may be regarded as bandpass, with notches at DC and Nyquist.

The `real`

output of HilbertH returns a linear phase response. As a result, the output of the system as a whole is delayed in time. The total delay, in samples, can be calculated as `size/2 + size - blockSize`

, where blockSize is the number of samples in one control period of the Server in use.

The `imag`

output 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] - 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.

helpfile source: /Library/Application Support/SuperCollider/downloaded-quarks/Hilbert/HelpSource/Classes/HilbertH.schelp

link::Classes/HilbertH::

link::Classes/HilbertH::