STM32F4采集PDM数字麦克风进行IIR滤波疑问
大家好!最近项目要求,想用STM32F4采集数字麦克风PDM信号,再通过MATLAB计算IIR滤波参数,但采集的数据,发现波形很杂乱,请问大家有做过这样的项目吗?请多多指教,谢谢!!! 什么叫波形很杂乱?音频信号不就是这样么? zouzhichao 发表于 2016-8-18 09:20什么叫波形很杂乱?音频信号不就是这样么?
我用STM32F4采集PDM的数据是这样子的
javascript:;
然后经过IIR带通滤波后,和原来的差不多
javascript:; MOAILin 发表于 2016-8-18 11:05
我用STM32F4采集PDM的数据是这样子的
javascript:;
然后经过IIR带通滤波后,和原来的差不多
PDM信号需要转PCM信号,才好处理。
不过转换的过程需要去掉噪音,ST有提供PDM to PCM的库你试试。 你可以先输入1个标准正弦波信号给数字MIC, 看F4读取的I2S数据串是否正常,一般从I2S数值的变化,你可以大概看出是正弦波数据。
请教下楼主, 你是怎么把F4读到的I2S数据输给MATLAB计算IIR滤波参数的? 你可以先输入1个标准正弦波信号给数字MIC, 看F4读取的I2S数据串是否正常,一般从I2S数值的变化,你可以大概看出是正弦波数据。
请教下楼主, 你是怎么把F4读到的I2S数据输给MATLAB计算IIR滤波参数的? 楼主,请问有 STM32F4采集数字麦克风PDM信号 的例程吗?可付费求购
MATLABIIR滤波参数涉及到采样率,楼主考虑过滤波器系数的采样率了没有 本帖最后由 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 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: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 Himem 发表于 2024-6-24 19:25
基本核心就一个初始化配置,一个流式转换
https://github.com/istarc/stm32/blob/master/STM32F4-Disc ...
(引用自11楼)
我搞定了联系你,给您发红包,谢谢您的回答
页:
[1]