filt.m

来自「这是一个用于语音信号处理的工具箱」· M 代码 · 共 47 行

M
47
字号
function [y,Ziy]=filt(b,a,x,Ziy,Zix)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%	by Hu
%
%	1993 ?
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% filter operation using Direct-I implementation
% function y=filt(b,a,x,Ziy,Zix)
% Both Ziy, Zix need reverse

onearray=nargin;

if onearray<3
	error('You must specify cofficients and input');
else
	b=b(:)';
	a=a(:)';
	aa=a(2:length(a));
end;

lena=length(a);

if onearray==3
	Ziy=zeros(1:lena-1);
else
	Ziy=Ziy(:)';
end;

lenb=length(b);

if onearray==5
	xx=[Zix(:)' 0];
else
	xx=zeros(1:lenb);
end;

for k=1:length(x)
	xx=[x(k) xx(1:lenb-1)];
	y(k)=b*xx'-aa*Ziy';
	Ziy=[y(k) Ziy(1:lena-2)];
end;

	

⌨️ 快捷键说明

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