APP下载

基于非线性多项式的自适应重构算法

2012-07-25李金龙林嘉宇袁继兵郑林华

微处理机 2012年5期
关键词:跳频复杂度滤波器

李金龙,林嘉宇,袁继兵,郑林华

(国防科学技术大学电子科学与工程学院,长沙410073)

1 引言

跳频技术是无线通信系统提高抗干扰能力、多址组网能力和抗截获能力的一项重要技术,其实现方法是将一个较宽的频带分解为若干个细小的频隙,然后利用伪随机序列控制发射机,使得发射机在某一特定时间段内发送特定的载波信号。这个用于控制载波频率跳变的伪随机序列就称为跳频序列,跳频序列的伪随机性决定了其难以预测。近年来,随着非线性预测由理论转向实际应用的研究,跳频序列的建模和预测研究成为通信领域的一个研究热点。理想的预测建立在可靠的建模与重构基础之上。本文采用Bernstein多项式对跳频序列进行建模,并结合递归最小二乘(RLS,Recursive Least Squares)[1]自适应滤波算法来实现对跳频序列的重构。理论分析和仿真实验表明基于Bernstein多项式的自适应算法能够很好地对一些常见的跳频序列进行重构,误差小而且收敛速度快。

2 Bernstein多项式理论

由 Weierstrass逼近定理[2]可知:定义在区间[0,1]上的连续实函数f(x),对于任意ε>0,存在区间[0,1]上的多项式 p(x),对于任意 x∈[0,1],满足|f(x)-p(x)|<ε。即对于任一有界闭区间的连续函数都可以用该区间上的任意多项式以任意精度进行逼近。这意味着可以将连续函数的区间划分为若干个充分小的区间,从而用低阶多项式对连续函数进行任意逼近。

上述提到的多项式有多种,这里采用Bernstein多项式来逼近跳频序列的动力学系统,Bernstein多项式定义如下:

式中

由文献[2]可得Bernstein多项式与连续函数f(x)在区间[0,1]上一致,即 Bernstein多项式可以对[0,1]区间上的任意连续函数进行逼近。这也是选用Bernstein多项式来对跳频序列进行建模与重构的原因。

上述定理很容易推广到多元的情况。考虑到n维方体

对于给定的 n元实值连续函数 f(x1,x2,...,xn)∈C(Sn),构造 n 元乘积型Bernstein 多项式[2]:

式中

由式(2)可以利用n元m阶Bernstein多项式对定义在任意n维方体的连续函数f(x1,x2,...,xn)进行任意精度的逼近。在对跳频序列进行重构的实际应用中,由于跳频序列的动力学方程未知,因此可以采用待定参数的Bernstein多项式[3]:

式 中 a =(ak1,k2,...,kn,ki=0,...,m;i=1,2,...,n)为待定参数矢量。

式(4)中的多项式共有(m+1)n个参数,在参数取适当值的情况下可以逼近任意n维方体上的任意n元连续函数,但是参数运算量太大不利于进行实时处理。这里采用将变量的交叉乘积项去除的方法,以达到减少参数个数的目的。

去除交叉项后的n元m阶待定参数的Bernstein多项式为:

式中 W=(wi,ki,ki=0,...,m;i=1,...,n)为待定参数矢量。

式(5)就是实际建模中采用的Bernstein多项式,将其与式(4)作对比可以看出略去乘积交叉项后参数个数下降为(m+1)·n,大大减少了多项式参数的个数,提高了算法的运算速度。这种做法是以牺牲Bernstein多项式对函数的逼近能力为代价来换取运算速度的提高,但是从后面的重构结果中可以看出,略去乘积交叉项后仍然能够对跳频序列进行很好地重构。

3 算法介绍

采用的自适应重构算法是先利用Bernstein多项式对跳频序列进行建模,然后再利用RLS算法对多项式中的参数进行自适应滤波,从而达到理想的重构结果。为了降低算法复杂度,减小内存开销,实验中利用数学特性减少多项式参数的计算量,同时对自适应滤波算法进行改进,在每次训练中只保留滤波系数的有效矢量,得到一种稀疏的自适应滤波器。

3.1 多项式建模

典型的自适应滤波器结构如图1所示。其中自适应算法模块根据实际应用中的性能指标,以及输入信号和期望响应对滤波器系数的参数进行调整,当找到使自适应滤波器具有最佳性能的滤波器权系数W后调整停止。实验中采用RLS自适应算法来对滤波器系数W进行调整。而滤波结构模块则用于对输入信号x进行度量,形成输出信号y。如果滤波器的输出是输入的线性组合,则称该滤波器为线性滤波器,否则为非线性滤波器。所谓的建模也就是在滤波结构中确定输入信号与输出信号的映射关系,由于实验中采用Bernstein非线性多项式进行建模,所以该滤波器为非线性滤波器。

图1 自适应滤波器的典型结构图

图2 Bernstein多项式建模后的滤波器横向结构图

3.2 自适应重构算法

跳频序列不服从高斯分布,表现出局部非平稳特性。在局部变化比较剧烈的跳频序列中要提高重构精度,对算法的收敛速度提出了较高的要求,因此实验中采用RLS这种快速收敛的的自适应算法与上述的Bernstein建模方法相结合,来实现对跳频序列的重构。具体算法流程如下[4]:

3.2.1 给定关键参数并对迭代变量进行初始化

1)给定每帧输入的样点数 n、预测器中Bernstein多项式核函数个数m,以及每帧预测的步数N。

2)给定RLS算法中的两个重要参量λ和δ。其中,λ是遗忘因子,用于调整权值;δ是一个很小的正整数,用于提高收敛速度,迭代初值P(0)=δ-1I。

3)构造(m+1)·n阶滤波器权系数W,并将其值初始化为0。

3.2.2 重构跳频序列动力学方程获取滤波器权系数

1)对每帧输入的样点利用Bernstein多项式建模后得到滤波器输入列向量X(k)=[x(k-n+1)x(k-n)...x(k)]T,由Bernstein多项式可知:

2)利用RLS自适应迭代算法调整滤波器权系数:

3.3 算法复杂度改进

RLS自适应算法是以加权误差平方和的代价函数最小为最优化目标,它具有收敛速度快,且其收敛性能与输入频谱特性无关,但存在计算复杂度较高的缺陷。实验中分别从数学特性和算法的角度出发来降低复杂度。

3.3.1 基于数学特性降低复杂度

通过观察分析可以看到整个算法中,式(3)的计算量相当大。进行一次迭代运算需要的计算量为(由于加减运算较简单,在这里不考虑):(m+1)·n次组合运算;2(m+1)·n次指数运算;2(m+1)·n次乘法运算。而指数运算以及组合运算的运算量又较乘法的运算大,因此主要考虑降低指数运算和组合运算的运算量。

在计算过程中就可以利用上一次的运算结果xki-1乘以x得到xki,减少了计算量,使算法复杂度得到了降低,在m取值较大时效果更为明显。利用数学特性降低算法复杂度后,计算量的变化如表1所示,从表中可以看出改进后乘法运算量增加(m-1)·n,但是组合函数运算量和指数运算量却在很大程度上得到了降低。

本文采用差减法计算萤石中氟化钙含量。全钙的测定采用EDTA滴定法。关于碳酸钙的测定,本文在参考标准GB/T 5195.1—2006方法1、经验修正法和去碳酸钙的萤石样作空白校正法[8]的基础上,提出了一种新的方法。即分别称取两份不同质量的萤石试样,用稀盐酸浸取其中的碳酸钙,然后控制实验条件(溶液pH值、钙离子浓度、体积),使两份溶液中氟化钙溶解量趋于一致,对两份溶液进行干过滤,采用EDTA滴定法测定两份溶液中全钙的质量差(以碳酸钙计),经过换算可得试样中碳酸钙的含量。最终,实现了差减法对萤石中氟化钙的测定。

表1 复杂度降低前后计算量对照表

3.3.2 基于稀疏自适应滤波算法降低复杂度

在程序调试中发现滤波器系数矢量W中,有一部分分量非常接近0。这些分量对于实际重构结果的贡献为“0”,这里将这些接近0的分量称为无效分量,而其他分量为有效分量,则相应的输入信号矢量X也由无效分量和有效分量构成。因此,实验在文献[3]的基础上提出了一种稀疏多项式自适应重构算法。该滤波器采用非线性自适应迭代算法进行训练,每次训练只保留滤波器权系数和输入信号X的有效分量用于跳频序列的重构,从而实现滤波器权系数的减小。

假设某次训练结束后,滤波器权系数矢量W(k)为:

逐一考察 W(k)的各分量 wi,ki,当满足条件|wi,ki< α 时,则认为 wi,ki与相对应的输入信号的分量为无效分量,否则为有效分量。其中,门限α为非常小的数,实验中根据经验设定其取值范围为α∈(0,3×10-5]。训练结束后,只保留有效分量对跳频序列进行重构。这样不仅使非线性多项式自适应滤波器的规模减小,提高算法的收敛速度,使算法复杂度降低,同时在硬件实现上也减小了内存的开销。在输入样点数n和Bernstein多项式核函数个数m较大的情况下,这种稀疏算法的效果更加明显。

4 仿真实验

由于Bernstein多项式中输入信号取值范围为[0,1],因此在仿真实验前先按照(13)式对跳频序列进行归一化处理:

式中,{y(i)}为原始跳频序列,{x(i)}为归一化后的跳频序列。

4.1 重构性能指标及仿真参数确定

在仿真实验中取归一化后的跳频序列{x(i)}来进行建模重构。假定待重构的原始数据为x(k),对应的重构数据为x^(k),重构数据的长度为L。仿真实验中使用均方误差(Pmse)、相对误差(Prmse)和重构准确率(Pnice)作为评测标准。其中,均方误差的计算式为:

由于跳频序列{x(i)}的取值区间为[0,1],所以当x(k)-0.025≤x^(k)≤x(k)+0.025时就可以认为是准确重构,该段范围占[0,1]区间的5%。将准确重构的跳频码数除以总码数就可以得到重构准确率。

重构算法中所涉及的参数包括输入样点数n、Bernstein多项式核函数个数m、重构数据的长度为L、门限值α以及RLS迭代算法中的初始化参数δ和λ。对不同跳频序列的重构性能而言,后面四个参数的影响很小可以忽略不计。因此,在仿真实验中可根据经验值直接设定其取值分别为:L=1000,α=0,δ=10-4;λ=0.995。而对于参数n和m,由于不同的跳频序列有不同的非线性映射关系,因此采用逐步试探法来对不同的跳频序列确定合适的n和m。实验中先分别令n和m的值等于1,然后逐步增加其权值,观察在不同取值情况下的重构性能。通过实验发现对不同的跳频序列,在n和m取值较小的情况下都能对其进行很好的重构,随着n和m值的增加其重构性能变化不大,呈现微小的上升趋势。为了方便计算分析,实验中对于所有的跳频序列我们均取n=2,m=6。

4.2 实验中使用的跳频序列

为了验证算法对跳频序列的重构性能,实验中对一些常见的跳频序列分别进行重构。使用的跳频序列如下:

1)蓝牙79跳跳频序列

根据文献[5]的算法产生蓝牙79跳跳频序列。其中蓝牙设备地址低32位值ULA为:0xd5ebc7a6,而主设备时钟CLK的初值为:0x00000000。

2)Lozi映射产生的跳频序列

Lozi映射的关系式如式(16)所示,取x分量作为跳频序列。

式中,x0=0.2,y0=0。

3)Lorenz流产生的跳频序列

Lorenz流的关系式如式(17)所示,取x分量作为跳频序列。

式中,σ =10,r=34,b=8/3。

4)Rossler流产生的跳频序列

Rossler流的关系式如式(18)所示,取x分量作为跳频序列。

式中 d=0.15,e=0.2,f=10。

以上四个跳频序列中,蓝牙跳频序列和Lozi跳频序列为离散序列,而Lorenz跳频序列和Rossler跳频序列为连续序列。仿真实验中,对于所有跳频序列,每次实验均产生1002个真实值,并对后1000个实值进行重构,分析算法的重构性能。

4.3 仿真实验结果

下面根据4.1节中参数的取值以及重构性能指标,对4.2节中的跳频序列进行分析,分析过程中采用3.1节提到的直接多步重构方法。首先选取蓝牙跳频序列分析重构步数对序列重构性能的影响。

从表2的实验数据中可以看出,不同重构步数对跳频序列的重构性能影响不大,本文的自适应重构算法在不同重构步数下都能够对跳频序列进行很好的重构。因此,下面只取一步重构对不同的跳频序列进行重构性能分析。

表2 蓝牙跳频序列的直接多步重构性能

从表3可以看出,自适应重构算法对4.2节提到的4个常见的跳频序列都有很好的重构效果和重构精度。图3-图6分别画出四个跳频序列一步重构图和相应的误差性能仿真曲线,每次取1000个点进行仿真。为了便于实验观测,在重构图中每隔5个点输出1个点标示。

表3 不同跳频序列的一步重构性能

图3 蓝牙跳频序列一步重构仿真图

图4 Lozi跳频序列一步重构仿真图

图5 Lorenz跳频序列一步重构仿真图

图6 Rossler跳频序列一步重构仿真图

从上述仿真实验的重构图中可以看出本文的自适应重构算法,对离散跳频序列和连续跳频序列均能够实现很好的重构。从误差平方曲线可以看出,RLS算法的收敛性强,误差平方在数量级为10-8范围内波动。同时,从连续跳频序列的重构图和误差平方曲线中还可以较为直观地看出误差平方曲线与跳频序列在形状上极为相似。

下面选取蓝牙跳频序列的一步重构来分析3.3节中稀疏算法对重构性能的影响。其滤波器系数图如图7所示,从图中可以看出滤波器权系数的值有一部分分布在0附近,因此可以采用稀疏算法来降低算法复杂度。表4给出了不同门限值下的蓝牙跳频序列的一步重构性能。

图7 蓝牙跳频序列一步重构滤波器系数图

表4 不同门限值下蓝牙序列的一步重构性能

从表中可以看出α的取值越大,重构滤波器的滤波系数越少,算法越简单,反之,滤波器系数越多,算法越复杂。实际使用中,必须在非零wi,ki数与重构精度之间进行折衷考虑,设计合理的门限值。即在不损失重构精度的前提下,尽可能地降低算法的复杂度。

5 结束语

针对跳频序列重构问题,本文研究实现了一种基于Bernstein非线性多项式的自适应重构算法,并对算法的复杂度进行改进。在算法改进中,利用Bernstein多项式参数的数学特性以及滤波器系数稀疏的特点来降低算法的复杂度。通过对蓝牙跳频序列、Lozi跳频序列、Lorenz跳频序列和Rossler跳频序列的重构仿真实验可以看出,本文的算法能够对一般的跳频序列进行有效的重构。下一步工作主要针对本文算法在高重构精度的条件下,如何实现对跳频序列进行高精度预测的研究。

[1] S.Haykin.Adaptive Filter Theory,4th edition[M].Upper Saddle River,New Jersey:Prentice Hall,2002.

[2] 梁学章,李强.多元逼近[M].北京:国防工业出版社,2005.

[3] 涂靖.跳频码序列建模与预测研究[D].成都:电子科技大学,2008.

[4] 皇甫堪,陈建文,楼生强.现代数字信号处理[M].北京:电子工业出版社,2004.

[5] 曲刚,许宗泽,赵莉娟.Bluetooth跳频算法及其性能分析[J].南京航空航天大学学报,2001,33(6):574-578.

[6] 张家树,肖先赐.用于混沌时间序列自适应预测的一种少参数二阶Volterra滤波器[J].物理学报,2001,50(7):1248-1254.

[7] Weisstein E W.Weierstrass approximation theorem[EB/OL].[2009-10-27].http://mathworld.wolfram.com/Weierstrass Approximation Theorem.html.

[8] Hongbin Du,Huihe Shao and Pingjing Yao.Adaptive Neural Network Control for a Classof Low-Triangular-Structured Nonlinear Systems[J].IEEE Transactions on Neural Networks,2006,17(2):509-514.

猜你喜欢

跳频复杂度滤波器
从滤波器理解卷积
一种低复杂度的惯性/GNSS矢量深组合方法
开关电源EMI滤波器的应用方法探讨
求图上广探树的时间复杂度
宽带网络通信OFDM跳频技术研究
基于FPGA的跳频电调滤波器控制软件的设计与实现
基于Canny振荡抑制准则的改进匹配滤波器
某雷达导51 头中心控制软件圈复杂度分析与改进
基于TMS320C6678的SAR方位向预滤波器的并行实现
军用无线通信干扰与抗干扰技术研究