24小时联系电话:18217114652、13661815404

中文

您当前的位置:
首页>
电子资讯>
技术专题>
嵌入式应用的音频设计...

技术专题

嵌入式应用的音频设计简介


嵌入式应用的音频设计简介

嵌入式应用程序通常需要再现声音。无论您需要简单的提示、铃声、铃声还是音乐剪辑,能够重现预先录制的音频都可以极大地增强许多嵌入式应用程序的 UI(用户界面)。

请注意,本文的目的不是讨论什么听起来可以接受,因为音频质量是个人和主观的。

音频数字化基础

除非声音是完全合成的,否则原始音频源是模拟信号。请记住,现实世界是模拟的。

然而,由于嵌入式系统本质上是数字信号,因此必须将模拟信号转换为数字信号才能进行存储。最后,这种以数字方式存储和处理的信号必须以模拟形式播放。

数字化音频信号意味着将连续时间信号转换为离散样本序列。最直接影响嵌入式系统中数字音频存储和处理的两个因素是采样率和位深度,或用于表示单个样本的位数。

对于这两个数量,它们越低对系统资源的使用越好。反过来,这些取决于输入信号的特性。

采样率受 Nyquist-Shannon 采样定理的约束。它指出重现带限信号所需的最小采样率(奈奎斯特率)是信号带宽的两倍。所以,要想降低信号的采样率,只需降低信号的带宽即可。

这一要求并不像乍一看那样严格。尽管音频信号通常定义为具有 20 Hz 20 KHz 的带宽,但大多数人无法听到 20 KHz 的音调。

当然,如果音频输出换能器、扬声器系统不能再现如此高的音频频率,那么使用能够适应这个频率的采样率就没有什么意义了。

作为参考,普通电话的音频带宽为 400 3400 Hz。虽然声音的保真度并不高,但用户仍然可以识别正在说的话,甚至可以识别来电者的声音。甚至可以通过电话播放质量相当低但仍可识别的音乐。

在数字化音频信号时要考虑的第二个因素是位深度。这实质上是用于表示每个样本的位数,可能的离散级别的总数为 2 n,其中 n 是位数。

模数转换器 (ADC) 通常用于此目的。顺便说一句,请注意,在这种情况下,n 可能不完全是 ADC 规范中规定的位数。

真正的 ADC 具有线性化和量化误差。运算放大器等输入信号调节器可能会引入更多错误。

位深度的更好估计是所选 ADC 的有效位数 (ENOB)。该数字将小于或最多等于 ADC 的位宽。

由于通常很难准确计算 ENOB,一个好的经验法则是简单地假设 ENOB 比公布的 ADC 规格少 2 位。

使用这一点,假设 12 ADC 实际上是一个真正的 10 ADC。当然,位深越大,数字化错误越少。位深度不足会导致在信号再现中产生称为量化噪声的效应。此链接显示量化错误听起来像什么。

在嵌入式系统中,内存以字节为单位,因此位深通常是 8 的倍数,例如 8 位或 16 位。因此,即使 ADC 只能进行 12 位数字化,每个样本也将存储在下一个更高的 8 位存储器中,在本例中为 16 位。

将四个 12 位样本存储为 6 个字节而不是 8 个字节需要太多的处理,就像每个 12 位样本存储为 16 位的情况一样。

预处理和存储音频信号

在小型嵌入式系统中,音频大多以线性脉冲编码调制(通常称为 PCM)或 WAVeform Audio (WAV) 格式存储。这两种格式密切相关,是目前所有用于数字处理和存储的可用音频编码技术中最简单的一种。

PCM 是上一节中描述的技术。音频信号以固定间隔进行采样,每个样本的宽度为 n 位,其中 n 是位深。

例如,要存储以 44.1 KHz 16 位位深度的 Red Book CD 质量采样的一秒音乐,每个通道需要 705600 字节的数据;立体声的两倍。WAV 格式只是带有附加信息(如播放列表、提示点等)的 PCM 信息。因此,它比原始 PCM 数据稍大。

如果由于硬件限制而无法接受此存储要求,则有多种方法可以减小存储数据的大小。一种是将音频以压缩格式存储,例如 MP3。还可以使用多种其他格式,具有无损或有损压缩。

如前所述,这些通常不用于小型嵌入式系统,因为压缩算法可能非常复杂。在这种情况下,可以使用外部 MP3 硬件解码器。

但是,如果系统有足够的处理能力和内存,例如Raspberry Pi 4,则在固件中运行MP3解码是非常可行的。

如果源以模拟格式提供,则可以采用模拟压缩技术来降低信号的动态范围,并采用模拟滤波器来降低带宽。

通过减少信号的动态范围,可以为每个样本使用较低的位深度,而不会引入过多的量化噪声。

另一方面,限制带宽允许降低采样率。这两者都有助于减少给定声音剪辑的存储要求。如果声音再现端本来就不能再现原始信号,这将是非常有效的。

例如,如果扬声器不能产生高于 10 KHz 的信号,那么将输入信号频率分量保持在该频率以上就没有什么意义了。

现在,如果信号已经是数字形式,那么可以使用此处提供的 Audacity 等软件包来压缩和重新采样该信号。

即使信号最初以模拟格式提供,这也有效。在这种情况下,信号可以先在桌面声卡上数字化,然后进行处理以降低带宽和采样率。

输出音频

根据硬件的不同,存储的音频可以作为模拟信号输出,也可以以数字形式输出,以进一步处理成实际声音。

在第一种情况下,PCM 音频可以通过数模转换器或 DAC 进行处理。如果存储格式已经在 PCM 中,则在将其发送到 DAC 之前不需要进一步处理。

否则,在 MP3 音频等情况下,必须先将其转换为 PCM。输出是信号的模拟表示。要获得原始模拟信号,需要对 DAC 输出进行低通滤波以去除采样时钟。

这通常通过无源或有源模拟滤波器来实现。使用 DAC 的问题之一是,如果信号是立体声,则需要两个 DAC,每个都有自己的低通滤波器。

一些微控制器有 一个 I 2 S 接口而不是内置 DACI 2 S Inter-IC Sound 专门设计用于传输音频信号,并且通信是单向的,与听起来有些相似的 I 2 C 通信协议相反。

它使用三线链路传输立体声信号。左右通道实际上是按顺序发送的,具体取决于字选择线的状态,如下图 1 所示。 I 2 S 通信协议的有趣特性之一包括 SCK 时钟频率不是特定的定义。

每个通道传输的比特数也没有具体定义。这允许在传输任何采样率和位深度的 PCM 音频时具有相当大的灵活性。顺便说一下,由于这种灵活性,I 2 S 还被用于传输除声音之外的其他类型的数据。

1 - I 2 S 信令方案

音频播放

因为声音本质上是模拟的,所以再现声音的换能器,本质上是扬声器,也是一个必须用模拟信号驱动的模拟组件。

无论模拟信号是来自 DAC 还是解码的 I 2 S 数字流,它都太弱而无法产生任何显着幅度的声音。因此,需要放大器来驱动换能器。

音频放大器分为两大类:模拟或数字。模拟放大器进一步分为 A 类或 AB 类类型,而数字音频放大器通常称为 D 类放大器。

如果放大器设计良好,A 类的主要优点是低失真。在不涉及太多细节的情况下,A 类放大器依赖于晶体管始终偏置在其线性工作点的输出级。

对于晶体管来说,这是具有最线性放大特性的状态。不幸的是,这也是晶体管持续耗散功率的状态,无论信号是否存在。A 类放大器通常使用分立晶体管实现,通常不用于嵌入式应用。

AB 类放大器依赖于采用两个晶体管或两组并联晶体管、双极晶体管或 MOSFET 的输出级。一个晶体管在输入的正极部分导通,而另一个在输入的负极部分导通。

在无输入信号期间,晶体管的导通很小,因此浪费的功率很小。嵌入式系统中使用的 AB 类放大器通常采用芯片形式,很少使用所有分立元件来实现。

在嵌入式应用中最广泛使用的音频功率放大器类型是 D 类类型。首先,输入信号被转换为脉宽调制或 PWM 信号。在此方案中,输入信号以规则但非常短的间隔进行采样。

在每个这样的间隔期间,输出完全打开或完全关闭,打开与关闭的比率与特定采样间隔开始时的采样输入信号的幅度成正比。结果输出是代表输入模拟信号的可变宽度的开/关信号流。

当它被馈送到晶体管(通常是 MOSFET)时,其输出将在 PWM 信号的开/关转换之后处于截止或饱和模式。由于处于饱和或截止状态的晶体管耗散的功率非常小,这使得 D 类放大器非常高效。

换句话说,对于给定的功率输出,该放大器的尺寸将比之前描述的类型小得多。这就是 D 类音频功率放大器广泛用于嵌入式系统的原因。

请注意,D 类放大器的输出端需要一个模拟低通滤波器以去除采样频率分量。由于这个频率通常很高,滤波器的尺寸可以做得很小。

也有同时具有I 2 S接口和D类功率放大器的单芯片。这款 TI 芯片就是一个例子。还有一些便宜的、现成的模块,例如这个。

对于扬声器本身,最常见的选择是电动扬声器。

2 – Boss Audio DD3600 D 类单声道放大器内部

输出音频信号在线圈中产生磁场,磁场反过来与永磁体相互作用,使线圈移动。线圈实际上连接在一个隔膜上,该隔膜取代了它周围的空气,从而产生了声音。它们以不同的尺寸和功率处理能力存在。

此外,由于设计单个扬声器来处理整个音频范围并不容易,因此高保真系统通常有两种不同的扬声器类型来分别处理整个音频频谱的低端和高端。这些扬声器分别称为低音扬声器和高音扬声器。

请输入搜索关键字

确定