FFT within a moving window of an audio signal

43 vues (au cours des 30 derniers jours)
Dong-uk Hyon
Dong-uk Hyon le 5 Avr 2018
Commenté : Star Strider le 6 Avr 2018
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.

Réponse acceptée

Star Strider
Star Strider le 5 Avr 2018
Use the Signal Processing Toolbox spectrogram (link) function.
  2 commentaires
Dong-uk Hyon
Dong-uk Hyon le 6 Avr 2018
THanks!
Star Strider
Star Strider le 6 Avr 2018
As always, my pleasure!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Audio I/O and Waveform Generation dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by