Bonjour;
Je travaille sur la détection du pitch avec cepstre. L'execution de mon code donne un résultat avec certain sons (.wav) mais affiche un message d'erreur pour d'autres codes. J'ai remarqué que cela est du au fait que la fenêtre de Hamming que j'ai appliqué s'étend sur tout le signal. La solution, à mes connaissances, est d'appliquer une fenêtre glissante qui parcourt tout le signal. Mon problème c'est que j'ai pas pu coder cela. Si qq1 peut m'aider je serai très reconnaissante.
l'erreur qui s'affiche pour certains signaux est
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 [sound,fs]= wavread('Sound.wav'); Y=fft(sound.*hamming(length(sound))); nbrlimite=4000*length(Y)/fs; %f est l'intervale choisi pour afficher le spectre f=(0:nbrlimite)*fs/length(Y); C=fft(log(abs(Y)+eps)); q=(borne1:borne2)/fs; %borne de l'affichage entre 1 et 20 ms plot(q,abs(C(borne1:borne2)));
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 ??? Error using ==> times Matrix dimensions must agree. Error in ==> PitchDetection>ComboBox1_Callback at 133 Y=fft(sound.*hamming(length(sound))); Error in ==> gui_mainfcn at 75 feval(varargin{:}); Error in ==> PitchDetection at 47 gui_mainfcn(gui_State, varargin{:}); ??? Error while evaluating uicontrol Callback.
Partager