Doing a fft on a audio file

75 views (last 30 days)
Jack Walker
Jack Walker on 7 Oct 2016
Answered: Bert on 7 Oct 2016
Hello, dear community! Really would appreciate a solution to my problem. i want to do a fft on a audio file, which duration last about 10 seconds. My goal is to make a fft on each seconds (1-10) and make it visible in a frequency- and time domain. So i can see, what happened in the last seconds and see the changes. Concerning the audio file, I used the program audacity, in which i took a song and cut out 10 seconds. Btw i am more or less a newbie on matlab programming, because i still lack the experiences. (i am only 16)
Here my code
Pretty sure, i need to do more, but i don't know how to go on. The code provided here, is only my structure, which i want to extend.
%wavread = reads WAV-file
%y = samples
%fs = sampling frequency
%'UnchainMyHeart' = WAV-file
%linspace = creating time vector
%0= start time
%length(y)/fs = end time
%length(y) = number of samples in y
%Nfft = length of fft
%f =creating frequency vector
%0 = start time
%fs = End time
%Nfft = Length of the frequency vector
%G = the fft of the samples y in 1024 points
figure ; plot(f(1:Nfft/2),X(1:Nfft/2))

Answers (1)

Bert on 7 Oct 2016
you should have a look at the function "spectrogram" ( ), which does exactly what you're trying to implement.
good luck!

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!