Professional Documents
Culture Documents
z 1 z
X z 1 2
2 .
1 0.25 z 0.375 z z 0.25 z 0.375
z c1 z c2 z 0.8 z 0.8 z
X z
z 0.75 z 0.5 z 0.75 z 0.5 z 0.75 z 0.5 .
The inverse z-transform of this is thus
x n 0.8 0.75 0.8 0.5 u n
n n
There are several MATLAB functions that could assist with calculating and analyzing
these results. We can find the roots of the denominator polynomial using
ans =
0.7500
-0.5000
>> z = [0]
z=
0
>> p = [0.75; -0.5]
p=
0.7500
-0.5000
>> zplane(z,p)
>> num = [0 1 0]
num =
0 1 0
>> den = [1 -0.25 -0.375]
den =
1.0000 -0.2500 -0.3750
>> zplane(num,den)
0.8
0.6
0.4
Imaginary Part
0.2
-0.2
-0.4
-0.6
-0.8
-1
-1 -0.5 0 0.5 1
Real Part
We can find the impulse response (or inverse z-transform) of the polynomial based on the
power series expansion method using the “impz” function
>> h = impz(num,den,10)
h=
0
1.0000
0.2500
0.4375
0.2031
0.2148
0.1299
0.1130
0.0770
0.0616
MATLAB can also be used to help fund the partial fraction expansion
Assume you have a polynomial of the form
B z b0 b1 z 1 b2 z 2 bM z M
H z
A z a 0 a1 z 1 a 2 z 2 a N z N
B z R1 R2 R3 Rn
K
A z 1 p1 z 1
1 p2 z 1
1 p3 z 1
1 p n z 1
B z Rz R z Rz R z
1 2 3 n K
A z z p1 z p 2 z p3 z pn
where we can get the residues (coefficients), poles, and direct terms.
z z 1
X z
z 2 0.25 z 0.375 1 0.25 z 1 0.375 z 2
R=
0.8000
-0.8000
P=
0.7500
-0.5000
K=
[]
0.8 z 0.8 z
X z 0
z 0.75 z 0.5
x n 0.8 0.75 0.8 0.5 u n
n n
We can also plot the frequency response of a particular polynomial with freqz
z
For X z we would enter
z 0.25 z 0.375
2
10
Magnitude (dB)
-5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Normalized Frequency ( rad/sample)
0
Phase (degrees)
-50
-100
-150
-200
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Normalized Frequency ( rad/sample)
freqz(num,den,N)
where ‘num’ are the numerator coefficients, ‘den’ are the denominator coefficients, and
‘N’ is the number of points to use in the plot which goes from 0 to . An alternative form
is to use
[H,f] = freqz(num,den,N,Fs)
plot(f, abs(H))
‘num’ and ‘den’ are the same. ‘Fs’ is the sampling frequency. ‘N’ values between 0 and
Fs are calculated. The response data versus frequency are stored in H.
>> num = [0 1 0];
>> den = [1 -0.25 -0.375];
>> [H,f] = freqz(num,den,512,8000);
>> plot(f,abs(H))
2.5
1.5
0.5
0 500 1000 1500 2000 2500 3000 3500 4000