MATLAB Answers

Can matlab give me difference equation from transfer fucntion

303 views (last 30 days)
moonman on 12 Nov 2011
Commented: Ben Le on 4 Feb 2017
Hi My transfer function is H(z)= (1-z(-1)) / (1-3z(-1)+2z(-2))
How can i calculate its difference equation. I have calculated by hand but i want to know the methods of Matlab as well

Accepted Answer

Wayne King
Wayne King on 12 Nov 2011
I think I'm trying to say that you see it right away if you have the Z-transform. Do you have the System Identification Toolbox? You can do:
M = idpoly([1 -3 2],[1 -1],'NoiseVariance',0)
Ben Le
Ben Le on 4 Feb 2017
Hi, If I don't have System Identification Toolbox, how can I do it in Matlab? Thanks.

Sign in to comment.

More Answers (3)

Gert Kruger
Gert Kruger on 29 Jul 2015
Edited: Walter Roberson on 29 Jul 2015
syms z;
H = (1-z^-1) / (1-3*z^-1+2*z^-2);
[N, D] = numden(H);
Nc = eval(coeffs(N)); %Get coeffs and evaluatle symbolic variable, i.e. make real matrix
Dc = eval(coeffs(D));
Nc = Nc./(Dc(1)); %Turn into proper polynomial, first coeffs of a is 1
Dc = Dc./(Dc(1));
M = idpoly(Dc, Nc, 'NoiseVariance',0)

Wayne King
Wayne King on 12 Nov 2011
You have the difference equation:
H(z)= (1-z(-1)) / (1-3z(-1)+2z(-2))
y(n)-3*y(n-1)+2*y(n-2) = x(n)-x(n-1);
zplane([1 -1],[1 -3 2]);
This is not stable, you have a pole outside the unit circle.
  1 Comment
moonman on 12 Nov 2011
And Thanks for telling me abt new command zplane
I used to use pzmap which does not show overlapped poles and zeros but zplane is showing the digits if multiple poles and zeros are there at same place
Great help

Sign in to comment.

moonman on 12 Nov 2011
Thanks king yes i have calculated all this and i know it is unstable systm but i need to know that can matlab give difference equation the way it gives poles and zeros by pole zero command and plots by pzmap


Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!