基于FPGA的音频处理芯片的设计

2011-07-22 19:38:27来源: 电子技术应用
     1 引言

  随着数字技术日益广泛的应用,以现场可编程门阵列FPGA(Field Programmable Gate Array)[1]为代表的ASIC[2]器件得到了迅速的普及和发展,器件的集成度和速度都在高速增长。FPGA既具有门阵列的高逻辑密度和高可靠性,又具有可编程逻辑器件的用户可编程性,可以减少系统的设计和维护的风险,降低产品成本,缩短设计周期。

  目前,信号处理技术、通信技术和多媒体技术的迅猛发展都得益于DSP[3]技术的广泛应用。但是对于便携式和家用的语音系统而言,基于一般的DSP芯片的设计方案并不理想。首先DSP的芯片成本以及开发成本在现阶段仍然是比较高的,尤其是芯片成本,远远不及大批量ASIC芯片成本之低。其次便携式的设备对体积要求十分苛刻,限制了一部分DSP芯片的使用,而体积正是ASIC芯片的优点之一。

  本文提出了一种基于FPGA的音频处理芯片的硬件电路实现方案。由于对FIR滤波器的算法进行了改良,所以很大程度上减小了芯片的体积和降低了芯片的功耗。

  2 算法研究与改良

  2.1 普通FIR滤波算法

  N阶FIR滤波器可以用下面的线性卷积表示:[4]
普通FIR滤波算法

  x(n)是输入的音频序列,而y(n)是经过滤波后输出的音频序列,h(k)是N阶滤波器的系数。

  简单的实现这个算法,需要N+1次的乘法和N次的加法。所以至少需要一个硬件乘法器和一个定点或者浮点加法器来实现这个功能。由于音频处理芯片只需要做线性卷积,所以我们不需要采用乘法器的结构。一般来说,由于乘法器庞大的结构,占用了芯片上的大部分面积,消耗用了大部分功率。而不使用乘法器的结构将会节约可观的芯片面积和功耗。为了实现这种结构,我们需要改良FIR滤波算法。

  2.2 改良滤波算法

  首先,将滤波的系数h(k)用二进制表示法(POT,Power of Two)表示:

  例如:h(k)=0.1172=2-3-2-7-2-16

  我们给出7阶滤波器的一组系数,使用POT表示(精度小于10-4):

  h(0) = 0.3761 = 2-1-2-3+2-10+2-13-2-15

  h(1) = 0.3083 = 2-2+2-4-2-8-2-12

  h(2) = -0.9424*10-1 = -2-3+2-5-2-11

  h(3) = 0.6439*10-1 = 2-4+2-9-2-14

  h(4) = -0.3308*10-1 = -2-5-2-9+2-13

  h(5) = 0.1663*10-1 = 2-6+2-10+2-15

  h(6) = -0.4135*10-2 = -2-8-2-12+2-16

  h(7) = 0.1877*10-2 = 2-9-2-14-2-16

  n=7时滤波器的输出值y如下:

  y = (2-1-2-3+2-10+2-13-2-15) * x(7)

  +(2-2+2-4-2-8-2-12) * x(6)

  +(-2-3+2-5-2-11) * x(5)

  +(2-4+2-9-2-14) * x(4)

  +(-2-5-2-9+2-13) * x(3)

  +(2-6+2-10+2-15) * x(2)

  +(-2-8-2-12+2-16) * x(1)

  +(2-9-2-14-2-16) * x(0)

  很明显,x(n)的系数全部都是2的负k次幂,所以我们可以把具有相同系数的x(n)合并起来。

  y(n)=2-1(...2-1(2-1(2-1u1+u2)+u3)+...)+u16)

  uj=xj(1)+ xj(2)+……+ xj(rj)

  其中1≤j≤16, xj(i)∈{x(n-k)}, 1≤i≤rj

  由前面的系数,可以得到:

  U1 = x(n-6)-x(n-7); U2 = -x(n)+x(n-5);

  U3 = -x(n-3)-x(n-7); U4 = x(n)+x(n-4);

  U5 = -x(n-1)-x(n-6); U6 = -x(n-2);

  U7 = x(n)+x(n-5); U8 = x(n-3)-x(n-4)+x(n-7);

  U5 = -x(n-1)-x(n-6); U10 = 0;

  U11 = x(n-5); U12 = x(n-2)-x(n-4);

  U13 = x(n-1)+x(n-3); U14 = -x(n)-x(n-2);

  U15 = x(n-1); U16 = x(n);

  按照这个算法,先求U1的值,然后将结果右移一位,再将结果与U2的值相加,依此类推,即可得到y(n)。我们使用若干次加法和16次移位操作即可完成FIR滤波,算法的复杂度和功耗都大大地降低。

 

  3 音频处理芯片的设计

  3.1 结构概述

  在整个音频处理芯片的结构中,我们没有采用任何乘法器,取而代之的是一个加法器和移位器。加法器的结果输出到移位器,移位器的输出再反馈到加法器的输入端,循环运算实现滤波器的功能。

  考虑7阶的FIR滤波器,需要对x进行8次采样,所以输入的数据都应该保存在一个8*16的DataRAM之中(16bit的采样精度)。系数RAM(ProgramRAM)的大小取决于操作的个数,在上面提到的算法中,一共有28个操作,所以ProgramRAM的大小不能小于28,在这里我们使用了一个32*6的ProgramRAM,以满足算法需要。

  考虑到音频处理芯片的可扩展性,我们在音频处理芯片外设置一个EEPROM用来存放系数,当芯片启动的时候,从EEPROM中将数据转存到ProgramRAM中,以适应不同FIR滤波器的系数,极大地增强了音频处理芯片的可编程性。

  音频处理芯片的模块主要包括EEPROM, ProgramRAM, DataRAM,串并转换模块,并串转换模块,地址生成模块,主控制器模块。

[1] [2]

关键字:音频处理  FPGA  EEPROM

编辑:北极风 引用地址:http://www.eeworld.com.cn/FPGA/2011/0722/article_2328.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
音频处理
FPGA
EEPROM

小广播

独家专题更多

TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 

夏宇闻老师专栏

你问我答FPGA设计

北京航空航天大学教授,国内最早从事复杂数字逻辑和嵌入式系统设计的专家。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved