Clear Filters
Clear Filters

FFT within a moving window of an audio signal

44 views (last 30 days)
I have amplitude-time data from a microphone (attached 'Mic Data.mat' file). This is data that was gathered with a sampling rate of 44100Hz, over the period of around 30.01 seconds (resulting in a total of 1323441 samples).
I would like to analyse this time-domain data in the frequency domain, therefore, will require an FFT. However, in order to get an understanding of how the frequency changes over time, I need to analyse the data in smaller frames, for example, every 441 samples (or every 1/10th of a second). This will hopefully produce around 3000 frames of frequency domain plots.
My thought process would be to create a loop, which will create a rectangular window of width 441, whilst padding all other values outside this window to 0. FFT will then be carried out for the samples within the window, producing an amplitude-frequency plot for frames 0-440. The next iteration will then carry out the same process for samples 441-881 etc.
I am struggling to get this down to code. Could anyone please guide me in the right direction?
All help is greatly appreciated.
Thanks in advance.

Accepted Answer

Star Strider
Star Strider on 5 Apr 2018
Use the Signal Processing Toolbox spectrogram (link) function.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!