一半因为工作原因,一半因为个人兴趣,zhanzr21隔三岔五地要跟音频处理打交道.音频处理尤其是嵌入式系统上的音频处理在很长一段时间曾是作者工作中最有压力的一部分.原因在于其对于非计算机非数学专业经历的工程师来讲, 涉及理论知识面广(比如压缩算法非常繁多),而实践中遇到问题非常难以调试.

所谓久病成医,在长期战斗中作者也算是总结了一定的心得.于是想试着写一点出来,在21ic以系列文章的形式和大家讨论一下嵌入式系统的音频处理这个话题.

曾几何时, 数字音频处理一度是一般嵌入式系统高攀不起的应用. 但是随着硬件成本的下降与处理能力/容量的上升, 数字音频处理已经渐渐地成为了嵌入式系统的日常任务. 本文的目的是介绍与讨论如何在一般的嵌入式系统上进行数字音频处理. 专业的音频DSP,ASIC当然还是站在发展的前沿, 但是读完本系列的读者将会发现, 它们和一般嵌入式音频处理系统区别并不大。

Every board can sing

第一次来的,请先看这里:每个板子都能歌唱:嵌入式系统与音频处理(缘起)
查看更多

实验软件/SoftWear

推荐硬件/HardWear

  • 此板子官方编号为MB1225与MB1166(显示板).因为强悍的处理性能加上丰富的接口,此板子在作者进行音频研究中是最得心应手的板子.实际上很多实验都是先在这板子上跑通再移植到其他板子上的.此板子后续还将做的实验有:NES音频模拟,高清的AAC解码,高清的Opus解码,PDM信号处理,SPDIF信号收发,Shoutcast播放等等等。

  • Nucleo板子作者也很多块,最低有Cortex M0系列的,高的有Cortex M7系列的.这个系列的板子其实都用的非常类似的布局.特点是外设不多,但接口引出较完全,定制的余地也更大.比如Nucelo 144的板子的编号都为MB1137.作者所做的实验也有不少在这系列板子上进行,主要是利用其接口引出来方便的缘故.可以称得上ST版本的Arduino板子。

  • 这板子看了很多人会摇头,啥啊? 实际情况这是一款汽车控制器的开发板子,英飞凌的Tricore系列.不属于常见的通用微控制器,因为增加了特殊的安全方面的设计.但是事实上经过实验证明也能当播放器用.虽然性能跟Cortex的中高端处理器差一些,但价格很贵,这版上的主芯片的价格就是我上面买的Orange Pi Zero加上扩展板的几倍.还是一句话,作者的原意就是DIY,准备将此板子打造成一个MP3播放器。

  • F105音频板
  • 滤波板
  • 录音板
  • 音频放大板
  • 音频放大板AMP TEST V1放大板子作用顾名思义是对音频信号放大,主要用于外接喇叭,按道理跟数字音频处理没有很大关系。但是为了娱乐性,作者买了几个放大板,也做了几个放大板子.许多实验也是配合放大板子进行的。

  • 滤波板LPF TEST V1主要用于PWM播放后面滤波,这板子作者也做了一块。

  • 录音板MIC TEST V1想做两种录音板子,一种是MEMS的Mic,一种是传统的驻极体式的。但是MEMS Mic因为采购上的麻烦现在还没有做.后面再想想办法。

  • 音频放大板AMP TEST V1放大板子作用顾名思义是对音频信号放大,主要用于外接喇叭。按道理跟数字音频处理没有很大关系。但是为了娱乐性,作者买了几个放大板,也做了几个放大板子,许多实验也是配合放大板子进行的。