我正在研究一個項目,該項目涉及隨着時間的推移使用wave文件查看音高/頻率的變化(我是MATLAB新手,但不是編程) 。我能夠看到時間幅度圖和頻率幅度(FFT後)圖,但是我將如何能夠隔離頻率並在每個時間點顯示它?MATLAB - .wav文件的繪圖時間頻率圖
代碼:
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);
你說「我將如何隔離頻率並在每個時間點顯示它?」就這一點而言,這有一些很好的答案,但重要的是要認識到,根本不需要瞬時頻率這樣的事情。換句話說,沒有唯一對應於每個時間點的頻率值(或者至少不能從時域數據導出信息,如果可以的話,你會違反海森堡不確定性原理) 。 –