打印
[STM32L4]

STM32L4的DFSDM外设采集PDM数字MIC后的数据

[复制链接]
1093|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
stormwind123|  楼主 | 2024-8-30 15:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在采集48KHZ 16bit 2CH的MIC数据时。在配置DFSDM外设时。输入MIC的时钟3.072Mhz,滤波器阶数sinc4,过采样率64,积分器1,右移位1,此时DFSDM的滤波器输出24bit的原始数据(PCM)。

在线debug的方式查看内存中的值,
疑问一:在普通环境下也会有一些值,基本不变,这些值是否理解为噪声?将这些采样数据通过UAC发到PC端播放也全是噪声
疑问二:在MIC附近播放音乐,查看内存中的数据,最高的4bit基本不会变动?
疑问三:DFSDM采样后滤波器的数据是否还要通过软件算法处理,还是直接就能使用的数据?

使用过的各位大侠给点参考和思路。

使用特权

评论回复
沙发
公羊子丹| | 2025-4-4 07:54 | 只看该作者
DFSDM采样后的数据一般是原始PCM数据,但可能需要后处理,比如高通滤波去直流偏移,不然可能会出现类似噪声的现象。你播放到PC端的是不是没有做直流滤波?

使用特权

评论回复
板凳
周半梅| | 2025-4-4 07:55 | 只看该作者
PDM转PCM的过程本身就会带来一些噪声,特别是低信噪比的麦克风或者不理想的时钟源,建议检查一下MIC的供电和PCB布局,有没有受到干扰。

使用特权

评论回复
地板
帛灿灿| | 2025-4-4 07:56 | 只看该作者
你播放音乐后数据高4bit不变,可能是增益不够或者信号太小,可以试试调整DFSDM的右移位参数,看看是否影响动态范围。

使用特权

评论回复
5
童雨竹| | 2025-4-4 07:57 | 只看该作者
你试过改变MIC的增益或音量吗?如果音量太小,可能数据一直被截断到低位,导致最高4bit几乎不变。

使用特权

评论回复
6
万图| | 2025-4-4 07:58 | 只看该作者
通常DFSDM出来的PCM数据需要经过至少一个IIR高通滤波器(HPF)去除直流分量,否则噪声会很明显,你可以尝试加上去直流的算法。

使用特权

评论回复
7
Wordsworth| | 2025-4-4 07:59 | 只看该作者
你用的是哪款PDM MIC?不同型号的MIC底噪和增益不一样,如果底噪高的话,即使没声音也会有固定的输出值。

使用特权

评论回复
8
Bblythe| | 2025-4-4 08:00 | 只看该作者
DFSDM的滤波器配置会影响音频质量,SINC4+64倍过采样是常见的,但你可以尝试SINC3或者调整过采样率,看看效果是否改善。

使用特权

评论回复
9
Pulitzer| | 2025-4-4 08:01 | 只看该作者
你用的DFSDM时钟是3.072MHz,采样率48kHz,过采样率64,这个配置是合理的。但如果发现噪声太大,可以尝试降低时钟或者增大过采样率看看。

使用特权

评论回复
10
Uriah| | 2025-4-4 08:03 | 只看该作者
你在PC端播放时,是否正确处理了数据格式?比如16bit和24bit的数据格式不同,错误的格式可能会导致听起来是噪声。

使用特权

评论回复
11
Clyde011| | 2025-4-4 08:04 | 只看该作者
你可以先用静态数据(比如纯0或简单的正弦波)测试看看DFSDM的数据输出是否稳定,这样可以排除硬件或者配置的问题。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

503

主题

2928

帖子

3

粉丝