STM32 微控制器上的 PDM 音频软件解码* r1 v% G! x) `; Q 1 b" ]2 I& s; `8 K+ N, [- s 1 简介 ' y8 x& E9 Y3 x 本应用笔记以 ST MP45DT02 MEMS 麦克风与 STM32 微控制器的连接为例,介绍了 PDM信号解码和音频信号重建时使用的软件优化算法和架构。该软件可直接采集麦克风输出的脉冲密度调制 (PDM) 数据,并将其转换为 16 位脉冲编码调制 (PCM) 格式。 + A# K/ \9 s* p; c 本文档还提供了快速入门信息,介绍如何通过基于 STM32F4 微控制器和 STM32F4DISCOVERY板的 I2S 对 PDM 库进行单麦克风采集。 0 @4 }* d$ i4 ~/ o+ S 有关这一过程的详细信息,请参见 AN3997 使用 STM32F4DISCOVERY 进行音频回放和录音。4 m( r- i; Y* _1 [* s 2 PDM 信号简介 脉冲密度调制 (PDM) 是一种用于表示数字域中的模拟信号的调制形式。 g5 _( q8 [! S. T 在 PDM 信号中,不会像在 PCM 中一样将具体的幅值编码到脉冲中。而是对与模拟信号幅值相应的、一系列脉冲的相对密度进行编码。 / d& g! J L _0 H. C% E, k 要从 PDM 比特流中获取数据帧,通常使用采样滤波器。采样过程第一阶段要降低采样频率,然后使用高通滤波器去除信号直流偏移。/ q- Q | `! z h $ ]' E$ s3 U9 v9 l( V& j- `7 o 3 硬件接口:麦克风连接和采集 " `8 [0 z, s. w MP45DT02 MEMS 麦克风会输出一个 PDM 信号,该信号具有高频(1 到 3.25 MHz)1 位数字采样流。 & S( r1 [7 k$ U9 K& H; m _ 该输出信号通过 STM32 微控制器的同步串口(SPI 或 I2S)以 8 个样本为一组进行采集。麦克风的 PDM 输出信号与其输入时钟同步;因此,可通过一个 STM32 SPI/I2S 外设生成麦克风的时钟信号。 ! Q( c* Q7 X- s% i s- N4 b 5 ^% A; U9 W( u# u 4 软件接口:数字信号处理 : a, d: B6 Z2 _6 z麦克风输出的数据发送到采样过程,该过程包括两个组成部分:一个用于将 1 位 PDM 数据转换为 PCM 数据的采样滤波器,还有两个可单独配置的 IIR 滤波器(低通和高通滤波器)。转换后的音频采用 16 位脉冲编码调制 (PCM) 格式。完成转换之后会产生原始数据,可根据实际应用程序对这些数据进行处理(以波形/压缩数据形式存储到大容量存储介质,通过 I2S 外设传输到外部音频编码器 DAC...)。 |