filt.m

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

M
35
字号
% filter operation using Direct-I implementation
function [y,Ziy]=filt(b,a,x,Ziy,Zix)
% 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)];
%	first=b*xx';
	y(k)=b*xx'-aa*Ziy';
	Ziy=[y(k) Ziy(1:lena-2)];
end;

	

⌨️ 快捷键说明

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