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

[复制链接]
1173|21
 楼主| Plantt 发表于 2020-4-25 23:33 | 显示全部楼层 |阅读模式
如何在主流MCU和DSC上实现音频算法



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

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



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

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

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

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


声学回声消除

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

图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架构。



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

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





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
coshi 发表于 2020-5-6 12:57 | 显示全部楼层
非常感谢楼主分享
quickman 发表于 2020-5-9 21:38 | 显示全部楼层
是为了消除噪声的吗  
jstgotodo 发表于 2020-5-9 21:39 | 显示全部楼层
音频处理中的噪声抑制、回声消除  
iamaiqiyi 发表于 2020-5-9 21:39 | 显示全部楼层
利用FFT算法对音频噪声进行处理  
dzfansman 发表于 2020-5-9 21:39 | 显示全部楼层
  如何对音频文件进行降噪?
sanxingnote7 发表于 2020-5-9 21:39 | 显示全部楼层
音频降噪最好的音频算法   
backlugin 发表于 2020-5-9 21:40 | 显示全部楼层
如何处理音频降噪  
sdCAD 发表于 2020-5-9 21:41 | 显示全部楼层
怎么降低音频的噪音?
fengm 发表于 2020-5-9 21:41 | 显示全部楼层
用 单片机处理音频信号?  
updownq 发表于 2020-5-9 21:41 | 显示全部楼层
           
sanfuzi 发表于 2020-5-9 21:42 | 显示全部楼层
精准音频处理算法      
iamaiqiyi 发表于 2020-5-9 21:43 | 显示全部楼层
有效去除音频中的噪音  
dzfansman 发表于 2020-5-9 21:43 | 显示全部楼层
用小波分析法除去音频信号的噪声  
jstgotodo 发表于 2020-5-9 21:43 | 显示全部楼层
如何利用bp神经算法去除音频噪声
sanxingnote7 发表于 2020-5-9 21:43 | 显示全部楼层
音频信号中幅度最大的两个频率分量怎么滤波
quickman 发表于 2020-5-9 21:43 | 显示全部楼层
有哪些措施可以提高中值滤波算法的速度
fengm 发表于 2020-5-9 21:43 | 显示全部楼层
音频降噪算法     
sdCAD 发表于 2020-5-9 21:43 | 显示全部楼层
做噪声估计算法性能分析  
updownq 发表于 2020-5-9 21:43 | 显示全部楼层
谢谢楼主的分析的。     
您需要登录后才可以回帖 登录 | 注册

本版积分规则

637

主题

901

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部