
大家好,我用的是STMF411 discovery板子,软件用的是i2S hal库和st的pdm2pcm library,通过i2S总线采集音频数据,st官方给的audio record and playback例子我也看了,我自己也调试了一段时间,现在有几个小疑惑想请教下大家: 1.i2s hal库用户似乎无法直接设定pdm采样率,因为hal库的api似乎是通过用户设定的pcm采样率间接地帮用户设定了pdm采样率。我用定时计数器测定了一下,好像pdm采样率总是用户设定的pcm采样率的64倍,但是这个比例和64有误差(那么decimation factor应该永远是64么?) 2.我设定pcm采样率为48KHz,mic_gain默认,我对pcm数据加了带通滤波器,经过通带之后有这么大的噪音(如下图所示),最大值可以到50多,我觉得噪音太大,而我的应用必须严格控制噪音,我一直怀疑因为我哪里没有设置对导致采集转换之后的pcm数据有错(噪声过大) 3.官方给的例子最后转换好的pcm数据是uint16_t型,我试了一下官方的例子有很多的65535这样的异常数据,我换成了int16_t型结果正常多了,难道官方写错了? 4.在官方给的例子中,数据格式似乎都是LSB,在pdm转pcm的时候似乎总是要高低8位调换顺序,我曾经尝试改成MSB,但是结果就完全不对了,我对此有疑惑。 5.st的pdm2pcm 库比起硬件转换效果如何?假如这个库本身有问题,我可以考虑硬件pdm pcm转换。 |
USB_CDC_HOST 标准库里边USBH_DeAllocate_AllChannel()函数的疑问?
STM32部署机器学习算法硬件至少要使用哪个系列的芯片?
重新配置SCB->VTOR = 0x08010000后,再次复位,程序异常,发现不进tick中断,IIC读数卡死在准备查询循环中。
STM32407 使用串口闲时中断+DMA方式接收最大接收字节是多少
uboot初始化IIC1,跳转到应用程序中后,先读一字节AT24C04的数据,然后初始化IIC1(未复位),再读一字节AT24C04时,有概率一直检测到IIC处于busy状态。
STM32F407的flash读写问题
keil调试阶段无法进行仿真,能进到仿真界面,但是无法执行程序,这个怎么解决?
STM32F4的IO口5V容忍问题
询问STM32F407两种USB可以实现的功能
TOF传感器(VL53L5),无法得到data ready
评分
查看全部评分
hi2s2.Init.Standard = I2S_STANDARD_LSB;
hi2s2.Init.DataFormat = I2S_DATAFORMAT_16B;
hi2s2.Init.AudioFreq = 2*(I2S_AUDIOFREQ_48K);
PDM_FilterHandler.bit_order = PDM_FILTER_BIT_ORDER_LSB;
PDM_FilterHandler.endianness = PDM_FILTER_ENDIANNESS_LE;
PDM_FilterHandler.high_pass_tap =2122358088;
PDM_FilterHandler.out_ptr_channels = 1;
PDM_FilterHandler.in_ptr_channels = 1;
PDM_FilterConfig.output_samples_number = 16;
PDM_FilterConfig.mic_gain = 24;
PDM_FilterConfig.decimation_factor = PDM_FILTER_DEC_FACTOR_64;
PDM_BUFF_SIZE 128
PCM_OUT_SIZE 16
20130807 PDMLib training.pdf
2018-9-29 15:55 上传
点击文件名下载附件
下载积分: ST金币 -1935.87 KB, 下载次数: 14, 下载积分: ST金币 -1
评分
查看全部评分