Professional Documents
Culture Documents
d'informatique
Programme Matlab
echo on
% On commence par générer un axe des temps de 1024 points avec Te=1/256 ms
% Ensuite on génère un axe des fréquences de 512 points qui couvre les
% fréquences allant de 0 à 128 kHz, soit la moitié de fe=1/Te, et on génère
% deux sinus de périodes 1 ms.
t=1/256*(0:1023); % On exprimera Te en ms
f=256/1024*(0:511); % 0-511=0-128 kHz (partie positive du spectre)
s1=sin(2*pi*t);
s2=s1;
subplot(111);
plot(t,s1), axis([0 4 -1 1]), title('signal de base'), xlabel('t (ms)');
pause % Peser sur une clé
% Le filtre passe bas qui suit élimine toutes les fréquences supérieures à
% |ωc|=(100/1024)*256 kHz ≈ 25 kHz (l’intervalle d’indices allant de
% 100 à 924 joue sur le fait que le spectre de Fourier d’un signal à temps
% échantillonné réel est symétrique et périodique)
for k=100:924
PHI1(k)=0;
PHI2(k)=0;
end;
SPHI1=PHI1.*conj(PHI1)/1024;
SPHI2=PHI2.*conj(PHI2)/1024;
phi1=2*ifft(PHI1);
subplot(211), plot(f,SPHI1(1:512)), axis([0 128 0 max(SPHI1)]),
title('Spectre d''Énergie filtré');
subplot(212), plot(t,real(phi1)), axis([0 4 0.5 1]), title('signal phi1
correspondant');
pause
phi2=2*ifft(PHI2);
subplot(211), plot(f,SPHI1(1:512)), axis([0 128 0 max(SPHI2)]),
title('Spectre d''Énergie filtré');
subplot(212), plot(t,real(phi2)), axis([0 4 -1 0.5]), title('signal phi2
correspondant');
pause