MOAILin 发表于 2016-8-18 08:57:37

STM32F4采集PDM数字麦克风进行IIR滤波疑问

    大家好!最近项目要求,想用STM32F4采集数字麦克风PDM信号,再通过MATLAB计算IIR滤波参数,但采集的数据,发现波形很杂乱,请问大家有做过这样的项目吗?请多多指教,谢谢!!!

zouzhichao 发表于 2016-8-18 09:20:11

什么叫波形很杂乱?音频信号不就是这样么?

MOAILin 发表于 2016-8-18 11:05:14

zouzhichao 发表于 2016-8-18 09:20
什么叫波形很杂乱?音频信号不就是这样么?

我用STM32F4采集PDM的数据是这样子的
javascript:;
然后经过IIR带通滤波后,和原来的差不多
javascript:;

overheat 发表于 2016-10-3 07:28:50

MOAILin 发表于 2016-8-18 11:05
我用STM32F4采集PDM的数据是这样子的
javascript:;
然后经过IIR带通滤波后,和原来的差不多


PDM信号需要转PCM信号,才好处理。

不过转换的过程需要去掉噪音,ST有提供PDM to PCM的库你试试。

shouqiang_zhang 发表于 2016-10-3 07:50:42

你可以先输入1个标准正弦波信号给数字MIC, 看F4读取的I2S数据串是否正常,一般从I2S数值的变化,你可以大概看出是正弦波数据。
请教下楼主, 你是怎么把F4读到的I2S数据输给MATLAB计算IIR滤波参数的?

shouqiang_zhang 发表于 2016-10-3 07:51:16

你可以先输入1个标准正弦波信号给数字MIC, 看F4读取的I2S数据串是否正常,一般从I2S数值的变化,你可以大概看出是正弦波数据。
请教下楼主, 你是怎么把F4读到的I2S数据输给MATLAB计算IIR滤波参数的?

xml2028 发表于 2024-6-24 16:47:41

楼主,请问有 STM32F4采集数字麦克风PDM信号 的例程吗?可付费求购

neverlic 发表于 2024-6-24 16:52:39

MATLABIIR滤波参数涉及到采样率,楼主考虑过滤波器系数的采样率了没有

Himem 发表于 2024-6-24 16:54:52

本帖最后由 Himem 于 2024-6-24 17:24 编辑

xml2028 发表于 2024-6-24 16:47
楼主,请问有 STM32F4采集数字麦克风PDM信号 的例程吗?可付费求购
(引用自7楼)

STM32F4-Discovery_FW_V1.1.0\Project\Audio_playback_and_record\src\waverecorder.c
直接参考官方评估板的例程就行

大致思路就是spi dma双缓冲拿pdm数据,dma满了送入filter(libPDMFilter_IAR.a 官方库),出pcm


https://www.st.com/resource/zh/user_manual/um2372-stm32cube-pdm2pcm-software-library-for-the-stm32f4f7h7-series-stmicroelectronics.pdf

xml2028 发表于 2024-6-24 18:09:55

Himem 发表于 2024-6-24 16:54
STM32F4-Discovery_FW_V1.1.0\Project\Audio_playback_and_record\src\waverecorder.c
直接参考官方评估 ...
(引用自9楼)

我刚下载了,好多宏定义啊 {:cry:}   我研究一下,好好啃啃哈

Himem 发表于 2024-6-24 19:25:36

本帖最后由 Himem 于 2024-6-24 19:43 编辑

xml2028 发表于 2024-6-24 18:09
我刚下载了,好多宏定义啊    我研究一下,好好啃啃哈
(引用自10楼)

    /* Filter LP & HP Init */
    Filter.LP_HZ = 8000;
    Filter.HP_HZ = 10;
    Filter.Fs = 16000;
    Filter.Out_MicChannels = 1;
    Filter.In_MicChannels = 1;
   
    PDM_Filter_Init((PDMFilter_InitStruct *)&Filter);

....

   PDM_Filter_64_LSB((uint8_t *)InternalBuffer, (uint16_t *)pAudioRecBuf, volume , (PDMFilter_InitStruct *)&Filter);


基本核心就一个初始化配置,一个流式转换

https://github.com/istarc/stm32/blob/master/STM32F4-Discovery_FW_V1.1.0/Project/Audio_playback_and_record/src/waverecorder.c

xml2028 发表于 2024-6-24 23:08:25

Himem 发表于 2024-6-24 19:25
基本核心就一个初始化配置,一个流式转换

https://github.com/istarc/stm32/blob/master/STM32F4-Disc ...
(引用自11楼)

我搞定了联系你,给您发红包,谢谢您的回答
页: [1]
查看完整版本: STM32F4采集PDM数字麦克风进行IIR滤波疑问