Mam plik WAV i chciałem uzyskać tablicę częstotliwości w czasie. za uzyskanie, próbowałem STFT w Matlabie.
[s f t]= spectrogram(x,window,overlap,N,FS);
figure(1)
imagesc(t,f,log10(abs(s)));
[X,Y]=meshgrid(t,f);
Z=log10(abs(s));
mesh(X,Y,Z);
Mam obraz, który chciałem. Ale nie wiem, co oznaczają słowa {s, f t, X, Y i Z}. Czego potrzebuję do uzyskania tablicy częstotliwościowo-czasowej.
Odpowiedzi:
0 dla odpowiedzi № 1Z dokumentacji MATLAB:
[S, F, T] = spektrogram (...) zwraca wektor częstotliwości, F i a wektor czasów, T, w którym obliczany jest spektrogram.
S, F i T są dokładnie tym, czego potrzebujesz. Zmienna T zawiera czas, w którym plik WAV zawiera częstotliwości F z odpowiednim STFT w zmiennej S. W skali logarytmicznej (dla prawdopodobnie lepszej widoczności zawartości częstotliwości), obliczysz Z=log10(abs(s));
.
X i Y są używane do utworzenia wykresu siatki, ale jeśli chcesz wiedzieć: zawierają T i F w postaci macierzy z T w każdym rzędzie X i F w każdej kolumnie Y.