基于ARM处理器的低功耗的语音去噪系统设计

控制/MCU

1813人已加入

描述

谱减法作为一种很有效的语音信号处理手段,广泛应用于现代语音增强系统中。针对低功耗设计的要求,本系统采用功耗低且功能强大的ARM芯片,用C语言编程将算法成功移植到ARM系统中,该系统功耗低,并有效地减小了嗓声,改善了语音通信质量,有较好的实用性。

近年来,电子技术的发展促进了多媒体设备的繁荣,同时随着人们对便携式设备和可移动终端的广泛需求,使得低功耗成为了这类电子设备最大的技术难题之一。低功耗意味着在同一时间段内在相同条件下移动终端消耗的能量更少,使得此类设备有更长的续航工作时间。低功耗设计降低了系统功耗,提高了能量利用率。

ARM微处理器因其高性能和低功耗的特性,特别适合于便携式设备的开发与应用。本文设计了一种基于ARM的低功耗语音去噪系统,为应用于便携式移动的语音去噪设备提供了一种很好的设计思路和方法。

1 算法设计

谱减法的原理就是在频域将噪声的频谱分量从带噪语音信号的频谱中减去。其设计思想是在假设加性噪声与短时平稳的语音信号相互独立的条件下,从带噪语音信号的功率谱中减去噪声的功率谱,进而得到去噪后较纯净的语音频谱。

如果带噪语音信号为:y(i)=s(i)+n(i)        (1)

上式中,y(i)为带噪语音,s(i)为纯净语音,n(i)为噪声信号。经过FFT变换,频域表达式为:Y(k)=S(k)+N(k)        (2)

由式(2)可得:

    因为谱减法的前提是语音信号与噪声信号是不相关的,且S(k})、N(k)服从高斯分布,均值为零,于是对式(3)求期望可得

    由此可得原始语音的估计值。针对人耳对相位的不敏感这一特点,可以用原始带噪语音的相位谱代替去噪后语音信号的相位谱。

    整个算法的流程如图1所示。

语音信号

2 硬件设计

2.1 主控CPU芯片选型

本系统要求低功耗,传统的信号处理系统大多采用DSP,DSP芯片虽然数据处理能力强大,但是本身功耗太高,因此不适用于低功耗设计的要求,加之DSP内部外设种类很少,如不具有A/D和D/A等模块,对于系统设计,增加这些功能模块无疑又会增加功耗。

LPC1756是NXP(恩智浦)公司推出的高度集成和低功耗的32位嵌入式处理器,内核构架为32位高性能ARM Cortex-M3 CPU,具有3级流水线和哈佛结构总线,LPC756具有256 kB片上Flash和32 kB SRAM,时钟频率可高达120MHz,指令执行速度最高为150 MIPS,工作在最高频率时,所耗电流也仅为数十毫安。LPC1756具有大量丰富的外设:一个12位模数转换器(ADC),高达8个输入通道;一个10位数模转换器(DAC);4个32位通用定时器;8个DMA通道等。此外,具有80个引脚的LPC1756的封装体积为12x12x1.4 mm。总之,该芯片具备处理速度快、功能丰富、体积小和性价比高等优点。因此符合本系统设计要求。

为了适应低功耗设计的要求采用LPC1756片内ADC模块和DAC模块。为了节约CPU处理数据的时间,在采集端和输出端均采用DMA传输模式。

2.2 大电压差电源设计

在本系统中,要求输入电压为26 V直流电压,输出电流不超过60 mA。ARM处理器所需供电电压为2.4~3.3 V。目前流行的电源压降模块普遍采用线性稳压源和开关电源。线性稳压源常见的如LDO(低压差输出)模块,LDO原理是利用三极管基极电压来控制输入输出端的电压差来获得输出所需电压的目的,而系统电流也要流经三极管,因此LDO在降压的同时,其自身的功耗也很大,LDO芯片的功耗:

P=(VIN-VOUT)*I      (6)

式(6)中VIN为输入电压(转换前),VOUT为输出电压(转换后),I为输出电流。假设本系统电流为50mA,因此由式(6)可得LDO自身功耗P=(26-3.3)*50 mW=1 135mW,可见在这种高压差的LDO系统中,损失的功率太大使得电源转换效率很低,这样在LDO芯片上会产生很大的热量,很容易烧坏电源芯片,不仅会使整个系统瘫痪,而且会造成安全隐患。但是LDO具有输出电压稳定、纹波小等优点,适合低压差电源转换。

开关电源常见的如DC-DC模块,开关电源的原理是利用开关的特性,经反馈网络输出对应占空比的PWM信号来控制MOS管的栅极电压,从而达到输出预期电压的目的,MOS管的漏源极间的导电沟道电阻非常小,因此消耗在开关电源上的功耗很小。因此鉴于开关电源输入电源范围宽、功耗小等优点,广泛在系统设计时被采用。需要指出的是在用开关电源时,由于开关电源频繁的开关特性,会使得输出电压的纹波和噪声较大,因此在设计时需考虑滤波和PCB布线等情况。

鉴于上述原因,本系统电源模块采用开关电源和LDO共同作用的架构,先用开关电源将输入电压(DC26V)转换至适合LDO输入电压(DC5V)范围内,这样可以有效降低在LDO上的功耗;然后再利用LDO模块转换至系统所需的稳定电压(DC3.3V),确保系统不受电源纹波的干扰。开关电源芯片选用美国国家半导体公司的LM2576开关电源,其具有电压输入范围宽、转换效率高以及带负载能力强等优点;LDO芯片采用美国TI公司的TPS79133芯片,其具有输出电压稳定、纹波小等特点。

2.3 信号调理模块设计

输入为语音信号,经麦克风转换为电压信号,但这种电压信号很徽弱,一般为几十毫伏,需要经过放大才能被A/D有效采集,为了提高放大后信号的信噪比,在放大前端应对信号进行滤波处理,语音信号分布在300~3400 Hz之间,因此可对输入信号进行低通率波。又由于谱减算法的特性,去噪后信号的幅度较去噪前信号的幅度减小很多,所以对去噪后的语音信号也应当放大和滤波处理。

本系统采用飞思卡尔半导体公司的MC34119集成运放,该芯片具有宽电压输入(2.0~16 V)、对语音信号具有自适应增益功能以及不需外部加直流偏置等特点。由于LPC1756内部A/D和D/A参考电压为3.3 V,因此运放的输入(参考)电压也应为3.3 V,信号增益是通过反馈电阻与输入电阻之比来确定。即:Gain=RF/RI        (7)

在本系统中,输入增益设为10倍,输出增益设为3倍。低通滤波器采用美信半导体公司MAX7427集成芯片,该芯片具有功耗低(仅需0.8 mA)、外围电路简单等特点,且通过外接振荡电容来计算上限截止频率,适用频率范围1~12 000 Hz,符合本系统频率范围。

3 系统整体框架

语音信号

语音信号频率范围为300~3400Hz,根据奈奎斯特采样定理,采样率至少为信号频率的两倍时,信号才能被不失真采集。在本系统中,采样率是通过LPC1756内部的32位高精度定时器模块来控制,每间隔125μs对A/D转换结果进行一次读数,即采样率设定为8 000 Hz,读取的数据通过DMA模块传输至预处理地址中,这样提高了CPU的处理效率。同理,为了保证输入输出的同步性,在定时器中断函数里,每采集一个信号点,就必须输出一个信号点。为了提高CPU利用率,去噪后的语音信号也是通过DMA通道传输。在信号的采集与输出端,均通过放大滤波电路,都是为了提高语音信号的信噪比。在滤波电路中,截止频率设定为4 000 Hz。其实物的PCB布线如图3所示。

语音信号

4 系统测试结果

在上述设计的条件下,输入电压为26 V(DC)的情况下,系统正常工作时,所耗电流为20 mA,满足低功耗的要求。对系统去噪效果进行主观试听,分别试听了0 dB、3 dB、5 dB、10 dB和20 dB情况下带噪语音经过系统后的去噪效果,听者都认为系统的去噪效果良好,有较好的语音自然度和清晰度。

3 dB带噪语音去噪前后示波器对比图如图4所示。

语音信号

如图4所示,示波器上通道1(上半部分)显示的是去噪后的语音信号,通道2(下半部分)显示的是去噪前的3 dB带噪语音信号。

5 结束语

文中基于ARM处理器,设计出了具有低功耗的语音去噪系统。用C语言编程将谱减算法成功移植到ARM平台上,并且效果较好。谱减算法在语音去噪应用中非常成熟,因此本文着重介绍了该系统的硬件设计,与传统的基于DSP的系统设计相比,大大降低了系统功耗和成本,为以后的低功耗和高性价比系统设计提供了一种很好的思路和方法。

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分