Allpassphase | Hot!

Since "Allpass Phase" is a technical term usually found in Audio Engineering and Digital Signal Processing (DSP), I have developed a blog post tailored to audio enthusiasts, producers, and engineers.

Title: The Invisible Hand: Demystifying the Allpass Filter & Phase Manipulation Subtitle: Why the "do-nothing" filter is the secret weapon of modern mixing.


Hilbert Transformers and Analytic Signals

A Hilbert transformer is a special case of an allpass filter that shifts phase by -90 degrees for all positive frequencies. By combining a signal with its Hilbert transform, you generate the analytic signal (a complex representation with real and imaginary parts). This is the cornerstone of IQ modulation in 4G/5G radios, radar systems, and even electrocardiogram (ECG) analysis.

5. Phase & Group Delay

Group delay ( \tau_g(\omega) = -\fracd\phid\omega ).

For first-order analog all-pass: [ \tau_g(\omega) = \frac2/\omega_01 + (\omega/\omega_0)^2 ] Peak at ( \omega = \omega_0 ): ( \tau_g = 2/\omega_0 ).

3. Guitar Phaser and Flanger Effects

The classic "phaser" guitar pedal is built from a series of allpass filters in parallel with the dry signal. When the phase-shifted signal is mixed back with the original, comb filtering occurs—creating the sweeping, notched "whoosh" sound. The number of allpass stages (4, 6, 12) determines the number of notches. Even the legendary "phase 90" pedal is, fundamentally, an analog allpassphase device. allpassphase

AllpassPhase vs. Linear Phase EQ

A common confusion arises between all-pass filters and Linear Phase EQs. Both manipulate phase, but in opposite ways.

You cannot replace a linear phase EQ with an allpassphase network—they solve opposite problems.

2. Transfer Function

A first-order analog all-pass filter has the form: [ H(s) = \fracs - \omega_0s + \omega_0 ] where ( \omega_0 ) is the cutoff frequency (phase transition center).

For discrete-time (digital) domain: [ H(z) = \fraca + z^-11 + a z^-1, \quad |a| < 1 ]

2. Phase Response of an All-Pass Filter

The phase is not constant. For the 1st-order analog case: [ \angle H(j\omega) = -2 \arctan\left(\frac\omega\omega_0\right) ] Since "Allpass Phase" is a technical term usually

For a 2nd-order all-pass: [ H(s) = \fracs^2 - (\omega_0/Q) s + \omega_0^2s^2 + (\omega_0/Q) s + \omega_0^2 ] Phase goes from (0^\circ) to (-360^\circ), with a steep transition near (\omega_0) depending on (Q).

Designing Your Own Allpass Filters: A Practical Guide

For the audio programmer or DSP enthusiast, implementing an allpass filter is straightforward. Here is a Python/NumPy snippet for a first-order allpass:

import numpy as np

def allpass_first_order(x, a): y = np.zeros_like(x) y_prev = 0 x_prev = 0 for n in range(len(x)): y[n] = a * x[n] + x_prev - a * y_prev x_prev = x[n] y_prev = y[n] return y

The coefficient a is related to cutoff frequency fc and sample rate fs by: Linear Phase EQ: Uses filters with symmetrical impulse

[ a = \frac\tan(\pi \cdot fc / fs) - 1\tan(\pi \cdot fc / fs) + 1 ]

For a second-order allpass (more phase shift and steeper group delay peak), the transfer function becomes:

[ H(z) = \fraca_2 + a_1 z^-1 + z^-21 + a_1 z^-1 + a_2 z^-2 ]

Second-order allpass filters are the building blocks of parametric equalizers and graphic equalizers that preserve a flat magnitude response while adjusting phase.

2. The "Rotten Sound" Trick (Mid/Side Processing)

This is a classic mastering trick. When converting stereo audio to Mid/Side (Sum/Difference), you sometimes encounter phase issues where the center information sounds hollow.

Engineers often apply an Allpass filter to the Mid channel or the Side channel. This phase shift can alter how the stereo image is perceived, making the center feel more solid or widening the sides, all without changing the EQ balance.

Back
Top