dir2par.m

来自「MATLAB及在电子信息课程中的应用,电子工业出版社出版 陈怀琛 吴大正 高西全」· M 代码 · 共 43 行

M
43
字号
%《MATLAB及在电子信息课程中的应用》第七章dir2par子程序
% 直接型到级联型转换
% 电子工业出版社出版  陈怀琛 吴大正 高西全合著 2001年10月初版,2003年7月第二版
%
function [C,B,A] = dir2par(b,a);
% 直接型到并联型的转换
% --------------------------------------
% [C,B,A] = dir2par(b,a)
%  C = 当length(b) >= length(a)时的多项式部分
%  B = 包含各bk的K乘2 阶实系数矩阵
%  A = 包含各ak的K乘3 阶实系数矩阵
%  b = 直接型的分子多项式系数
%  a = 直接型的分母多项式系数
%

M = length(b); N = length(a);

[r1,p1,C] = residuez(b,a);
p = cplxpair(p1,10000000*eps);
I = cplxcomp(p1,p);
r = r1(I);

K = floor(N/2); B = zeros(K,2); A = zeros(K,3);
if K*2 == N; % N 偶数, A(z) 的阶次奇数d, one factor is first order
        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 + -
显示快捷键?