%%% tak jo, ted jich udelame 100 ! Nf = 100; Am = zeros(Nf,5); % doufam, ze delka polynomu bude vzdy 5 ! Bm = zeros(Nf,5); % doufam, ze delka polynomu bude vzdy 5 ! % frekvence se budoumenit okolo 1 kHz po cosinusovce od 500Hz do 1500Hz: for n=0:99, cf=1000 + 500 * cos(2 * pi * n / Nf); Wp = [(cf-100)/Fs2 (cf+100)/Fs2]; Ws = [(cf-200)/Fs2 (cf+200)/Fs2]; Rp = 3; Rs = 20; [N, Wn] = ellipord (Wp, Ws, Rp, Rs); [B,A] = ellip(N,Rp,Rs,Wn); Bm(n+1,:) = B; Am(n+1,:) = A; end % zda se ok. %%% filtrovani ramcu, pak znovuslepeni. Nr = size(sr,2) yy = []; % prazdny vystup, budeme lepit. Zf = zeros(1,4); % prazdne pocatecni podminky. for n=1:Nr, Zi = Zf; % minule koncove = nynejsi pocatecni x = sr(:,n); %plot(x); pause; % indexovani filtru pomoci funkce modulo. [y,Zf] = filter(Bm(mod((n-1),100) + 1,:),Am(mod((n-1),100) + 1,:),x,Zi); yy = [yy y']; end % moc hezky :-)