2 算法原理
2。1 谐波 IIR 陷波滤波器
为了实现对一个含谐波分量待测信号进行频率的估计与追踪,不妨假设该信 号为谐波分量满足 M 序列的正弦信号 x(n),如式(2。1)所示:
M
x(n) Am sin[2(mf )nT m ] v(n) (2。1)m1
式中 Am,mf 和m 分别表示 m 次谐波分量的幅度,频率和相角, v(n) 表示 一个高斯白噪声。n 和 T 分别代表时间量和采样周期。为了对这样的含谐波频率 的信号估计其频率,可以构建一个谐波 IIR 陷波滤波器,其 z 域零极点图如图 2。1 所示(M=3 的情况,即含基频和两个谐波频率)。
零极点图
该滤波器的构建思路是,作相角等于 m(基频角的倍数)的受限零极 点图。当 m=1,2,…,M 时,分别映射到的零极点图上水平轴,来构建一个多陷波 滤波器传输函数[4-6]。单位圆上的各零点表示无限长各陷波的陷波值,参数 r 控 制陷波带宽。参数 r 的选择应当趋近但小于一个合适的值,来匹配窄带陷波且能 保证滤波器的稳定性。文献综述
因此,当适应于该角度对应的基频,每一个 m(m=2,…,M)将自适应于其 谐波频率。可以以级联的形式表示滤波器传输函数,如式(2。2)所示:
式中传输函数 Hm(z)的 m 级二阶 IIR 部分定义为:
12z1 cos(m) z2
12rz1 cos(m) r 2 z2
根据式(2。2)和式(2。3),可以看出传输函数 H(z)只有一个自适应系数。由此 可得,滤波器在 m 级部分输出函数 ym(n)可表示为:
其中 y0(n)=x(n)。
谐波 IIR 陷波滤波器将输出输入信号 x(n)的基频以及所有的谐波频率分量。 当自适应参数收敛于其基频,输入一个无噪 x(n)输入信号,最终的二阶子滤波 器输出 yM(n)将被期望 yM(n)≈0。
2。2 频率捕捉区间
为最大程度地减少最终的子滤波器输出功率,E[y2M(n)],同时使自适应参数
收敛于为所期望的值。在这里,可以定义滤波器输出 yM(n)作为误差信号,即
令 e(n)=yM(n)。对此,可以通过 MSE(Mean Square Error,均方误差)函数 来
表示最终子滤波器输出能量,如式(2。5)所示:
其中,xx 表示输入信号能量频谱。式(2。5)表示,MSE 函数是自适应参数的非 线性函数,且该函数包含了本地最小值。由于关于初始值的选择,可以应用一 个全局收敛的自适应算法。因此,不需要对如式(2。5)表示的 e(n)的 MSE 函数进 行计算。相反地,可以对该 MSE 函数作近似计算。对每一个参数近似计算 MSE 函数,如式(2。6)所示:来*自-优=尔,论:文+网www.youerw.com
式中, N 是 滤 波 器 输 出 采 样 的 数 量 。 自 适 应 系 数 的 变 化 范 围 为 0 / M 。用于迭代运算的频率 f,可用表示为 f=fs/(2M) 。其中 fs 表示 采样频率,单位以赫兹计。这样的估计运算,其实是将 MSE 函数在每一个参 数处对采样时间量 n 进行了求和,从而使 MSE 函数由原本的关于采样时间 n 和 自适应参数两个变量的二元函数,转化成一个仅关于自适应参数的一元函数。 如此,简化了 MSE 函数,从而便于之后算法步骤对 MSE 函数的运算与处理。
因为在基频下有两个及两个以上最小值,为确保全局最小值能够获取,可以 作相应于基频的第一个子滤波器 MSE 函数,即 MSE1 函数,如式(2。7)所示: MATLAB自适应IIR滤波器频率跟踪算法设计与实现(3):http://www.youerw.com/tongxin/lunwen_83500.html