一种基于FPGA的细粒度两并行SystolicFxLMS滤波器设计方法技术

技术编号:33026334 阅读:11 留言:0更新日期:2022-04-15 09:00
本发明专利技术请求保护一种基于FPGA的细粒度两并行Systolic FxLMS滤波器设计方法。主要包括3个部分:(1)Systolic FxLMS滤波器设计(2)两并行Systolic FxLMS滤波器设计(3)细粒度两并行Systolic FxLMS滤波器设计。本发明专利技术创新点在于研究了细粒度两并行Systolic FxLMS算法在主动降噪耳机中实现的可行性,改善了FxLMS滤波器的收敛性、吞吐量和功耗,该结构在相同的频率下吞吐量是传统结构的2倍,且收敛性接近Systolic FxLMS算法;所提出的8抽头滤波器结构与现有最佳结构相比时钟速度提高52.17%,功耗降低9.28%。功耗降低9.28%。功耗降低9.28%。

【技术实现步骤摘要】
一种基于FPGA的细粒度两并行Systolic FxLMS滤波器设计方法


[0001]本专利技术属于数字信号处理领域,具体涉及一种基于FPGA的细粒度两并行Systolic FxLMS滤波器设计方法。

技术介绍

[0002]随着经济的快速发展和城市化进程的推进,噪声严重威胁着人们的身心健康,因此控制噪声污染是当前迫切需要解决的问题。噪声的控制方法可分为被动噪声控制(Passive Noise Control,PNC)和主动噪声控制(Active Noise Control,ANC),其中ANC能有效降低低频噪声,在主动降噪耳机中广泛应用。ANC系统的核心是自适应算法和自适应滤波器,ANC系统中使用最广泛的自适应算法是滤波

X最小均方(Filtered

X Least Mean Square,FxLMS)算法,FxLMS算法因物理机理明晰、运算量小、实现简单成为ANC系统中的“基准”算法而被广泛应用。
[0003]现有主动噪声控制算法中,主要以MATLAB仿真阶段为主,本专利技术侧重于主动噪声控制算法特性研究和结构改进,同时考虑功耗、算法收敛性、吞吐量的自适应滤波器结构分析以及硬件实现。在实际应用中,保证自适应滤波器收敛性的同时降低功耗和提高吞吐量是硬件实现的重要因素。在降噪耳机应用中,由于其结构紧凑,采用反馈ANC系统,将参考麦克风放在靠近次级声源的位置,会导致反馈ANC系统降噪频段较窄且降噪时易出现中高频段噪声不降反升的“水床效应”,对宽带噪声处理能力较差。所以,前馈ANC系统在目标噪声源处放置参考麦克风获取参考信号,不仅适用于处理窄带噪声信号,也适用于处理宽带噪声信号,具有很强的鲁棒性。所以本专利技术研究前馈FxLMS算法在主动降噪耳机中实现的可能性,提出了一种基于FPGA的细粒度两并行Systolic FxLMS滤波器设计方法。

技术实现思路

[0004]本专利技术旨在解决以上现有技术的问题。提出了一种基于FPGA的细粒度两并行Systolic FxLMS滤波器设计方法。本专利技术的技术方案如下:
[0005]一种基于FPGA的细粒度两并行Systolic FxLMS滤波器设计方法,其包括以下步骤:首先进行Systolic FxLMS(脉动滤波

X最小均方算法)滤波器设计,(Systolic FxLMS滤波器用于音频主动降噪);然后进行两并行Systolic FxLMS滤波器设计,两并行Systolic FxLMS滤波器用于低功耗实现音频主动降噪;最后进行细粒度两并行Systolic FxLMS滤波器设计,细粒度两并行Systolic FxLMS滤波器用于高吞吐量实现音频主动降噪。
[0006]进一步的,所述Systolic FxLMS滤波器具体包括:
[0007]自适应滤波模块,用于实现N个权值系数W(n)与N个输入信号X(n)乘法运算,Systolic FxLMS算法自适应滤波迭代运算公式是y(n)=W
T
(n)X(n);
[0008]第一误差计算模块,用于实现输出信号y(n)与噪声信号d(n)减法运算,Systolic FxLMS算法误差计算迭代运算公式是e(n)=d(n)

W
T
(n)X'(n);
[0009]第一权值更新模块,由N个进位加法器组成,用来更新N个权值系数,Systolic FxLMS算法权值更新迭代运算公式是W(n+1)=W(n)+μe(n)X'(n);
[0010]第一次级路径模块,采用LMS算法FIR滤波器进行模型的自适应辨识,来修正LMS算法的误差梯度估计值,Systolic FxLMS算法次级路径迭代运算公式是X'(n)=s(n)*X(n),其中s(n)表示次级信号,*表示卷积运算,X'(n)表示滤波后的输入信号。
[0011]进一步的,所述Systolic FxLMS滤波器设计多个数据处理模块PM来传输数据,数据流从PM(0)依次传输到PM(N

1);当滤波器抽头长度足够长时,对步长因子的约束具体为:
[0012][0013]其中:μ是Systolic FxLMS算法的步长因子;λ
max
是滤波

X信号自相关矩阵的最大特征值。
[0014]进一步的,所述两并行Systolic FxLMS滤波器包括:
[0015]两并行快速FIR滤波器模块,包括3个长度为N/2的子滤波器、预处理单元、后处理单元,子滤波器表示W0、W0+W1、W1,预处理单元表示一个加法器、后处理单元表示三个加法器和一个延迟单元。迭代运算公式是
[0016]Y=Y0+z
‑1Y1[0017]Y0=W0X0+z
‑2W1X1[0018]Y1=(W0+W1)(X0+X1)

W0X0‑
W1X1[0019]其中:Y是两并行快速FIR滤波器输出;Y0是通道0滤波器输出;Y1是通道1滤波器输出;W0是通道0滤波器权值系数;W1是通道1滤波器权值系数;X0是通道0滤波器的输入信号;X1是通道1滤波器的输入信号;z表示延时。
[0020]第二误差计算模块,用于实现输出信号与噪声信号d0(n)减法运算,两并行Systolic FxLMS算法误差计算迭代运算公式为:
[0021][0022]s0(n)表示通道0次级路径信号。
[0023]第二权值更新模块,由N个进位加法器组成,用来更新N个权值系数,两并行Systolic FxLMS算法权值更新迭代运算公式是
[0024]第二次级路径模块,采用LMS算法FIR滤波器进行模型的自适应辨识,来修正LMS算法的误差梯度估计值,两并行Systolic FxLMS算法次级路径迭代运算公式是
[0025]其中:s0(n)表示通道0次级路径信号;*表示卷积运算;X0'(n)表示通道0滤波后的输入信号;X1'(n)表示通道1滤波后的输入信号;
[0026]进一步的,所述两并行Systolic FxLMS滤波器,当N=8,W={w0,w1,w2,w3,w4,w5,w6,w7},两并行快速FIR滤波器模块子滤波器为:
[0027]W0={w0,w2,w4,w6}
[0028]W1={w1,w3,w5,w7}
[0029]W0+W1={w0+w1,w2+w3,w4+w5,w6+w7}
[0030]所述两并行Systolic FxLMS滤波器框架,两并行输入信号为:
[0031][0032]进一步的,所述细粒度两并行Systolic FxLMS滤波器包括:
[0033]乘

累加运算模块,采用Radix

4 Booth编码算法设计16
×
16并行定点运算与Wallace树算法结合实现;
[0034]融合乘加单元模块,采用部分积产生和Wallace树结合实现,减小关键路径;...

【技术保护点】

【技术特征摘要】
1.一种基于FPGA的细粒度两并行Systolic FxLMS滤波器设计方法,其特征在于,包括以下步骤:首先进行Systolic FxLMS脉动滤波

X最小均方算法滤波器设计,Systolic FxLMS滤波器用于音频主动降噪;然后进行两并行Systolic FxLMS滤波器设计,两并行Systolic FxLMS滤波器用于低功耗实现音频主动降噪;最后进行细粒度两并行Systolic FxLMS滤波器设计,细粒度两并行Systolic FxLMS滤波器用于高吞吐量实现音频主动降噪。2.根据权利要求1所述的一种基于FPGA的细粒度两并行Systolic FxLMS滤波器设计方法,其特征在于,所述Systolic FxLMS滤波器具体包括:自适应滤波模块,用于实现N个权值系数W(n)与N个输入信号X(n)乘法运算,Systolic FxLMS算法自适应滤波迭代运算公式是y(n)=W
T
(n)X(n);第一误差计算模块,用于实现输出信号y(n)与噪声信号d(n)减法运算,Systolic FxLMS算法误差计算迭代运算公式是e(n)=d(n)

W
T
(n)X'(n);第一权值更新模块,由N个进位加法器组成,用来更新N个权值系数,Systolic FxLMS算法权值更新迭代运算公式是W(n+1)=W(n)+μe(n)X'(n);第一次级路径模块,采用LMS算法FIR滤波器进行模型的自适应辨识,来修正LMS算法的误差梯度估计值,Systolic FxLMS算法次级路径迭代运算公式是X'(n)=s(n)*X(n),其中s(n)表示次级信号,*表示卷积运算,X'(n)表示滤波后的输入信号。3.根据权利要求2所述的一种基于FPGA的细粒度两并行Systolic FxLMS滤波器设计方法,其特征在于,所述Systolic FxLMS滤波器设计多个数据处理模块PM来传输数据,数据流从PM(0)依次传输到PM(N

1);当滤波器抽头长度足够长时,对步长因子的约束具体为:其中:μ是Systolic FxLMS算法的步长因子;λ
max
是滤波

X信号自相关矩阵的最大特征值。4.根据权利要求1

3任一项所述的一种基于FPGA的细粒度两并行Systolic FxLMS滤波器设计方法,其特征在于,所述两并行Systolic FxLMS滤波器包括:两并行快速FIR滤波器模块,包括3个长度为N/2的子滤波器、预处理单元、后处理单元,子滤波器表示W0、W0+W1、W1,预处理单元表示一个加法器、后处理单元表示三个加法器和一个延迟单元,迭代运算公式是Y=Y0+z
‑1Y1Y0=W0X0+z
‑2W1X1Y1=(W0+W1)(X0+X1)

W0X0‑
W1X1其中:Y表示两并行快速FIR滤波器输出;Y0表示通道0滤波器输出;Y1表示通道1滤波器输出;W0表示通道0滤波器权值系数;W1表示通道1滤波器权值系数;X0表示通道0滤波器的输入信号;X1表示通道1滤波器的输入信号;z表示延时;第二误差计算模块,用于实现输出信号与噪声信号d0(n)减法运算,两并行Systolic FxLMS算法误差计算迭代运算公式为:
s0(n)表示通道0次级路径的信号;第二权值更新模块,由N个进位加法器组成,用来更新N个权值系数,两并行Systolic FxLMS算法权值更新迭代运算公式是第二次级路径模块,采用LMS算法FIR滤波器进行模型的自适应辨识,来修正LMS算法的误差梯度估计值,两并行Systolic FxLMS算法次级路径迭代运算公式是其中:s0(n)...

【专利技术属性】
技术研发人员:袁军孟祥胜赵强李军王巍王冠宇李勤
申请(专利权)人:重庆邮电大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1