0
votes

I'm trying to input this transfer function in matlab, but I can't figure out how because it has both positive and negative exponents.

enter image description here

If I do H = tf([1],[1 1 1 1],0.1,'variable','z^-1') I almost get it, but I can't figure out how to add the positive z to the bottom. I'm trying to use this H to plot the poles and zeros with pzmap(H).

3
I've never used tf before, but can't you simplify your transfer function and use H(z) = 1 / (z^-1 + 1 + z^-2 + z^-3 + z^-4) instead?Prakhar
Yeah I should probably do that, I multiplied by Z because I'm new to the z-transform and thought I needed to do that to get the Zero in the numerator by setting Z = 0 along with getting the poles.Austin

3 Answers

1
votes

To avoid negative exponents, we can multiply both the denominator and the numerator by z^3:

H = tf([1 0 0 0 0],[1 1 1 1 1],0.1,'variable','z')

Or divide its by z

H = tf([1],[1 1 1 1 1],0.1,'variable','z^-1')
0
votes

You can create

z = tf('z', 0.1)

and then create any transfer function you want, e.g.

H = z / (1 + z + z^-1 + z^-2 + z^-3)

However, Matlab automatically adds additional pole-zero pairs at z=0, to make the transfer function H contain only z and no z^-1. Therefore, you will see multiple poles at z=0 instead of only one. Unfortunately I haven't found a solution to stop Matlab from doing that...

0
votes

What you refer to as a transfer function is actually called DSP representation due to their implementation properties. In that every power of z is a unit delay. Hence, you have to use the filt. In this representation z terms should have nonpositive powers hence if you factor out one z from the denominator and cancel out you get

H = filt(1,[1,1,1,1,1])