数字回声处理器-滤波器的设计_第1页
数字回声处理器-滤波器的设计_第2页
数字回声处理器-滤波器的设计_第3页
数字回声处理器-滤波器的设计_第4页
数字回声处理器-滤波器的设计_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2010-3-9回声(Echo),物理学中的描述是:“Repetition of a sound by reflection of sound waves from a surface”。 根据心里声学的研究成果,人耳能够感觉到回声时,反射声与直达之间的时间差应大于20ms,通常在20ms 至50ms 之间。人们常常利用回声,产生“人造” 的悦耳音频效果,比如,卡拉OK 机的基本功能就是Echo。因此,数字回声处理器是数字音效处理器的基本模块。数字回声处理器的数学模型:单反射回声效果:y(n) =x(n)+ax(nD)这里:x(n)是输入声源,即直达声;a 是反射衰减系数(attenuatio

2、n);D 是延时单位(Delay);x(nD)就是反射声; y(n)是带回声效果的输出完成数字回声音效处理器电路模块设计,实时产生语音的完成数字回声音效处理器电路模块设计,实时产生语音的回声效果,包括:回声效果,包括:参数选择、或可调参数设计完整的输入输出模块(可用文件读、写形式实现语音信号的输入(出)语音信号的采样频率为32kHz, 16-bit量化,(可选择8kHz采样,8-bit量化)计算过程全部采用定点运算多阶回声数学模型根据单反射回声的数学模型,推导多反射的回声的数学模型(以本设计中实现的7阶为例)为:y(n)=x(n)+1 x(n-D1 )+2 x(n-D2 )+3 x(n-D3

3、)+4 x(n-D4 )+5 x(n-D5 )+6 x(n-D6 )+7 x(n-D7 )这是一个FIR滤波器,其传输函数是:H(z)=1+1 Z -D1+2 Z-D2+3 Z-D3+4 Z-D4+5 Z-D5+6 Z-D6+7 Z-D7其中17是取值在-1,1的回声系数。在实际情况中的回声模型,应该更接近IIR滤波器:y(n)=x(n)+1 y(n-D1 )+2 y(n-D2 )+3 y(n-D3 )+4 y(n-D4 )+5 y(n-D5 )+6 y(n-D6 )+7 y(n-D7 )这两种滤波器的结构如图 1所示。这两种滤波器的结构如图 1所示。 Z-D1Z-D2Z-D3Z-D4Z-D5

4、Z-D6Z-D7a1x(n)y(n)a2a3a4a5a6a7Z-D1Z-D2Z-D3Z-D4Z-D5Z-D6Z-D7x(n)y(n)a1a2a3a4a5a6a7FIRIIR在实现回声计算的过程中,有多次的加法和乘法,由于FPGA内的乘法器和加法器是有限位数的定点计算,所以在取乘法结果和加法结果时,舍掉的一部分末尾数据可能造成截断误差,等效于降低了信噪比。采用了16位的加法器和16位的乘法器,其中首位是符号位,低15位是数据位。所以每进行一次乘法和加法,所造成的截断误差,最差情况是: 21)xx(15max平均情况是: 在一次运算过程中,需要进行7次乘法和7次加法,所以累计的截断误差平均值粗略分

5、析为:假设输入信号的信噪比达到最高,则输出信号的信噪比平均值是也就是说,当输入信号的信噪比大于85dB时,经过回声处理器处理以后输出信号降低为85dB,如果输入信号的信噪比小于85dB,经过处理以后信噪比降低。1621)(avgxx16214)(sumxxDBNS8514216考虑到本系统可实现7阶的回声信号与当前信号的叠加,有可能使得输出数据结果大于1,发生溢出,因此本系统在数据处理前对语音信号进行预处理,首先由系统外部根据输入语音信号的特性和设置的滤波器系数,给出一个门限电平,该电平为16bit量化形式,在物理意义上可以认为是语音信号的绝对值电平,超出该电平,表明语音信号过大,将过大信号与

6、一系数相成,降低其绝对值。因此在系统处理器之前,首先对输入的语音信号去绝对值,然后与门限值比较,若大于门限值则在处理器中与设定的系数相乘,然后进行后继处理;否则,则不做处理。每次运算过程中,数据要经过预处理,考虑到平均情况,需要预处理的数据为一半,即需要0.5次乘法运算,最坏情况所有信号都要经过预处理需要1次乘运算,最后情况需要0次乘运算。系统的核心运算单元运算次数与外部配置的阶数有关,如果为n阶回声(n=1,2,3,4,5,6,7) ,则需要n次乘法n次加法。因此系统需要的运算次数为平均情况:Navg=(0.5+n) MUL + n ADD;(n是回声滤波器阶数,取值范围17)最坏情况:Nm

7、ax= (1+n) MUL+ n ADD;最好情况:Nmax= n MUL +n ADD。其中MUL表示一次乘法,ADD表示一次加法。本设计中,运算单元的输入都是16bit的数据,其中包括输入声音采样和回声参数。其中,声音采样采用原wav文件中的16bit二进制数据,其范围是-32768-32767;回声参数由于范围在-11之间,为了提高计算精度,将回声参数扩大215倍,使得它的范围也在-32768-32767。乘法器的输入都是15位数据+1位符号位,所以采用16*16的定点补码小数乘法器,输出32位,考虑到系数在乘法之前扩大了215位,所以从结果中取3116位作为乘法结果,送入加法器。加法器

8、的输入是乘法器的结果和上次加法的结果,由于加法器一共进行7次加法,所以最后结果的最大是7*215,所以需要3位扩展位,加上1位符号位和1位溢出位,一共需要20位。所以采用20位的加法器。存储器长度本系统通过单口RAM实现信号延时,因此存储器的大小取决于延时的长短,数据速率为32KHZ,需要实现的最长时间为50ms,因此需要存储的数据量为5010 -3(1/3210-3 )=5032=1600即存储器最小容量为1600*16bit。对于本系统而言,新的数据需要不停的写入存储器,同时运算单元也需要从存储器中读取以前的数据参与运算,因此通常的结构下,存储器需要支持同时读写操作,但具体分析就可以发现,

9、由于一个采样运算周期进行8次运算,正好需要进行的RAM读写次数也是8,所以可以采用时分服用的结构,在一个采样运算周期内完成指定次数的读写,理论上可以不使用双口RAM,使用单口RAM即可达到要求,从而达到节省面积和功耗的目的。通过分时读写完成数据存取的具体原理是:数据进来的速率为32K,处理器速率为256K,因此两个数据之间有8个时隙,每个数据的处理周期内,系统需要写入一个数据,读出7个数据,恰分配到这8个时隙完成核心计算模块的功能是:在一个采样周期1/32K时间内,完成一个采样数据的回声计算。系统的数据输入速率为32KHZ,乘累加器可达到速度远远大于此速率,考虑面积和速度,功耗之间的折中关系,

10、我们采用时分复用乘法器和加法器的电路结构实现核心计算。其操作可以分为3个部分,核心运算、RAM操作和地址管理。核心运算操作包括,一次x(n)的预计算,七次乘加计算;RAM操作包括一次存储,七次读取;地址管理根据前两个操作的操作数,管理地址的增减变换。时序时序核心运算操作核心运算操作RAM操作操作地址管理操作地址管理操作读x(n-D1),a1RAM地址给存上一个x(n)的地址,写数据给上一个x(n)的值S0读本次x(n)存到寄存器,预计算存上一个x(n)RAM地址给x(n-D2)地址S1X(n)+a1*x(n-D1)读x(n-D2),a2RAM地址给x(n-D3)地址S2X(n)+a2*x(n-

11、D1)读x(n-D3),a3RAM地址给x(n-D4)地址S3X(n)+a3*x(n-D1)读x(n-D4),a4RAM地址给x(n-D5)地址S4X(n)+a4*x(n-D1)读x(n-D5),a5RAM地址给x(n-D6)地址S5X(n)+a5*x(n-D1)读x(n-D6),a6RAM地址给x(n-D7)地址S6X(n)+a6*x(n-D1)读x(n-D7),a7RAM地址给x(n-D1)地址S7X(n)+a7*x(n-D1)读x(n-D1),a1RAM地址给存上一个x(n)的地址,写数据给上一个x(n)的值S8读本次x(n)存到寄存器,预计算存上一个x(n)RAM地址给x(n-D2)地

12、址S9X(n)+a1*x(n-D1)读x(n-D2),a2RAM地址给x(n-D3)地址S10X(n)+a2*x(n-D1)读x(n-D3),a3RAM地址给x(n-D4)地址 将总体的设计结构分成3个模块,参数配置模块,核心运算模块和输入输出模块,其结构图参数配置核心运算模块输入输出核心运算单元的数据路径示意图所示。在一个时钟周期内,从RAM中取一个Di时间之前的数据,和对应的一个回声系数ai,进行一次乘法,乘法结果再和之前的累加值做一次加法;每隔8个周期重新输入一个新值x(n),并将原来的值存到RAM中。 数据输入输出将数据从文件中读入,模拟32k的声音数据输入到核心运算单元,并将运算的结

13、果存储到文件。为了保证处理后的数据结果不溢出,系统在处理之前增加了输入接口,这里称之为预处理,实际也属于本系统的一部分,其原理为,取输入语音信号的绝对值,与系统外给出的门限阈值比较,若大于门限值,则对信号做处理。其结构如图门限值sela待处理数据x(n)处理后数据x(n)比较器mux在实际的电路结构中,为节省面积,提高系统硬件资源的利用率,该模块的a*datain与系统的主处理共享乘法器,这里为了说明该部分框图,将乘法器表现在此图中。本系统采用控制寄存器的方式进行参数控制,系统共有8*16bit的寄存器组,分别存储系统的预处理的截断滤波器系数,和七阶回声梳状滤波器的系数。具体的配置过程为:系统

14、与外部有一aconfig控制线,当此信号为高电平时,表明数据口线上出现的为配置信息,这些配置信息包括,预处理的截断滤波器系数16bit,以及七阶回声梳状滤波器的系数,它们依次出现在数据口线上,并被写入寄存器组。配置完毕后,aconfig信号恢复为0电平,此时系统才检测是否有语音信号输入。 datain15:0-1datain15datain14:0muxVthRAMx(n)SUMba1a2a3a4a5a6a7regmuxmuxmuxregcomparedataout15:0测试的数据根据真实的声音文件产生,用音频软件将截取的wav文件,并以32KHz采样,单声道格式存储,然后在matlab中将头尾去掉,读入纯二进制数据,并以16bit为单位存储成ASCII的格式供verilog的验证程序读取。 乘法器

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论