Bonjour et merci d'avance,
Dans le cadre d'un TP à distance en traitement de signal, je dois répondre aux questions suivantes : Pièce jointe 581024Pièce jointe 581027
N'ayant pas très bien compris le concept de transformée de fourier discrète, je me suis dirigé sur internet afin de trouver des exemples de codes, voici ainsi mon programme matlab :
Cependant, j'ai bien l'impression que ce code n'affiche que le "pic" en f0 mais pas celui en -f0 :Pièce jointe 581028 , ainsi, n'ayant que partiellement compris la partie "transformée de fourier" je me demandais ce qu'il me fallait modifier pour afficher tous les modules.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 clear all; A = [1,1,1,2,1,1,1,1]; F0 = [200,200,200,200,400,1000,1800,2200]; N = [1024,2048,2048,2048,2048,2048,2048,2048]; Fe = [1000,1000,2000,2000,2000,2000,2000,2000]; for i = 1:5 t = 0:1/Fe(i):1; subplot(2,3,i); x = A(i)*cos(2*pi*F0(i)*t+pi/4); plot(t,x); xlabel("Temps (s)"); ylabel("Amplitude"); axis([0 0.05 -1 1 ]); Y = fft(x); %calcul de la transformee de fourirer discrete P2 = abs(Y/N(i)); P1 = P2(1:N(i)/2+1); P1(2:end-1) = 2*P1(2:end-1); f = Fe(i)*(0:(N(i)/2))/N(i); plot(f,P1) title('Single-Sided Amplitude Spectrum of S(t)') xlabel('f (Hz)') ylabel('|P1(f)|') axis([-300 300 -0.2 1 ]); endfor end
Merci pour votre temps et votre compréhension.