Bir dalga dosyası ile zaman içinde aralık/frekanstaki değişimlere bakmayı içeren bir proje üzerinde çalışıyorum (MATLAB için yeni, ancak programlamada değilim) . Zaman-genlik grafiğini ve frekans genliğini (bir FFT'den sonra) görebiliyorum, fakat frekansı izole edip her noktayı zaman içinde nasıl gösterebilirim?MATLAB - .wav dosyasının zaman-frekans grafiği grafiği
Kod: Eğer Sinyal İşleme Toolbox varsa
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);
"Frekansı nasıl izole edip, her noktada gösterebilirim?" Buraya kadar bazı iyi yanıtlar var, ama istediğiniz anlamda anlık frekans diye bir şey olmadığını fark etmek önemlidir. Diğer bir deyişle, zaman içindeki her bir noktaya benzersiz bir şekilde karşılık gelen bir frekans değeri yoktur (ya da en azından, zaman-alan bilgisinden bu bilgiyi elde edemezsiniz. Eğer yapabilseydiniz, Heisenberg belirsizlik ilkesini ihlal etmiş olursunuz). . –