Documente Academic
Documente Profesional
Documente Cultură
Filtre adaptive
%Exemplul 3.1
%Filtrul adaptiv in configuratia de PREDICTIE
%Utilizarea algoritmului nLMS in separarea adaptiva a unor semnale:
%semnal util de banda ingusta + zgomot de banda larga
close all
clear all
N = length(t_n);
x = [0 d(1:N-1)]; %Semnalul la intrarea filtrului adaptiv
%Comentariu: deoarece zgomotul suprapus peste semnal este de tip
%zgomot alb, este suficienta o intarziere unitara (delta = 1) pentru
%a decorela componentele de zgomot din semnalele d si x!
[y,b,px] = nlms(x,d,b,mu,sigma,alpha,px);
figure
plot(t_n,y), grid %Fig. 3
title('Semnalul la iesirea filtrului, y(n); mu = 0.1')
xlabel('Timp (s)')
ylabel('y(n)')
[H,w]=freqz(b,1,256,fe);
figure
plot(w,abs(H)), grid %Fig. 4
title('Modulul raspunsului in frecventa al filtrului; mu = 0.1')
xlabel('Frecventa (Hz)')
ylabel('Modulul raspunsului in frecventa')
2
[H,w]=freqz(b,1,256,fe);
figure
plot(w,abs(H)), grid %Fig. 6
title('Modulul raspunsului in frecventa al filtrului; mu = 0.01')
xlabel('Frecventa (Hz)')
ylabel('Modulul raspunsului in frecventa')
%Exemplul 3.2
%Filtrul adaptiv in configuratia de SUPRIMARE A INTERFERENTELOR
close all
clear all
3
plot(t_n,d), grid %Fig. 1
title('Semnalul dorit, d(n)')
xlabel('Timp (s)')
ylabel('d(n)')
v1 = 0.5*sin(2*pi*50*t_n + pi);
figure
plot(t_n,v0,'b',t_n,v1,'g'), grid %Fig. 2
title('Semnalele de zgomot, v0(n) si v1(n)')
xlabel('Timp (s)')
ylabel('v0(n), v1(n)')
x = v1;
[y,b,px] = nlms(x,d,b,mu,sigma,alpha,px);
figure
plot(t_n,v0,'b','linewidth',1.5), grid %Fig. 3
hold on
title ('Filtru adaptiv: mu = 0.1')
axis([0 0.3 -3 3])
plot(t_n,v1,'g','linewidth',1.5)
xlabel('Timp (s)')
plot(t_n,y,'r','linewidth',1.5)
legend('v0(n)','v1(n)','y(n)')
legend('Location','NorthWest')
hold off
figure
plot(t_n,v0,'b','linewidth',1.5), grid %Fig. 4
hold on
axis([0 0.3 -3 3])
plot(t_n,v1,'g','linewidth',1.5)
title ('Filtru adaptiv: mu = 0.5')
xlabel('Timp (s)')
4
plot(t_n,y,'r','linewidth',1.5)
legend('v0(n)','v1(n)','y(n)')
legend('Location','NorthWest')
hold off
%Exemplul 3.3
%Filtrul adaptiv in configuratia de IDENTIFICARE A SISTEMELOR
close all
clear all
fe = 1000; Te = 1/fe;
t_n = 0:Te:0.5;
x = randn(size(t_n));
plot(t_n,x), grid %Fig. 1
b1 = ones(1,21)/21;
[H1,w1] = freqz(b1,1,256,fe);
figure
plot(w1,abs(H1)), grid %Fig. 2
y1 = filter(b1,1,x);
d = y1;
5
mu = 0.1; sigma = 1; alpha = 0; L = 30;
%Alegem, deocamdata, ordinul filtrului adaptiv L = 30 (reamintim ca
%sistemul proiectat initial este acum "necunoscut"!)
b = zeros(1,L+1); px=0;
[y,b,px] = nlms(x,d,b,mu,sigma,alpha,px);
[H,w] = freqz(b,1,256,fe);
figure
plot(w1,abs(H1),':b','linewidth',2), grid %Fig. 4
hold on
title ('Identificare de sistem: mu = 0.1')
xlabel('Frecventa (Hz)')
ylabel('Modulul raspunsului in frecventa')
plot(w1,abs(H),'r','linewidth',1.5)
legend('Sistem necunoscut','Filtru adaptiv')
legend('Location','NorthEast')
hold off