一种基于spt系数的fir滤波器优化方法
【技术领域】
[0001] 本发明涉及一种FIR滤波器优化方法,具体涉及一种基于SPT系数的FIR滤波器 优化方法。
【背景技术】
[0002] 有限冲激响应(FiniteImpulseResponse,FIR)滤波器是广泛运用于通信与信号 处理的滤波器之一,它具有很多优点。
[0003] 首先FIR滤波器具有固有的稳定性,与无限冲激响应(InfiniteImpulse Response,HR)滤波器相比,其极点均位于Z平面原点;其次可方便的利用对称结构,设计 者容易获得具有精确线性相位特性的滤波器,避免信号发生相位失真;W及其结构相对简 单,便于实现。
[0004] 传统的FIR滤波器设计基于无限字长送一基本假设。此时,许多的FIR滤波器设 计可W表述为凸优化问题,利用较为成熟的凸优化算法,从而获得设计问题的全局最优解。 基于集成电路技术,数字FIR滤波器的系数可采用SPT形式构成,但是设计问题也发生了本 质的变化,变成了离散空间中的组合优化问题。然而,在离散空间中寻找最优解是极度耗时 的,因此必须要在优化质量与优化效率上达到折中。通常使用增益q来优化滤波器性能,送 样处理既不影响SPT分配,又能保证滤波器系数的动态范围在设定的动态范围内,尽可能 的减少所需要的SPT项的数量W达到减小滤波器实现成本的目的。然而传统方法由于每次 只寻找一个分配位置进行SPT项的分配,因此传统算法SPT项计算效率不高。
【发明内容】
[0005] 针对现有技术存在的不足,本发明目的是提供一种基于SPT系数的FIR滤波器优 化方法,在给定系数表示中SPT项总数的情况下,在保证精确的前提下,将每个SPT项快速 且合理地分配给滤波器系数,能够取得良好的滤波器性能及较高的计算效率。
[0006] 为了实现上述目的,本发明是通过如下的技术方案来实现:
[0007] 本发明的一种基于SPT系数的FIR滤波器优化方法,其包括W下步骤:
[0008] (1)首先得到具有无限字长的FIR滤波器系数向量g,对g中的元素按照绝对值从 大到小的顺序进行排序,得到排好序的向量h;
[0009](2)对向量h进行截断处理得到截断后的滤波器系数向量h',设定滤波器系数增 益q取值空间□= {qi,q2,q3. ..QpK对于□,计算增益后的滤波器系数向量G=化;截 断步骤在每次循环中同时分配多个SPT项;
[0010] 截断后的滤波器系数向量h'可表示为:
[0011]h' =Cs,CEC(M) (1)
[001引其中,C为NX2K矩阵,其元素为0或1,N为滤波器阶数,K为除去符号位的字长,S= [-2 1-2 2. . . -2K2 12 2. . . 2K]T,M为给定SPT总数;
[0013] (3)选出使得所需SPT项最少的情况下所对应的滤波器系数增益q。^及
[0014] 选择标准为:
[0015] (2)
[001引P(CqS)表示成本函数,即所需要的SPT项总数;
[0017] (4)利用贪婪算法对C,,。进行优化,通过试探性的对Cg。中其中的一项进行取反,判 断此时最大误差是否得到改进,从而决定是否对送一项进行调整,逐项遍历Cg。中的所有可 调项;
[0018] 优化模型为:
[0020] 其中,V(W) = [1e'Ue'2u...e'wu],N为滤波器阶数,Hd(W)代表滤波器的理想 幅度响应,Ch由Cg。经过贪婪算法优化最终得到,QI表示所研究的频率段。
[0021] 上述步骤(1)通过Remezexchange算法得到具有无限字长的FIR滤波器系数向 量g。
[002引步骤(1)中,对g中的元素按照绝对值从大到小的顺序进行排序时,保存排序前与 排序后滤波器系数的对应性,方便后续步骤中进行相应的SPT分配。
[002引步骤似中,对向量h进行截断处理的方法如下,P用来指定滤波器系数增益空 间□=站,92, Q3. . . Qp}中的q值,m用来表示所用的SPT项数量,k用来指定2的幕,集 合□1与□2用来存储待分配SPT项的系数的序号,向量e中任一元素可用e(i)表示, iE{l,2,...},集合□l与□2中的元素可分别用jl、j2来指定;
[0024] 步骤2-1 ;初始化P= 0 ;
[002引步骤 2-2;p=P+1,计算e=Qph,初始化m= 0,k= 0W及矩阵C= [0]nx2k; K
[002引步骤2-3;k=k+1,计算swm.=乏]2 " .,n只是一个中间变量,用来表示从k+1到K 巧=A-+] 的取值,并初始化□,=0和□;=0、;
[0027]步骤 2-4 ;对于WG化2,...}
[002引(4)如果 e(;0 > 2k或I2k-eQ)I《Isum-e(;0I,□1= □ 1U {;[};
[0029] 妨如果 ea) < -2k或I-2 k-ea)I《I-sum-ea)I,□2= □ 2U(U ;
[0030] 步骤 2-5 :
[003。 (6)如果M-m> I □IH □ 2I,对于巧巨□I'C(ji,k+K) = l,e(ji) = e(ji)-2k;
[003引对于Vj.2e[]2;,C(j2,k) = 1,6化)=6化)巧k,m=m+| □ J+□zl ;
[003引 (7)如果M-m<I□11 +1 □21,对e中元素按照绝对值大小排序得e',在e'中从 前到后选出M-m个系数,分配SPT项,若此时P<P,转到步骤2-2,否则终止算法;
[0034] 步骤2-6 ;如果k<K,转至步骤2-3 ;
[0035]步骤2-7;如果P<P,转至步骤2-2;否则,终止算法。
[003引步骤(4)中,基于C的对称性,只考虑C&中可调部分,记为A,表示Cg。前A行,式 (3)可转换为W下求解步骤:
[0037]步骤4-1;计算幅度响应巧的=|s了C,/V(份)|,W及最大幅度响应误差 么必产Iw份)_斯片^的1及其对应的频率点Wm;
[0038] 步骤4-2 ;初始化k= 0,r= 1,k表示取矩阵C的特定列,r表示取矩阵C的特定 行;
[0039] 步骤 4-3;k=k+1,若k= 2K+1,则令k= 1,r=r+1 ;首先对(:,,,少,/'')取反,并根 据对称性修改m;
[0040] 步骤4-4 ;计算此时的幅度响应误差1%和对应的频率点谅Af;如果屋W<Am
[0041] 且m《M,则A.M=.透.W,.從W=録货;否则,复原反):
[0042] 步骤4-5 ;如果k= 2K且r=A,终止算法;否则,转到步骤4-3。
[0043] 本发明的有益效果如下:
[0044] 本发明将具有SPT系数的滤波器SPT项计算效率与设计误差进行联合考虑,滤波 器系数截断步骤大幅度提高了SPT项分配的效率,在每次循环中并不只分配一个SPT项,而 是寻找多个位置,同时分配多个SPT项;而贪婪算法步骤降低设计误差,在截断步骤基础上 进一步改进滤波器的性能,降低Minimax误差,从而充分利用SPT项提升滤波器设计性能, 因此本发明能达到较高的计算效率与良好的FIR滤波器设计效果。
【附图说明】
[0045] 图1为本发明的工作流程图;
[0046] 图2为本发明应用示例1中的线性相位低通滤波器幅度响应;
[0047] 图3为本发明应用示例2中的线性相位高通滤波器幅度响应。
【具体实施方式】
[0048] 为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合
【具体实施方式】,进一步阐述本发明。
[004引一、模型建立
[0050] N阶FIR系统的传递函数由下式给出:
[0051] H(Z) =乏!!,,Z" (1) 私0
[005引其中,化皮。为FIR滤波器的冲激响应,即FIR滤波器系数。如果待设计FIR滤波 器具有线性相位,郝么其幅度响应可由下式计算所得
[0053]
(2)
[0054] 其中|>。(《)}。表示S角函数,例如设计I型线性相位FIR滤波器时,{V。(")}。 为:
[0056] 待设计滤波器需要满足W下约束条件:[0057]
(4)
[005引其中6为给定的误差口限,Hd(U)代表滤波器的理想幅度响应。假设C(M)表示NX2K矩阵集合,其元素为0或1,K为不包括符号位的字长,且设为1的比特位总数应不超 过M,若S=[-21-2 2. ..-2^12 2...2T,则FIR滤波器系数可表示为;h'=Cs,CEC(M)D 可W看到,FIR滤波器系数{/U;L可由2的整数次幕之和计算所得,非常便于硬件实现。在 给定字长情况下,SPT项分配的问题就成为了关于矩阵C的优化问题。设g为利用传统设 计算法所获得的具有无限字长的最优滤波器系数向量,q为滤波器增益系数,q的取值空间 为□。对于□中每个q,截断过程得到的Cq应与g具有最短的切比雪夫距离,即满足W下条 件:
[0059] I |CqS-qg| I…=mini |Cs-qg| I…,C E C(M)妨
[0060] 其中II.IL表示向量的无穷范数。然后,在预先设定的q的取值空间内,寻找最 优的QdE□,使其满足:
[0061] p(C" s) = minyc)(C,,s) 批}
[006引P(CqS)表示成本函数,即所需要的SPT项总数。截断过程得到的Cg。是我们应该 运用贪婪算法来进一步处理的目标,通过调节C&来降低Minimax误差,因此,经最小化最 大误差方法优化后得到的Ch应满足W下条件:
[0064]其中V(CO