rand('twister',sum(100*clock)) %inicializace generatoru pseudonahodnych posloupnosti ni = rand(1,10000)-0.5; %excitacni sekvence AR procesu a = [1 1.745 0.8745]; b = 1; %koeficienty AR(2) procesu x = filter(b,a,ni); x=x(:); %nahodny signal generovany AR(2) procesem alfa = 0.050; % konvergencni konstanta LMS algoritmu L = 4000; % preddefinovany pocet iteraci N = 2; % rad predikcniho FIR filtru w = zeros(N,L); % vahy se budou uchovavat ve sloupcovych vektorech xp = zeros(1,L); e = zeros(1,L); w(:,N) = 5*(rand(N,1)-0.5); % pocatecni podminky w(:,N+1) = w(:,N); % pocatecni podminky for n = N+1:L-1 xp(n) = - w(:,n)'*x(n-1:-1:n-N); % predikce pomoci vzorku zpozdeneho signalu e(n) = x(n) - xp(n); % chyba predikce w(:,n+1) = w(:,n) - alfa*e(n)*x(n-1:-1:n-N); % uprava vah end figure; plot(w(:,N:end)'); xlabel('n'); ylabel('w'); title(['alfa=' num2str(alfa)]); figure; plot(x,'k'); hold on plot(xp,'m:'); legend({'x','xp'}); xlabel('n'); ylabel('x,xp'); figure; plot(e,'r'); xlabel('n'); ylabel('e');