Can matlab give me difference equation from transfer fucntion
93 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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
0 commentaires
Réponse acceptée
Wayne King
le 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)
2 commentaires
Ben Le
le 4 Fév 2017
Hi, If I don't have System Identification Toolbox, how can I do it in Matlab? Thanks.
Plus de réponses (3)
Gert Kruger
le 29 Juil 2015
Modifié(e) : Gert Kruger
le 29 Juil 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)
0 commentaires
Wayne King
le 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.
Voir également
Catégories
En savoir plus sur Stability Analysis dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!