信息科学与工程学院 数字信号处理实验报告
实验代码: 主程序 clc;
b1=[16 12 2 -4 -1]; a1=[1 -3 11 27 18]; b2=[3 8 12 7 2 -2]; a2=[16 24 24 14 5 1]; b3=[2 10 23 34 31 16 4]; a3=[36 78 87 59 26 7 1]; [sos1,G1]=tf2sos(b1,a1); [sos2,G2]=tf2sos(b2,a2); [sos3,G3]=tf2sos(b3,a3); [C1,B1,A1]=tf2par(b1,a1); [C2,B2,A2]=tf2par(b2,a2); [C3,B3,A3]=tf2par(b3,a3);
信息科学与工程学院 数字信号处理实验报告
tf2par函数:
function [C,B,A]=tf2par(b,a) %直接型向并联型转换 M=length(b);N=length(a);
[r1,p1,C]=residuez(b,a);%先求系统的单根p1,对应的留数r1及直接项C
p=cplxpair(p1,0.000000001);%先配对函数cplxpair由p1找共轭复根p,le-9的误差 I=cplxcomp(p1,p);%找p1变为p的排序变化 r=r1(I);
%变为2阶子系统
K=floor(N/2);B=zeros(K,2);A=zeros(K,3); if K*2==N; for i=1:2:N-2
pi=p(i:i+1,:);%取出一对极点 ri=r(i:i+1,:);%取出一对对应留数 [Bi,Ai]=residuez(ri,pi,[]); B(fix((i+1)/2),:)=real(Bi); A(fix((i+1)/2),:)=real(Ai); end;
[Bi,Ai]=residuez(r(N-1),p(N-1),[]);%处理单根 B(K,:)=[real(Bi) 0];A(K,:)=[real(Ai) 0]; else
for i=1:2:N-1
信息科学与工程学院 数字信号处理实验报告
pi=p(i:i+1,:); ri=r(i:i+1,:);
[Bi,Ai]=residuez(ri,pi,[]); B(fix((i+1)/2),:)=real(Bi); A(fix((i+1)/2),:)=real(Ai); end; end;
cplxcomp函数: function I=cplxcomp(p1,p2) I=[];
for j=1:length(p2) for i=1:length(p1)
if (abs(p1(i)-p2(j))<0.0001) I=[I,i]; end; end; end; I=I'; 实验结果: sos1 =
1.0000 -3.0000 2.0000 1.0000 0.0000 9.0000 1.0000 -0.2500 1.0000 1.0000 -0.1250 0.5000
信息科学与工程学院 数字信号处理实验报告
G1 = 0.0625 sos2 =
1.0000 -0.3333 0 1.0000 0.5000 0 1.0000 2.0000 2.0000 1.0000 0.5000 0.2500 1.0000 1.0000 1.0000 1.0000 0.5000 0.5000 G2 = 0.1875 sos3 =
1.0000 3.0000 1.0000 1.0000 1.0000 1.0000 G3 =0.0556 C1 = -18 B1 =
-10.0500 -3.9500 28.1125 -13.3625 A1 =
1.0000 1.0000 1.0000 -0.2500 C2 = -2 B2 =
-0.8438 -1.0313
2.0000 2.0000 0.5000 0.5000 -0.1250 1.0000 0.5000 1.0000 1.0000 1.0000 0.6667 0.2500 0.3333 0.3333
相关推荐: