首先计算　b0/a0,　(假设　a0　1)　,然　后通过给较短的矢量填零,使矢量　b　和a一样长,这就保证每一个对二阶环节的分子和分　第5章数字滤波器的基本结构　121　母均不为零;接着计算多项式　B(z)和A(z)的复根,用cplxpair　函数把这些根按共轭复根对　的次序排列;然后用　poly　函数把每一对根再转换成二阶分子或分母多项式。　滤波器级联型实现:　function　y=casfiltr(b0,B,A,x);　%　IIR　各FIR　滤波器的级联型的实现　　%　y=casfiltr(b0,B,A,x);　%　y=输出序列　%　b0=级联型的增益系数　%　B=包含各　bk　和K乘3维实系数矩阵　%　A=包含各　ak　的K乘3维实系数矩阵　%　x=输入序列　%　[K,L]=size(B);　N=length(x);　w=zeros(K+1,N);　w(1,:)=x;　for　i=1:1:K　w(i+1,:)=filter(B(i,:),A(i,:),w(i,:));　end　y=b0　∗　w(K+1,:);　级联型转换成直接型:　function　[b,a]=cas2dir(b0,B,A);　%　级联型到直接型的形式转换　　%　[b,a]=cas2dir(b0,B,A)　%　b=直接型的分子多项式系数　%　a=直接型的分母多项式系数　%　b0=增益系数　%　B=包含各　bk　的K乘3维实系数矩阵　%　A=包含各　ak　的K乘3维实系数矩阵　%　[K,L]=size(B);　b=[1];　a=[1];　for　i=1:K　b=conv(b,B(i,:));　a=conv(a,A(i,:));　end　b=b∗b0;　滤波器并联型实现:　function　y=parfiltr(C,B,A,x);　数字信号处理及　MATLAB　实现　122　%　IIR　滤波器的并联型实现　　%　[y]=parfiltr(C,B,A,x);　%　y=输出序列　%C=当M>=N　时(FIR)的多项式部分　%B=包含各　bk　的K乘2维实系数矩阵　%A=包含各　ak　的K乘3维实系数矩阵　%　x=输入序列　%　[K,L]=size(B);　N=length(x);　w=zeros(K+1,N);　w(1,:)=filter(C,1,x);　for　i=1:1:K　w(i+1,:)=fi