⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dir2cas.m

📁 原名:数字信号处理基础及MATLAB实现,解压缩密码:lfjk2002@163.com
💻 M
字号:
function [b0,B,A]=dir2cas(b,a)
%将直接型变换为级联型,即求出传输函数的系数
%b0为常数;B级联型传输函数的分子;A级联型传输函数的分母;
%b直接型传输函数的分子;a直接型传输函数的分母

%计算增益系数b0
b0=b(1);b=b/b0;
a0=a(1);a=a/a0;
b0=b0/a0;

%补零,使b和a等长
M=length(b);N=length(a);
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
%用cplxpair函数把这些根以共轭复根对的次序排列,并用poly函数转换成二阶多项式
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 + -