dir2cas.m

来自「FIR滤波器设计」· M 代码 · 共 29 行

M
29
字号
function[C,B,A]=dir2cas(b,a);
b0=b(1);b=b/b0;
a0=a(1);a=a/a0;
C=b0/a0;
M=length(a)-1;N=length(b)-1;

if N>M
    b=[b zeros(1,N-M)];
  
elseif M>N
    a=[a zeros(1,M-N)];N=M;  
else
   NM=0;
end
k=floor(N/2);B=zeros(k,3);A=zeros(k,3);
if k*2==N;
   b=[b 0];
   a=[a 0];
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

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?