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

📄 zmapping.m

📁 digital signal processing-MATLAB
💻 M
字号:
function [bz,az] = zmapping(bZ,aZ,Nz,Dz)
%《数字信号处理教程——MATLAB释义与实现》子程序
% 从Z域到z域的频带变换子程序
% 电子工业出版社出版  陈怀琛编著 2004年9月
%
% [bz,az] = zmapping(bZ,aZ,Nz,Dz)
% -------------------------------------------------------
% 实现:
%          b(z)   b(Z)|
%          ---- = ----|     N(z)
%          a(z)   a(Z)|@Z = ----
%                           D(z)
%
%  bz,az = 变换后的滤波器分子分母系数向量
%  bZ,aZ,= 变换前的滤波器分子分母系数向量
%  Nz,Dz = 变换所用的算子的分子分母系数向量
bzord = (length(bZ)-1)*(length(Nz)-1);			% 确定变换后的分子阶数
azord = (length(aZ)-1)*(length(Dz)-1); 		% 确定变换后的分母阶数

bz = zeros(1,bzord+1);				% 分子系数向量初始化为零向量
for k = 0:bzord					% 依次求各多项式乘积结果
    pln = [1];
    for l = 0:k-1  pln = conv(pln,Nz);    end		% 求Nz的k 次乘积
    pld = [1];
    for l = 0:bzord-k-1  pld = conv(pld,Dz);  end	 % 求Dz的bzord-k 次乘积
    bz = bz+bZ(k+1)*conv(pln,pld);			% 求bZ*Nz^k*Dz^(bzord-k) 的累加
end

az = zeros(1,azord+1); 				% 分母系数向量初始化为零向量
for k = 0:azord					% 依次求各多项式乘积结果
    pln = [1];
    for l = 0:k-1  pln = conv(pln,Nz);   end	% 求Nz的k 次乘积
    pld = [1];
    for l = 0:azord-k-1  pld = conv(pld,Dz);  end		% 求Dz的bzord-k 次乘积
    az = az+aZ(k+1)*conv(pln,pld); 		% 求bZ*Nz^k*Dz^(bzord-k) 的累加
end
az1 = az(1); az = az/az1; bz = bz/az1;		% 将分母多项式首项归一化

⌨️ 快捷键说明

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