0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在嵌入式系统中使用音频编解码器更轻松地优化音频性能?

海阔天空的专栏 来源:Jacob Beningo 作者:Jacob Beningo 2023-10-03 14:34 次阅读

作者:Jacob Beningo

许多设计人员在其基于微控制器嵌入式系统设计中加入了音频编解码器,以提供高保真音频。但在这样做之前,他们必须弄清楚如何对其应用进行音频编解码器调校。如果不进行调校,即使有好的编解码器和扬声器,也可能会让应用听起来很平淡或音质很差。问题是每个扬声器都有自己的频率响应,因此编解码器应该根据扬声器的特性进行调校,同时要考虑到将要播放的音频种类和所需的响应。

调校音频播放系统的解决方案不是使用硬件滤波,而是利用音频编解码器自身的数字滤波器块。每个编解码器都有这个块,允许开发人员使用高通、低通和带通滤波器进行输出滤波。这样就可以根据需要仔细调校扬声器的响应。

本文将以 AKM Semiconductor的编解码器为例,讨论编解码器中包含的内部数字音频块。同时还将讨论几个调校编解码器的小技巧,以帮助开发人员加速他们的音频播放开发,同时提高系统的音质。

了解扬声器的频率响应特性

在《如何选择和使用嵌入式音频反馈文件的音频编解码器和微控制器》一文中我们讨论了选择编解码器并将其添加到系统中的基本原理。下一步就是使用该编解码器来获得最佳的音频输出。

有几个不同的因素会影响到系统所发出音频的声音。这些因素包括:

扬声器的外壳

扬声器的安装方式

所播放音频的频率

扬声器的频率响应

在仔细考虑了这些因素之后,开发人员很快就会意识到,只有在音频系统处于最终生产状态时,对其进行调校才是有用的。当然,系统可以用印刷电路板和扬声器在外壳外进行调校,但不应该期望这些相同的调校参数在扬声器安装并固定到其外壳中后还适用。

如果机械设计团队已经妥善设计了系统外壳和支架,那么开发商需要密切关注的主要特征就是扬声器的频率响应。每个扬声器都有不同的特性和响应曲线。即使是相同型号的扬声器,其频率响应也往往会有细微的变化,但制造商通常会提供一条典型的频率响应曲线。例如,图1 显示了 CUI Devices GC0401K 8 欧姆 (Ω)、1 瓦扬声器的频率响应曲线。GC0401K 的额定频率在 390 赫兹 (Hz) 和 20千赫兹 (kHz) 之间。

1.png

扬声器额定使用区间通常是其响应曲线中响应相对平坦的区域。仔细观察图 1 可以发现,GC0401K 的频率响应在约 350 Hz 时开始变平,至少到 9kHz 时保持相对平坦。高频率区有一定的下降,但在 20 kHz 以内仍然稳定。

CUI Devices 的 GF0668 则可以看到不同的扬声器频率响应(图 2)。这款扬声器的体积更大一些,可以输出 3 瓦的功率。频率响应额定区间为240 Hz 至 20 kHz。这款扬声器可以播放比 GC0401K略低的频率,但再次要注意的是,在指定的范围内,曲线比较平坦,但在整个曲线长度仍有一些低谷和峰值。

2.png

最后一个值得关注的扬声器响应是 Soberton, Inc. 的 SP-2804Y(图 3)。SP-2804Y 是一款 500 毫瓦 (mW)扬声器,频率响应范围为 600 Hz 至 8 kHz。物理定律决定,扬声器越小,对低频的响应时间就越差。这意味着,如果开发人员不滤波掉低频就试图以这些频率来驱动扬声器,其结果可能是一些本来听起来应该晶莹剔透的音色变得很粗糙或有缺陷。

请注意,在 10 kHz 左右的频率响应也有明显的下滑。因此,该扬声器的额定频率仅为 8 kHz,尽管在某些应用中,其使用频率可能高至 20 kHz。

3.png

从每个扬声器的频率响应来看,显然需要进行某种滤波和调校,因为有些频率是不应该驱动扬声器的。例如,试图在这些扬声器上驱动 4赫兹的低音,可能会引起持久的振动,而高频率注入其中时会导致大量声音失真。

音频数字滤波器块解剖

过去用来调出不需要频率的一种方法是在通往扬声器路径上设立硬件滤波器。例如,500Hz 的高通滤波器可以防止 500Hz以下的频率进入扬声器。在另一端,可以使用低通滤波器来去除任何高于 15 kHz的音调。从我个人经验来看,有时如果用小扬声器来播放女性的声音,而小扬声器的效率又比较高,那么扬声器就会发出高亢的颤音。仔细选择频率可以消除这些失真,创造出更纯净的音色。

虽然外部硬件滤波器可以完成这项工作,但它们会增加成本并占用额外的空间。基于这些原因,使用音频编解码器中内置的数字滤波器块对音频进行调校更为实用和高效。

例如,在 AKM Semiconductor AK4637 24 位音频编解码器的框图中就突出显示了数字滤波器块(图 4)。

4.png

在此实例数字滤波器块中包含了几种不同的滤波功能,具体包括:

高通滤波器 (HPF2)

低通滤波器 (LPF)

四段均衡器(4 段 EQ)

自动调平控制 (ALC)

一段均衡器(1 段 EQ)

这些功能并不需要全部启用。开发人员可以选择自己需要的功能,可以启用和禁用该块或或通过它们连接麦克风或播放音频。在这个接合点,真正的问题是如何对音频编解码器进行计算和编程

数字滤波器参数如何计算和编程

在大多数音频应用中,高通滤波器用于去除低频,低通滤波器用于排除高频。均衡器可用于平滑频率响应曲线或加强某些音调。这些设置到底该如何选择,不在本文讨论范围之内。相反,本文将以AKM AK4637 为例,探讨如何计算并编程与这些参数相关的值。

首先,看一下规格书总是有好处的。该编解码器规格书第 7 和第 8 页显示了最重要的寄存器图。鉴于该器件有 63个寄存器,第一眼看上去可能是云里雾里。然而,这些寄存器中有许多是控制数字音频块的。例如,寄存器 0x22 至 0x3F 控制均衡器。寄存器 0x19 至0x1C 控制高通滤波器,0x1D 至 0x20 控制低通滤波器。

开发人员通常不能只指定一个频率输入到编解码器中。相反,有一个滤波器方程可用于计算滤波器系数,然后将其编程到编解码器寄存器中,以创建所需频率的滤波器。例如,要使用数字滤波器块创建一个
600 Hz 的高通滤波器,使用公式 1:

5.png

开发人员应确定所需的截止频率 fc,在这种情况下是 600 Hz。音频采样频率 fs 通常为 48 kHz,但可以根据应用情况而改变。这些值随后会代入计算系数 A 和 B 的方程中,然后在启动期间,这些值会通过 I2C写入编解码器寄存器。同样的过程将用于低通滤波器和其他数字块功能,尽管传输功能通常不同,但都需要使用它们自己的方程组(参考规格书)。

音频编解码器调校小技巧

音频编解码器中包含的数字滤波器块通常是相当灵活和强大的。即使是低成本的音频编解码器也能为开发人员提供生成高保真音频所需的工具。不过归根结底,音频编解码器只是其中一块拼图。要想成功地调校一个音频编解码器,有几个“小窍门”开发人员应该牢记,比如:

确保将应用的扬声器安装在适合的外壳中。一个设计不当的扬声器箱很容易毁掉一个原本完美的播放系统。

在系统完全按照其生产意图配置组装好之前,不要调校编解码器音频滤波器块。否则,调谐参数可能会改变。

根据要播放的音频选择频率范围。例如,吉他、钢琴或有人说话的音乐的频率设置都会不同。

使用数字平衡块来补偿扬声器的频率响应。有些频率的声音自然会更响亮、更清晰,有些可能需要进行衰减,而有些可能需要进行放大。

使用测试音调来评估系统的频率响应。通过简单的网络搜索,可以找到各种音频音调的 mp3文件,可用它们来了解音频播放系统的频率响应和数字滤波器块的工作方式。

将滤波器块配置设置值存储在闪存或 EEPROM 中,以便在生产过程中进行设置,从而考虑系统与系统之间的差异(如果需要的话)。

遵循这些“小技巧”的开发人员会发现,他们在尝试调校音频播放系统时,会节省不少时间并省去很多麻烦,从而确保产品能以预期的音频特性上市。

结语

在嵌入式系统中添加一个音频编解码器对最终用户来说并不能保证是好事。每一套音频播放系统都需要精心调校。可以使用外部滤波器来实现这种调校,但音频编解码器内置了数字滤波和平衡功能。如上所述,这些功能可以用来只给扬声器提供最适合的频率。通过仔细分析滤波器设置并予以应用,开发人员可以调校出终端用户对其设备所期望的纯净音质。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    4983

    文章

    18286

    浏览量

    288499
  • 滤波器
    +关注

    关注

    158

    文章

    7332

    浏览量

    174788
  • 寄存器
    +关注

    关注

    30

    文章

    5032

    浏览量

    117745
  • 扬声器
    +关注

    关注

    29

    文章

    1214

    浏览量

    60188
  • 音频编解码器

    关注

    4

    文章

    118

    浏览量

    55698
收藏 人收藏

    评论

    相关推荐

    基于微控制器的嵌入式音频编解码器设计

    音频编解码器中包含的数字滤波器块通常是相当灵活和强大的。即使是低成本的音频编解码器也能为开发人员提供生成高保真音频所需的工具。
    发表于 08-01 10:46 759次阅读
    基于微控制器的<b class='flag-5'>嵌入式</b><b class='flag-5'>音频</b><b class='flag-5'>编解码器</b>设计

    音频编解码器技术

    语音编解码器技术的发展一定程度上处于静止状态,但音频编解码器技术一直在向前演进。音频编解码器朝更多的环绕声通道发展就是一个趋势。
    发表于 02-03 16:17 4816次阅读

    E1接口音频编解码器(立体声/AES数字)

    、电信、军队、公安、交通、民航、电力等企业的传输系统中。AE400系列E1接口音频编解码器,采用19英寸1U标准全铝机箱设计,每个1U机箱里有4路E1接口音频编码
    发表于 03-02 20:51

    NEON音频编解码器优化技术

    处理的重要特色之一, 使其适用于多媒体处理。通常情况下, Cortex-A8处理的运行速率在600MHz至1GHz之间, 可支持标清和高清视频。 高清视频运行在Cor tex-A8处理上时, 几乎没有供
    发表于 03-05 21:26

    基于TMS320C6657实现的高效OPUS编解码器解决方案包含BOM,PCB文件及参考指南

    语音通信、联网音频甚至高性能音频处理应用。较之 ARM 等通用处理,此设计还通过在 DSP 上实现 Opus 编解码器来提升
    发表于 08-20 06:02

    采用嵌入式DSP实现流媒体编解码器

    Voice 和WMA9 Variable Bit Rate(VBR)。在嵌入式应用中,WMA9是此系列中最常见的编解码器;提供16位/320kbps双通道,采样率高达48KHz
    发表于 07-10 08:07

    语音编码和解码免费Speex音频编解码器的微控制

    良好的声音质量,语音编码和解码免费Speex音频编解码器的微控制
    发表于 05-29 11:52

    可记录音频编解码器的ADAV803 DVD

    EVAL-ADAV803EBZ,ADAV803 DVD可记录音频编解码器评估板。评估板允许用户轻松评估这些部件的功能和性能。使用提供的PC软件可以
    发表于 07-27 15:01

    MPEG音频编解码器及其应用

    本文介绍了MPEG音频编解码器及其应用,并展现现代音频编码方案最成功的创建者Fraunhofer IIS。
    发表于 06-01 06:11

    ES8388音频编解码器简介

    1、ES8388简介ES8388是一种高性能、低功耗、低成本的音频编解码器。它由两路ADC,2通道DAC,话筒放大器、耳机放大器、数字音效、模拟混合和增益功能。ES8388采用先进的多位Δ∑调制技术
    发表于 07-28 06:08

    嵌入式Linux音频驱动开发的相关资料分享

    1.嵌入式音频系统硬件连接下图所示的嵌入式设备使用IIS将音频数据发送给编解码器。对编解码器的I
    发表于 12-24 07:43

    在TMS320C6657器件上轻松运行经TI 优化的Opus编码/解码器

    适用于语音通信、联网音频甚至高性能音频处理应用。较之 ARM 等通用处理,此设计还通过在 DSP 上实现 Opus 编解码器来提升
    发表于 09-22 06:32

    什么是音频编解码器

    什么是音频编解码器编解码器(编码器/解码器)转换成模拟信号的数字码流,另一个相同的编解码器转换为数字流回到成模拟信
    发表于 05-03 23:48 3901次阅读

    ADAV400:采用嵌入式SigmaDSP处理器的音频编解码器数据表

    ADAV400:采用嵌入式SigmaDSP处理器的音频编解码器数据表
    发表于 05-08 15:38 8次下载
    ADAV400:采用<b class='flag-5'>嵌入式</b>SigmaDSP处理器的<b class='flag-5'>音频</b><b class='flag-5'>编解码器</b>数据表

    从Satin到Lyra为什么微软、谷歌都盯向音频编解码器

    回顾今年的2月份,可以说是音频编解码器最为热闹的一个月。先是微软宣布推出最新款由AI支持的音频编解码器——Satin。仅一周后,谷歌推出了用于语音压缩的新型超低比特率
    的头像 发表于 05-24 15:36 2381次阅读
    从Satin到Lyra为什么微软、谷歌都盯向<b class='flag-5'>音频</b><b class='flag-5'>编解码器</b>?