1.一种自适应滤波的系数更新方法,其特征在于,包括如下步骤:
步骤1:设滤波器w(k)中的系数总量为N,并将滤波器w(k)的长度等分为M段;其中M为大于1的整数,每段滤波器wi(k)包含L=N/M个系数,i∈[1,M];
步骤2:将所述滤波器分成的M段随机分为活跃分段与零值分段;
步骤3:获取输入信号χ(k);
步骤4:判断是否所有零值分段均参与了一次算法,若所有零值分段均参与了一次算法,跳至步骤8,否则继续步骤5;
步骤5:选取若干段新的、未曾参与过算法的零值分段;
步骤6:选取滤波器的全部活跃分段和步骤5选定的多段零值分段参与迭代计算,通过计算更新所述全部活跃分段和步骤5选定的多段零值分段的下一时刻的系数;对于未被选中的分段,系数保持不变;其中,进行系数迭代时采用的滤波器系数更新迭代方程为:T
e(k)=d(k)‑χ(k)U(k)w(k);
其中,U(k)=A(k)+Q(k),μ为收敛步长,0<μ<2;χ(k)为k时刻的输入信号;d(k)为系统输出理论值;e(k)为后验误差;
步骤7:返回步骤3;
步骤8:将滤波器分段重新区分为活跃分段与零值分段,其包含以下5个步骤:步骤8.1:在k时刻(k>0),利用上一时刻k‑1的零值分段计算零值系数的标准方差σ0(k‑
1)值;
步骤8.2:遍历滤波器所有系数,幅值大于3σ0(k‑1)的系数判断为活跃系数;反之则为零值系数;
步骤8.3:在k时刻(k>0),遍历滤波器所有分段,判断分段内是否所有系数均为零值系数,若是,则该分段记为k时刻零值分段,否则,将该分段记为k时刻活跃分段;
步骤8.4:通过预设零值分段参与算法频率p,计算每次迭代时需要选取的参与算法的零值分段的数量;
步骤8.5:继续执行步骤9;
步骤9:计算各滤波器分段的二次范数,并通过其判断滤波器是否为强稀疏性,若是,则跳回至步骤5;反之,若滤波器为弱稀疏性,则使用NLMS算法迭代更新滤波器系数,然后返回步骤3。
2.如权利要求1所述的自适应滤波的系数更新方法,其特征在于:在步骤8.1中,以前一时刻的零值分段计算所有零值系数的标准方差σ0 (k) 值,计算公式为
3.如权利要求2所述的自适应滤波的系数更新方法,其特征在于:在步骤8.3中,以向量z(k)=[z1(k),z2(k),z3(k)…]来保存每个k时刻零值分段的下标;以一个N×N阶对角矩阵A(k)=diag[a1(k)a2(k)…aM(k)]来表示k时刻活跃分段位置,若分段wi(k)被判断为活跃分段,相应的ai(k)设置为ai(k)=1L;若分段wi(k)被判断为零值分段,则相应的ai(k)设置为ai(k)=0L,其中,所述1L与0L分别代表长度为L的全1、全0向量。
4.如权利要求3所述的自适应滤波的系数更新方法,其特征在于:在步骤8.4中,确定每次参与迭代的零值分段的数量的方法为:设k时刻零值分段的总量为mz(k),零值分段更新频率为p,其中0
5.如权利要求4所述的自适应滤波的系数更新方法,其特征在于:在步骤5中,以一N×N阶对角矩阵Q(k)表示参与迭代的k时刻零值分段位置,其通过遍历向量z(k)获得k时刻零值分段的第1个至第mu(k)个下标,然后将Q(k)矩阵中对应位置设置为向量1L,其余位置保持为向量0L。
6.如权利要求5所述的自适应滤波的系数更新方法,其特征在于:在步骤9中,判断滤波器稀疏性的方法为:若滤波器的零值分段总量mz(k)小于M/2,判断滤波器为弱稀疏性。
7.如权利要求5所述的自适应滤波的系数更新方法,其特征在于:在步骤9中,判断滤波T器稀疏性的方法为:创建序列l(k)=[l1(k)l2(k)…lM(k)]以保存所有滤波器分段的l2值,其中,设lmax,z(k)为所有零值分段中l2值的最大值,即lmax,(k)=max{li(k),i∈z();lmax,a(k)是所有滤波器分段的l2值中的最大值,即lmax,a(k)=max{l1(k)l2(k)…lM(k)};
当lmax,z(k)>lmax,a(k)/2时,判断滤波器为弱稀疏性。