Audio Analysis library for I2S mems microphones
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


This is the base library for the Smart Citizen Kit V2.0 for performing audio analysis.

It's intented to perform audio analysis on a SAMD21 processor of a MEMS I2S microphone output, with the idea of easily expanding it's functionality towards different inputs.

Additionally, the analysis can be performed through a configurable AudioAnalyser, containing a FFT analyser or a FIR (Finite Impulse Response) Filter.


FFT Analysis

  1. Signal windowing through configurable window method (Hann, Blackman, Hamming)
  2. FFT analysis with arm's cortex funtion on q31_t data type
  3. Spectrum calculation and configurable weigthing (A, C or Z)
  4. Custom Spectrum Equalisation (With auto generated parameters in a octave script)
  5. RMS calculation
  6. dB scale convertion

FIR Filtering

  1. Signal downscaling
  2. Signal filtering (by chunks) with arm_fir custom filter including equalisation and weighting
  3. RMS calculation

A-C Weighting functions

There is an octave script in /OCTAVE/WEIGHTING that generates a custom weighting table as specifies in the actual legislation. It outputs a vector containing the corresponding factors to apply in the spectrum, according to the specifies sampling frequency / fft bins.

With kind references to: