dir2par.m
来自「%直接型到并联型的转换 % %[C,B,A]=dir2par(b,a) %」· M 代码 · 共 50 行
M
50 行
function [C,B,A]=dir2par(b,a)
%直接型到并联型的转换
%
%[C,B,A]=dir2par(b,a)
%C为当b的长度大于a时的多项式部分
%B为包含各bk的K乘2维实系数矩阵
%A为包含各ak的K乘3维实系数矩阵
%b为直接型分子多项式系数
%a为直接型分母多项式系数
%
M=length(b);
N=length(a);
[rl,p1,C]=residuez(b,a);
%[r,p,k]=residue(b,a)寻求两个多项式B(s)和A(s)之比的部分式展开
%b(s)/a(s)=r(1)/(s-p(1))+r(2)/(s-p(2))+...+r(n)/(s-p(n))+k(s)
p=cplxpair(p1,10000000*eps);
I=cplxcomp(p1,p);
r=rl(I);
%
K=floor(N/2);
B=zeros(K,2);
A=zeros(K,3);
if K*2==N
for i=1:2:N-2
Brow=r(i:1:i+1,:);
Arow=p(i:1:i+1,:);
[Brow,Arow]=residuez(Brow,Arow,[]);
B(fix((i+1)/2),:)=real(Brow');
A(fix((i+1)/2),:)=real(Arow');
end
[Brow,Arow]=residuez(r(N-1),P(n-1),[]);
B(K,:)=[real(Brow') 0];
A(K,:)=[real(Arow') 0];
else
for i=1:2:N-1
Brow=r(i:1:i+1,:);
Arow=p(i:1:i+1,:);
[Brow,Arow]=residuez(Brow,Arow,[]);
B(fix((i+1)/2),:)=real(Brow);
A(fix((i+1)/2),:)=real(Arow);
end
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?