0% found this document useful (0 votes)
274 views

Allpass Example

This document describes the design of an all-pass filter to linearize the phase response of a low-pass filter. It presents the frequency response of the original low-pass filter, then designs an all-pass filter to equalize the group delay in the passband when cascaded. The cascaded response is computed and plotted to show the linearized phase and equalized group delay.

Uploaded by

abdul.azeez
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
274 views

Allpass Example

This document describes the design of an all-pass filter to linearize the phase response of a low-pass filter. It presents the frequency response of the original low-pass filter, then designs an all-pass filter to equalize the group delay in the passband when cascaded. The cascaded response is computed and plotted to show the linearized phase and equalized group delay.

Uploaded by

abdul.azeez
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

DSP: All-Pass Filter Design Example

Digital Signal Processing


All-Pass Filter Design Example

D. Richard Brown III

D. Richard Brown III 1/8


DSP: All-Pass Filter Design Example

Problem Setup

We are given a causal stable IIR low-pass filter


1−α
2 (1 + z −1 )
H(z) =
1 − αz −1
with α = 0.5. We can realize and analyze this filter in Matlab with

w = pi*[0:0.001:1]; % normalized frequencies


alpha = 0.5; % LPF parameter
blp = (1-alpha)/2*[1 1]; % numerator coefficients
alp = [1 -alpha]; % denominator coefficients
hlp = freqz(blp,alp,w); % compute DTFT
glp = grpdelay(blp,alp,w); % compute group delay

D. Richard Brown III 2/8


DSP: All-Pass Filter Design Example

Low-Pass Filter Frequency Response


1
magnitude response

0.5

0
0 0.5 1 1.5 2 2.5 3 3.5

0
phase response (rad)

−0.5

−1

−1.5

−2
0 0.5 1 1.5 2 2.5 3 3.5

1.5
group delay (samples)

0.5

0
0 0.5 1 1.5 2 2.5 3 3.5
normalized freq (rad/sample)

D. Richard Brown III 3/8


DSP: All-Pass Filter Design Example

All-Pass Filter Design to Linearize Phase Response

We will cascade a causal all-pass filter with the LPF to linearize the phase
response and equalize the group delay in the passband. We can do this in Matlab
with

N = 4; % all-pass filter order


F = w(1:501)/pi; % normalized frequencies
edges = [0 1/2]; % band-edge frequencies
Gd = max(glp)-glp(1:501); % desired group-delays of APF (>0)
[bap,aap] = iirgrpdelay(N,F,edges,Gd); % make all-pass filter
hap = freqz(bap,aap,w); % compute DTFT
gap = grpdelay(bap,aap,w); % compute group-delay

D. Richard Brown III 4/8


DSP: All-Pass Filter Design Example

All-Pass Filter z-plane

1.5

0.5
Imaginary Part

−0.5

−1

−1.5

−2

−2 −1.5 −1 −0.5 0 0.5 1 1.5 2 2.5 3


Real Part

D. Richard Brown III 5/8


DSP: All-Pass Filter Design Example

All-Pass Filter Frequency Response


1
magnitude response
1

1
0 0.5 1 1.5 2 2.5 3 3.5

0
phase response (rad)

−5

−10

−15
0 0.5 1 1.5 2 2.5 3 3.5

6
group delay (samples)

2
0 0.5 1 1.5 2 2.5 3 3.5
normalized freq (rad/sample)

D. Richard Brown III 6/8


DSP: All-Pass Filter Design Example

Compute and Plot Cascaded Response


We can do this in Matlab with
b = conv(blp,bap); % product of numerators
a = conv(alp,aap); % product of denominators
h = freqz(b,a,w); % compute DTFT
g = grpdelay(b,a,w); % compute group delay
subplot(3,1,1)
plot(w,abs(h));
ylabel(’magnitude response’);
subplot(3,1,2);
plot(w,unwrap(angle(h)));
ylabel(’phase response (rad)’);
subplot(3,1,3);
plot(w,g);
xlabel(’normalized freq (rad/sample)’);
ylabel(’group delay (samples)’);
D. Richard Brown III 7/8
DSP: All-Pass Filter Design Example

Cascaded LPF-AP Frequency Response


magnitude response 1

0.5

0
0 0.5 1 1.5 2 2.5 3 3.5

0
phase response (rad)

−5

−10

−15
0 0.5 1 1.5 2 2.5 3 3.5

6
group delay (samples)

2
0 0.5 1 1.5 2 2.5 3 3.5
normalized freq (rad/sample)

D. Richard Brown III 8/8

You might also like