From the difference equation of general linear filter (Equation 2.21)
y
(
n
)
=
∑
k
=
1
N
a
k
y
(
n
−
k
)
+
∑
K
=
−
M
M
b
k
x
(
n
−
k
)
y
(
n
)
=
∑
k
=
1
N
a
k
y
(
n
−
k
)
+
∑
K
=
−
M
M
b
k
x
(
n
−
k
)
size 12{y \( n \) = Sum cSub { size 8{k=1} } cSup { size 8{N} } {a rSub { size 8{k} } y \( n - k \) } + Sum cSub { size 8{K= - M} } cSup { size 8{M} } {b rSub { size 8{k} } x \( n - k \) } } {}
For input
ejωnejωn size 12{e rSup { size 8{jωn} } } {}the output is (Equation (3.70))
y
(
n
)
=
H
(
ω
)
e
jωn
y
(
n
)
=
H
(
ω
)
e
jωn
size 12{y \( n \) =H \( ω \) e rSup { size 8{jωn} } } {}
We replace this into the difference equation:
H
(
ω
)
e
jn
ω
=
∑
k
=
1
N
a
k
H
(
ω
)
e
jω
n
−
k
+
∑
k
=
−
M
M
a
k
e
jω
n
−
k
H
(
ω
)
e
jn
ω
=
∑
k
=
1
N
a
k
H
(
ω
)
e
jω
n
−
k
+
∑
k
=
−
M
M
a
k
e
jω
n
−
k
size 12{H \( ω \) e rSup { size 8{ ital "jn"ω} } = Sum cSub { size 8{k=1} } cSup { size 8{N} } {a rSub { size 8{k} } H \( ω \) e rSup { size 8{jω left (n - k right )} } +{}} Sum cSub { size 8{k= - M} } cSup { size 8{M} } {a rSub { size 8{k} } e rSup { size 8{jω left (n - k right )} } } } {}
Thus
H(ω)=∑k=−MMbke−jωk1−∑k=1Nake−jωkH(ω)=∑k=−MMbke−jωk1−∑k=1Nake−jωk size 12{H \( ω \) = { { Sum cSub { size 8{k= - M} } cSup { size 8{M} } {b rSub { size 8{k} } e rSup { size 8{ - jωk} } } } over {1 - Sum cSub { size 8{k=1} } cSup { size 8{N} } {a rSub { size 8{k} } e rSup { size 8{ - jωk} } } } } } {}
(15)This result means the when we know the coefficients of a filter we can write the expression of its frequency response immediately. Conversely, if we know the expression of the frequency response of a system we can write its difference equation.
The normal way to compute the frequency response in to express it as a rational function
H(ω)=N(ω)D(ω)=∣N(ω)∣ejΦNω∣D(ω)∣ejΦDωH(ω)=N(ω)D(ω)=∣N(ω)∣ejΦNω∣D(ω)∣ejΦDω size 12{H \( ω \) = { {N \( ω \) } over {D \( ω \) } } = { { lline N \( ω \) rline e rSup { size 8{jΦ rSub { size 6{N} } left (ω right )} } } over { lline D \( ω \) rline e rSup {jΦ rSub { size 6{D} } left (ω right )} } } } {}
(16)Where
ΦN(ω)ΦN(ω) size 12{Φ rSub { size 8{N} } \( ω \) } {} or
∠N(ω)∠N(ω) size 12{∠N \( ω \) } {} is the phase of
N(ω)N(ω) size 12{N \( ω \) } {}, and
ΦD(N)ΦD(N) size 12{Φ rSub { size 8{D} } \( N \) } {}or
∠D(ω)∠D(ω) size 12{∠D \( ω \) } {} is the phase of
D(ω)D(ω) size 12{D \( ω \) } {}. The magnitude and phase responses are then given respectively by
∣H(ω)∣=∣N(ω)∣∣D(ω)∣∣H(ω)∣=∣N(ω)∣∣D(ω)∣ size 12{ lline H \( ω \) rline = { { lline N \( ω \) rline } over { lline D \( ω \) rline } } } {}
(17)
Φ(ω)=ΦN(ω)−ΦD(ω)or∠H(ω)=∠N(ω)−∠D(ω)Φ(ω)=ΦN(ω)−ΦD(ω)or∠H(ω)=∠N(ω)−∠D(ω) size 12{Φ \( ω \) =Φ rSub { size 8{N} } \( ω \) - Φ rSub { size 8{D} } \( ω \) matrix {
{} # {} # {}
} ital "or" matrix {
{} # {}
} ∠H \( ω \) "=∠"N \( ω \) - ∠D \( ω \) } {}
(18)Unless for simple filters (i.e. filters with a small number of coefficients) we must write a computer programme, or use a software such as Matlab, to compute the frequency response and especially the phase response.
Example 3.7.4
An IIR filter has these nonzero coefficients
a
0
=
0
.
04
,
a
2
=
−
0
.
05
,
a
4
=
0
.
06
,
a
6
=
−
0
.
11
,
a
8
=
0
.
32
,
a
9
=
−
0
.
5,
a
10
=
0
.
32
,
a
12
=
−
0
.
11
,
a
14
=
0
.
06
,
a
16
=
−
0
.
05
,
a
18
=
0
.
04
a
0
=
0
.
04
,
a
2
=
−
0
.
05
,
a
4
=
0
.
06
,
a
6
=
−
0
.
11
,
a
8
=
0
.
32
,
a
9
=
−
0
.
5,
a
10
=
0
.
32
,
a
12
=
−
0
.
11
,
a
14
=
0
.
06
,
a
16
=
−
0
.
05
,
a
18
=
0
.
04
alignl { stack {
size 12{a rSub { size 8{0} } =0 "." "04", matrix {
} a rSub { size 8{2} } = - 0 "." "05", matrix {
} a rSub { size 8{4} } =0 "." "06", matrix {
} a rSub { size 8{6} } = - 0 "." "11", matrix {
} a rSub { size 8{8} } =0 "." "32", matrix {
} a rSub { size 8{9} } = - 0 "." 5, matrix {
} a rSub { size 8{"10"} } =0 "." "32",} {} #
a rSub { size 8{"12"} } = - 0 "." "11", matrix {
{}
} a rSub { size 8{"14"} } =0 "." "06", matrix {
{}
} a rSub { size 8{"16"} } = - 0 "." "05", matrix {
{}
} a rSub { size 8{"18"} } =0 "." "04" {}
} } {}
Write the difference equation of the filter and find the frequency response.
Solution
The difference equation the FIR filter is
y
(
n
)
=
0
.
04
x
(
n
)
−
0
.
05
x
(
n
−
2
)
+
0
.
06
x
(
n
−
4
)
−
0
.
11
x
(
n
−
6
)
+
0
.
32
x
(
n
−
8
)
−
0
.
5x
(
n
−
9
)
+
0
.
32
x
(
n
−
10
)
−
0
.
11
x
(
n
−
12
)
+
0
.
06
x
(
n
−
14
)
−
0
.
05
x
(
n
−
16
)
+
0
.
04
x
(
n
−
18
)
y
(
n
)
=
0
.
04
x
(
n
)
−
0
.
05
x
(
n
−
2
)
+
0
.
06
x
(
n
−
4
)
−
0
.
11
x
(
n
−
6
)
+
0
.
32
x
(
n
−
8
)
−
0
.
5x
(
n
−
9
)
+
0
.
32
x
(
n
−
10
)
−
0
.
11
x
(
n
−
12
)
+
0
.
06
x
(
n
−
14
)
−
0
.
05
x
(
n
−
16
)
+
0
.
04
x
(
n
−
18
)
alignl { stack {
size 12{y \( n \) =0 "." "04"x \( n \) - 0 "." "05"x \( n - 2 \) +0 "." "06"x \( n - 4 \) - 0 "." "11"x \( n - 6 \) +0 "." "32"x \( n - 8 \) } {} #
size 12{ matrix {
{} # {} # {}
} - 0 "." 5x \( n - 9 \) +0 "." "32"x \( n - "10" \) - 0 "." "11"x \( n - "12" \) +0 "." "06"x \( n - "14" \) } {} #
size 12{ matrix {
{} # {} # {}
} - 0 "." "05"x \( n - "16" \) +0 "." "04"x \( n - "18" \) } {}
} } {}
Because all the coefficients are real hence we can quickly find the expressions for the real and imaginary parts:
H
R
(
ω
)
=
0
.
04
cos
0ω
−
0
.
05
cos
2ω
+
0
.
06
cos
4ω
−
0
.
11
cos
6ω
+
0
.
32
cos
8ω
−
0
.
5
cos
9ω
+
0
.
32
cos
10
ω
−
0
.
11
cos
12
ω
+
0
.
06
cos
14
ω
−
0
.
05
cos
16
ω
+
0
.
04
cos
18
ω
H
R
(
ω
)
=
0
.
04
cos
0ω
−
0
.
05
cos
2ω
+
0
.
06
cos
4ω
−
0
.
11
cos
6ω
+
0
.
32
cos
8ω
−
0
.
5
cos
9ω
+
0
.
32
cos
10
ω
−
0
.
11
cos
12
ω
+
0
.
06
cos
14
ω
−
0
.
05
cos
16
ω
+
0
.
04
cos
18
ω
alignl { stack {
size 12{H rSub { size 8{R} } \( ω \) =0 "." "04""cos"0ω - 0 "." "05""cos"2ω+0 "." "06""cos"4ω - 0 "." "11""cos"6ω+0 "." "32""cos"8ω} {} #
matrix {
{} # {} # {}
} - 0 "." 5"cos"9ω+0 "." "32""cos""10"ω - 0 "." "11""cos""12"ω+0 "." "06""cos""14"ω {} #
matrix {
{} # {} # {}
} - 0 "." "05""cos""16"ω+0 "." "04""cos""18"ω {}
} } {}
H
I
(
ω
)
=
−
0
.
04
sin
0ω
+
0
.
05
sin
2ω
−
0
.
06
sin
4ω
+
0
.
11
sin
6ω
−
0
.
32
sin
8ω
+
0
.
5
sin
9ω
−
0
.
32
sin
10
ω
+
0
.
11
sin
12
ω
−
0
.
06
sin
14
ω
+
0
.
05
sin
16
ω
−
0
.
04
sin
18
ω
H
I
(
ω
)
=
−
0
.
04
sin
0ω
+
0
.
05
sin
2ω
−
0
.
06
sin
4ω
+
0
.
11
sin
6ω
−
0
.
32
sin
8ω
+
0
.
5
sin
9ω
−
0
.
32
sin
10
ω
+
0
.
11
sin
12
ω
−
0
.
06
sin
14
ω
+
0
.
05
sin
16
ω
−
0
.
04
sin
18
ω
alignl { stack {
size 12{H rSub { size 8{I} } \( ω \) = - 0 "." "04""sin"0ω+0 "." "05""sin"2ω - 0 "." "06""sin"4ω+0 "." "11""sin"6ω - 0 "." "32""sin"8ω} {} #
matrix {
{} # {} # {}
} +0 "." 5"sin"9ω - 0 "." "32""sin""10"ω+0 "." "11""sin""12"ω - 0 "." "06""sin""14"ω {} #
matrix {
{} # {} # {}
} +0 "." "05""sin""16"ω - 0 "." "04""sin""18"ω {}
} } {}
These two components lead to the magnitude and phase spectra:
∣
H
(
ω
)
∣
=
H
R
(
ω
)
+
H
I
(
ω
)
∣
H
(
ω
)
∣
=
H
R
(
ω
)
+
H
I
(
ω
)
size 12{ lline H \( ω \) rline = sqrt {H rSub { size 8{R} } \( ω \) +H rSub { size 8{I} } \( ω \) } } {}
Φ
(
ω
)
=
tan
−
1
H
I
(
ω
)
H
R
(
ω
)
Φ
(
ω
)
=
tan
−
1
H
I
(
ω
)
H
R
(
ω
)
size 12{Φ \( ω \) ="tan" rSup { size 8{ - 1} } { {H rSub { size 8{I} } \( ω \) } over {H rSub { size 8{R} } \( ω \) } } } {}
The Matlab spectra are shown if Fig.3.32. We can see the highpass characterstic of the filter with transition frequency at
π/2π/2 size 12{ {π} slash {2} } {}.
Example 3.7.5
Given the difference equation of a filter as
y
(
n
)
=
1
.
77
y
(
n
−
1
)
−
1
.
19
y
(
n
−
2
)
+
0
.
28
y
(
n
−
3
)
+
0
.
14
x
(
n
−
2
)
y
(
n
)
=
1
.
77
y
(
n
−
1
)
−
1
.
19
y
(
n
−
2
)
+
0
.
28
y
(
n
−
3
)
+
0
.
14
x
(
n
−
2
)
size 12{y \( n \) =1 "." "77"y \( n - 1 \) - 1 "." "19"y \( n - 2 \) +0 "." "28"y \( n - 3 \) +0 "." "14"x \( n - 2 \) } {}
Find its magnitude and phase frequency spectrum.
Solution
Notice that the filter is IIR of third order. From the difference equation we can write directly the frequency response:
H
(
ω
)
=
0
.
14
e
−
jω2
1
−
1
.
77
e
−
jω
+
1
.
19
e
−
jω2
−
0
.
28
e
−
jω3
H
(
ω
)
=
0
.
14
e
−
jω2
1
−
1
.
77
e
−
jω
+
1
.
19
e
−
jω2
−
0
.
28
e
−
jω3
size 12{H \( ω \) = { {0 "." "14"e rSup { size 8{ - jω2} } } over {1 - 1 "." "77"e rSup { size 8{ - jω} } +1 "." "19"e rSup { size 8{ - jω2} } - 0 "." "28"e rSup { size 8{ - jω3} } } } } {}
Matlab gives the magnitude and phase spectra depicted in Fig.3.33. Notice that with just a few terns the IIR gives a rather good smooth magnitude spectrum (refer to previous example of FIR filter).
Example 3.7.6
The following is the equation of a notch filter:
y
(
n
)
=
1
.
8523
y
(
n
−
1
)
−
0
.
94833
y
(
n
−
2
)
x
(
n
)
−
1
.
9021
x
(
n
−
1
)
+
x
(
n
−
2
)
y
(
n
)
=
1
.
8523
y
(
n
−
1
)
−
0
.
94833
y
(
n
−
2
)
x
(
n
)
−
1
.
9021
x
(
n
−
1
)
+
x
(
n
−
2
)
size 12{y \( n \) =1 "." "8523"y \( n - 1 \) - 0 "." "94833"y \( n - 2 \) x \( n \) - 1 "." "9021"x \( n - 1 \) +x \( n - 2 \) } {}
Plot its magnitude and phase spectra.
Solution
The frequency response is
H
(
ω
)
=
1
−
1
.
9021
e
−
jω
+
e
−
j2ω
1
−
1
.
8523
e
−
jω
+
0
.
94833
e
−
j2ω
H
(
ω
)
=
1
−
1
.
9021
e
−
jω
+
e
−
j2ω
1
−
1
.
8523
e
−
jω
+
0
.
94833
e
−
j2ω
size 12{H \( ω \) = { {1 - 1 "." "9021"e rSup { size 8{ - jω} } +e rSup { size 8{ - j2ω} } } over {1 - 1 "." "8523"e rSup { size 8{ - jω} } +0 "." "94833"e rSup { size 8{ - j2ω} } } } } {}
Fig.3.34 shows the required spectra . The magnitude response gives a clear notes at frequency
ω=0.1πω=0.1π size 12{ω=0 "." 1π} {} rad/sample