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
    +关注

    关注

    553

    文章

    7965

    浏览量

    348417
  • mcu
    mcu
    +关注

    关注

    146

    文章

    17040

    浏览量

    350511
  • 编解码器
    +关注

    关注

    0

    文章

    253

    浏览量

    24215
收藏 人收藏

    评论

    相关推荐

    32位MCU是物联网市场的绝对主流

    随着物联网的快速发展,各大MCU厂商都将目光聚焦到32位MCU,目前主流的8位MCU最终是否会退出市场?32位
    发表于 06-02 01:05 5247次阅读

    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

    何在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>

    如何将音频开发板用作开发工具来设计高质量音频开发平台的详细概述

    本文档介绍了如何将音频开发板用作开发工具来设计高质量音频开发平台。 音频开发板展示了带有真正 24 位音频编解码器的 16/32 位音频
    发表于 06-13 10:27 11次下载
    如何将<b class='flag-5'>音频</b>开发板用作开发工具来设计高质量<b class='flag-5'>音频</b>开发平台的详细概述

    如何使用微芯片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>

    何在MATLAB中开发基于像素的视频和图像处理算法

    此讲座将结合新产品的特性,重点介绍如何在MATLAB®中开发基于像素流的视频和图像处理的算法,并通过HDL代码产生的技术快速在FPGA实现。你将了解到:如
    的头像 发表于 08-29 06:08 2859次阅读
    如<b class='flag-5'>何在</b>MATLAB中开发基于像素的视频和图像处理<b class='flag-5'>算法</b>

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

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

    怎么用FPGA做算法何在FPGA实现最大公约数算法

    FPGA算法是指在FPGA(现场可编程门阵列)实现算法。FPGA是一种可重构的硬件设备,可以通过配置和编程实现各种不同的功能和
    的头像 发表于 08-16 14:31 2836次阅读
    怎么用FPGA做<b class='flag-5'>算法</b> 如<b class='flag-5'>何在</b>FPGA<b class='flag-5'>上</b><b class='flag-5'>实现</b>最大公约数<b class='flag-5'>算法</b>

    何在AT32 MCU使用FPU功能

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

    MCU如何实现AI功能

    在讨论如何在微控制器单元(MCU实现AI功能时,我们需要认识到MCU通常具有较为有限的计算资源和内存空间,这与专为高性能计算设计的GPU
    的头像 发表于 07-19 11:51 826次阅读

    何在TMS320C6727 DSP创建基于延迟的音频效果

    电子发烧友网站提供《如何在TMS320C6727 DSP创建基于延迟的音频效果.pdf》资料免费下载
    发表于 10-16 10:35 0次下载
    如<b class='flag-5'>何在</b>TMS320C6727 DSP<b class='flag-5'>上</b>创建基于延迟的<b class='flag-5'>音频</b>效果