1.一种基于FPGA的自适应算法模块化设计方法,其特征在于,包括以下步骤:
首先,进行规范型和非规范型的自适应LMS滤波器的硬件电路结构设计和整个自适应FxLMS系统电路模型的搭建;然后借助System generator工具生成HDL硬件描述语言;最后进行综合布局布线的时序后仿真部分,其中,规范型和非规范型的自适应LMS滤波器算法的硬件电路结构设计部分。
2.根据权利要求1所述的一种基于FPGA的自适应算法模块化设计方法,其特征在于,所述规范型和非规范型的自适应LMS滤波器的硬件电路结构包括噪声数据接收部分、规范型和非规范型的LMS算法部分、快速傅里叶变换FFT的显示部分,其中噪声数据接收部分,主要利用MATLAB的audioread()读取外界声级计等传感器采集的噪声信号存入MATLAB矩阵,然后通过Simulink的From workspace模块获取该矩阵所包含的噪声信号,规范型和非规范型LMS算法部分的输入包括两个部分,分别是噪声输入x(n)和期望信号d(n),算法输出包括自适应滤波后的抗噪声信号y(n)和误差信号e(n),该部分的自适应滤波器的阶数和步长可以随时进行调整;快速傅里叶变换FFT的显示部分,主要使用的FFT ip catalog,通过将控制信号端配置为布尔类型使其正常工作,同时,将接收到的输入噪声信号x(n),和输出抗噪声信号y(n)进行快速傅里叶变换,最后,通过Simulink的示波器Scop进行观察。
3.根据权利要求2所述的一种基于FPGA的自适应算法模块化设计方法,其特征在于,所述规范型和非规范型的自适应FxLMS的硬件电路模型具体为:规范型自适应FxLMS的电路模型主要包括,主通道传递函数模块、次级通道传递函数模块规范型LMS算法模块、参数可调的数字滤波器模块,其中主通道传递函数模块用于模拟声音传播的声学路径,次级通道传递函数模块用于对次级路径进行补偿,规范型LMS算法模块用于将输入信号进行流水线处理,参数可调的数字滤波器模块用于将规范型LMS算法模块的输出进行权值更新,非规范型相比较规范型而言,不同点在于,非规范型FxLMS自适应算法采用全并行的输入方式。
4.根据权利要求1所述的一种基于FPGA的自适应算法模块化设计方法,其特征在于,所述的规范型和非规范型的LMS算法电路结构,其中规范型LMS对输入信号x(n)做流水线处理,随着e(n)=[d(n)-y(n)]的变化,参数可调的数字滤波器进行实时调整。
5.根据权利要求1所述的一种基于FPGA的自适应算法模块化设计方法,其特征在于,整个自适应FxLMS加入了次级路径的补偿S(Z),该补偿主要采用的低通滤波器进行模拟,主要是为了避免因为输出y(n)的次级路径效应导致极点的产生。
6.根据权利要求1所述的一种基于FPGA的自适应算法模块化设计方法,其特征在于,所述自适应FxLMS系统电路模型通过基本的乘法器、加法器和基本的逻辑单元组成3阶、5阶、8阶的自适应滤波器,其中对步长因子的约束具体为:其中μ:FxLMS算法的步长;λmax:自相关矩阵的特征值的最大值。
7.根据权利要求2所述的一种基于FPGA的自适应算法模块化设计方法,其特征在于,所述LMS算法将衡量系统性能的平均均方误差用瞬时均方误差来代替,故权值更新的公式如下所示:又因为e(k)=d(k)-y(k),
故LMS的迭代权值更新算法如下:
w(k+1)=w(k)+2μe(k)x(k)
经过矩阵变换则:
E[v(k+1)]=(I-2μΛ)E[v(k)]
E[v(k)]=(I-2μΛ)kE[v(0)]
I-2μΛ是一个对角矩阵,I为单位矩阵,Λ表示对角矩阵,k表示序列,E[v(k)]表示期望;x(k)表示输入数据信号。所以步长必须满足: 即LMS算法需要保持稳定,步长应该满足此值。
其中w(k+1):表示权值系数;E[▽(k)]:表示更新迭代参数的期望值;λmax:表示输入音频信号自相关矩阵特征值的最大值;μ:表示自适应算法的步长因子。
8.根据权利要求2所述的一种基于FPGA的自适应算法模块化设计方法,其特征在于,所述自适应LMS算法部分采用规范型的设计方法,该方法通过将输入信号进行流水线处理使得整个算法的在对应阶数的周期时间内完成整个算法的运算,其中的权值更新的公式表示为如下所示:其中,wn(k):为权值系数,μ:为步长因子,e(k):为接收到的误差信号,x(k-N):为输入的参考信号。