% IIRTPC generiert IIR-Tiefpass Koeffizienten für geradzahlige Ordnung % [b,a] = iirtpc(fa,fg,Q,N) % % fa : Abtastfrequenz [Hz] % fg : Grenzfrequenz [Hz] fg <= fa/2 % Q : Polgüte (Resonanz) % N : Filterordnung (durch zwei teilbar) % function [b,a] = iirtpc(fa,fg,Q,N) if (rem(N,2) > 0) error('Filterordnung muss z.Zt. noch durch zwei teilbar sein!'); end; sn = sin(2*pi*fg/fa); cs = cos(2*pi*fg/fa); ak = ones(N/2,3); bk = ones(N/2,3); a = 1; b = 1; for n = 1:N/2, Qp = 1/(2*sin(pi*(n-0.5)/N)); alpha = sn/(2*Q*Qp); a0 = 1+alpha; ak(n,2) = -2*cs/a0; ak(n,3) = (1-alpha)/a0; bk(n,1) = 0.5*(1-cs)/a0; bk(n,2) = (1-cs)/a0; bk(n,3) = 0.5*(1-cs)/a0; a = conv(a,ak(n,(1:3))); b = conv(b,bk(n,(1:3))); end;