|
STM32 微控制器上的 PDM 音频软件解码 ) U& G/ s/ J7 f9 o 1 简介 + G" I6 A6 a# p' U 本应用笔记以 ST MP45DT02 MEMS 麦克风与 STM32 微控制器的连接为例,介绍了 PDM信号解码和音频信号重建时使用的软件优化算法和架构。该软件可直接采集麦克风输出的脉冲密度调制 (PDM) 数据,并将其转换为 16 位脉冲编码调制 (PCM) 格式。 7 v$ d' N3 @" a' h 本文档还提供了快速入门信息,介绍如何通过基于 STM32F4 微控制器和 STM32F4DISCOVERY板的 I2S 对 PDM 库进行单麦克风采集。 / G1 Z( Q( j/ g. b , B( C8 h7 X) g+ X 有关这一过程的详细信息,请参见 AN3997 使用 STM32F4DISCOVERY 进行音频回放和录音。; G/ A; d$ S: i; ~1 ]; d 2 PDM 信号简介 4 p6 \9 r% t& x % G' n3 |4 h. B 脉冲密度调制 (PDM) 是一种用于表示数字域中的模拟信号的调制形式。 在 PDM 信号中,不会像在 PCM 中一样将具体的幅值编码到脉冲中。而是对与模拟信号幅值相应的、一系列脉冲的相对密度进行编码。 " {3 S# b* ~4 ]% z! F! o7 w5 v+ e 5 Z3 N( M- W* |- k. g 要从 PDM 比特流中获取数据帧,通常使用采样滤波器。采样过程第一阶段要降低采样频率,然后使用高通滤波器去除信号直流偏移。 ! q7 C+ Y( k3 c3 {0 u: z 3 硬件接口:麦克风连接和采集 5 h9 W0 H: q3 k: F MP45DT02 MEMS 麦克风会输出一个 PDM 信号,该信号具有高频(1 到 3.25 MHz)1 位数字采样流。 : q1 K) r- T5 b) T; X- O6 ~ p 该输出信号通过 STM32 微控制器的同步串口(SPI 或 I2S)以 8 个样本为一组进行采集。麦克风的 PDM 输出信号与其输入时钟同步;因此,可通过一个 STM32 SPI/I2S 外设生成麦克风的时钟信号。8 K# A2 S$ ?1 q 4 ~. n6 |% P0 q7 ^8 I' D
4 软件接口:数字信号处理 麦克风输出的数据发送到采样过程,该过程包括两个组成部分:一个用于将 1 位 PDM 数据转换为 PCM 数据的采样滤波器,还有两个可单独配置的 IIR 滤波器(低通和高通滤波器)。转换后的音频采用 16 位脉冲编码调制 (PCM) 格式。完成转换之后会产生原始数据,可根据实际应用程序对这些数据进行处理(以波形/压缩数据形式存储到大容量存储介质,通过 I2S 外设传输到外部音频编码器 DAC...)。
|
微信公众号
手机版