新闻中心

EEPW首页 > 消费电子 > 设计应用 > 基于FPGA的音频处理芯片的设计

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

作者:时间:2010-08-27来源:网络收藏

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,串并转换模块,并串转换模块,地址生成模块,主控制器模块。

3.2 寻址方式描述
在系统启动时,附加的EEPROM储存的系统参数值,包括输入信号在DataRAM中的地址值和相应的标志位(32*6bit) ,依次读入ProgramRAM中去。



评论


相关推荐

技术专区

关闭