Hilbert
Overview
6th order Hilbert transform
Discussion
This subsystem has 2 inputs and 2 outputs. The input pin is named 'in' and the output pins are named 'out1' and 'out2'. The input pins can be of arbitrary dimension and the size of the output pins equal the size of the input pins. The module operates on multichannel signals. The filters are designed so that $\angle(out1)-\angle(out2) = 90~degrees.$ Each filter is a cascade of 6 1st order allpass filters. Internally, pairs of first order allpass filters are combined and implemented as second order Biquad stages.
The subsystem requires two scratch buffers. The size of the scratch buffers equals the size of the input.
Type Definition
-Not Shown-
Pins
Input Pins
Name: inReal
Description: Audio Input for real valued signals
Data type: float
Channel range: Unrestricted
Block size range: Unrestricted
Sample rate range: Unrestricted
Complex support: Real
Name: inImag
Description: Audio Input for imaginary valued signals
Data type: float
Channel range: Unrestricted
Block size range: Unrestricted
Sample rate range: Unrestricted
Complex support: Real
Output Pins
Name: outReal
Description: Audio output for real valued signals
Data type: float
Name: outImag
Description: Audio output for imaginary valued signals
Data type: float
Scratch Pins
Channel count: 1
Block size: 32
Sample rate: 48000
MATLAB Usage
File Name: hilbert_subsystem.m
SYS=hilbert_subsystem(NAME)
Creates a 2-input 2-output module which implements a 12th order Hilbert
transform. Arguments:
NAME - name of the module.