嵌入式音频处理基础(3)

来源 :电子产品世界 | 被引量 : 0次 | 上传用户:menes127
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  在本文的第三部分中,我们将介绍开发嵌入式音频应用的一些策略。我们将从描述音频处理中使用的一些标准方法开始,然后讨论一些基本的音频算法。
  
  音频处理方法
  
  把数据送入处理器内核
  把数据送入处理器内核有若干种方法。例如,一个前台程序可以对一个串行端口中的新数据进行查询,但这种传输方式在嵌入式媒体处理器中是不常用的,因为这样会降低内核的使用效率。
  取而代之的是,与音频编解码器相连的处理器一般用DMA引擎把数据从编解码器的数据口(就像一个串行口)传输到处理器可用的某个存储空间内。这种数据传输是以后台操作的形式完成的,无需处理器内核的干预。这里的唯一开销是对DMA序列的设定以及一旦数据缓冲区的接收或发送完成之后对中断的处理。
  


  
  块处理与样点处理
  
  样点处理和块处理是处理数字音频数据的两种方法。在样点处理的方法中,只要样点一出现,处理器就处理这个样点。这里,在每个采样周期中的处理操作都会有开销。许多滤波器(例如FIR和职,将在下面叙述)是以这样的方式实现的,因为这种方式的有效延迟会很低。
  另一方面,块处理是基于把数据传送到处理函数之前对特定长度缓冲区的填充。有些滤波器是用块处理的方式实现的,因为这样比样点处理方式更有效。其中要说明的一点是,块处理方法大大降低了针对每个样点而调用处理函数的开销。而且,许多嵌入式处理器包含有多个ALU,可以对数据块进行并行操作。另外,有些算法从本质上就是以块处理方式操作的。其中一个大家都知道的是傅里叶变换(以及它的实际使用的形式,快速傅里叶变换,或称FFT),这种算法接受时域数据块或空间域(spatial)数据块,然后把这些数据块转换成频域表示。
  
  双缓冲
  
  在基于块处理的、使用DMA与处理器内核进行数据传递的系统中,必须使用双缓冲,以便在DMA传输和内核之间进行仲裁。这会使处理器内核和独立于内核的DMA引擎不会在同一时间对同一数据进行访问,避免了数据一致性问题。为了对长度为N的缓冲区的处理进行改进,我们简单地产生一个长度为2×N的缓冲区。对于一个双向系统,必须生成两个长度为2 x N的缓冲区。如图1a中所示,处理器内核正在对in1缓冲区进行处理,并将结果存储在out1缓冲区中,而DMA引擎此时正在对in0进行填充,并对out0中的数据进行传输。图1b指出,一旦DMA引擎完成对双缓冲区左边半个的操作之后,它就开始把数据传送到in1,并从out1取出数据,而此时的处理器内核正在处理来自in0的数据,并填入out0。这个结构有时被称为“乒乓式缓冲”,因为处理器内核来回地对双缓冲区的左右两半进行处理。
  


  应该注意到,在实时系统中,串行端口的DMA(或者另一个与音频采样率关联的外围设备的DMA)规定了时序预算。基于这个原因,块处理算法必须以这样的方式进行优化,即它的执行时间要小于或等于DMA对双缓冲区的一半进行数据传输所需的时间。
  
  二维(2D)DMA
  
  当数据通过像12S这样的数据链路传输时,它可能会包含多个声道。这些声道可以全是从一条数据线上通过复用而输入到同一个串行端口的。在这种情况下,2D DMA可以用来对数据进行解交织,从而使每个声道在存储器中是线性分配的。可以看一下图2中对这一安排的图示,其中从左右声道来的样点被解复用到两个分离的数据块。这个自动数据安排对于那些使用块处理的系统是极其有用的。
  
  基本操作
  
  在音频处理中有三个基本的构建模块。它们是加法操作、乘法操作和时间延迟。许多更复杂的效果和算法可以用这三个基本操作来实现。加法器显而易见的任务是把两个信号加在一起。乘法可以用于提升或衰减音频信号。在大多数媒体处理器中,可以在一个周期内完成多次加法和乘法操作。
  时间延迟有点复杂。在许多音频算法中,当前的输出取决于过去的输入和输出之间的组合。这种延迟效果是用延迟线实现的,而延迟线只不过是存储器中用来保持过去数据的一个数组。例如,一个回声算法可以对每个声道保持500 mS的输入样点。当前输出值可以用当前输入值与稍微衰减的过去样点进行相加后得到。如果音频系统是基于样点的处理方式,那么程序设计人员可以简单地跟踪一个输入指针和一个输出指针(两者之间保持500 mS样点数的间隔),并且在每个采样周期之后增加这两个指针。
  由于延迟线要被随后的各组数据重复使用,因此,输入与输出指针将需要从延迟线缓冲区的末尾回绕到起始端。在C/C++中,这通常是在指针增加操作时再附带一次求模操作(%)完成的。
  对于那些支持循环缓冲(见图3)的处理器来说,这个回绕操作不会增加额外的处理周期。在这种情况下,一个循环缓冲区的起始位置和长度必须只提供一次。在处理过程中,软件增加或减少缓冲区内的当前指针,如果当前的指针位置落在缓冲区的两个端点之外,则由硬件使指针回绕到缓冲区的起始位置。如果没有这个自动地址生成功能,程序设计人员就必须手动地保持对缓冲区的跟踪,因而会浪费有用的处理周期。
  


  由延迟线结构可以引出一个叫做梳状滤波器的重要的音频构建模块,它本质上是一个带有反馈的延迟线。当多个梳状滤波器同时使用的时候,可以产生混响的效果。
  
  信号的产生
  
  在有些音频系统中,也许需要合成一个信号(例如一个正弦波)。泰勒级数的函数近似法可以用来对三角函数进行仿真。而且,用均匀随机数发生器来产生白噪声是很容易的。
  但是,合成的方法也许并不适用于某些给定系统的处理预算。在具有充足存储器的定点系统中,您可以取而代之地使用查表的方法来产生信号。这样做的负面效应是占用了宝贵的存储器资源,所以,作为一种折衷考虑,可以使用混合的方法。例如,您可以存储一个不太精细的函数表,以节省通过2D DMA进行采样解交织存储器。在运行时,准确的值可以用插值的方法从函数表中提取出来,而插值操作比使用泰勒级数近似法的时间大为缩短。这个混合法提供了在计算时间和存储器资源之间的很好的平衡。
  
  滤波与算法
  
  音频系统中的数字滤波器被用来对指定频带内的声波能量进行衰减或提升。最常用的滤波器形式是高通、低通、带通和点阻。这些滤波器中的任何一种都有两种实现方法。这就是有限冲击响应(FIR)滤波器和无限冲击响应(IIR)滤波器,而且它们组成了搭建像参数均衡器和图示均衡器那样更复杂的滤波算法的构建模块。
  
  有限冲击响应(FIR)滤波器
  
  FIR滤波器的输出是由当前和过去输入 之和确定的,而其中的每个输入样点首先要乘以一个滤波器系数。示于图4a中的FIR求和公式,也叫做“卷积”,是信号处理中最重要的操作之一。在这个公式的句法中,x为输入向量,y为输出向量,而h为滤波器系数。图4a表示了FIR的实现结构图。
  卷积是在媒体处理中非常常用的操作,因而许多处理器都可以在一个周期内完成一条乘累加(MAC)指令,同时还可以完成多个数据的访问操作(读或写)。
  
  无限冲击响应(IIR)滤波器
  
  与输出仅仅取决于输入的FIR滤波器不同,IIR滤波器则依靠输入和过去的输出。IIR滤波器的基本公式是一个差分方程,如图4b所示。由于当前输出对于过去输出的依从关系,IIR滤波器经常被称为“递归式滤波器”。图4b也给出了ILR滤波器结构的图示。
  
  快速傅里叶变换
  
  我们往往可以更好地描述音频信号的特性,那就是用频率组成。傅里叶变换以时域信号作为输入,并把信号重新安排到频域里,而傅里叶反变换则完成逆向的工作,把频域表示变换回时域。从数学上看,时域中的操作与频域中的操作之间存在一些很妙的特性关系。特别是,时域卷积(或者FIR滤波器)等效于频域的相乘。如果没有傅里叶变换这个特别的优化方法,即快速傅里叶变换(FFT),那么这个信号处理中的珍品就不可能变为实用。事实上,FIR滤波器往往有更高效的实现方法,那就是把输入信号和滤波器系数用FFT变换到频域,然后将两个变换式相乘,最后再用傅里叶反变换把乘积变换回时域。
  


  在音频处理中还经常使用其他一些变换。其中包括最常用的修正离散余弦变换(MDCT),这是许多音频压缩算法的基础。
  
  采样率转换
  
  有时您会需要把信号的采样率转换到另一个不同的采样率。用到变采样率的一个情况是,您需要对一个以8 kHz采样的音频信号进行解码,但是您使用的DAC并不支持这个采样率。另一个情况是,当一个信号被过采样之后,需要转换成一个较低的频率,因而可以缩短计算时间。把信号从一个采样率变换到另一个采样率的过程叫做变采样率(或SRC)。
  提高采样率的方法叫做插值,而降低采样率的方法叫做抽取。对信号进行M倍抽取是通过只保留每个M样点而抛弃所有其余的样点来完成的。对信号进行L倍插值是通过对原来信号的每两个样点之间补充L-1个零来完成的。
  虽然插值和抽取的因子都是整数,但您可以对输入信号接连使用插值和抽取而得到一个有理数的变换因子。当您用5倍进行上采样,然后用3倍作下采样,那么最后的因子为5/3=1.67。
  老实说,我们有点过分地简化了SRC的过程。为了避免对信号补零(补零会引起频域的镜像成分)而引起的人工痕迹,被插值的信号在当作输出或当作抽取器的输入而被使用之前,必须经过低通滤波。通过使用一个知晓与L-1个插值样点相对应的输入都是零值的特定FIR滤波器结构,这个抗镜像低通滤波器可以在输入采样率下进行,而不必在较快速率的输出采样率下进行。
  同样,在被抽取之前,不符合Nyquest采样定律的输入信号必须被低通滤波,以避免混叠。使用知晓输出样点中那些被抛弃的样点是不需要进行滤波计算的FIR滤波器结构,这个抗混叠低通滤波器可以设计成以抽取后采样率进行操作,而不必在较快速的输入采样率下操作。图5表示了变采样率的流程图。应该注意到,抗镜像滤波器和抗混叠滤波器是可以合二为一的,以便节省计算量。
  显然,对于这些嵌入式音频的论题,我们仅仅能够给出一个很表层的讨论,但对于嵌入式音频处理应用的开发,我们还是希望已经提供了一个有用的框架,并提到了其中各种必需考虑的问题。
  
  CMOS功放成为手机射频新宠
  
  射频部分在手机材料清单(BOM)中的比重越来越大,过去使用的GaAsPA(功放)技术,由于成本较高,受到了CMOS技术的挑战。2008年10月,美圆Axiom Microdeviees展示了该公司的CMOS PA技术,以替代传统砷化镓(GaAs)功放的解决方案,高度集成化的CMOS PA的单芯片技术避免了复杂而昂贵的多芯片模块技术,从而确保客户可从CMOS的各项优势中获得诸多好处,包括集成度提高、供应的连续性、可扩展性、功耗和成本的降低。
  “选用CMOS技术可以使制造商的成本降低30美元以下,随着技术的成熟,今后是20美元或10美元”Axiom公司市场营销副总裁Donald McClymont说。Axiom的CMOS PA采用主流的0.13微米硅CMOS技术,在一个单片IC上全部集成了四频GSM/GPRS功能。这项专利技术确保了在硅片上把PA输出匹配与功率控制功能集成在一起,从而摆脱对砷化镓或其他特殊工艺的需求。随着电话上最后一个零部件实现了硅技术化,Axiom等公司已经开辟出了一条通往在硅片上集成全部无线电功能的道路。
  据悉,Axiom Microdevices现在每季度PA的出货量超过1000万片,并且将继续增加它在多个客户和多款手机上的产量。“在中国市场上,CMOS PA的市场占有率为10%~15%,Axiom每月在华出货2百万片。”Axiom亚太区销售总监王毅补充道。
  今年五月份,Axiom宣布了与中国移动电话制造商之一的经纬科技(Ginwave Technologies)公司的合作,经纬科技在多个手机设计中采用AX502CMOSPA,Axiom已向该公司出货数百万片。
其他文献
摘要:本文主要介绍了某发信系统的计算机监控系统配置和功能,重点阐述了运用PLC软件和组态软件来实现系统的监控功能。整个监控系统体现了先进性、可靠性、开放性的技术优势,经过实际运行试验鉴定,取得了满意的效果。  关键词:PLC;组态软件;发信系统    引言    在大型通信台站中,其关键设备是发信设备,发信设备的自动化控制水平和可靠性直接关系到发信任务的可靠完成,而目前在大功率、强噪声、存在着微波
期刊
数字传感器正在占据一些终端洧费市场,这主要得益于它们优越的功能及自身的性能  摘要:俘随着技术的成熟和进步,在不久的将来数字传感器对电子市场具有重要的推动作用,数字传感器衍生出诸多新的应用领域,并且带动数字传感器技术的发展。  关键词:数字传感器;MEMES;图像传感器;生物识别    注:“本文中所涉及到的图表、注解、公式等内容请以pdf格式阅读原文。”
期刊
2008年10月底,Actel为扩展其作为低功耗FPGA的地位,宣布推出IGLoo和ProASIC3 FPGA的nano版本,瞄准大批量便携式消费品市场。现在,Actel使到器件的功耗降低至2uW。Actel还通过提供超过50种价格低于1美元的不同型款nano FPGA,从而打破FPGA的价格屏障。  同时,Actel还为裸芯片业务提供支持,以便满足便携应用所需的交付时间和数量要求,包括智能电话、
期刊
唐太宗即位后做了23年皇帝,在位时间不算长,但其政绩却彪炳史册人民颂,“贞观之治”传千古。贞观之治有哪些值得我们借鉴的呢?  1)“为君之道”,以民为本。李世民的个人素质极高,聪明睿智,明辨是非,豁达大度,目标明确。李世民即位以后,时时不忘以“亡隋为戒”。他曾说:“为君之道,必须先存百姓。若损百姓以奉其身,犹割股以啖腹,腹饱而身毙。”“凡事皆须务本,国以民为本,民以食为本。”他还反复引用荀子所说:
期刊
同构架构已经兑现了其承诺:有效的低功耗、灵活性,以及可通过Internet升级消费电子系统等。然而,在日本举行的2008微处理器论坛(MPF)上,为期两天的日程有24个演讲,其中只有一个演讲是介绍同构架构设计的(如表1)。    架构设计的分配    会议的主题集中在娱乐,并且暗指需要不同的架构配置。Intel和KDDI Labs公司的主题讲演描述了不久将受到欢迎的固定连接和移动设备(TonSte
期刊
恩智浦完成科胜讯宽带业务的收购    和恩智浦(NXP)划拨无线业务给ST合并成ST-NXP Wireless的轰动效应相比,NXP收购科胜讯的宽带业务进展地有些低调但是很顺利。  在半导体行业利润率不断萎缩的环境下,这两个举措都是NXP重新思考经营策略的一个体现。“这是NXP家庭娱乐事业部的一项真正意义上的战略转型。”在最近对外宣布收购完成后,NXP家庭娱乐事业部数字机顶盒中国区经理江振辉博士这
期刊
摘要:本文基于Virtex-5FPGA设计面向未来移动通信标准的Gbps无线通信基站系统,具有完全的可重配置性,可以完成MIMO、OFDM;KLDPC等复杂信号处理算法,实现1Gbps速率的无线通信。  关键词:Gbps无线通信;基站;FPGA RapidIO    引言    随着以TD-SCDMA为代表的3G移动通信全面进入商用部署,LTE标准基本完成,华为、爱立信成功实现LTE标准的现场演示
期刊
所谓交叉编译(Cross Compiling)是指借助主机操作系统和硬件资源开发的软件代码下载到目标系统上运行的软件环境,顾名思义交叉编译是区别于宿主机编译的,宿主机编译是在主机上完成编译一调试一运行的过程,这也是目前主流计算应用模式(如PC)。交叉编译一直是MCU和嵌入式系统开发的特色和骄傲。但到了今天它面向密集计算和应用的移动互联网时显得捉襟见肘,很难想象把大量互联网上成熟的LA二进制应用,全
期刊
摘要:模拟隔离是传统生物电信号采集系统中必不可少的一部分。它耗电多,成本高并可能造成信号失真。是心电、肌电等相关仪器不能便携化和家用化的重要原因。本文提出一种基于Microchip公司智能传感方案的数字隔离方法,该方法为这些生物电信相关仪器的便携化提供了一条有效的途径。  关键词:生物电信号;隔离;便携式;信噪比    引言    自1903年爱因多芬发明了心电图仪,百年来随着电子技术的飞速发展,
期刊
锂电池需要非常精确的充电电流和输出电压,以延长电池寿命,提高性能。为满足这一需求,飞思卡尔推出了系列电池充电器IC,它们具有业界最高性能和精度,以及卓越的配置灵活性。  飞思卡尔的电池充电器IC在整个温度范围提供+/-0.4%的输出电压精度和+/-5%的充电电流精度。这些IC可以定制成几百种配置,可以满足各种口袋式和超便携设备的需求。设计人员可以选择特性和规范,例如管脚输出、功能集合、充电参数和L
期刊