式中,X(n) =[X(n),X(n-1),X(n-2),…,X(n-M+1)]T表示时刻n时的输入信号矢量,由最近M个信号采样值构成,W(n)=[W0(n),Wl(n),…,WM-1(n)]T表示n时刻自适应滤波器的系数矢量估值,μ是控制稳定性和收敛速度的步长参量。
2 、FPGA硬件设计
设计选用FPGA是Altera公司Cyclone系列的EPlCl2Q240C8。FPGA中I/O端口可自由定义,电路设计方便、编程灵活、不易受外部干扰。系统编译环境采用QuartusⅡ,顶层设计为图形化方式。芯片模块划分为分频模块、D/A转换模块和回波抵消器模块。分频模块采用VHDL语言编程实现,D/A转换模块采用硬件电路实现,同波抵消器模块用DSPBuilder软件进行设计。
2.1 分频模块设计
分频模块是将外部时钟进行分频设定,得到系统内部DA模块和回波抵消器模块所需要的时钟。分频模块的外部时钟输入频率为50 MHz,8分频后产生的时钟频率约为6 MHz。
2.2 回波抵消器模块设计
该部分采用层次化的设计方法。利用DSP Builder模块构建自适应算法部分,根据LMS算法迭代公式(4)和滤波器的估计输出式(2),建立加权分量模型。如图2(a)所示。
在图2(a)中,第i个延时单元的输入信号为x(n),延时后的输出信号为x(n-1),同时输入信号x(n)产生一个乘积y’(n)=ω(n)x(n),由于是滤波器的估计输出是一系列权值分量与输入矢量的各分量乘积之和。因此,除第一级外,后续单元必须加上前一级的加权单元的输出。封装后,则可以根据滤波器阶数的不同而相应调整,以实现多级级联。尤其是在构造阶数可变和阶数较大的滤波器时更能显出其灵活性。然后将封装后的加权分量单元依照阶数级联,并再次封装即构成抵消器模块。可运用于顶层模型中。
在顶层系统模型中连接各子模块,如图2(b)所示,图中两个信号源sin2,sin1采用正弦信号发生器实现,利用正弦查找表产生正弦波数据,函数调用格式为lOsin([0:2π/2∧4:2π])和5sin[0:2π/2∧6:2π],其输入地址分别为4位和6位,输出为16位。Dixiaoqi模块由图2(a)级联封装得到,模块Parallel to serial为并行/串行转换器。
设计中,因语音信号频率可以看作约为3.4 kHz,所以信号采样频率设为8 kHz,假设回波延迟2.5 ms(小于回波对听觉产生干扰的范围20 ms),考虑收敛速度和实现情况,步长采用0.1,计算得出滤波器阶数20。