24小(xiǎo)时联系電(diàn)话:18217114652、13661815404
中文(wén)
- 您当前的位置:
- 首页>
- 電(diàn)子资讯>
- 技术专题>
- 嵌入式应用(yòng)的音频设计...
技术专题
嵌入式应用(yòng)的音频设计简介
嵌入式应用(yòng)的音频设计简介
嵌入式应用(yòng)程序通常需要再现声音。无论您需要简单的提示、铃声、铃声还是音乐剪辑,能(néng)够重现预先录制的音频都可(kě)以极大地增强许多(duō)嵌入式应用(yòng)程序的 UI(用(yòng)户界面)。
请注意,本文(wén)的目的不是讨论什么听起来可(kě)以接受,因為(wèi)音频“质量”是个人和主观的。
音频数字化基础
除非声音是完全合成的,否则原始音频源是模拟信号。请记住,现实世界是模拟的。
然而,由于嵌入式系统本质上是数字信号,因此必须将模拟信号转换為(wèi)数字信号才能(néng)进行存储。最后,这种以数字方式存储和处理(lǐ)的信号必须以模拟形式播放。
数字化音频信号意味着将连续时间信号转换為(wèi)离散样本序列。最直接影响嵌入式系统中数字音频存储和处理(lǐ)的两个因素是采样率和位深度,或用(yòng)于表示单个样本的位数。
对于这两个数量,它们越低对系统资源的使用(yòng)越好。反过来,这些取决于输入信号的特性。
采样率受 Nyquist-Shannon 采样定理(lǐ)的约束。它指出重现带限信号所需的最小(xiǎo)采样率(奈奎斯特率)是信号带宽的两倍。所以,要想降低信号的采样率,只需降低信号的带宽即可(kě)。
这一要求并不像乍一看那样严格。尽管音频信号通常定义為(wèi)具有(yǒu) 20 Hz 至 20 KHz 的带宽,但大多(duō)数人无法听到 20 KHz 的音调。
当然,如果音频输出换能(néng)器、扬声器系统不能(néng)再现如此高的音频频率,那么使用(yòng)能(néng)够适应这个频率的采样率就没有(yǒu)什么意义了。
作為(wèi)参考,普通電(diàn)话的音频带宽為(wèi) 400 至 3400 Hz。虽然声音的保真度并不高,但用(yòng)户仍然可(kě)以识别正在说的话,甚至可(kě)以识别来電(diàn)者的声音。甚至可(kě)以通过電(diàn)话播放质量相当低但仍可(kě)识别的音乐。
在数字化音频信号时要考虑的第二个因素是位深度。这实质上是用(yòng)于表示每个样本的位数,可(kě)能(néng)的离散级别的总数為(wèi) 2 n,其中 n 是位数。
模数转换器 (ADC) 通常用(yòng)于此目的。顺便说一句,请注意,在这种情况下,n 可(kě)能(néng)不完全是 ADC 规范中规定的位数。
真正的 ADC 具有(yǒu)線(xiàn)性化和量化误差。运算放大器等输入信号调节器可(kě)能(néng)会引入更多(duō)错误。
位深度的更好估计是所选 ADC 的有(yǒu)效位数 (ENOB)。该数字将小(xiǎo)于或最多(duō)等于 ADC 的位宽。
由于通常很(hěn)难准确计算 ENOB,一个好的经验法则是简单地假设 ENOB 比公布的 ADC 规格少 2 位。
使用(yòng)这一点,假设 12 位 ADC 实际上是一个真正的 10 位 ADC。当然,位深越大,数字化错误越少。位深度不足会导致在信号再现中产生称為(wèi)量化噪声的效应。此链接显示量化错误听起来像什么。
在嵌入式系统中,内存以字节為(wèi)单位,因此位深通常是 8 的倍数,例如 8 位或 16 位。因此,即使 ADC 只能(néng)进行 12 位数字化,每个样本也将存储在下一个更高的 8 位存储器中,在本例中為(wèi) 16 位。
将四个 12 位样本存储為(wèi) 6 个字节而不是 8 个字节需要太多(duō)的处理(lǐ),就像每个 12 位样本存储為(wèi) 16 位的情况一样。
预处理(lǐ)和存储音频信号
在小(xiǎo)型嵌入式系统中,音频大多(duō)以線(xiàn)性脉冲编码调制(通常称為(wèi) PCM)或 WAVeform Audio (WAV) 格式存储。这两种格式密切相关,是目前所有(yǒu)用(yòng)于数字处理(lǐ)和存储的可(kě)用(yòng)音频编码技术中最简单的一种。
PCM 是上一节中描述的技术。音频信号以固定间隔进行采样,每个样本的宽度為(wèi) n 位,其中 n 是位深。
例如,要存储以 44.1 KHz 和 16 位位深度的 Red Book CD 质量采样的一秒(miǎo)音乐,每个通道需要 705600 字节的数据;立體(tǐ)声的两倍。WAV 格式只是带有(yǒu)附加信息(如播放列表、提示点等)的 PCM 信息。因此,它比原始 PCM 数据稍大。
如果由于硬件限制而无法接受此存储要求,则有(yǒu)多(duō)种方法可(kě)以减小(xiǎo)存储数据的大小(xiǎo)。一种是将音频以压缩格式存储,例如 MP3。还可(kě)以使用(yòng)多(duō)种其他(tā)格式,具有(yǒu)无损或有(yǒu)损压缩。
如前所述,这些通常不用(yòng)于小(xiǎo)型嵌入式系统,因為(wèi)压缩算法可(kě)能(néng)非常复杂。在这种情况下,可(kě)以使用(yòng)外部 MP3 硬件解码器。
但是,如果系统有(yǒu)足够的处理(lǐ)能(néng)力和内存,例如Raspberry Pi 4,则在固件中运行MP3解码是非常可(kě)行的。
如果源以模拟格式提供,则可(kě)以采用(yòng)模拟压缩技术来降低信号的动态范围,并采用(yòng)模拟滤波器来降低带宽。
通过减少信号的动态范围,可(kě)以為(wèi)每个样本使用(yòng)较低的位深度,而不会引入过多(duō)的量化噪声。
另一方面,限制带宽允许降低采样率。这两者都有(yǒu)助于减少给定声音剪辑的存储要求。如果声音再现端本来就不能(néng)再现原始信号,这将是非常有(yǒu)效的。
例如,如果扬声器不能(néng)产生高于 10 KHz 的信号,那么将输入信号频率分(fēn)量保持在该频率以上就没有(yǒu)什么意义了。
现在,如果信号已经是数字形式,那么可(kě)以使用(yòng)此处提供的 Audacity 等软件包来压缩和重新(xīn)采样该信号。
即使信号最初以模拟格式提供,这也有(yǒu)效。在这种情况下,信号可(kě)以先在桌面声卡上数字化,然后进行处理(lǐ)以降低带宽和采样率。
输出音频
根据硬件的不同,存储的音频可(kě)以作為(wèi)模拟信号输出,也可(kě)以以数字形式输出,以进一步处理(lǐ)成实际声音。
在第一种情况下,PCM 音频可(kě)以通过数模转换器或 DAC 进行处理(lǐ)。如果存储格式已经在 PCM 中,则在将其发送到 DAC 之前不需要进一步处理(lǐ)。
否则,在 MP3 音频等情况下,必须先将其转换為(wèi) PCM。输出是信号的模拟表示。要获得原始模拟信号,需要对 DAC 输出进行低通滤波以去除采样时钟。
这通常通过无源或有(yǒu)源模拟滤波器来实现。使用(yòng) DAC 的问题之一是,如果信号是立體(tǐ)声,则需要两个 DAC,每个都有(yǒu)自己的低通滤波器。
一些微控制器有(yǒu) 一个 I 2 S 接口而不是内置 DAC。I 2 S 或 Inter-IC Sound 专门设计用(yòng)于传输音频信号,并且通信是单向的,与听起来有(yǒu)些相似的 I 2 C 通信协议相反。
它使用(yòng)三線(xiàn)链路传输立體(tǐ)声信号。左右通道实际上是按顺序发送的,具體(tǐ)取决于字选择線(xiàn)的状态,如下图 1 所示。 I 2 S 通信协议的有(yǒu)趣特性之一包括 SCK 时钟频率不是特定的定义。
每个通道传输的比特数也没有(yǒu)具體(tǐ)定义。这允许在传输任何采样率和位深度的 PCM 音频时具有(yǒu)相当大的灵活性。顺便说一下,由于这种灵活性,I 2 S 还被用(yòng)于传输除声音之外的其他(tā)类型的数据。
图1 - I 2 S 信令方案
音频播放
因為(wèi)声音本质上是模拟的,所以再现声音的换能(néng)器,本质上是扬声器,也是一个必须用(yòng)模拟信号驱动的模拟组件。
无论模拟信号是来自 DAC 还是解码的 I 2 S 数字流,它都太弱而无法产生任何显着幅度的声音。因此,需要放大器来驱动换能(néng)器。
音频放大器分(fēn)為(wèi)两大类:模拟或数字。模拟放大器进一步分(fēn)為(wèi) A 类或 AB 类类型,而数字音频放大器通常称為(wèi) D 类放大器。
如果放大器设计良好,A 类的主要优点是低失真。在不涉及太多(duō)细节的情况下,A 类放大器依赖于晶體(tǐ)管始终偏置在其線(xiàn)性工作点的输出级。
对于晶體(tǐ)管来说,这是具有(yǒu)最線(xiàn)性放大特性的状态。不幸的是,这也是晶體(tǐ)管持续耗散功率的状态,无论信号是否存在。A 类放大器通常使用(yòng)分(fēn)立晶體(tǐ)管实现,通常不用(yòng)于嵌入式应用(yòng)。
AB 类放大器依赖于采用(yòng)两个晶體(tǐ)管或两组并联晶體(tǐ)管、双极晶體(tǐ)管或 MOSFET 的输出级。一个晶體(tǐ)管在输入的正极部分(fēn)导通,而另一个在输入的负极部分(fēn)导通。
在无输入信号期间,晶體(tǐ)管的导通很(hěn)小(xiǎo),因此浪费的功率很(hěn)小(xiǎo)。嵌入式系统中使用(yòng)的 AB 类放大器通常采用(yòng)芯片形式,很(hěn)少使用(yòng)所有(yǒu)分(fēn)立元件来实现。
在嵌入式应用(yòng)中最广泛使用(yòng)的音频功率放大器类型是 D 类类型。首先,输入信号被转换為(wèi)脉宽调制或 PWM 信号。在此方案中,输入信号以规则但非常短的间隔进行采样。
在每个这样的间隔期间,输出完全打开或完全关闭,打开与关闭的比率与特定采样间隔开始时的采样输入信号的幅度成正比。结果输出是代表输入模拟信号的可(kě)变宽度的开/关信号流。
当它被馈送到晶體(tǐ)管(通常是 MOSFET)时,其输出将在 PWM 信号的开/关转换之后处于截止或饱和模式。由于处于饱和或截止状态的晶體(tǐ)管耗散的功率非常小(xiǎo),这使得 D 类放大器非常高效。
换句话说,对于给定的功率输出,该放大器的尺寸将比之前描述的类型小(xiǎo)得多(duō)。这就是 D 类音频功率放大器广泛用(yòng)于嵌入式系统的原因。
请注意,D 类放大器的输出端需要一个模拟低通滤波器以去除采样频率分(fēn)量。由于这个频率通常很(hěn)高,滤波器的尺寸可(kě)以做得很(hěn)小(xiǎo)。
也有(yǒu)同时具有(yǒu)I 2 S接口和D类功率放大器的单芯片。这款 TI 芯片就是一个例子。还有(yǒu)一些便宜的、现成的模块,例如这个。
对于扬声器本身,最常见的选择是電(diàn)动扬声器。
图 2 – Boss Audio DD3600 D 类单声道放大器内部
输出音频信号在線(xiàn)圈中产生磁场,磁场反过来与永磁體(tǐ)相互作用(yòng),使線(xiàn)圈移动。線(xiàn)圈实际上连接在一个隔膜上,该隔膜取代了它周围的空气,从而产生了声音。它们以不同的尺寸和功率处理(lǐ)能(néng)力存在。
此外,由于设计单个扬声器来处理(lǐ)整个音频范围并不容易,因此高保真系统通常有(yǒu)两种不同的扬声器类型来分(fēn)别处理(lǐ)整个音频频谱的低端和高端。这些扬声器分(fēn)别称為(wèi)低音扬声器和高音扬声器。