FYI, I grafted the ST Micro PDM library that Ronan Paixão found into my Codec2 Cortex-M4 test code.
The library seems to consume about 28uS or 33uS of CPU for every 1mS of audio input, for 64x or 80x decimation respectively. So, it adds about 0.5 to 0.7 mS per 20mS audio frame, or about 10% extra above the 256-element length FFT Codec2 routine. The clarity is better than my previous makeshift PDM to LPCM conversion routine, but the microphone still has lots of wideband noise. This really dilutes the Codec2 results. Some sort of DNR might help. Just for posterity (or for someone else attempting to use ST's PDM library): The ST PDM library operates on 1 mS worth of audio, and decimates the PDM stream by either by 64 or 80 times. What this means is that the minimum possible LPCM rate out is 16kHz (twice the Codec2 rate). This is forced by the MP45DT02 datasheet, which indicates a minimum clock rate of 1 MHz is required. However, since the library has a configurable low-pass frequency, one can then down-sample to 8kHz before routing the audio to the codec. There is a MicGain (or Volume... the ST documentation waffles) parameter. 0 appears to be mute. The higher the value, the louder the audio, but the louder the noise too. Although the parameter can go up to 64 in principle, I found anything more than 3-4 just made the codec results very distorted. At 1-4, one has to speak very loudly directly into the microphone; the results seem intelligible, but still nowhere near as clear as the HTS samples. Also, note that although the AN3998 documentation indicates on page 7 that PDMFilter_InitStruct only has an Out_MicChannels member, it actually has both an In_MicChannels and Out_MicChannels member. Both need to be set to valid values for the library to work. 2011/11/7 Ronan Paixão <[email protected]>: > For the record, there is an Application Note about PDM in ST's STM32F4 page: > AN3998: PDM audio software decoding on STM32 microcontrollers (pdf) > This is exactly about the MEMs mic on the STM32F4 Discovery board and how to > convert it to 16-bit PCM. From the introduction: ------------------------------------------------------------------------------ RSA(R) Conference 2012 Save $700 by Nov 18 Register now http://p.sf.net/sfu/rsa-sfdev2dev1 _______________________________________________ Freetel-codec2 mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/freetel-codec2
