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.
Module Pack
Advanced
ClassID
classID =
Type Definition
typedef struct _ModuleHilbert
{
ModuleInstanceDescriptor instance; // Common Audio Weaver module instance structure
} ModuleHilbertClass;
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.
Copyright (c) 2026 DSP Concepts, Inc.