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

📄 f_minall.asv

📁 DSP程序 Matlab是一套用于科学工程计算的可视化高性能语言与软件环境。它集数值分析、矩阵运算、信号处理和图形显示于一体
💻 ASV
字号:
function [B_min,A_min,B_all,A_all] = f_minall (b,a)

%F_MINALL: Factor filter into minimum-phase and allpass parts
%
% Usage: [B_min,A_min,B_all,A_all] = f_minall (b,a)
%        
% Inputs: 
%         b   = vector of length m+1 containing coefficients 
%               of numerator polynomial.
%         a   = vector of length n+1 containing coefficients
%               of denominator polynomial (n >= m).
% Outputs: 
%          B_min = (q+1) by 1 vector containing numerator 
%                  coefficients of minimum-phase part  
%          A_min = (r+1) by 1 vector containing denominator
%                  coefficients of minimum-phase part  
%          B_all = (s+1) by 1 vector containing numerator 
%                  coefficients of allpass part  
%          A_all = (s+1) by 1 vector containing denominator
%                  coefficients of allpass part  
%
% See also:
%           F_PZPLOT

% Initialize

b0 = b(1);
z = roots(b)
m = length(z);
B_all = 1
A_all = 1
B_min = f_torow(b)
A_min = f_torow(a)

% Decompose into minimum-phase and allpass parts

for i = 1 : m
   if abs(z(i)) > 1
      Fb = [-z(i) 1];
      Fa = [1 -z(i)];
      [B_min,R] = deconv (B_min,Fa);
      B_min = conv (B_min,Fb);
      B_all = conv (B_all,Fa);
      A_all = conv (A_all,Fb);
   end
end

% Finalize

B_all = B_all/A_all(1);
A_all = A_all/A_all(1);
  

⌨️ 快捷键说明

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