cancel
Showing results for 
Search instead for 
Did you mean: 

PDM microphone and filter options

tjaekel
Lead

I have compared my platforms using PDM microphones related to PDM to PCM and filtering:

PDM_MIC_comparison.png

Platform 1:
STM32H747 (Portenta H7), with SW PDM2PCM filter (and optional to add post-processing)

Platform 2:
STM32U5A5 with ADF filter (in MCU) or external PCMD3180 chip.

My favorites:

  • STM32U5A5 with ADF: but unfortunately just mono MIC
  • PCMD3180: still room for improvements, e.g. using "channel summing" for +6dB SNR or tweaking the filter
    coefficients

In general: all filters are pretty similar. The major differences are on:

  • the DC offset they have left (STM32U5A ADF needs for sure a HP filter)
  • the harmonics created (distortion): just with a post-filter (e.g. on PDM2PCM) I could improve
  • the noise in high frequency spectrum (above 10KHz): STM32U5A5 ADF is the winner here

Here the result comparison (should be an animated GIF to see the differences):

PDM_Filter_compare_animated.gif

So, my conclusion: if I need a PDM MIC - use the STM32U5A5 ADF (if just one MIC needed), otherwise use external chip (PCMD3180).

1 ACCEPTED SOLUTION

Accepted Solutions
tjaekel
Lead

Remark:
the noise level is really with ambient noise: I tried to block sound pickup by MICs via blocking (shielding). But the MICs are pretty sensitive to pickup still any ambient noise (e.g. the fan running in my laptop, tapping on the table).

So, assume: the best noise level is maybe -65...-70dB. This results in a practical DNR of approx. 70dB

And the different filters have a different characteristics on very high volume (audio signal level/pressure): one can start to clip and "saturate" early (e.g. the STM32U5A5 ADF filter).

View solution in original post

1 REPLY 1
tjaekel
Lead

Remark:
the noise level is really with ambient noise: I tried to block sound pickup by MICs via blocking (shielding). But the MICs are pretty sensitive to pickup still any ambient noise (e.g. the fan running in my laptop, tapping on the table).

So, assume: the best noise level is maybe -65...-70dB. This results in a practical DNR of approx. 70dB

And the different filters have a different characteristics on very high volume (audio signal level/pressure): one can start to clip and "saturate" early (e.g. the STM32U5A5 ADF filter).