MATLAB Diagramme temps-fréquence graphique de .fichier wav

Je suis en train de travailler sur un projet qui consiste à examiner les changements de hauteur/fréquence au fil du temps avec un fichier wave (je suis nouveau sur MATLAB, mais pas à la programmation). Je suis en mesure de voir le temps-graphe amplitude et de la fréquence-amplitude (après une FFT) graphique, mais comment pourrais-je être en mesure d'isoler la fréquence et de la montrer à chaque point dans le temps?

Code:

filename = '/Users/Username/Sample_1.wav'

[y, fs] = wavread(filename);
y = y(:,1);
dt = 1/fs;
t = 0:dt:(length(y)*dt)-dt;
plot(t,y); xlabel('Seconds'); ylabel('Amplitude');

transformed = fft(y);
mag = abs(transformed);
plot(mag);
Vous dites "comment pourrais-je être en mesure d'isoler la fréquence et de la montrer à chaque point dans le temps?" Il y a quelques bonnes réponses à cela, comme il va, mais il est important de réaliser qu'il n'y a pas une telle chose comme la fréquence instantanée dans le sens que vous souhaitez. En d'autres termes, il n'existe pas de valeur de fréquence unique qui correspond à chaque point dans le temps (ou, au moins, vous ne peut pas dériver que de l'information à partir du moment données du domaine. Si vous pouviez, vous serait violer le principe d'incertitude de Heisenberg).

OriginalL'auteur airplaneman19 | 2013-01-15