?? dir2cas.m
字號:
function [b0,B,A]=dir2cas(b,a);
%變直接形式為級聯形式
%[b0,B,A]=dir2cas(b,a)
%b0=增益系數
%B=包含各因子系數bk的k行3列矩陣
%A=包含各因子系數ak的k行3列矩陣
%a=直接型分子多項式系數
%b=直接型分母多項式系數
%計算增益系數
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=[b zeros(1,N-M)];
else if M>N
a=[a zeros(1,M-N)];
else
a=a;b=b;
end
end
%級聯型系數矩陣初始化
K=floor(N/2);B=zeros(K,3);A=zeros(K,3);
if K*2==N
b=[b 0];
a=[a 0];
end
%根據多項式系數利用函數roots求出所有的根
%利用函數cplxpair進行按實部從小到大的成對排列
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
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -