Bonjour et merci d'avance,
Dans le cadre d'un TP à distance en traitement de signal, je dois répondre aux questions suivantes :
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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, 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.
Merci pour votre temps et votre compréhension.
Partager