Skip to main content

Digital LPF to HPF transformation

Short answer

Apply the transformation z⁻¹ → −(z⁻¹+α)/(1+αz⁻¹) with α=−0.5766. Result: H'(z)=(0.4811−0.9433z⁻¹+0.3839z⁻²)/(1−0.6824z⁻¹+0.1259z⁻²).

A digital LPF with cut off frequency ωc = 0.2575π is given as H(z) = (0.1 + 0.4z⁻¹)/(1 − 0.6z⁻¹ + 0.1z⁻²). Design a digital high pass filter with ω'c = 0.3567π.

The digital low-pass to high-pass transformation replaces z⁻¹ by

z⁻¹ → −(z⁻¹ + α) / (1 + α z⁻¹), α = −cos[(ωc + ω'c)/2] / cos[(ωc − ω'c)/2]

with ωc = 0.2575π (given low-pass) and ω'c = 0.3567π (required high-pass).

Step 1: α

(ωc + ω'c)/2 = 0.3071π and (ωc − ω'c)/2 = −0.0496π.

α = −cos(0.3071π) / cos(0.0496π) = −0.5696 / 0.9879 = -0.5766

Step 2: substitute

H(z) = (0.1 + 0.4z⁻¹)/(1 − 0.6z⁻¹ + 0.1z⁻²). Put z⁻¹ = −(z⁻¹ + α)/(1 + αz⁻¹) and multiply numerator and denominator by (1 + αz⁻¹)²:

Numerator: 0.1(1 + αz⁻¹)² − 0.4(z⁻¹ + α)(1 + αz⁻¹) Denominator: (1 + αz⁻¹)² + 0.6(z⁻¹ + α)(1 + αz⁻¹) + 0.1(z⁻¹ + α)²

With α = -0.5766:

Numerator   = 0.3306 − 0.6483 z⁻¹ + 0.2639 z⁻²
Denominator = 0.6873 − 0.4690 z⁻¹ + 0.0865 z⁻²

Dividing by the constant term of the denominator (0.6873):

H'(z) = (0.4811 − 0.9433z⁻¹ + 0.3839z⁻²) / (1 − 0.6824z⁻¹ + 0.1259z⁻²)

Check

  • Low-pass H: |H(0)| = 1.000, |H(0.2575π)| = 0.7079, |H(π)| = 0.176.
  • High-pass H': |H'(0)| = 0.176, |H'(0.3567π)| = 0.7079 (the same gain as the low-pass at its cut-off 0.2575π), |H'(π)| = 1.000.

So the new filter is high-pass with the same gain at its edge as the low-pass has at its edge.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Digital Signal Analysis and Processing chapter 6 questions →