Bonjour à tous !
Je suis nouvelles sur ce site.
Je dois mesurer les Fréquences de différents jouets sonores (cloches, Triangle, …).
Je dois donc faire un petit programme me permettant d’importer un signal sonore (le fichier wav enregistré) et calculer la FFT de ce signal.
Je pense que j’y arrive avec le code ci-dessous.
ça marche pour des sons purs comme des sinus (400 Hz) ou Sinus (2000 Hz).
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
29
30
31
32
33
34
35
36
37 % UIGETFILE Standard open file dialog box [filename,pathname] = uigetfile('*.wav' ,'wav OPEN') ; if filename ~= 0 % Ouvrire le fichier à lire file_name = [pathname filename] ; % Sampling rate of signal (22050) [y Fs] = wavread(file_name) ; t = [1/Fs:1/Fs:length(y)/Fs] ; % Affichage du signal enregistré subplot(2,1,1) ; plot(t,y) ; axis([0 0.005 -1.5 1.5]) xlabel('Time [s]') ; ylabel('Amplitude') ; subplot(2,1,2) ; % calcul de la FFT en utilisant FFT Matlab Y = fft(y, 512); Pyy = Y.* conj(Y)/512; dBPyy = 10*log10(Pyy/max(Pyy)) ; % Affichage de la FFT du signal enregistré N = 512; f=Fs/N.*(0:N-1); semilogx(f,dBPyy) ; title('Sons Cloche') ; xlabel('Frequency [Hz]') ; ylabel('Power Spectrum dB[W]') ; axis([10 Fs/2 min(dBPyy) max(dBPyy )+10]) ; grid on ; end
Cependant, j’aimerai afficher les différentes fréquences des jouets sonores (ces sons contiennent aussi des harmoniques !) comme 450 Hz ou 1189 Hz etc … Comment puis je faire ?
Merci d’avance pour votre aide.
Lina
Partager