Sie sind auf Seite 1von 3

///// TP3 //////

clc
clear all
close all

Te = 1/ 1000;
t = -20:Te:20;
Fe = 1000;
f = linspace(-Fe/2,Fe/2,length(t));
f1 = 5;
f2 = 20;
f3 = 35;
xt1 = sin(2*pi*f1*t);
xt2 = sin(2*pi*f2*t);
xt3 = sin(2*pi*f3*t);
xt = xt1 + xt2 + xt3;

figure(1)
plot(t,xt,'b',t,xt1,'r:',t,xt2,'m:',t,xt3,'k:')
grid
axis([0 0.2 -3 3])
title('signal x(t) et sa décomposition en série de Fourier')
xlabel('Temps t')
ylabel('Amplitude')
legend('xt = xt1 + xt2 + xt3', 'xt1 = sin(2*pi*f1*t)', 'xt2 = sin(2*pi*f2*t)','xt3
= sin(2*pi*f3*t)')

%%%%% définitions préalables


ordre = 16;
Fc = 20;
BP = 20;
Wn = [2*pi*(Fc-(BP/2)) 2*pi*(Fc+(BP/2))];

%%% creation de filtre chebishef


[B A] = cheby1(ordre/2,0.5,Wn,'bandpass','s');
%[B A] = butter(ordre/2,0.5,Wn,'bandpass','s');
w = 2*pi*f;
Hf = freqs(B,A,w);

% représentation graphique du filtre analogique obtenu

figure(2)
plot(f,abs(Hf))
grid
title('Représentation fréquentiel d''un filtre de chebyshef analogique de type I')
xlabel('Fréquence f')
ylabel('Amplitude')
legend('ordre 8', 'Filtre centre sur la fréquence Fc = 20Hz', 'largeur de bande
20Hz' )

Xf = fftshift(abs(fft(xt))*Te); % Xf = fft(xt)*Te
Yf = Hf.*Xf;
yt = abs((ifft(Yf)/Te));
figure(3)
plot(t,xt2,t,yt,'r')
axis([0 0.2 -1.25 1.25])
grid
title('Réprésentation temporelle du signal y(t) = h(t) * x(t)')
xlabel('Temps t')
ylabel('Amplitude')
legend('x(t)','y(t) obtenu apres','filtrage chebyshef', 'caractère précédement')

figure(4)
plot(f,Xf,'b')
figure(5)
plot(f,abs(Yf),'r')
axis([0 40 0 30])

////////////////////////////////////////////////////
////////// TP2 /////////////////////////////////////

clc
clear all
close all

n=500; %constante à estimer


bruit=rand(n,1);
a = 5;
y=a+bruit;

%a(k+1)=a(k) a(k)=x(k)
%y(k)=a(k)+bruit(k)
%x(k+1)=AK*x(k)+Bk*u(k)+GAMMA*xi(k) eta=bruit
%y(k)=Ck*x(k)+Dk*u(k)+eta eta=bruit

A=1;
B=0;
C=1;
D=0;
GAMMA=0;

xkm1km1 = -8;
pkm1km1 = 100;
R = var(bruit);
Vx = [];
for i=1:n
pkkm1 = A*pkm1km1*A';
gk = pkkm1*inv(C*pkkm1*C'+R);
pkk = (1-C*gk)*pkkm1;
xkkm1 = A*xkm1km1;
xkk = xkkm1 + gk*(y(i)-C*xkkm1);
Vx = [Vx xkk];
pkm1km1 = pkk;
xkm1km1 = xkk;
end

figure(1)
plot(y,'r')
hold on
plot(Vx)

//////////////////////////////////////////////////////
///////////// TP1 /////////////////////////////////

clc
clear all
close all
%%% générer un signal%%%
t = 0:0.001:.25;
f1 = 50;
f2 = 120;
s1 = sin(2*pi*f1*t);
s2 = sin(2*pi*f2*t);

s = s1 + s2;
figure

plot(t,s)
title('signal sinusoidale s=s1+s2');
xlabel('temps en ms');
ylabel('valeur de sinus');

%%% génération d'un bruit %%%


b = 1*rand(size(t));
figure
plot(t,b),title('bruit')

%%% filtrage d'un signal bruité %%%

y = s + b;
figure
plot(t,y),title('signal bruité')

%%% calcul de Filtre de Wiener %%%

Pyy = abs(fft(s)).^2;
Pbb = abs(fft(b)).^2;

H = Pyy ./ (Pyy+Pbb);

y_fft = H .* (fft(y));

y_ifft = ifft(y_fft);

y1 = y - y_ifft;

figure()
plot(t,y_ifft)
hold on
plot(t,y,'r')
hold on
plot(t,y1,'g')

Das könnte Ihnen auch gefallen