基于动态步长梯度方案设计近似等波纹FIR滤波器
Jing余华1,*†,邝万昆1,文江刚1,黄超根1和尤霄虎 2
1通信工程,浙江工业大学,杭州,310023,中国
2国家移动通信研究实验室,东南大学, 中国
摘要
本文提出了一种具有动态步长的基于梯度的算法,用于设计近似等波纹有限冲激响应(FIR)滤波器,该算法沿峰值逼近误差的负梯度方向迭代更新滤波器系数向量。此外,除了方向之外,更新的步长也是一个需要确定的重要参数,本文提出了一种动态方法以在每轮迭代中找到合适的步长。
我们的结果表明,该动态步长方案实现了快速收敛速度,即能够在较少的迭代次数内设计出近似等波纹滤波器。具体而言,通过所提方法,在迭代初期更新步长相对较大,从而显著减小峰值逼近误差;而在迭代后期,更新步长变得相对较小,以便尽快接近等波纹解。大量计算机仿真表明,所提算法在迭代次数、收敛性以及性能方面均优于传统算法。版权所有©2013JohnWiley& Sons,Ltd。
2013年4月17日收到;2013年5月23日接受
关键词:FIR滤波器;近似等波纹;梯度方案;动态步长;线性相位
1. 引言
在移动通信和医疗电子等数字信号处理应用中,通常希望采用线性相位,因为它具有恒定的群延迟[1, 2]。典型的设计方法包括基于Remez交换的方法[3–6],、最小二乘法[7–9],、频率采样法[2,10]以及数学规划方法[11–15]。
频率采样法通过在频域中明确指定N个采样点,使得相应的滤波器系数可通过逆傅里叶变换获得。然而,如何选择合适的频率采样以获得满意的幅值响应是一个具有挑战性的问题,特别是当采样点数(N)等于滤波器长度时。Remez交换算法是一种用于极小化极大设计和约束极小化极大设计的复杂算法。类似地,数学规划方法也是基于极小化极大优化推导而来,因此理论上其滤波器具有严格等波纹特性。然而,在许多实际应用中,例如无线通信中的匹配滤波器[16],,严格等波纹的要求并非必要,有时放宽等波纹要求有助于实现整体性能的权衡,例如引入阻带能量(见第3.6节)。因此,近似等波纹滤波器在实际应用中也具有重要意义。本文聚焦于近似等波纹滤波器的设计。与以往研究不同,本文提出了一种基于梯度的算法,该算法不同于标准最速梯度算法。
通讯作者:华景玉,通信工程,浙江工业大学,杭州,310023,中国。†电子邮件:eehjy@162.com
版权所有©2013JohnWiley&Sons,Ltd.
国际电路理论与应用杂志国际电路理论与应用杂志2015;43:174–1862013年6月20日在线发布 于Wiley在线图书馆(wileyonlinelibrary.com)。DOI:10.1002/cta.1931
本文档由funstory.ai的开源PDF翻译库BabelDOCv0.5.10(http://yadt.io)翻译,本仓库正在积极的建设当中,欢迎star和关注。
已有多种针对近似等波纹滤波器的设计方法被广泛研究。其中最流行的方法之一是迭代重加权最小二乘法[7],,Lim等人在此方法中对具有极大逼近误差的频率赋予更大的权重。
该算法在每次迭代中的复杂性体现在两个方面:(1)求解频率采样数较大的离散最小二乘方程组;(2)根据极大逼近误差计算包络。另一种生成近似等波纹滤波器的技术是峰值约束最小二乘(PCLS)方法[8], ,该方法在违反幅值阈值的频率点上迭代地施加幅值约束。需要注意的是,PCLS方法需要一个合适的阈值才能得到近似等波纹滤波器,否则算法无法收敛。遗憾的是,如何确定该阈值并未被阐明,需由应用工程师自行完成。然而,上述两种算法均表明,通过迭代减小(加权)逼近误差的峰值,可以近似满足最小最大准则。
在[18],将具有最大逼近误差的频率表示为omax,并将对应的绝对加权逼近误差表示为|E(omax)|(详见第2节中的详细定义)的情况下,邓等人提出了一种简单的梯度法来设计近似等波纹滤波器,其中他们尝试通过沿 sgn[E(omax)]E(omax)的负梯度方向以固定的微小步长 (a)更新滤波器系数向量(h),从而迭代地减小|E(omax)|。sgn(x)表示x的符号函数。由于梯度计算简单,所提算法在每次迭代时的计算量非常小。此外,该算法在小步长下还近似实现了PCLS算法。因此,出现了一个类似于PCLS算法的缺点,即缺乏可靠的方法来找到合适且微小的步长。事实上,步长和方向是梯度算法中两个最重要的参数,而前者在[18]中未得到解决。我们的研究表明,如果步长过大,邓的方法产生的幅值响应可能远离等波纹特性,因为过大的步长会引入滤波器系数h的突变。不幸的是,如果步长过小,迭代次数往往会急剧增加,从而削弱了其原本低复杂度的优势。换句话说,邓氏方案的性能对应用工程师确定的恒定步长的选择具有显著敏感性。从某种意义上说,应用工程师很难确定这一关键参数。
为了克服上述缺点,本文提出了一种具有动态步长的梯度下降算法。与以往的研究相比,我们所提算法有两个主要贡献。首先,我们解析地确定了梯度算法的向量更新方向和步长,从而避免将这些繁琐工作留给应用工程师,有利于实际应用。由于动态步长确保了更少的迭代次数(I.t.),所提算法相较于邓的方法具有更快的收敛速度和更小的计算负载,这将在第 4节中得到证明。其次,由于阻尼振荡[18]E(omax)|的存在,即|E(omax)|在全局上递减但在局部振荡,梯度算法的收敛性在|中未被证明。因此,我们提出采用蒙特卡洛模拟,即一种评估复杂系统或问题的有效方法[19, 20],,以证明所提算法的收敛性。同时,还研究了缩放动态步长对收敛速度和收敛性的影响,实验结果表明,精心选择的缩放因子可带来更快的收敛,进一步提升了本研究的效果。此外,根据实际应用需求,研究了目标函数的扩展,使我们能够在阻带能量、通带波纹和阻带波纹之间进行权衡。
本文的其余部分组织如下。第2节给出了一些预备知识。所提算法的推导在第3节中给出。示例与讨论在第4节中给出。最后,第5节对本文进行总结。
2. 预备知识
无l不失一般性,我们聚焦于长度为N的I型线性相位低通滤波器(LPF)。Th 频率响应由以下给出
$$ H R \left( o \right) = H \left( o \right)e^{- j Mo} ; o \in [0, \pi] $$ (1)
基于梯度法的FIR滤波器设计 175
版权所有©2013JohnWiley&Sons,Ltd. 国际电路理论与应用杂志2015;43:174–186数字对象标识符:10.1002/cta
其中M = N1 2 。H(o)和e$^{-jMo}$分别为幅值响应和线性相位项[2]。
$$ H \left( o \right) = \sum_{n=0}^{M} 2h\left( n \right)\cos \left[ o \left( M - n \right) \right] - h\left( M \right) $$ (2)
在线性相位情况下,只需考虑H(o)。(2)式的矩阵乘积形式如下所示:
$$ H \left( o \right) = c\left( o \right)^T h $$ (3)
其中
$$ c\left( o \right) = \left[ 2\cos \left( Mo \right), 2\cos \left( M - 1 \right)o, \cdots, 2\cos\left( o \right), 1 \right]^T $$ (4)
and
$$ h\left( o \right) = \left[ h\left( 0 \right), h\left( 1 \right), \cdots, h\left( M \right) \right]^T $$ (5)
这里,(•)T表示转置操作。
令Hd(o)表示期望幅值响应。我们有
$$ H_d \left( o \right) =
\begin{cases}
1; & o \in [0, o_p] \
0; & o \in [o_s, \pi]
\end{cases} $$ (6)
其中op和os分别表示通带截止频率和阻带起始频率。公式(6)仅针对低通滤波器设置,工程师可设置另一个Hd(o)来设计不同的滤波器,即本文所研究的算法适用于任何有限冲激响应 (FIR)滤波器,尽管本文仅给出了低通滤波器的例子。根据上述公式,加权逼近误差可表述为
$$ E \left( o \right) = W \left( o \right) \left[ c\left( o \right)^T h - H_d \left( o \right) \right] $$ (7)
其中W(o)是加权函数[2],,即如下所示
$$ W \left( o \right) =
\begin{cases}
W; & o \in [0, o_p] \
1; & o \in [o_s, \pi]
\end{cases} $$ (8)
然后,最小最大准则可以被描述为
$$ \min_h |E \left( o; h \right)|_\infty; o \in [0, o_p] \cup [o_s, \pi] $$ (9)
其中 kX k1 和E(o,h)分别表示X的一致范数和加权逼近误差。
最小最大准则(9)可以通过以下条件进行近似:
$$ L \left( o \right) \leq E \left( o \right) \leq U\left( o \right) $$ (10)
176 华等
版权所有©2013JohnWiley&Sons,Ltd. 国际电路理论与应用杂志2015;43:174–186 数字对象标识符:10.1002/cta
其中dDp和dDs为某些合适的预设阈值,且
$$ L \left( o \right) =
\begin{cases}
-dDp; & o \in [0, o_p] \
-dDs; & o \in [o_s, \pi]
\end{cases} $$
$$ U\left( o \right) =
\begin{cases}
dDp; & o \in [0, o_p] \
dDs; & o \in [o_s, \pi]
\end{cases} $$ (11)
一旦满足条件(10),即可获得近似等波纹滤波器。事实上,根据[17],中的讨论,如果上述阈值恰好等于极小化极大解的最优波纹,则条件(10)等价于条件(9)。
3. 基于梯度算法设计FIR滤波器
3.1. FIR滤波器的梯度算法概述
根据[18],,可以通过迭代方法获得近似等波纹滤波器,该方法旨在每次迭代中减小峰值误差|E(omax)|。由于|E(omax)|是滤波器系数h的多变量函数,因此可通过沿下降方向以合适的步长 a更新h来实现|E(omax)|的减小。需要注意的是,有两个重要因素需要量化,即下降方向和下降步长。
一种简单的下降方向是目标函数|E(omax)|的负梯度[21],可表示为:
$$ G_E \left( o_{max} \right) = -\text{sgn} \left[ E \left( o_{max} \right) \right] c \left( o_{max} \right) $$ (12)
近似等波纹FIR滤波器的最陡梯度下降算法框架可概述如下:
1. 初始化 设k:= 1。通过标准非加权最小二乘法[7]生成初始滤波器系数h1。进入步骤2)。
2. 估计 计算omax,然后评估(10)。如果条件(10)满足,则迭代终止。否则,转至步骤3)。
3. 计算下降方向
计算目标函数|E(omax)|的负梯度方向GE(omax)。转到步骤4)
4. 更新滤波器系数h 沿下降方向更新滤波器系数h:
$$ h_{k+1} = h_k + a G_E \left( o_{max} \right) $$ (13)
其中步长a为正数。转到步骤5)
5. 更新索引 设k:=k+ 1。然后转到步骤2)。
上述过程未考虑下降步长的计算,该问题将在后续研究。
基于梯度法的FIR滤波器设计 177
版权所有©2013JohnWiley&Sons,Ltd. 国际电路理论与应用杂志2015;43:174–186数字对象标识符:10.1002/cta
由于omax 是最显著违反条件(10)的频率,每次迭代中变化的h使得omax 在各次迭代中发生变化。因此,每个违反条件(10)的频率都有机会成为omax,从而有助于减小通带波纹dp(阻带波纹ds)。近而可得到近似等波纹滤波器。
3.2. 邓氏固定步长方案
在[18],邓等人提出使用一个恒定且非常小的步长。但如第1节所述,步长a是需要预先指定的关键参数。一旦步长被确定,迭代收敛性、迭代次数以及滤波器性能也随之确定。我们的经验表明,较小的步长会以增加迭代次数为代价,带来更高的收敛可能性。同时,如果a过大,算法可能无法收敛,或收敛到远离等波纹解的解,这也是邓氏方案难以生成满意的等波纹解的原因。此外,迭代算法通常会设置最大迭代次数,如果步长选得过小,当达到最大迭代次数时,固定步长方案无法保证得到近似等波纹的结果。换句话说,必须在计算负担和解的质量之间做出权衡。
在第4节中,该固定步长方案也被模拟作为对比。然而,设计了一个耗时的Matlab程序来测试并为给定的滤波器性能规格找到合适的步长。
3.3. 提出的动态步长方案
邓氏算法的缺陷源于简单的恒定步长,未考虑具体的下降量。显然,在迭代初期,当当前偏差dp和ds明显大于阈值dDp和dDs时,可以采用相对较大的步长;而在迭代后期,当偏差接近阈值时,则只需较小的步长。尽管邓氏在实验[18],中注意到了调整步长的必要性,但并未给出变步长的具体解决方案。我们的新方案旨在解决这一问题。在每次迭代中,我们尝试通过使用动态步长更新滤波器系数h,将当前的峰值逼近误差|E(omax)|降低至预设阈值dDp (dDs)。
根据泰勒近似公式[21],,我们有
$$ |E \left( o_{max}; h+ \Delta h \right)| = |E \left( o_{max}; h \right)| - G_E \left( o_{max} \right)^T \Delta h $$ (14)
其中|E(h)|是滤波器系数h的一阶函数,其他高阶项已被省略,因为它们等于零。基于最速下降法的思想,即沿负梯度方向(GE(omax))更新滤波器系数h,我们有
$$ \Delta h = a G_E \left( o_{max} \right) $$ (15)
将(15)代入(14),可推导出步长a
$$ a = \frac{|E \left( o_{max}; h \right)| - |E \left( o_{max}; h+ \Delta h \right)|}{| G_E \left( o_{max} \right) |
2^2} $$ (16)
其中k• k2表示向量的模。注意在(16)中,h和h+ Δh分别表示当前滤波器向量和更新后的滤波器向量;因此,|E(omax,h)|始终大于|E(omax,h+ Δh)|,从而确保步长a为正数。此外,由于 (16)中的a在每次迭代中都会变化,我们可以用a k 表示第k次迭代时的步长a。
178 华等
版权所有©2013JohnWiley&Sons,Ltd. 国际电路理论与应用杂志2015;43:174–186 数字对象标识符:10.1002/cta
注意,更新过程强制当前迭代的近似误差最大值为预设阈值dDp(dDs),即
$$ |E \left( o
{max}; h+ \Delta h \right)| =
\begin{cases}
dDp; & o_{max} \in [0, o_p] \
dDs; & o_{max} \in [o_s, \pi]
\end{cases} $$ (17)
3.4. 关于缩放步长的讨论
很直观的是,如果迭代仍然收敛,则采用更激进的策略来确定步长有助于加速迭代。因此,在本小节中,我们提出通过因子R进一步缩放动态步长。然后,新的步长可以表示为
$$ h_{k+1} = h_k + R a_k G_H \left( o_{max} \right) $$ (18)
其中R表示缩放因子,ak来自(16)。由于参数R直接改变步长,我们将其称为直接缩放方法。
该缩放技术的潜在问题是所提出的算法可能无法收敛,因为如果ak被过度缩放,将会引入突变。
3.5. 关于收敛性的讨论
需要指出的是,所提梯度算法以及两种步长计算方案不同于标准最速下降算法([21]中的算法3.1.1)。在每次迭代中,所提算法旨在略微减小单个频率(omax)上的绝对近似误差,从而使纹波dp和ds也可能轻微减小;而最速下降法[21]则试图将|E(omax)|强制最小化为零。
由于对|E(omax)|的强制最小化为零会导致滤波器系数h发生剧烈变化,从而使得纹波dp和ds急剧增加,导致收敛性灾难。
基于上述差异,所提算法的收敛性无法从标准最速下降算法的收敛性推导得出,因为即使在步长非常小的情况下,(9)中目标函数(kE(o) k1)的单调递减性也无法得到保证。实际上,其表现为阻尼振荡。如第4.2节中的图所示, kE(o) k1可能会剧烈波动,这使得难以给出收敛性证明的解析表达。
为了解决上述困难,本文提出采用蒙特卡洛仿真技术来证明所提算法的收敛性。在先前研究中,蒙特卡洛模拟已被广泛用于评估复杂系统或问题,例如数值积分和通信系统性能评估[19, 20]。该技术的关键在于实验独立性和实验次数。在本研究中,我们对每个例子进行了 1000次独立测试,结果表明所提算法能够在有限次迭代内收敛,尽管最终的迭代次数与初始滤波器系数向量有关。详细的结果和分析将在第4.4节中给出。
3.6. 缩放步长方案的扩展
让我们考虑一个更一般的情况,其中将目标函数|E(omax)| 替换为|E(omax)|p(p> 0),那么步长应根据以下公式计算:
$$ a = \frac{|E \left( o_{max}; h \right)|^p - |E \left( o_{max}; h+ \Delta h \right)|^p}{| G_E^p \left( o_{max} \right) |
2^2} $$ (19)
其中GEp o max ð Þ 表示|E(omax)|p的负梯度,即:
$$ G_E^p \left( o
{max} \right) = -p |E \left( o_{max} \right)|^{p-1} \text{sgn} \left[ E \left( o_{max} \right) \right] c \left( o_{max} \right) $$ (20)
FIRFILTERDESIGNBYGRADIENTSCHEME 179
版权所有©2013JohnWiley&Sons,Ltd. 国际电路理论与应用杂志2015;43:174–186 数字对象标识符:10.1002/cta
将(12)与(20)进行比较,我们可知GEp o max ð Þ与GE(omax)是并行的。这意味着公式(19)隐式地缩放了步长,我们将其称为间接缩放方法。
3.7. 梯度法的扩展
(9)中的成本函数是等价的
$$ f \left[ o_{max} \right] = \min_h \left{ d_p, W \cdot d_s \right} $$ (21)
其中,两个规格dp和ds通过权重W进行整合。在本小节中,我们将这种加权技术推广到更一般的情况,从而能够最小化阻带能量,即实际应用中的一个重要滤波器性能指标。
$$ E_s = \int_{o_s}^{\pi} \left[ c\left( o \right)^T h - H_d \left( o \right) \right]^2 do $$ (22)
成本函数可以重写为
$$ f \left[ o_{max} \right] = \min_h \left{ d_p, W d_s, x \cdot E_s \right} $$ (23)
其中x表示Es的权重值。Es的负梯度方向可推导如下
$$ G_{E_s} = - \int_{o_s}^{\pi} \left[ c\left( o \right)^T h - H_d \left( o \right) \right] c\left( o \right) do $$ (24)
因此,对应于Es的步长可以表示为
$$ a = \frac{E_s \left( h \right) - E_s \left( h+ \Delta h \right)}{| G_{E_s} |
2^2} $$ (25)
其中,Es(h)和Es(h+ Δh)分别表示在滤波器系数h和h+ Δh处的阻带能量。
最后,我们推导出以下迭代算法。
1. 初始化 设k:= 1。生成初始滤波器系数h1。转到步骤2)。
2. 估计 使用牛顿求根法计算omax,然后计算(23)。如果满足预设阈值,则迭代终止;否则,转至步骤3)。
3. 计算下降方向 如果在(23)中选择的参数为dp或Wds,我们计算目标函数|E(omax)|的负梯度方向(GE(omax))。否则,我们计算Es的负梯度方向(GEs)。转至步骤4。
4. 更新滤波器系数h 沿下降方向更新滤波器系数h:
$$ h
{k+1} = h_k + a G \left( o_{max} \right) $$ (26)
其中a是与G(omax)相关的步长。转到步骤5)。
180 华等
版权所有©2013JohnWiley&Sons,Ltd. 国际电路理论与应用杂志2015;43:174–186 DOI:10.1002/cta
5. 更新索引 设k:=k+ 1。然后转到步骤2)。
类似地,我们可以在成本函数中包含更多的性能规格。然而,本文仅展示了最多包含三种规格的结果,即公式(23)中的那些。事实上,相较于其他算法,所提梯度算法易于扩展以支持更多规格的能力是一个重要优势,这使得所提算法更适用于实际应用。
4. 设计示例
在本节中,给出了一些示例来验证所提算法的正确性。滤波器系数h的初始值由连续最小二乘法[22]生成。
由于所提算法的逼近目标被设定为dDp或dDs,其偏差dp(ds)无法小于阈值dDp(dDs);因此,在后期迭代中引入1%容差以加速迭代。
4.1. 提出的动态步长方案的性能
两组规格如表I所示,其中规格I来自[18] ,规格II来自TD‐SCDMA系统的匹配滤波器。
在表I中,Rp和As分别表示通带波纹和阻带衰减(波纹)的相对规格,即Rp = -20lg((1-dp)/(1+dp)) 和 As = -20lg(ds/(1+dp))。注意,TD‐SCDMA系统的绝对通带波纹范围为–1.5dB~1.5dB。
对于规格I,我们的算法在第1823次迭代时收敛,dp= 0.0040444 且 ds= 0.0040356(Rp= 0.070529dB 和 As= 47.917dB)。对于规格II,我们发现合适的阈值为 dDp= 0.07 和 dDs= 0.007 (W = 10)。我们的算法在第1922次迭代时收敛,dp= 0.070384 且 ds= 0.0070709(Rp= 1.2247dB 和 As= 43.601dB)。此外,我们还发现,在本研究中 op 和 os 仅轻微偏离其规格要求,即 op 的偏差小于其规格要求的 0.26%,而 os 的偏差为 0.17%。
从测试结果中可以明显看出,所提算法在工程师的角度来看能够达到良好的性能。然而,工程师无需通过穷举搜索来确定合适的恒定步长。事实上,所提算法的步长在迭代过程中自适应地变化,这也使得所提算法的迭代次数比[18]更少。
4.2. 直接缩放方法的性能
在本小节中,对缩放步长的行为进行了深入研究。数值结果如表II和表III所示,图形细节如图1和图2所示。
对于规格I,从表II可以看出,随着因子R的增加(从0.5到2),迭代次数持续减少(从4446次减少到197次)。然而,缩放因子不能无限地增加。仿真结果表明,当R ≤2时,所提算法是收敛的。对于规格II,从表III可以看出,随着缩放因子R从0.5增加到2,迭代次数从4936次减少到411次迭代。同样,当R> 2时,所提算法无法收敛。需要注意的是,表II和表III均显示出良好的且稳健的滤波器性能,这意味着适当的缩放因子可以在不引入性能损失的情况下加速迭代收敛。
表I. 两组规格。
| 规格 | N | op | os | 通带波纹 | 阻带波纹 |
|---|---|---|---|---|---|
| I | 61 | 0.2573 π | 0.3422 π | dp = 0.004 | ds = 0.004 |
| II | 49 | 0.2373 π | 0.3008 π | Rp = 3 dB | As = 41.5 dB |
表II. 规格I下直接缩放步长的性能。
| R | fp | fs | dp | ds | Rp(dB) | As(dB) | I. t. |
|---|---|---|---|---|---|---|---|
| 0.5 | 0.25730 | 0.34188 | 0.0040453 | 0.0040444 | 0.070275 | 47.898 | 4446 |
| 0.75 | 0.25730 | 0.34188 | 0.0040428 | 0.0040409 | 0.070230 | 47.906 | 2658 |
| 1 | 0.25731 | 0.34189 | 0.0040444 | 0.0040356 | 0.070259 | 47.917 | 1823 |
| 1.25 | 0.25733 | 0.34186 | 0.0040461 | 0.0040368 | 0.070288 | 47.914 | 1380 |
| 1.5 | 0.25733 | 0.34188 | 0.0040446 | 0.0040319 | 0.070263 | 47.925 | 932 |
| 1.75 | 0.25732 | 0.34183 | 0.0040417 | 0.0040317 | 0.070212 | 47.925 | 518 |
| 2 | 0.25736 | 0.34219 | 0.0040465 | 0.0040042 | 0.070296 | 47.985 | 197 |
| 2.25 | ------ | 发散 |
表III. 规格II下直接缩放步长的性能。
| R | fp | fs | dp | ds | Rp(dB) | As(dB) | I. t. |
|---|---|---|---|---|---|---|---|
| 0.5 | 0.23729 | 0.30078 | 0.070534 | 0.0070792 | 1.2273 | 43.592 | 4936 |
| 0.75 | 0.23729 | 0.30078 | 0.070465 | 0.0070736 | 1.2261 | 43.599 | 2983 |
| 1 | 0.23729 | 0.30078 | 0.070384 | 0.0070709 | 1.2247 | 43.601 | 1992 |
| 1.25 | 0.23729 | 0.30078 | 0.070405 | 0.0070617 | 1.2251 | 43.613 | 1350 |
| 1.5 | 0.23729 | 0.30077 | 0.070465 | 0.0070692 | 1.2261 | 43.604 | 978 |
| 1.75 | 0.23737 | 0.30078 | 0.070486 | 0.0070617 | 1.2265 | 43.613 | 434 |
| 2 | 0.23718 | 0.30075 | 0.068452 | 0.0070462 | 1.1910 | 43.616 | 411 |
| 2.25 | ------ | 发散 |
(a) 幅度响应 (b)与迭代次数 (c)与迭代次数
(a) 幅度响应 (b)与迭代次数 (c)与迭代次数
从图1(a)和图2(a)中,我们可以清楚地看到滤波器的良好性能,其必须满足表I中的要求。此外,变量R在幅频响应中引起的变动很小。另外,图1(b)(c)和图2(b)(c)帮助我们深入理解迭代收敛性。从中可以明确看出,较大的R通常导致更大的纹波波动,从而实现更快的收敛,这与第3节中的讨论一致。对于R从0.5到2的范围,在早期迭代中纹波波动变化剧烈,而在后期迭代中趋于稳定,这再次证实了我们步长选择的有效性,即在早期阶段采用较大的步长,在后期阶段采用较小的步长。此外,我们还发现纹波波动并非单调变化,而是如第3.5节所述呈现阻尼振荡特性。
根据上述研究,可以得出结论:所提算法对FIR滤波器设计是有效的,且由于其原理简单,易于编程并在实际场景中应用。另一方面,若希望迭代次数尽可能少,则缩放因子是一个重要参数。然而,应用工程师可以选择R = 1来避免这一问题,代价是增加迭代次数。
4.3. 与固定步长方案的比较
对于所提出的方案,我们从表II和表III中选择最佳结果(具有最小迭代次数)。对于邓氏方案,采用建议的步长 10^-5。数值结果如表四所示。
对于规格I,邓氏方案需要1780次迭代,而我们的方案仅需197次迭代。对于规格II,同样地,邓氏算法需要6818次迭代,而所提算法仅为411次迭代。此外,我们的动态步长方案实现了与邓氏方案非常接近的性能,但迭代次数显著更低。这正是我们方案的优势所在。
表四. 邓的方法与动态步长方案的性能比较 .
| 规格 | 方法 | fp | fs | dp | ds | Rp (dB) | As (dB) | I. t. |
|---|---|---|---|---|---|---|---|---|
| I | 邓(a = 10^-5) | 0.25732 | 0.34213 | 0.0040118 | 0.0040389 | 0.069692 | 47.910 | 1780 |
| 本文提出的方法 ( R= 2 ) | 0.25736 | 0.34219 | 0.0040465 | 0.0040043 | 0.070296 | 47.985 | 197 | |
| II | 邓(a = 10^-5) | 0.23730 | 0.30079 | 0.070471 | 0.0070490 | 1.2262 | 43.629 | 6818 |
| 本文提出的方法 ( R =2 ) | 0.23718 | 0.30075 | 0.068452 | 0.0070462 | 1.1910 | 43.616 | 411 |
4.4. 基于蒙特卡洛模拟的收敛性证明
如第4.2节所示,尽管规格不同,迭代次数与R之间的关系非常相似。因此,在不失一般性的情况下,我们仅提供规格I的蒙特卡洛模拟结果。首先,滤波器系数的每个元素被独立初始化为在[-1,1]内均匀分布的随机数,并对每个R运行1000次独立实验,从而以高概率保证了整个系数向量空间的遍历性。当然,这些初始值通常距离目标滤波器还很远。
数值结果如表V所示,其中S.p.和X分别表示成功概率和X的均值。从表V可以看出,所提算法在候选缩放因子集合{0.5, 0.75, 1, 1.25, 1.5, 1.75}下的收敛概率为1,表明所提算法具有很高的收敛概率。此外,我们发现迭代次数的均值随着R的增大而持续减小,这与第4.2节中的结果一致。然而,表V与表III中的迭代次数不同,当R增大到2时,所提算法未能收敛。其原因是第4.2节中采用最小二乘法初始化的滤波器系数向量是一个更接近目标滤波器的良好初始点,而蒙特卡洛模拟中随机生成的系数向量通常与目标滤波器偏差较大。尽管如此,蒙特卡洛模拟表明,所提算法在合适的R下可在有限次迭代内收敛。另外,表V表明,较大的R会带来更大的发散风险,这也验证了第4.2节的结论。然后,考虑
表V. Monte Carlo仿真结果:规格I。
| R | S. p. | I:t: | fp | fs | dp | ds | RpdB( ) | AsdB( ) |
|---|---|---|---|---|---|---|---|---|
| 0.5 | 100% | 16761 | 0.25748 | 0.34186 | 0.0040435 | 0.0040452 | 0.070244 | 47.896 |
| 0.75 | 100% | 9665.5 | 0.25748 | 0.34187 | 0.0040430 | 0.0040446 | 0.070234 | 47.897 |
| 1 | 100% | 6052.3 | 0.25748 | 0.34189 | 0.0040421 | 0.0040439 | 0.070218 | 47.899 |
| 1.25 | 100% | 3822.9 | 0.25751 | 0.34194 | 0.0040407 | 0.0040436 | 0.070195 | 47.900 |
| 1.5 | 100% | 2352.3 | 0.25753 | 0.34198 | 0.0040389 | 0.0040432 | 0.070164 | 47.901 |
| 1.75 | 100% | 1189.5 | 0.25748 | 0.34198 | 0.0040375 | 0.0040407 | 0.070139 | 47.906 |
| 2 | 0% | ------- |
(a) 分布 (b) 分布
4.5. 缩放步长的扩展
与第4.4节类似,通过蒙特卡洛模拟来验证间接缩放方法(见第3.6节)的有效性。所有随机生成的滤波器系数h在区间[-1, 1]内均匀分布。数值结果见表VI。
当幂指数p从2减小到0.5时,所有成功概率均等于100%,且平均迭代次数从7476.7减少到5299.5。然而,当p小于0.5时,所提出的
表VI. 间接缩放方法的蒙特卡洛模拟结果:规格I。
| p | S. p. | I:t: | fp | fs | dp | ds | Rp dB( ) | As dB( ) |
|---|---|---|---|---|---|---|---|---|
| 0.25, 0.1, 0.001 | 0% | ------- | ||||||
| 0.5 | 100% | 5299.5 | 0.25752 | 0.34194 | 0.0040416 | 0.0040450 | 0.070210 | 47.897 |
| 0.75 | 100% | 5728.9 | 0.25753 | 0.34193 | 0.0040418 | 0.0040449 | 0.070213 | 47.897 |
| 1 | 100% | 6052.3 | 0.25748 | 0.34189 | 0.0040421 | 0.0040439 | 0.070218 | 47.899 |
| 1.25 | 100% | 6524.9 | 0.25748 | 0.34188 | 0.0040421 | 0.0040438 | 0.070219 | 47.899 |
| 1.5 | 100% | 6834.1 | 0.25747 | 0.34188 | 0.0040422 | 0.0040437 | 0.070220 | 47.899 |
| 1.75 | 100% | 7143.8 | 0.25748 | 0.34188 | 0.0040422 | 0.0040438 | 0.070221 | 47.899 |
| 2 | 100% | 7476.7 | 0.25747 | 0.34188 | 0.0040423 | 0.0040437 | 0.070222 | 47.899 |
算法无法收敛。这可以解释为(19)中的 || G_E^p ( o_max ) ||_2^2太小;因此,我们建议p的一个较好取值为 0.75。
4.6. 成本函数的扩展
基于第3.7节的规格权衡在此得到验证。采用第4.1节中的滤波器作为初始滤波器,得到初始规格{dp = 0.070384, ds= 0.0070709, Es = 0.000052942}。在本例中,我们尝试通过放宽dp和ds来降低阻带能量,即以通带和阻带波纹性能的下降为代价来改善阻带能量。测试结果见表七和图4。
从表七和图4可以看出,当dp(ds)增加到约0.1(0.01)时,阻带能量减小到约0.000005,约为原始值的十分之一。此外,本例表明所提算法能够在多个性能规格之间进行权衡,而这些规格可根据实际需求灵活选择。换句话说,这种灵活性是所提算法的一个重要优势。
表七. 示例VI的性能。
| R | dp | ds | Rp(dB) | As(dB) | Es | I. t. |
|---|---|---|---|---|---|---|
| 0.25 | 0.10095 | 0.010100 | 1.7596 | 40.749 | 0.0000050470 | 2797 |
| 0.5 | 0.10097 | 0.010091 | 1.7600 | 40.757 | 0.0000050495 | 1271 |
| 0.75 | 0.10045 | 0.010056 | 1.7510 | 40.783 | 0.0000050498 | 840 |
| 1 | 0.10026 | 0.010000 | 1.7476 | 40.830 | 0.0000050498 | 667 |
| 1.25 | 0.10044 | 0.0099393 | 1.7508 | 40.884 | 0.0000050496 | 571 |
| 1.5 | 0.099162 | 0.0098809 | 1.7283 | 40.925 | 0.0000050485 | 558 |
| 1.75 | 0.097774 | 0.0098248 | 1.7040 | 40.964 | 0.0000050477 | 529 |
| 2 | 0.099143 | 0.0098172 | 1.7280 | 40.981 | 0.0000050324 | 503 |
(a) 幅度响应 (b) 目标函数曲线
5. 结论
本文提出了一种梯度算法,用于设计具有线性相位的近似等波纹FIR滤波器,并全面研究了动态步长计算策略和算法收敛性。通过所提算法,在早期迭代中生成较大的步长,在后期迭代中生成较小的步长,这大大减少了迭代次数。此外,深入研究了缩放因子的行为,以进一步降低迭代次数。同时,蒙特卡洛模拟结果验证了该算法的收敛性。在特定性能要求下进行了大量仿真,并且结果显示了良好的滤波器性能。此外,对迭代行为的研究表明,与传统梯度算法相比,我们的梯度算法具有优越性。
1036

被折叠的 条评论
为什么被折叠?



