I2S音频处理与FFT应用技术解析
1. PDM编码与Direct Memory Access
PDM(脉冲密度调制)编码在音频信号处理中有着重要应用,索尼和Sonic Studio采用采样频率为2.8MHz的PDM编码作为Direct Stream Digital。相较于简单的移动平均法,将PDM数字信号转换为模拟值的方法要复杂得多。
在Direct Memory Access(直接内存访问,简称DMA)方面,DMA缓冲区大小范围为8 - 1024个样本。DMA内存需求的计算公式为:缓冲区数量×缓冲区长度×通道数×每个样本的字节数。例如,对于单声道录制,每个样本为2字节(即16位),两个1024样本的缓冲区,DMA内存需求为4KB。DMA缓冲区存储在SRAM中。
较大的DMA缓冲区会减少DMA向CPU发送的中断次数,但会在CPU发出传输数据指令与数据传输开始之间产生延迟,这种延迟被称为 latency(延迟)。DMA缓冲区的最小数量由CPU数据处理时间(T)、采样频率(F)和缓冲区大小(b)决定,计算公式为 (T × F)/b。例如,对于一个1024样本的数据缓冲区,采样频率为44.1kHz,CPU处理数据用于传输或分析的时间为50ms,那么最小缓冲区数量为 (50 × 10⁻³ × 44100)/1024 = 2.15,因此至少需要三个DMA缓冲区。
在Espressif文档中,所需的DMA缓冲区数量、DMA缓冲区大小(样本数)和CPU数据处理时间分别被称为 dma_desc_num、dma_frame_num 和 polling_cycle。相关I2S文档可在 docs.espressif.com/projects/esp-idf/en/latest/e
超级会员免费看
订阅专栏 解锁全文
1038

被折叠的 条评论
为什么被折叠?



