软件的自适应技术

2024-06-02

软件的自适应技术(精选6篇)

软件的自适应技术 篇1

传统的信息管理软件存在着软件发布状态 (存储态) 和运行状态 (运行态) 的差异, 存储态是基于软件需求分析而开发的各程序块的集合, 此时没有企业数据。运行态是存储态在某一特定的运行环境下的一个实例, 是动态实体的集合。企业的信息复杂多变, 软件需求也随之变化, 它要求软件在运行过程中, 能根据需求的变化, 在无编程情况下, 能进行自身调整满足需求变化。

1 软件自适应策略

软件自适应策略如图1所示:软件的存储态模块是由数据对象在规则库的约束下通过生成器自动生成。当企业需求发生变化而要求软件的运行状态发生改变时, 用户可以对规则库和数据词典进行相应变更, 软件系统将根据变更的内容完成软件相应的存储态和和运行态的改变, 从而满足用户的要求。例如:当企业管理的数据对象的属性信息需要改变时, 用户可以增加、删除或修改数据表的属性字段 (表的属性字段存放于数据词典中) , 然后在生成器中对相应界面的属性信息按需求进行编辑, 软件系统中将根据属性字段的变化自动重构用户的操作界面, 并同步完成数据库的操作变化。

这种自适应既面向程序设计人员、又面向系统的最终用户。下面利用统一建模语言 (UML) 中的类图来描述对象的数据结构和它们之间的静态关系—自适应软件信息模型。用顺序图来描述对象间的动态关系。

2 自适应软件信息模型

自适应软件信息模型可用图2所示的类图表示:根据其实现功能将类图分为四个部分:信息编码器、数据词典、规则库和界面生成器。

1) 编码器

编码器是对复杂多样的企业信息对象依照一定的规则进行编码的工具, 编码时要遵循可识别性和唯一性原则, 可识别性指编码值中部分代码能表示其代表对象的特征, 唯一性指的是不同的对象具有不同的码值。基于这个规则可以把编码的构成分为三个部分:特征码、占位码和顺序码, 特征码可以利用成组技术的思想对相似对象用相同码值表示。站位码是为了编码易读而在编码中间设定的特殊分隔符号, 顺序码是为了保证编码的唯一性而设置的顺序代号, 这三种编码的组合方式就构成了编码规则。

在图2中, 特征码分别以具有层次的树型结构和没有层次的表型结构存放在编码词典Code Dictionary类中, 每一种特征码对应一个方案。编码规则对应Code Rule类, 编码器中另外两个辅助对象为:记录系统各种编码方案的Code Scheme类和记录各个对象所使用编码方案的Code Use类。

2) 数据词典

数据词典是用来记录数据库中数据结构信息, 它和数据库的表结构信息同步, 用户通过它操作底层数据结构。它包含两个对象:记录数据库的表构信息的Data Table类和记录表字段信息的Data Dictionary类。

3) 规则库

在规则库中定义界面动态生成的各种规则方案和相应的规则条款, 并与使用该条款的数据表中相应属性字段关联。它包含三个对象:记录系统界面动态生成中的各种约束规则的方案的Rule Scheme类, 描述约束规则条款Rule Dictionary类, 描述各属性字段所使用的规则条款的Rule Use类。

4) 界面生成器

在本研究中, 界面生成器对应一个数据库的表对象, 它以数据词典为基础, 受规则库的规则约束, 通过程序生成用户操作表对象的增、删、改、查界面。它包括两个对象:生成用户使用界面的程序块Generator类和记录动态生成界面的Dynamic UI类。

构成各个类的属性和方法如表1所示:

3 软件自适应功能实现

软件自适应功能实现可以用顺序图来描述, 顺序图描述功能实现时, 以类对象为基础, 描述类对象随时间的变化彼此间信息交互情况及其交互结果。软件自适应功能实现顺序图如图3所示。

从图中可以看到当程用户或序员需要编辑动态界面时, 通过Generator类对象的生成界面 (generate UI () ) 方法, 从Data Dictionary类对象选择界面所用的字段, 并利用Code Use类对象的关联方案 (relate Sheme () ) 方法关联上相应的编码使用方案号, 再利用RuleUser类对象的规则使用 (rule Use () ) 方法确定相应的约束规则, 然后在Generator类对象中用集成 (Integrate () ) 方法将信息进行集成并送到Dynamic UI对象中供用户或程序员使用。当企业的需求发生变化时, 用户可以对动态界面的信息进行可视化修改。用户使用动态界面时, 首先调用Dynamic UI类对象的界面编辑 (UIedit () ) 方法获取界面的各种属性信息, 然后将这些信息传递给Generator类对象, 并由它生成用户可以操作使用的界面, 该界面对象包含相应的数据库操作方法。

界面生成器的用户操作界面如图4所示, 界面编号和数据词典中的表编号对应, 界面的表描述了构成该界面的属性字段信息, 通过上移、下移可以改变属性字段在显示界面上的位置, 约束规则和编码方案可以选择。生成的界面如图5所示。

4 小结

本文所描述的软件自适应模型, 已经利用J2EE技术进行了开发, 开发出来的基础件已经用在“面向新产品开发决策支持系统”、“面向设备生命周期的设备管理系统”等软件中, 这些软件已经被多家家企业使用, 就其使用的效果看, 当用户需求有所变化时, 用户完全可以通过无编程可视化操作, 使软件自适应用户的需求。

参考文献

[1]周晓桦.基于UML的企业组织建模方法[J].中国机械工程, 2004, 15 (12) :95-97.

[2]和力等.一种用UML开发组件式Web应用系统的过程[J].计算机工程, 2005, 31 (1) :1091-1094.

[3]尚文利.基于IDEF与UML的系统建模方法[J].计算机集成制造系统~CIMs, 2004, 10 (3) :253-258.

软件的自适应技术 篇2

关键词:语音信号,自适应噪声抵消,LMS算法,NLMS算法,BP算法

1 引言

噪声消除是信号处理的核心问题之一。通常实现最优滤波的滤波器为维纳滤波器与卡尔曼滤波器;其要求预先知道信号和噪声的先验统计特性,而在现实中这往往是无法预知的。为此,不需预知信号和噪声统计特性的自适应滤波技术得以发展。1965年,美国斯坦福大学建成了世界上首个自适应噪声抵消(ANC)系统;随着计算机技术与集成电路技术的进步,新的自适应算法不断涌现,自适应噪声抵消在理论和应用上得到了很大发展。

自适应噪声抵消技术是一种有效消除噪声影响的信号处理技术;在未知外界干扰源特征、传递途径不断变化以及噪声和对象波形相似的情况下,通过自适应算法自动调节滤波器参数,有效消除外界声源干扰,获得高信噪比的对象信号。ANC系统的基本要求是其两路输入噪声必须统计相关;在现实中,噪声通道大多非常复杂,具有非线性;当两路输入噪声非线性相关时,传统的ANC系统(基于LMS、NLMS、RLS算法)去噪能力很难保证,甚至使对象信号失真。为此,必须寻求一种有效应对非线性相关的自适应噪声抵消方法。

神经网络是由大量处理单元广泛互联而成的复杂网络,它采用大规模并行处理,信息存储在神经元之间的连接上,存储区和操作区合二为一;它具有很强的自适应、自学习、鲁棒性、容错能力和非线性映射能力。激活函数为Sigmoid的多层前向神经网络能够以任意精度实现非线性函数逼近,实现对噪声非线性的模拟。

本文以语音信号为对象进行去噪研究;分别对基于LMS、NLMS、RLS、BP算法的ANC系统进行仿真,仿真结果表明基于BP算法的ANC系统去噪能力明显优于传统的ANC系统,具有收敛速度快、实时性好、去噪能力强、稳定性高等优点;可应用于各种应急突发事件的即时语音去噪。

2 噪声抵消系统的基本原理

2.1 自适应噪声抵消系统基本原理

自适应噪声抵消系统除了需要原始输入外,还需一个与原始输入中噪声相关的参考输入,以便抵消原始输入中的噪声,还原出有用信号。典型的自适应噪声抵消系统如图1所示:

其中原始输入是有用信号与噪声的叠加,参考输入是与噪声相关的,通过参数可调滤波器得到的输出信号与原始输入相减,将原始输入中的噪声消除,这样误差信号就变成有用信号,从而达到噪声消除的目的。

假设和不相关,那么,,相关,则自适应噪声抵消系统的输出为:

将式(1-1)两边取平方得:

将式((11--22))两边取数学期望得::

因为与不相关,则;将其带入式(1-3)可得:

当调节自适应滤波器使最小时,有用信号的功率不受影响,则相应的最小功率与的功率值有关即

所以当滤波器为参考输入噪声的最佳估计时,最小,噪声能够得到最大程度的抵消。

输出通常由有用信号和残余噪声两部分构成,由式(1-1)可知,残余噪声与的值有关,要使最小,有用信号功率保持不变,那么应使的功率最小,当其达到最小时,输出噪声功率也达到最小,那么输出信噪比达到最大,且,则此时,输出信号完全是有用信号,不包含任何噪声。

如果参考输入与原始输入不相关,输出也不相关,那么,则系统的输出功率表达式为:

要使系统输出功率最小,则必须最小,而只有当滤波器的所有权值都为0时,最小为0,但这样滤波器相当于“自行关闭”失去了滤波的作用。因此,自适应干扰抵消系统的基本要求是其两路输入噪声必须统计相关,否则就无法去噪。

2.2基于神经网络的自适应噪声抵消系统基本原理

基于神经网络的自适应噪声抵消系统如图2所示;由于环境的复杂性,叠加在输入信号上的噪声经过实际环境,往往是非线性的,所以利用来模拟实际中噪声所经过的通道。为了获得噪声,必须辨识出,实质就是获得自适应神经网络,使得在获得噪声源的条件下,自适应神经网络无限逼近。此时就无限逼近于原始输入中的噪声。由于一般无法获得,而为的叠加,且与不相关,所以利用替代对网络进行训练,完成对噪声通道的模拟;而后采取即可达到噪声抵消目的。

3 语音信号的自适应噪声抵消仿真研究

首先录入一段时长16 秒的语音信号,保存为.wav文件作为期望信号;利用randn函数生成一段随机噪声作为参考输入,将语音信号和噪声相混叠作为原始输入;而后依次调用LMS、NLMS、RLS和BP算法程序进行MATLAB仿真研究。

这里将基于LMS、NLMS、RLS算法的实验条件设置为:滤波器阶数:800,步长因子:0.001;基于BP算法的实验条件设置为:训练更新次数:10,最大训练次数:1000,期望误差:0.001,学习速率:0.001,输入层传递函数:tansig,隐层传递函数:logsig,输出层传递函数:purelin。

3.1 基于LMS算法的自适应噪声抵消

经LMS算法噪声抵消后,信号时、频域仿真结果如图3 至图6所示。

仿真结果: LMS算法经过800次迭代,趋于稳定;时域上存在少量“拖尾”,频谱差异较小;通过sound函数,开始存在一小段杂音,之后话音质量较清晰;仿真时长23.188秒。

3.2 基于NLMS算法的自适应噪声抵消

经NLMS算法噪声抵消后,信号时、频域仿真结果如图7至图8所示。

仿真结果: NLMS算法经过800 次迭代,趋于稳定;从时域“拖尾”现象明显,波形、频谱差异大,通过sound函数,话音浑浊,杂音大;仿真时长33.211秒。

3.3 基于RLS算法的自适应噪声抵消

经RLS算法噪声抵消后,信号时、频域仿真结果如图9 至图10所示。

仿真结果: RLS算法经过800 次迭代,趋于稳定;时域0 点附近有微量振幅、频域趋为0,通过sound函数,听不到一点声音,去噪效果最差;仿真时长6007.599秒。

3.4 基于BP算法的自适应噪声抵消

构建BP神经网络前,首先要确定隐层结点数。文献提出一个经验公式(q为隐层结点数,m为输入层结点数,n为输出层结点数,a为常数,范围[110])。本实验中,,取,将隐层结点数在3的邻域内变动,逐一学习直至隐层结点数达到最佳值,最终学习结果为4,于是我们构造一个1-4-1的BP神经网络。接着分别调用训练函数为traingdm(动量梯度下降法)、traingd(标准BP算法)、traingda(自适应学习算法)、trainrp(弹性BP算法)、traincgf(共轭梯度算法)的BP算法进行仿真研究。

3.4.1 训练函数为traingdm的BP算法

经训练函数为traingdm的BP算法噪声抵消后,频域仿真结果如图11,均方误差如图12所示。

仿真结果: 训练函数为traindm的BP算法经过1000 次迭代,才逼近零点;其波形、频谱差异大,通过sound函数,话音浑浊,杂音大;仿真时长760秒。

3.4.2 训练函数为traingd的BP算法

经训练函数为traingd的BP算法噪声抵消后,频域仿真结果如图13,均方误差如图14所示。

仿真结果: 训练函数为traingd的BP算法经过1000次迭代,才略趋于稳定;波形、频谱差异大,通过sound函数,话音浑浊,杂音大;仿真时长763秒。

3.4.3 训练函数为traingda的BP算法

经训练函数为traingda的BP算法噪声抵消后,频域仿真结果如图15,均方误差如图16所示。

仿真结果: 训练函数为traingda的BP算法经过987次迭代,趋于稳定;波形差异较大,频谱差异较小,通过sound函数,话音不清晰,有杂音较多;仿真时长761秒。

3.4.4 训练函数为trainrp的BP算法

经训练函数为traingrp的BP算法噪声抵消后,频域仿真结果如图17,均方误差如图18所示。

仿真结果: 训练函数为trainrp的BP算法经过195 次迭代,趋于稳定;波形及频谱相似度高,通过sound函数,话音清晰,无杂音;仿真时长148秒。

3.4.5 训练函数为traincgf的BP算法

经训练函数为traingcgf的BP算法噪声抵消后,频域仿真结果如图19,均方误差如图20所示。

仿真结果: 训练函数为traincgf的BP算法经过10 次迭代,趋于稳定;波形差异较小,频谱相似度较高,通过sound函数,话音较清晰,杂音少;仿真时长29秒。

3.5 仿真结果对比分析

1)去噪能力由强至弱依次为:trainrp >traincgf>LMS>NLMS>traingda >traingd >traingdm>RLS,其中训练函数为trainrp的BP算法去噪效果最好,RLS算法无去噪能力。

2)收敛速度由快至慢依次为:traincgf >trainrp>LMS>NLMS>traingda >traingd >traingdm>RLS,其中训练函数为traincgf的BP算法收敛速度最快。

4 结论

本文以语音信号为对象进行噪声抵消研究。首先对典型的和基于神经网络的自适应噪声抵消系统的基本原理进行了阐述;而后对基于LMS、NLMS、RLS算法的自适应噪声抵消系统进行MATLAB仿真研究,发现LMS算法去噪效果较好、但迭代次数多,不能满足语音通信的实时性及高质量语音的要求。继而又对训练函数为traingdm、traingd、traingda、trainrp、traincgf的BP算法的自适应噪声抵消系统进行仿真研究,发现训练函数为trainrp的BP算法去噪能力最好,可应用于语音质量要求高的去噪;训练函数为traincgf的BP算法收敛速度最快,可应用于抢险救灾、处突维稳等任务的实时语音去噪。

参考文献

[1]崔大鹏.神经网络在自适应噪声抵消中的应用研究[J].电子技术与软件工程,2012(3).

[2]曹斌芳.自适应噪声抵消技术的研究[D].湖南大学,2007.

软件的自适应技术 篇3

伴随无线通信技术的迅猛发展, 使得人们对通信系统的容量要求越来越大。现代通信系统为了追求更高的数据速率和频谱效率, 更趋向于采用线性调制方式, 如16QAM和QPSK方式, 以及多载波配置[1]。这些技术产生的信号峰均比较大, 均要求功率放大器具有良好的线性特性, 否则就会出现较大的互调失真, 同时会导致频谱扩展, 造成临道干扰, 使误码率恶化, 从而降低系统性能。

目前, 克服放大器非线性失真主要有三种方法, 一是直接制造超线性功率放大器, 但制造这样的放大器工艺极其复杂, 价格非常昂贵, 且一般只适用于小功率放大器。二是采用功率回退技术, 使功放工作在线性区, 可以使其从饱和功率点做较大回退来满足线性放大的要求, 但这样做会使功放效率大大降低, 一般小于10%。三是采用线性化技术, 即通过适当增加一些外围电路来克服其非线性影响。目前功放线性化技术主要有前馈、负反馈和预失真技术。负反馈固有的稳定性问题, 使得反馈线性化技术工作在无线频率无法保持系统稳定[2]。前馈技术是早期用得比较多的一项技术, 比较成熟, 但其最大的难点在于为保持不同器件之间的幅度和相位特性完全匹配[2], 会使系统和设备都较复杂。预失真技术具有电路形式简单, 调整方便, 效率高, 造价低等优点[3]。其中, 基带预失真还能采用现代的数字信号处理技术, 是被最为看好的一项功放线性化技术。

文章利用一种简单的单入单出三层前向神经网络来进行自适应预失真处理, 补偿由高功率放大器非线性特性引起的信号失真, 从而实现其线性化。文中分析基于这种结构的自适应算法, 并做了相应的仿真, 仿真结构表明, 该方法能有效改善三阶互调和五阶互调, 且收敛速度比一般多项式预失真更快, 具有一定的优势。

1高功率放大器非线性分析

高功率放大器一般都是非线性器件, 特别是当输入信号幅度变化较大时, 放大器工作区将在饱和区、截止区、放大区之间来回转换, 非线性失真严重, 会产生高次谐波和互调失真分量。由于任何函数理论上都可以分解为多项式的形式, 故放大器的输入和输出关系表示为:

Vo=a1Vi+a2Vi2+a3Vi3++anVin (1)

假设输入的双音信号为:

Vi=V1cosω1t+V2cosω2t (2)

将式 (2) 代入式 (1) , 得到输出电压为:

Vo=a22 (V12+V22) +[a1V1+a3 (34V13+32V1V22) +]cosω1t+[a2V2+a3 (34V23+32V2V12) +]cosω2t+ (12a2V12+) cos (2ω1t) + (12a2V22+) cos (2ω2t) + (14a3V13+) cos (3ω1t) + (14a3V23+) cos3ω2t+a2V1V2[cos (ω1+ω2) t+cos (ω1-ω2) t]+34a3V12V2[cos (2ω1+ω2) t+cos (2ω1-ω2) t]+34a3V22V1[cos (2ω2+ω1) t+cos (2ω2-ω1) t]+58a5V13V22cos (3ω2-2ω1) t+58a5V12V23cos (3ω1-2ω2) t

从上式可以看出, 输出信号中不仅包含2个基频ω1, ω2, 还产生了零频, 2次及高次谐波以及互调分量。其中的2ω1-ω2, 2ω2-ω1, 3ω1-2ω2和2ω1-3ω2通常会落在通频带内, 一般无法滤除, 是对通信影响最大的非线性失真分量, 即所谓的三阶互调和五阶互调。放大器线性化的目标就是在保证一定效率的前提下最大地减小三阶和五阶互调分量。

2预失真基本原理及其自适应

预失真就是在信号通过放大器之前通过预失真器对信号做一个与放大器失真特性相反的失真, 然后与放大器级联, 从而保证输出信号相对输入信号是线性变化。预失真器产生一个非线性的转移特性, 这个转移特性在相位上与放大器转移特性相反, 实质上是一个非线性发生器, 其原理图如图1所示。

预失真器的实现通常有查询表法和非线性函数两种方式[2]。由于查表法结构简单, 易于实现, 早期的预失真多采用此方法。但它对性能的改善程度取决于表项的大小, 性能改善越大, 需要的表项越大, 所需要的存储空间也越大, 每次查找遍历表项的每个数据和更新表项所需要的时间和计算也越大, 因此在高速信息传输的今天已经不可取。非线性函数法是根据对放大器输出信号采样值与其输入信号, 用一个非线性工作函数来拟合放大器的工作曲线, 然后根据预失真器特性与放大器特性相反, 求出预失真器的非线性特性函数, 从而对发送信号进行预失真处理。这种方法只需要更新非线性函数的几个系数, 也不需要大的存储空间, 因此是近年来研究的热点。

假设预失真器传输函数为F (x) ;放大器传输函数为G (x) ;FG均为复函数。若输入信号为x (t) , 则经过预失真器之后的信号为u (t) =F[x (t) ], 放大器的输出函数为y (t) =G[u (t) ]=G{F[x (t) ]}。预失真的目的就是使x (t) 通过预失真器和放大器级联后的输出y (t) =ax (t) , a为放大器增益。通过一定的方法可以找到合适的F, 使实际输出和期望输出的误差最小。

由于温度、电器特性、使用环境等因素的不断变化, 放大器的传输特性也会发生变化, 从而预失真器传输函数F (x) 的各参数也会随之变化。因此, 现代数字预失真技术一般都采用自适应技术, 以跟踪调整参数的变化。目前, 常用的两种自适应预失真结构如图2和图3所示。

图2是一般的通用自适应结构, 结构简单, 思路明确, 但一些经典的自适应算法由于多了放大器求导项而不能直接应用, 且需要辨识放大器的传输特性。图3的复制粘帖式结构 (非直接学习) 则不存在这些问题, 关于这种结构的优缺点比较和具体性能分析见文献[4]。这里将采用后一种自适应结构。

3基于一种单入单出式神经网络的自适应预失真技术

3.1 神经网络

神经网络是基于生物学的神经元网络的基本原理而建立的。它是由许多称为神经元的简单处理单元组成的一类自适应系统, 所有神经元通过前向或回馈的方式相互关联、相互作用。由Minsky和Papert提出的多层前向神经元网络是目前最为常用的网络结构。它被广泛应用到模式分类和函数逼近中, 已经证明含有任意多个隐层神经元的多层前向神经元网络可以逼近任意的连续函数[5]。在此, 就是利用神经网络的这种功能来拟合预失真器的特性曲线, 并且用改进的反向传播算法来自适应更新系数。

多层前向神经元网络由输入层、一个或多个隐层和输出层以前向的方式连接而成, 其每一层又由许多人工神经元组成, 前一层的输出作为下一层神经元的输入数据。三层前向神经元网络示意图如图4所示, 其中输入层有M个人工神经元, 隐层有K个神经元, 输出层有N个神经元。关于人工神经元的具体介绍参考文献[6,7]。

3.2 基于单入单出式神经网络的自适应预失真系统模型

单入单出三层前向神经网络示意图如图5所示, 假设隐层包含K个神经元。输入数据经过一系列权系数{w11, w12, …, w1K}加权后到达隐层的各个神经元。隐层中的神经元将输入进来的数据通过一个激励函数 (核函数) , 其各神经元的输出经过一系列权系数{w21, w22, …, w2K}加权并求和后作为输入层的输入, 然后该输入通过激励函数的输出作为整个网络的输出。单入单出式神经网络自适应预失真系统模型就是把图5所示的神经网络放入图3所示的自适应预失真模型的预失真器{f}和函数发生器{f′}模块中, 两个神经网络的结构和规模是一样的。

预失真器神经网络和函数发生器神经网络开始都随机初始化。先看预失真器神经网络, 设输入序列为xi (i=1, 2, …) , 则隐层各单元输入I1k=w1kxi-θ1k, 经过核函数后, 隐层各单元输出为J1k=f (I1k) 。其中f (x) = (1-e-2x) / (1+e-2x) 为核函数, 输出层静输入为z1=k=1Κw2kJ1k-θ1, 输出层输出即预失真器输出U1=f (z1) , 经过功放后得到系统输出yi。通过衰减器后的信号作为训练神经网络的输入信号, 经过前面神经网络相同的过程训练网络输出层的输出为U2, 绝对误差信号e1 (i) =U1 (i) -U2 (i) , 然而直接把此误差运用到自适应算法中导致算法会局部收敛且收敛速度极慢。因此本文对误差信号做了改进, 即把误差信号改为e (i) = (1/2) {λ[U1 (i) -U2 (i) ]2+ (1-λ) φ[e1 (i) ]}, 其中φ (x) =In[cos (βx) ]/β, 加入的调整因子λ和辅助项φ, 能把算法从局部收敛点拉出来且收敛速度得到一定的提高。最后根据反向传播算法, 得到训练神经网络的权系数更新式如下 (下标2为隐层到输出层权系数;下标1为输入层到隐层权系数) :

δ2 (i) =c (i) [1+U2 (i) ][1-U2 (i) ]Δw2 (i) =αδ2 (i) J2+ηΔw2 (i-1) Δθ2 (i) =αδ2 (i) +ηΔθ2 (i) δ1 (i) =δ2 (i) w22 (1+J2) (1-J2) Δw1 (i) =αδ1 (i) y/G+ηΔw1 (i-1) Δθ1 (i) =αδ1 (i) +ηΔθ1 (i)

预失真权系数可分为训练和跟踪两个阶段。根据上面的迭代公式, 得到一组训练神经网络的权系数。把这种权系数拷贝到预失真器神经网络中替代原来的权系数, 得到一组新的预失真系数, 之后重新计算误差, 继续上面的过程循环迭代运算, 直到误差小于规定的范围, 即整个系统收敛, 预失真器训练完成。此时称之为训练阶段。之后随着温度、输入的不同, 调制信号、环境等的变化, 可能引起功放特性的变化, 可以设置一个误差门限值, 一旦发现误差超过此门限, 立即重新启动上面的循环迭代, 重新训练, 直到满足条件, 即跟踪阶段。这种算法收敛速度快, 且能满足实时运算的要求。同时在硬件实现上, 只要做一个核函数发生器, 其他就全是乘累加运算, 与多项式结构的高次幂运算相比, 硬件实现要简单得多, 因此具有一定的实用性。

4性能仿真

文中使用双音信号进行了仿真分析, 双音信号为:

xs=0.5[sin (2×π×10×t) +sin (2×π×8×t) ]

放大器模型采用经典salef[9]模型, 神经网络的隐层数设为15。双音信号直接通过放大器和通过文中所提的预失真网络后再通过放大器的频谱图如图6所示。

由图6可见, 双音信号通过放大器后产生了较大的失真, 其中的三阶互调达到-17 dB, 五阶互调也有-36 dB。通过文中所提的神经网络预失真系统处理后, 即信号通过预失真器再通过放大器后, 三阶互调被抑制到-42 dB, 五阶互调也被抑制到-45 dB以下, 三阶互调改善25 dB, 五阶互调改善11 dB以上。

图7显示文献[10]提到的一般多向式结构和本文所提出的神经网络预失真结构的误差收敛曲线, 它们都能达到相同或相似的互调分量改善效果。然而, 本文所提的神经网络结构收敛速度明显较前者要快, 而且收敛效果也比前者要好。图8是输入信号和通过预失真处理后放大器的输出信号波形图。由图可见, 经过本文所提出的神经网络预失真网络处理后, 输出信号波形基本没有失真, 能与输入信号很好的重合, 表明该神经网络预失真技术能很好的实现功放线性化。

5结语

本文针对放大器固有的非线性特性问题, 从数学上分析了放大器的非线性失真, 介绍基于预失真基本原理和神经网络基本概念, 提出一种单入单出式神经网络自适应预失真技术。仿真结果表明, 该技术能三阶互调能抑制25 dB左右, 对五阶互调能抑制11 dB左右。在很大程度上改善了通信系统的性能;而且与一般多项式预失真技术相比, 收敛速度和收敛效果都有一定的改善, 且硬件实现上只要做好一个核函数发生器, 其他运算就全是简单的乘累加过程, 可以避免硬件难以完成的多项式高次幂运算, 表现出了一定的优势。

摘要:由于放大器固有的非线性特性, 通信时会产生带内失真和临道干扰等问题, 会对通信系统性能造成严重影响。为了克服放大器非线性特性, 需要进行线性化处理。首先对功率放大器的非线性失真进行数学分析, 简单介绍预失真技术的基本原理;其次在简单介绍神经网络的基础上提出一种简单的单入单出式神经网络自适应数字基带预失真技术。该技术能很好地改善三阶互调和五阶互调分量, 且与一般多项式拟合预失真技术相比, 在收敛速度和硬件实现难易程度上都有一定的优势。最后以双音信号为例进行了Matlab仿真。仿真结果印证了该技术的优势。

关键词:功率放大器,预失真,神经网络,互调失真

参考文献

[1]赵慧, 漆兰芬.射频放大器的工作函数预失真线性化[J].无线电工程, 2001, 31 (12) :58-61.

[2]钱业青, 刘富强.宽带RF功率放大器的预失真线性化技术综述[J].计算机工程与应用, 2007, 43 (32) :114-117.

[3]贾建华, 刘战胜.关于自适应预失真射频功率放大器线性化研究[J].微波学报, 2005, 21 (3) :48-50.

[4]钱业青.一种高效的用于RF功率放大器线性化的自适应预失真结构[J].通信学报, 27 (5) :35-46.

[5]Cybenko G.Approximations by Superpositions of a Sigmoi-dal Function[J].Mathematics of Control, Signals and Sys-tems, 1989 (2) :183-192.

[6]刘宝碇, 赵瑞清, 王纲.不确定规划及应用[M].北京:清华大学出版社, 2003.

[7]朱剑英.智能系统非经典数学方法[M].武汉:华中科技大学出版社, 2001.

[8]Glentis G O, Berberdis K, Theodoridid S.Efficient LeastSqares Adaptive Algorithms for FIR Transversal Filtering[J].IEEE Signal Processing Magazine, 1999, 16 (4) :13-41.

[9]Saleh A.Frequency-independent and Frequency-dependentNonlinear Models of TWT Amplifiers[J].IEEE Trans.onCommun., 1981, 29 (11) :1 715-1 720.

[10]Wu Shanyin, Simon Hau S F, Wong Y M.The Use of Non-linear Curvefitting in Digital Predistortion for LinearizingRF Power Amplifiers[J].IEEE ICICS, 2005 (3) :960-963.

软件的自适应技术 篇4

现代战争总是在超视距、软杀伤的信息域首先展开。采用通信对抗手段,感知敌方的行动,阻断敌方的信息传递,以获取信息优势,是在战场上取胜的关键之一。微波通信作为重要的无线通信方式,因为其具有很强的顽存性、机动性和抗干扰性能,在当今电子战日趋激烈之时,在军事通信中占有极其重要的地位。

针对战场侦察对抗技术的特点,微波通信设备普遍采用各种灵活、多样的通信抗干扰技术。如纠错、检错的自适应调制解调技术、自适应均衡技术;具有自动实时选择信号,抑制干扰的自适应天线技术;具有抗干扰、抗截获的跳、扩频通信技术;以及猝发通信技术,自适应差错控制技术等。相对于单机级的前端技术,系统级的自适应能力或者说分析、综合、自主运行方面的能力发展缓慢,而这方面能力的不足将影响各项前端技术效能的充分发挥,阻碍反对抗能力的提高。

1自适应技术的研究方法

现代战场电磁环境复杂,工作频带内敌我友信号混杂,难以区分干扰的来源。通信对抗设备往往采用智能控制技术或直接人工操作,难以预料干扰会来自时域、频域还是空域,其行为模式更无法预测。因此,研究自适应技术只能从挖掘通信设备自身潜力和总结电子反对抗实践中积累的宝贵经验两方面寻求解决方案。

1.1挖掘设备潜力

现代数字信号处理技术和计算机技术的发展,提高了通信设备的监控能力,使之具有较高的水平。通过信道参数的实时监测,并结合计算,能够表述电子干扰对设备的影响,作为分析和判断干扰类型的依据。通过研究各种电子反对抗措施的优缺点,采用自适应技术使它们合理配置,优势互补,既可满足高抗干扰指标的要求,又可缓解某些技术方面的难度,从而简化设备复杂程度,降低制作成本,达到更为合理的性能价格比。

1.2总结操作经验

更重要的是“没有干扰不掉的通信”,即使装备了全部前端技术,通信也可能被破坏。这时往往需要操作员的知识和智能应付突发事件,变被动防御为主动反制。有经验的操作员在通信中断后,可以使用辅助仪器了解电子干扰的来源、方式和强度,采取相应的反制措施。如搜索安全波道实现规避,提高辐射功率压制干扰,改变信号特征甚至关闭发射欺骗干扰。即使是大功率宽频带的阻塞式干扰,也能在攻击结束后立即恢复通信。因而,通过软件固化电子反对抗经验,摆脱对人员和仪器的依赖,是自适应技术研究的重要内容。

2自适应技术的应用实例

从自适应的技术需求以及所产生的作用来看,这项技术在微波通信设备的研制方面具有极大的价值。正在进行的研究项目,初始阶段就提出了增强系统自适应能力,减少对人员和仪器的依赖的设计目标。

2.1自适应ECCM的可用资源

该系统采用FDD工作模式,1+1热备份,并具有多波道选择,多功率级别,可以应用于自适应ECCM的资源共5个,定义如下:

① “信道资源” 比较双信道误码,自动将低误码信道作为主信道;

② “频率资源” 遭遇强干扰时,按照特定序列切换波道;

③ “功率资源” 根据本地接收信号调整对端发射强度,保障信号最佳接收;

④ “对控资源” 用于控制对端工作参数和交换信道两端设备的工作状态;

⑤ “信息资源” 作为分析和判决的参数信息,包括误码率BER、接收电平Pr和对端发射功率RPa。

2.2自适应ECCM的应对策略

如表1所示,利用实时监测的信息资源区分工作状态,制定应对策略。

对微波通信实施电子对抗是依照先‘侦察定位’,再‘截获分析’,最后‘实施干扰’的顺序进行的。所以通信反对抗的研究首要在于抗截获:在保证通信质量的前提下,应尽量降低有信号空域的功率谱密度,使敌方截获不到信号,确定不了通信站的具体位置(表1的模式1)。

在确认电子干扰后,定频通信中通常采用切换波道的方式在干扰频域外恢复通信(表1的模式3、5和8),而不能采用提高对端发射功率的方法强制恢复通信。理由有以下2点:

① 暴露目标,招致杀伤人员、破坏通信装备为目的的硬杀伤;

② 破坏电磁兼容环境,干扰战场上我方信号。

只有在通信距离过远或地形阻挡影响通信质量时,才能采用提高对端发射功率的方法(表1的模式6)。

自适应ECCM管理策略流程图如图1所示。

3结束语

在微波通信的电子反对抗领域应用自适应技术是一门充满潜力的技术,可以最大限度地发掘通信设备潜力,提高系统ECCM效能。本文提出的反对抗策略,是针对特定的通信设备并总结实践经验做出的,可以作为新系统研制的参考。在电子对抗与反对抗这对“矛”和“盾”的彼此不断较量中会出现何种对抗方式,是很难准确预测的,但可以预期,自适应技术由于手段灵活、成本低、适应性强的特点必将被广泛应用。

参考文献

[1]阮炎,郄学庆.数字微波通信电子反对抗研究[J].无线电通信技术,2006,32(4):39-41.

软件的自适应技术 篇5

蚁群优化算法[1]是一种全局性邻域搜索算法,具有分布式计算、信息正反馈和启发式搜索的特征,易于与其它方法相结合。该算法得到了具有NP难度的旅行商问题(TSP)[2]的最优解,并应用到连续空间[3]和数据挖掘[4]中。但是蚁群算法也存在着一些缺陷。寻找“精解”和“快速收敛”两者的平衡点成为蚁群算法发展和应用的关键。

并行蚁群算法[5]是最近提出的一种优化结果较好的算法,该算法将所有蚂蚁分为几个子种群,并进行种群间的信息交流。但是其子种群的规模的预先确定有很大的难度:若规模过大,则种群多样性容易被破坏,搜索能力下降;若过小,则使得搜索时间增加。因此,本文中引入“蚂蚁聚度”的概念[6],通过设定“聚度阈值”来自动调整子种群的规模,提出了自适应的并行蚁群算法。传统的蚁群算法以及改进的Ant-Q System[7]和MAX-MIN[8]模型都存在着全局寻优能力不强的缺点,小生境技术[9]的引入正是为了解决这一问题。当自适应并行蚁群系统进入停滞阶段时,除了保留部分蚂蚁对局部最优点继续进行搜索外,其它的蚂蚁重新划分种群,并重新初始化信息素,然后对整个空间进行重新搜索。这样,在减少蚂蚁数量的时候也可以在信息量的“探索”和“利用”之间得到很好的平衡。通过对TSP问题进行计算,证明了该方法的有效性和可行性。

2 并行蚁群算法和小生境技术基本原理

2.1 并行蚁群系统(PACS:Parallel Ant Colony System)

在并行蚁群系统[5]中蚂蚁被分为几个不同的种群,并在一些合适的周期内,通过种群之间的信息交流策略来更新信息素。PACS与基本蚁群算法的主要不同在于:1)将所有蚂蚁分成若干个不同的种群;2)通过局部调整准则、全局调整准则和信息交流调整准则对信息素进行调整。

以n个城市的TSP问题为例说明PACS模型。首先作如下定义:G表示总的种群数目,Nk(K=1,2,…G)表示第k个种群中蚂蚁的个数,且满足蚂蚁总数m=Gk=Nk;dij(i,j=1,2,...,n)表示城市i和城市j之间的距离,τij(t)表示t时刻在城市i,j连线上残留的信息量。随着时间的推移,以前留下的信息逐渐消逝,用参数ρ、α、λ表示信息的挥发因子。所有蚂蚁完成一次迭代以后,各路径上的信息量根据下列准则作调整:

准则1(局部调整准则):局部调整是每只蚂蚁在建立一个解的过程中进行的。随着时间的推移,种群j中两个元素(城市)r和s之间的局部信息素数量要根据下式作调整:

其中Lnn表示用最近邻域启发式(nearest neighbour heuristic)得到的所有城市之间的最小距离。

准则2(全局调整准则):只有生成了全局最优解的蚂蚁才有机会进行全局调整,全局调整规则为:

其中Q是信息素强度,它影响算法的收敛速度。Lj表示第j个群体中蚂蚁找到的最短路径。

准则3(信息交流调整准则):信息交流准则是并行蚁群算法与ACS算法的主要不同点。每经过R1次循环,通过种群间的信息交流对信息素值进行调整。在本文中采用环形结构的种群间信息交流策略。

其中“neighbour”定义为在环形结构中的种群。Lng表示邻域("neighbour")种群中的最短路径。

2.2 小生境技术原理

小生境技术的提出为搜索空间的扩展提供了可能性。共享机制由Goldberg[10]提出,它通过共享函数调整群体中各个个体的适应度,以维护群体的多样性。共享函数是表示两个个体之间密切关系程度的函数,记为sh(dij),dij表示个体i与个体j之间的某种关系。

3 嵌入小生境技术的自适应并行蚁群算法

用K代表子种群规模,则自适应的子种群规模可以通过如下公式确定:

其中σ是“聚度阈值”一般取常数。若聚度值较大,说明蚂蚁上一次从这个城市到达另外城市的路径相对集,在以后的搜索最优程中,过度强化正反馈信息引起停滞现象的可能性就越大。所以当sta大于阈值σ时,子种群规模就降低到最低限度2,以刺激种多样性的提高。相反,当城市聚度越小时,这个城市的信息量分布相对比较分散,导致收敛速度较慢。所以当sta较小时种群的多性较好,子种群由下式确定:

在确定子种群的规模后就按照上述并行蚁群算法的调整准则对信息量进行调整。

在自适应并行蚁群算法进入停滞后采用共享机制重新确定城市之间的信息量,对群体中信息素值较大(认为与局部最优点的相似度较高)的个体通过施加共享函数进行惩罚,阻止新蚂蚁种群再次陷入同一局部最优点。施加共享函数后城市间的共享信息素为:

共享函数sh(x)采用典型的三角共享函数:

式中τshare为共享信息量;τmax为自适应并行蚁群模型中的信息素最大值。

根据图2讨论共享函数对信息量的影响。不失一般性的认为距离局部最优点xi越近的点对应的信息量就越大(虽然会有个别点不满足这个条件,但在蚂蚁数量较多的情况下对结果的影响不会太大)。本文选取τshare=1/2τmax,假设共享前τi1=0.2τshare,τi2=0.4τshare,由式(7)可得x1、x2的共享度都为0,则共享信息素分别为τi1和τi2;同理如果τi3=1.6τshare,x3的共享度为0.6,共享信息量为0.4τi3。由此可见当蚂蚁距离局部最优点较远时共享信息量与原信息量相等;当蚂蚁距离局部最优点较近时共享信息量相应减小。由于蚂蚁在搜索过程中是通过感知信息素的数量进行路径选择的,所以这样的的处理达到了局部最优点对新初始化蚂蚁的排斥作用,能够有效避免蚁群再次陷入同一局部最优。

3.1 算法描述

1)初始化:将m只蚂蚁随机分为G个种群,第k个种群中蚂蚁的个数用Nk(k=1,2,…,G)表示。

2)重复运行直到禁忌表添满为止(这一过程将运行(n-1)次)

对每个蚂蚁,根据传统的选择概率,选择下一个要转移去的数据j;

将第k只蚂蚁转移到第j个数据;

进行局部搜索,根据公式(1)更新每只蚂蚁的信息素;

将数据j插入到禁忌表tabuk(s)。

3)计算种群中每只蚂蚁所走路径的总长度,找出此次搜寻中的最短路径lt。

4)全局信息素更新:在每一种群中按照公式(2)进行全局信息素的更新。

5)种群间信息交流:每经过R1次循环就根据公式(3)进行蚂蚁种群间的信息素交流。

6)自动划分种群规模:按照公式(4)自动地进行种群规模的划分。

7)如果(NC

8)种群重新初始化:当||lt-lt-1||<ε成立,认为自适应并行蚁群算法进入停滞阶段,引入小生境技术。

按照公式(6)计算共享信息素值;

9)当NC=NCMAX,或者出现停滞时,输出最优解,结束。

4 实例运算及性能分析

从通用的TSPLIB中选用TSP问题,用上述算法、MMAS算法和文献[6]提出的基于分布均匀度的蚁群算法进行了比较测试。根据多次实验所得结论,本文选择α=1,β=2,ρ=0.4,ε=0.5,“聚度阈值”σ根据城市个数的不同选择不同的数值(本文实验中选取为0.8×max sta)。更改蚂蚁的数目,每次迭代的NCMAX取1500次,分别运行50次取平均值列于表1中。

从表1可以看出当蚂蚁数目减少的时候,本文提出的方法较之基于分布均匀度的蚁群算法能够得到效果更好的解。这是因为小生境技术可以使得大部分蚂蚁的搜索具有较强的“爬坡”能力,使得解具有较好的多样性、全局性,避免了早熟现象。虽然在时间消耗上较之基于分布均匀度的蚁群算法要多,但综合考虑搜索结果和收敛时间,本文提出的方法在蚂蚁数量减少的情况下,保证了收敛速度和防止早熟之间的平衡。

5 结论

本文提出了自适应的并行蚁群算法,通过设定“聚度阈值”来自动调整子种群的规模。并行蚁群算表1蚂蚁数量变化对搜索结果的影响法同样存在着搜索多样性的不足、易陷入局部最优的问题,小生境技术的引入正是为了解决这一问题。当自适应并行蚁群系统进入停滞阶段时,除了保留部分蚂蚁对局部最优点继续进行搜索外,其它的蚂蚁重新初始化信息素,然后对整个空间进行重新搜索。通过共享函数来阻止蚂蚁向局部最优移动,这种方法既有效地摆脱了停滞的状态又保留了原有的较优解。

参考文献

[1]Dorigo M,Maniezzo V,Colorni A.Ant system:Optimization by a colony cooperating Agents[C].IEEE Transactions on Systems,Man,and Cybernetics-Part B:Cybernetics,1996,26(1):29-41.

[2]Dorigo M,Gambardella L M.Ant colony system:a cooperative learning approach to the traveling salesman problem[C].IEEE Transac-tions on Evolutionary Computation,1997,1(l):53-66.

[3]李向丽,杨慧中,魏丽霞.基于退火的蚁群算法在连续空间优化中的应用[J].计算机工程与应用,2007,43(23):74-76.

[4]LI X L,YANG H Z.Application of a Novel Algorithm on Clustering Analysis[C].Proceedings of the International Conference on Com-plex Systems and Applications,2006:836-840.

[5]Chu S C,Roddick J F,Pan J S.Ant colony system with communication strategies[J].Information Systems,2004,167(1-4):63-76

[6]陈崚,沈洁,秦玲,等.基于分布均匀度的自适应蚁群算法[J].软件学报,2003,14(8):1379-1387.

[7]Machado L,Schirru R.The ant-Q algorithm applied to the nuclear reload problem[J].Annals of Nuclear Energy,2002,29(12):1455-1470.

[8]Sttzle T,Hoos H.MAX-MIN ant system[J].Future Generation Computer Systems,2000,16(8):889-914.

[9]郏宣耀,王芳.一种改进的小生境遗传算法[J].重庆邮电学院学报:自然科学版,2005,17(6):721-744.

软件的自适应技术 篇6

差错控制技术主要是在编码端通过改变编码策略或添加冗余的方式,将错误限制在一定的范围之内防止误码扩散。应用场合不同实现方式也不一样,有的是对错误进行隔离,有的则是帮助错误的检测及掩盖,有的则是在错误发生时能够保证最基本的视频质量。这些方法虽然提高了压缩码流的抗误码性能,同时也引入了额外的编码复杂度,导致编码效率的降低。

错误隐藏技术是一种在解码端进行后处理的技术。错误隐藏,就是指解码器在不需要从编码器得到额外信息的前提下,利用当前帧已接收宏块或先前已接收视频序列的相关性对丢失宏块进行恢复,以主观可接受的、近似原来质量的视频数据来隐藏差错受损的数据。错误隐藏技术要求算法简单有效,特别是在某些实时性要求较高的场合。根据帧类型不同,H.264错误隐藏可以分为两种模式:帧内(Intra frame)隐藏和帧间(Inter frame)隐藏[1]。

针对帧内错误隐藏,笔者对基于边缘检测的错误隐藏算法进行了研究,并提出了一种根据丢失块特点自适应的选择基于边缘检测错误隐藏算法或空间像素加权平均算法。对提出的自适应算法在MATLAB平台上进行了仿真测试。

1 Sobel边缘检测算子

该算子是由两个卷积核g1(x,y)与g2(x,y)对原图像f(x,y)进行卷积运算而得到的。其数学表达式为

Sobel边缘算子采用的算法是先加权平均,然后微分运算,可以用差分代替一阶偏导,其计算方法为

Sobel算子垂直方向和水平方向的模板如图1所示,前者可以检测出图像中的水平方向的边缘,后者则可以检测图像中垂直方向的边缘。实际应用中,图像中的每一个像素点都用这两个卷积核进行卷积运算,取其最大值作为输出。运算结果是一幅体现边缘幅度的图像。

假设图像F中某像素的亮度值为y(i,j),则其梯度的幅度及方向为[2]

由于像素的特点和为了降低计算复杂度,通常将边缘分成8个方向,即在0~π之间每隔π/8为一个方向,每个方向依次编号为k=1,k=2,…,k=8。若θ(i,j)的值落在哪个范围之内,则该像素的方向即用对应的k值表示。

2 基于边缘检测的单一方向错误隐藏算法

MATLAB平台下实现的基于边缘检测的错误隐藏算法,主要分为3个步骤[3]:

1)边缘检测,获取每个像素的梯度及方向索引K,即式3式中G(i,j)和4式中的θ(i,j)所对应的方向编号;

2)相关梯度统计,在获取每个像素点的梯度及方向K后,判断该点的边缘信息是否会通过丢失块,如果是则判定为相关像素,并将其梯度累加到该方向下的数组中去;

3)方向插值,根据最大梯度下的方向编号对丢失宏块进行像素插值,完成错误隐藏。

使用Sobel算子,对丢失块周围相邻像素进行检测,即可得到G(i,j)和θ(i,j),直接检测后得到的θ(i,j)取值范围为-π~π,所以对-π~0的θ(i,j)要加上π,每个像素的方向编号则通过与π/8模运算得到[4]。

相关梯度统计,首先要判断相关像素,相关像素的判断是通过其方向θ及其坐标来判断的。如图2所示,有两个像素点p1与p2,坐标分别为(x1,y1)和(x2,y2),方向都为θ,则它们与丢失块上边界的交点分别为X1=6,X2=17,其计算公式为

除了对像素检测向下延伸后能够通过下边界,还会对每个像素点检测向上,向右向左延伸后是否会通过丢失块,其判断公式为

X1,X2,Y1,Y2分别代表丢失块在相邻像素中的边界上的某个像素点,其中X1的横坐标固定为8,X2的横坐标为固定为25,Y1的纵坐标固定为8,Y2的纵坐标固定为25,这里计算其非固定坐标上的值。当每个像素在其方向下延伸后通过边界的坐标在9~24时,则可判定此像素为相关像素。则将其梯度累加到以其方向为下标的数组SG[k]当中。例如上图中p2方向为K,梯度为G(xn,yn),则

梯度统计完成后,则取SG[k]中最大值下标K(最大梯度对应的方向编号)为此丢失块的插值方向Edgdir。插值过程中首先要计算出选择相邻边界中那个像素点来进行插值,然后计算出插值点和这两个像素点之间的距离进行加权,最后完成插值算法。

选择相邻像素点的计算方法与判断相关像素的方法类似,对丢失块中的每个像素点在K方向下进行延伸,判断其与X1,X2,Y1,Y2的交点,当其交点在边界范围之内时,则可判断出用于插值的相邻边界像素点坐标。其判断公式为

式中:(xn,yn)为丢失宏块中某个像素点的坐标位置;X1,X2,Y1,Y2为边界,Edgdir为方向编号。经过计算后如果得到的两个边界点的坐标在9~24的范围之内,取整后即可得到用于插值的相邻边界像素。例如图2中某插值像素点P通过以上公式计算后得到用于插值的像素点pp1与pp2坐标分别为(25,16)与(Y2,18)。

当得到用于插值的像素点坐标后即可使用插值算法对丢失宏块的每个像素点进行插值运算,运算公式为

式中:P,pp1,pp2为其代表像素点的像素值;d1,d2则是通过P,pp1,pp2三个像素点的坐标,通过两点距离公式计算得到的两点之间的距离。

3 基于丢失块类型的自适应错误隐藏算法

由于这种基于边缘检测错误隐藏算法只在单独一个方向上进行插值,当丢失块周围的边缘信息比较复杂时,则会出现虚假边缘,反而影响图像平滑性及主观质量。对于边缘纹理比较简单的宏块使用H.264的空间像素加权平均算法,反而可以获得更好的平滑性[5]。因此,提出了根据丢失块的特点自适应地选择这两种算法来完成错误隐藏。

本文通过对单一方向梯度与8方向总梯度进行比较,最终判断某丢失块的错误隐藏算法。其判断依据是最大梯度SG[k]与所有方向下总梯度SG[1]+SG[2]+…+SG[8]的比值,这个比值是一个阈值,可以在不同情况下进行改变。这里统一设置为0.1,当这个比值小0.1时,说明此块边缘信息很弱,或者边缘信息很复杂,其他方向边缘信息也很多,此时采用空间像素加权平均算。当这个值大于0.1时,说明此块的边缘信息比较明显,为了较好地保留边缘信息,采用基于边缘检测的错误隐藏算法。

4 错误隐藏算法的测试及分析

测试图片如图3所示。

图片丢失设置如图4所示。

丢失块特点:Lena,边缘信息比较丰富,局部纹理比较复杂;peppers,边缘信息丰富,纹理比较复杂;baboon,边缘信息较少,纹理复杂;forman,边缘信息丰富,纹理较少。

测试环境:硬件配置中,CPU采用AMD TurionTM64X2 Mobile Technology TL-60 2.00 GHz,内存1.87 Gbyte。

MATLAB版本:7.5。

测试结果如表1所示。

由表可见,对于边缘信息比较丰富的图片如Lena和pepper,三种改进算法能够取得一定的错误隐藏效果,基于单一方向下的错误隐藏效果与基于丢失块类型的错误隐藏效果几乎相同,要高于频域外推法[6]。对于baboon这种纹理信息比较复杂的图片的恢复效果较差,单一方向下的错误隐藏算法和频域外推法的隐藏效果还略低于空间像素平均算法。对于forman这种边缘信息丰富,纹理较少的图片,三种错误隐藏算法能够更好地改善图像质量,基于块类型的自适应错误隐藏算法要明显优于其他的错误隐藏算法。

Lena(256×256)和forman(174×144)图像隐藏后的主观效果分别如图5、图6所示。

通过主观效果比较可以看出,由于单一方向插值算法是根据图像的边缘信息在一个方向下进行插值,因此对边缘信息比较单一的丢失块隐藏效果较好。对于纹理复杂的丢失块,空间像素加权平均算法能够取得较好的效果。基于块类型的自适应错误隐藏算法能够结合两者的优点,因此能够取得很好的隐藏效果。频域外推法也是根据边缘信息进行插值的,因此对边缘信息比较简单的丢失块能够取得较好的效果,但由于高频系数恢复较为困难,因此,图像细节部分隐藏效果较差。

5 小结

提出了一种结合丢失块特点的自适应错误隐藏算法,在MATLAB平台上进行了仿真测试,结果表明,基于丢失块特点的自适应错误隐藏算法,具有较好的实际应用价值。

参考文献

[1]任培明,史萍,侯铭睿.MPEG-2中的错误隐藏技术[J].电视技术,2011,35(1):18-21.

[2]李强,何骥鸣,明艳.基于边缘检测及方向加权的H.264帧内错误隐藏算法[J].计算机应用研究,2010,27(12):4798-4800.

[3]KIM W,KOO J,JEONG J.Fine directional interpolation for spatial errorconcealment[J].IEEE Trans.Circuits Systems for Video Technology,2006,52(3):1050-1056.

[4]HUANG S C,KUO S Y.Optimization of hybridized error concealment forH.264[J].IEEE Trans.Broadcasting,2008,54(3):499-516.

[5]CHEN Siyue,LEUNG H.A temporal approach for improving intra-frameconcealment performance in H.264/AVC[J].IEEE Trans.Circuits Sys-tems for Video Technology,2009,19(3):422-426.

上一篇:发病机制下一篇:今生今世的证据