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

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

3天内不再提示

如何在主流MCU和DSC上实现音频算法

电子设计 来源:郭婷 作者:电子设计 2019-02-18 08:21 次阅读

数字音频和语音无处不在,产品范围从专业工业嵌入式系统到消费类产品,如耳机和车载套件。许多应用需要处理器将噪声抑制,回声消除和增益控制等算法实时应用于流,以最大化音频质量。大多数设计团队可能会将此类算法与专用于DSP专用处理器的实现相关联,这些处理器专用于音频任务。然而,今天,集成DSP数学功能的微控制器MCU) - 通常称为数字信号控制器(DSC) - 可以处理实时音频算法和其余的应用要求。我们将研究一些典型的算法,并考虑如何在主流MCU和DSC上实现这些算法。

首先,我们将介绍一些典型的以音频为中心的功能,这些功能可能会用于通信应用,如电话,免提套件,对讲机,无线电和其他设备。噪声是此类应用中的常见问题,尽管抑制算法可以通过麦克风大大降低与语音一起捕获的环境噪声(图1)。噪声源可能是机器,甚至是PC的风扇噪音。

如何在主流MCU和DSC上实现音频算法

图1:噪声抑制算法可以大大降低麦克风随声音捕获的环境噪声。

噪声抑制算法通常必须在数据流上实时执行。 Microchip提供了与dsPIC DSC一起使用的算法。该算法对语音数据进行操作,该数据采用8 kHz采样,分辨率为16位。该算法顺序处理10毫秒的语音块。

噪声抑制算法中的主要DSP功能是频域快速傅立叶变换(FFT)。该算法不断更新检测到的噪声的轮廓。它可以缩放各个频段的信号,放大语音和静音噪声。

Microchip在噪声抑制库中提供算法。该算法以汇编语言编码以获得最大性能,但高级语言应用程序代码可以通过应用程序编程接口(API)访问这些函数。

声学回声消除

回声消除是另一种方便的算法,可以提高音频质量,尤其是在有线或无线通信链路上(图2)。当麦克风和扬声器彼此靠近时,从扬声器到麦克风的信号传播到通信链路的另一端,产生最多会分散注意力的回声,并且最坏的情况是使链路无用。

如何在主流MCU和DSC上实现音频算法

图2:回声消除依赖于时域有限脉冲响应(FIR)滤波器来消除通过通信链路传播的语音中的回声。

Microchip提供声学回声消除库,以消除回声现象。时域算法依赖于自适应有限脉冲响应(FIR)滤波器,该滤波器应用于来自通信链路远端的音频。滤波器系数提供此自适应能力,并使用归一化最小均方(NLMS)算法进行设置。该算法确保滤波器紧密地模拟实际声学路径。此外,非线性处理器算法消除了残余回声。

与噪声抑制算法类似,声学回声消除库采用汇编语言编码,可以在dsPIC处理器上实时处理数据。它提供大于40 dB的消除,并使用8 kHz采样率。它还与通常用于汽车免提应用的G.167 ITU标准兼容。

Microchip提供了几个额外的以音频为中心的库。例如,符合ITU G.168标准的线路回声消除库以电话系统为目标。基于GUI的语音和音频快进工具可与其他库(如噪声抑制库)配合使用,以允许调整应用程序。自动增益控制库可轻松调整音频电平。

数字信号控制器

现在我们将讨论您可能在音频应用中使用的处理器类型。如上所述,Microchip库是为公司的dsPIC DSC设计的。 DSC本质上只是一个增加了数学硬件以支持以DSP为中心的应用的MCU。与典型的MCU一样,这些IC仍然集成了存储器和各种外设。

Microchip实际上是第一个使用DSC的术语,尽管现在几乎每个MCU供应商都有这样的产品。 Microchip提供的产品包括dsPIC30F和dsPIC33F/E系列。所有产品都包括单周期硬件MAC(乘法器累加器) - 具体来说,是一个16x16位乘法器和一个40位累加器。 DSC还包括一个桶形移位器,可以在一个周期内移位任意数量的位。桶形移位器和MAC一起实现了以DSP为中心的算法的实时执行。图3中的框图描述了dsPIC30F架构。

如何在主流MCU和DSC上实现音频算法

图3:dsPIC30F DSC包括一个16x16位乘法器和40位累加器,以及一个桶形移位器,用于实现以DSP为中心的应用。

选择DSPIC系列的成员添加在音频和语音应用中特别方便的外设。例如,dsPIC33FJ128GP804 DSC包含一个16位双通道数模转换器DAC),可用于输出音频。此外,DSC还包括一个10位模数转换器ADC),支持多达13个音频输入通道。 ADC每秒可捕获超过一百万个样本。 40 MIPS处理器提供了实现应用程序代码和音频算法的性能余量。

DSC开发板

想要尝试dsPIC技术的设计团队有许多可供选择的开发板。 Microchip DM24001-ND dsPIC Explorer板包含dsPIC33FL256GP710 DSC,Microchip DM24002-ND dsPIC Explorer板包含dsPIC33FJ32GP204 DSC。两者都配有16位PIC MCU。

Explorer板是一般实验的理想选择,但Microchip还提供针对特定应用的夹层PICtail板,可与基本Explorer板一起使用。音频PICtail plus开发板包括一个16/24位编解码器,一个耳机放大器,以及具有可调增益的麦克风和线路输入。语音PICtail开发板支持自适应差分脉冲编码调制(ADPCM)。

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

    关注

    544

    文章

    7662

    浏览量

    343901
  • mcu
    mcu
    +关注

    关注

    145

    文章

    15897

    浏览量

    342785
  • 编解码器
    +关注

    关注

    0

    文章

    221

    浏览量

    23966
收藏 人收藏

    评论

    相关推荐

    基于简单8位MCU的支持音频的应用程序

    音频 MCU 的一个示例是AT32UC3A0512AU集成 512 KB 闪存和 64 KB RAM 的 MCU音频 MCU 带有设备执行
    发表于 08-12 11:56 1914次阅读
    基于简单8位<b class='flag-5'>MCU</b>的支持<b class='flag-5'>音频</b>的应用程序

    labview 数据压缩传输 各种压缩算法实现

    image实时视频实时音频还有其他实时数据如何快速压缩传输1 如何在lab实现speex 等算法2有没有lab相关的压缩工具库---go
    发表于 08-26 19:10

    何在STM32F4平台实现算法仿真和集成?

    何在STM32F4平台实现算法仿真和集成?
    发表于 11-19 06:36

    何在FETMX8MQ-C核心板实现低功耗音频播放

    Cortex-M4处理器。本文将系统讲解——如何在FETMX8MQ-C核心板实现低功耗音频播放。01、低功率音频应用概述在这个应用中,i.
    发表于 12-20 07:24

    何在连接的声卡播放音频

    我在 Cube/FW-packs 中找到了一些音频类设备示例,但没有一个带有音频主机。我在 Cube 中选择了 H743 USB_HOST 和 Audio_Class,ok。现在:如何在连接的声卡
    发表于 12-01 07:37

    何在AT32F系列MCU使用FreeRTOS

    本指导手册描述了如何在AT32F系列MCU使用FreeRTOS。FreeRTOS是一款开源的嵌入式实时操作系统,目前在各种嵌入式应用中应用广泛。本指导手册包括FreeRTOS系统移植
    发表于 10-24 07:46

    何在AT32 MCU使用FPU功能

    How to use FPU描述了如何在AT32 MCU使用FPU功能。
    发表于 10-24 07:45

    功率驱动器件与MCU_DSC的接口电路设计技巧

    功率驱动器件与MCU_DSC的接口电路设计技巧
    发表于 01-14 12:15 10次下载

    选择一个用于音频捕获回放的MCU

    音频捕获和回放成为许多基于微控制器(MCU)的应用程序的必要条件。然而,音频支持的保真度和编解码器的范围是难以置信的广泛。你可以启用基于主机的音频应用简单的8位微控制器平台,但质量的
    发表于 07-03 11:41 7次下载
    选择一个用于<b class='flag-5'>音频</b>捕获回放的<b class='flag-5'>MCU</b>

    16位MCUDSC程序员参考手册.免费下载.pdf

    本文主要介绍了16位MCUDSC程序员参考手册.
    发表于 06-28 05:25 45次下载
    16位<b class='flag-5'>MCU</b>和<b class='flag-5'>DSC</b>程序员参考手册.免费下载.pdf

    如何使用微芯片DSPIC DSC系列实现永磁同步电机的无传感器聚焦算法

    该应用笔记讨论了使用微芯片DSPIC®DSC系列实现永磁同步电机(PMSM)的无传感器聚焦算法
    发表于 06-01 09:16 14次下载
    如何使用微芯片DSPIC <b class='flag-5'>DSC</b>系列<b class='flag-5'>实现</b>永磁同步电机的无传感器聚焦<b class='flag-5'>算法</b>

    何在DSP芯片上实现Matlab的仿真算法

    当用Matlab完成数字信号处理算法仿真后,如何在DSP芯片上实时实现,是电气信息类大学生需要掌握的一项重要的工程实践能力。在仿真过程中,有算法移植、DSP工程建立和
    发表于 09-10 16:08 32次下载
    如<b class='flag-5'>何在</b>DSP芯片上<b class='flag-5'>实现</b>Matlab的仿真<b class='flag-5'>算法</b>

    何在AT32 MCU上使用FPU功能

    何在AT32 MCU上使用FPU功能
    的头像 发表于 11-01 17:18 3611次阅读
    如<b class='flag-5'>何在</b>AT32 <b class='flag-5'>MCU</b>上使用FPU功能

    PIC MCU和dsPIC DSC的B类安全软件库

    电子发烧友网站提供《PIC MCU和dsPIC DSC的B类安全软件库.pdf》资料免费下载
    发表于 09-19 16:14 0次下载
    PIC <b class='flag-5'>MCU</b>和dsPIC <b class='flag-5'>DSC</b>的B类安全软件库

    16位MCUDSC程序员参考手册

    电子发烧友网站提供《16位MCUDSC程序员参考手册.pdf》资料免费下载
    发表于 09-25 14:51 1次下载
    16位<b class='flag-5'>MCU</b>和<b class='flag-5'>DSC</b>程序员参考手册