传递函数变换问题
怎么把一个高阶的传递函数变成好多二阶项和一阶项相乘的形式? factor ?zpkdata ? 原帖由 dark1203 于 2009-7-8 20:10 发表 http://www.chinavib.com/forum/images/common/back.gif
怎么把一个高阶的传递函数变成好多二阶项和一阶项相乘的形式?
有一个函数可以把传递函数的直接形式变为二阶项和一阶项的串联形式:
function =dir2cas(b,a);
%
b0=b(1); b=b/b0;
a0=a(1); a=a/a0;
b0=b0/a0;
%
M=length(b); N=length(a);
if N>M
b=;
elseif M>N
a=; N=M;
end
%
K=floor(N/2); B=zeros(K,3); A=zeros(K,3);
if K*2==N;
b=;
a=;
end
%
broots=cplxpair(roots(b));
aroots=cplxpair(roots(a));
for i=1:2:2*K
Brow=broots(i:1:i+1,:);
Brow=real(poly(Brow));
B(fix(i+1)/2,:)=Brow;
Arow=aroots(i:1:i+1,:);
Arow=real(poly(Arow));
A(fix(i+1)/2,:)=Arow;
end
回复 板凳 songzy41 的帖子
我需要的是让MATLAB显示结果的时候就直接能显示出来一阶二阶串联的形式,是不是可以在设置里面改的? 我知道了直接打zpk(G)就可以了
页:
[1]