基于神经网络的自适应噪声抵消技术研究论文0605.docx

上传人:b****8 文档编号:29832959 上传时间:2023-07-27 格式:DOCX 页数:22 大小:567.60KB
下载 相关 举报
基于神经网络的自适应噪声抵消技术研究论文0605.docx_第1页
第1页 / 共22页
基于神经网络的自适应噪声抵消技术研究论文0605.docx_第2页
第2页 / 共22页
基于神经网络的自适应噪声抵消技术研究论文0605.docx_第3页
第3页 / 共22页
基于神经网络的自适应噪声抵消技术研究论文0605.docx_第4页
第4页 / 共22页
基于神经网络的自适应噪声抵消技术研究论文0605.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

基于神经网络的自适应噪声抵消技术研究论文0605.docx

《基于神经网络的自适应噪声抵消技术研究论文0605.docx》由会员分享,可在线阅读,更多相关《基于神经网络的自适应噪声抵消技术研究论文0605.docx(22页珍藏版)》请在冰豆网上搜索。

基于神经网络的自适应噪声抵消技术研究论文0605.docx

基于神经网络的自适应噪声抵消技术研究论文0605

 

忻州师范学院

计算机系本科毕业(设计)论文

 

课题名称

基于神经网络的自适应噪声抵消技术研究

专业

计算机科学与技术

姓名

学号

指导教师

二零一零年六月

 

目录

1引言1

1.1自适应噪声抵消研究的意义及发展现状1

1.2神经网络在自适应噪声抵消中的应用2

1.3论文主要内容及组织结构2

2自适应噪声抵消4

2.1自适应滤波器4

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

2.3自适应噪声抵消系统改进5

3神经网络7

3.1多层前向神经网络的结构7

3.2反向传播学习算法的基本计算原理8

3.3神经网络的研究方向9

4应用MATLAB进行仿真实验10

4.1MATLAB语言简介10

4.2噪声抵消系统的仿真10

4.2.1BP网络模型建立10

4.2.2BP网络训练过程11

4.3基于神经网络工具箱的BP网络学习和训练12

4.4基于Simulink的噪声抵消系统设计及动态仿真13

5结束语18

致谢19

参考文献20

基于神经网络的自适应噪声抵消技术研究

摘要:

噪声抵消技术是信号处理的主要问题之一。

基于神经网络的自适应噪声抵消技术是一种能够很好的消除未知噪声源噪声影响的信号处理技术,克服了传统自适应噪声抵消技术的不足,从当今众多信号处理技术当中脱颖而出成为热门研究课题之一。

通过对误差反向传播学习算法的多层前向人工神经网络的分析研究,结合传统的自适应噪声抵消系统的基本原理,建立了基于人工神经网络的自适应噪声抵消器,经过基于MATLAB的Simulink仿真实验,证明它具有较强的噪声滤除能力。

最后提出了网络及算法进一步改进的方法。

关键词:

自适应滤波噪声抵消神经网络

Abstract:

Noisecancellationtechnologyisoneofthemajorproblemsofsignalprocessing.Basedonneuralnetworkadaptivenoisecancellationtechnologyisaverygoodtoeliminatenoiseeffectsofunknownsignalprocessingtechnology,overcomethetraditionaladaptivenoisecancellationoftechnology,fromthecurrentsignalprocessingtechnologyofbecomingoneofhotresearchtopic.

Throughtheback-propagationlearningalgorithmofmultilayerfeedforwardneuralnetworkanalysisandresearch,combiningtraditionaladaptivenoisecancellationsystemofbasicprinciple,Establishedaadaptivenoisecancellationbasedonartificialneuralnetwork,aftersimulationexperimentsbasedontheMatlabSimulinkproveithasstrongnoisefilteringability.Finally,andputforwardthemethodandalgorithmoffurtherimprovement.

Keywords:

AdaptiveFilterNoiseCancellationNeuralNetwork

1引言

1.1自适应噪声抵消研究的意义及发展现状

噪声消除是信号处理的核心问题之一,通常实现最优滤波的滤波器为维纳滤波器与卡尔曼滤波器。

它们均要求已知信号和噪声的先验知识,但在许多实际应用中往往无法预先得知。

为此,发展了自适应滤波器,1965年美国斯坦福大学建成了第一个自适应噪声抵消(ANC)系统[01],随着计算机技术与集成电路技术的进步,新的自适应算法不断涌现出来,自适应噪声抵消在理论和应用上都得到了很大发展,自适应噪声抵消技术是一种能够很好的消除背景噪声影响的信号处理技术,应用自适应噪声抵消技术,可在未知外界干扰源特征、传递途径不断变化,背景噪声和被测对象声波相似的情况下,能够有效地消除外界声源的干扰获得高信噪比的对象信号,这一技术可为机械或元件的噪声,振动等动态信号在测试环境不太理想的工作现场做测试分析和故障诊断提供了有效的方法和依据,具有一定的理论意义和应用价值。

对于ANC系统来说,其基本要求和主要特点是,其两路输入噪声必须统计相关[02],它们可以是线性相关的。

使用线性相关ANC系统的自适应滤波器是线性滤波器,在这种情况下,对于平衡的输入噪声,自适应滤波器的稳态性能近似于维纳滤波器,但是当两路输入的噪声之间是非线性相关时,使用线性的ANC系统就遇到了困难。

如果线性自适应算法用线性变换逼近非线性变换,为了达到足够的精度,用于估计的权系数向量的维数将会爆炸性增长,自适应滤波器的估计速度必然会大为降低,其性能大幅下降,难以达到实时应用目的。

这时为了有效的进行噪声抵消,就必须采用自适应的非线性系统做滤波器。

为了克服自适应线性滤波器的缺点,人们研究了几种非线性自适应滤波器,常用的非线性滤波形式有Volterra型。

虽然Volterra滤波器可以完成非线性映射,但由于在Volterra展开处理中,参量的数目随展开阶数指数性地增加,因此处理是很繁杂的、很困难的。

因此引入基于神经网络的自适应噪声抵消技术[02]。

1.2神经网络在自适应噪声抵消中的应用

自1986年开始,神经网络随着反向传播(BP)算法的出现而得到复兴,此后对于神经网络的研究再度掀起高潮。

由于神经网络具有高度并行性、很强的非线性、变换能力和学习能力,因此具有很大的应用潜力,也为自适应非线性滤波器提供了一种全新的思路和方法。

其中,激活函数为Simoid的多层前向神经网络能够以任意精度实现非线性函数逼近[03],所以可用BP神经网络组成非线性自适应滤波器。

通过将滤波器的误差信号与神经网络中能量函数对应起来,可实现神经网络自适应滤波器[04]。

1.3论文主要内容及组织结构

概述了自适应噪声抵消和神经网络的基本原理,研究了基于BP神经网络的自适应噪声抵消,在考虑噪声抵消本身特性和外部影响因素的基础上,建立噪声抵消预测模型,并应用MATLAB进行仿真实验。

论文组织结构如下:

第一章:

引言。

介绍了噪声抵消研究的意义及发展现状,以及神经网络在噪声抵消中的应用。

第二章:

自适应噪声抵消。

介绍了自适应噪声抵消原理及其改进。

第三章:

神经网络原理。

介绍了神经网络的原理及算法实现和研究方向。

第四章:

应用MATLAB进行仿真实验。

主要应用MATLAB进行模拟噪声抵消。

第五章:

结束语。

对所做工作进行全面总结,指出还需改进的地方。

2自适应噪声抵消

滤波是现代通信和控制工程中常用的信号处理方法之一,所谓滤波,就是通过对一系列带有误差的实际测量数据进行处理来滤除信号中的干扰,从而尽可能地恢复一个被噪声干扰了的信息流的问题。

滤波的种类很多,最简单的滤波器是权系数固定的线性滤波器。

为了提高滤波性能,滤波的权系数(传递函数)往往随输入信号而发生变化,这种滤波称为自适应滤波(ANC)。

如果滤波器的输入/输出关系具有非线性映射特性,那么对应的滤波称为非线性滤波。

生活中许多实际信号中含有系统非线性引起的噪声或存在非高斯噪声等,因此研究非线性滤波是非常必要的。

2.1自适应滤波器

自适应滤波器自从60年代出现后,其理论在不断地发展与完善,应用也越来越广泛,自适应数字滤波器的原理框图[05]如图2.1所示。

x(j)表示j时刻的输入信号值。

y(j)表示j时刻的输出信号值。

d(j)表示j时刻的参考信号值或所期望响应的信号值。

e(j)表示误差信号e(j)=d(j)-y(j)。

自适应数字滤波器的滤波参数受误差信号e(j)的控制,根据e(j)值而自动调整,使之适合下一时刻(j+1)的输入x(j+1),以便使输出y(j+1)接近于所期望的参考信号d(j+1)。

图2.1自适应数字滤波器的原理框图

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

自适应噪声抵消系统除了需要原始输入外,还需要一个参考输入[06],供给与原始输入相关的噪声,以便原始输入中的噪声,而对其中的有用信号几乎不产生什么影响。

如图2.2所示,为一典型的自适应噪声抵消系统,其中原始输入信号d(k)是有用信号s(k)与噪声z(k)这和,参考输入信号x(k)是与z(k)相关的噪声c(k)。

假设S(k)、z(k)与c(k)是零均值的平稳随机过程,s(k)与z(k)、c(k)不相关。

由图2.2可知,自适应滤波器的输出z´(k)为c(k)的过滤信号,因此,自适应噪声抵消系统的输出y(k)。

y(k)=s(k)+z(k)-z´(k)(2.1)

y2(k)=s2(k)+[z(k)-z´(k)]2+2s(k)[z(k)-z´(k)](2.2)

对上式两边取数学期望,由于s(k)与z(k)及c(k)不相关,s(k)与z´(k)也不相关。

E[y2(k)]=E[s2(k)]+E[(z(k)-z´(k))2](2.3)

图2.2典型的自适应噪声抵消系统

信号功率E[s2(k)]与自适应滤波器的调节无关,因此,自适滤波器调节使E[y2(k)]最小,就是E[(z(k)-z´(k))2]最小,E[(y(k)-s(k))2]也最小,即自适应抵消系统的输出信号y(k)与有用信号s(k)的均方差最小。

在理想状态下z(k)=z´(k),则y(k)=s(k),这时,自适应滤波器自动调节其脉冲响应,c(k)加工成z(k),与原始输入信号d(k)中的z(k)相减,使输出信号y(k)由噪声完全被抵消,而等于有用信号s(k)。

可以证明,自适应滤波器能完成上述任务的必要条件为:

参考输入信号x(k)=c(k)必须与被抵消的信号(噪声)z(k)相关。

2.3自适应噪声抵消系统改进

实际上,一个噪声抵消系统的情况比图2.2所示复杂,这是因为输入还可能有一些独立噪声源[07](即与参考输入无关的噪声及干扰),如图2.3所示。

图2.3中原始输入d(k)由有用信号s(k),与两噪声z(k)=c(k)*a(k),n(k)之和组成,参考输入x(k)由c(k),m(k)两噪声组成。

a(k)为传输通道的脉冲响应,其传递函数为A(z)。

噪声n(k),m(k)相关,与s(k)、z(k)、c(k)不相关。

若自适应过程是收敛的,并有最小均方误差解,则自适应滤波器与维纳滤波器等效,其最佳传递函数等于维纳滤波器的传递函数。

图2.3常见的自适应噪声抵消系统

3神经网络

思维学普遍认为,人类大脑的思维分为抽象(逻辑)思维、形象(直观)思维和灵感(顿悟)思维三种基本方式。

逻辑性的思维是指根据逻辑规则进行推理的过程;它先将信息化成概念,并用符号表示,然后,根据符号运算按串行模式进行逻辑推理;这一过程可以写成串行的指令,让计算机执行。

然而,直观性的思维是将分布式存储的信息综合起来,结果是忽然间产生想法或解决问题的办法。

这种思维方式的根本之点在于以下两点:

1.信息是通过神经元上的兴奋模式分布储在网络上;2.信息处理是通过神经元之间同时相互作用的动态过程来完成的。

人工神经网络就是模拟人思维的第二种方式。

这是一个非线性动力学系统,其特色在于信息的分布式存储和并行协同处理[08]。

虽然单个神经元的结构极其简单,功能有限,但大量神经元构成的网络系统所能实现的行为却是极其丰富多彩的。

因此在本章中引入多层神经网络。

3.1多层前向神经网络的结构

目前得到广泛应用的多层前向人工神经网络是三层前向人工神经网络,三层前向人工神经网络由输入层,隐层和输出层组成如图3.1所示。

图3.1三层前向人工神经网络

在三层前向人工神经网络中,输入层中有n个神经元,隐层中有m个神经元,输出层有L个神经元。

在一般情况下,整个网络的输入分别为X1,X2,…,Xn,且对应输入到网络输入层的第1,2,…,n个神经元,输入层中各神经元的激发函数一般都选用比例系数为1的线性函数,因此,输入层中神经元的输出信息分别是X1,X2,…,Xn,这些输出信息传递到隐层各神经元。

隐层神经将输入层输出的信息按照一定的方式汇总,作为各神经元的输入信息,然后通过激发函数的作用,产生隐中神经元的输出信息,隐层神经元的激发函数一般选用非线性函数,隐层神经元的输出又传递到输出层,与隐层神经元类似,输出层神经元也输出相应的信息,并作为整个网络的输出信息y1,y2…yL。

从上述内容可知,输入到网络的信息是按照输入层、隐层、输出层的顺序,一直传递到输出层,最后得到整个网络的输出。

因此,整个网络叫做前向网络。

3.2反向传播学习算法的基本计算原理

反向传播算法(BP算法)是训练人工神经网络的基本方法,现已得到了广泛的应用,下面以输出层只含一个神经元的三层前向人工神经网络为例,给出这种算法的基本计算原理和过程[09],其结构如图3.2所示。

图3.2中的前向人工神经网络中,输入层中有n个神经元,隐层中有m个神经元,输出层神经元的输出,也就是整个网络的输出为y。

图3.2输出层中含有一个神经元的三层前向神经网络

隐层各神经元的输入分别是Ii。

(3.1)

公式(3.1)中设Xi为该神经元所接受的输入,Wij为隐层中神经元i与输入层神经元j之间的连接权值,θi为隐层神经元的阈值,选择Simoid函数作为隐层神经元的激函数f(),则隐层神经元的输出为Oi。

(3.2)

公式(3.2)中取输出层神经元的阈值为O,输出层神经元的激发函数取线性函数则输出层神经元的输出即网络输出为y。

(3.3)

公式(3.3)中Vi为输出层神经元与隐慨神经元i的连接权。

给出已知网络输入时,计算网络输出的过程,称为网络的正向计算过程,其原因是网络的输入信息是由输入层开始,逐层向上一层传递的,没有信息的反馈过程。

设有学习样本为(X1p,X2p,…,X1p;tp)(p=1,2,…,p为样本数),对某一样本(X1p,X2p,…,X1p;tp),在给出网络向量的输出值yp,对于样本p,定义网络的输出误差为dp。

(3.4)

并定义误差函数为ep。

(3.5)

W的值是随机给出的,因此,求得网络输出值yp以后,计算公式3.4定义的误差比较大,也就是说网络的计算精度不高,在确定网络中隐层神经元数目m的情况下,只能通过调整W的值,以逐步降低误差dp以提高网络的计算精度,下面给出根据dp的信息调整W的具体计算过程,在反向传播算法中,是沿着误差函数ep随W变化的负梯度向对W进行修正的,设W的修正值为△W。

(3.6)

式3.6中η为学习率,取0~1间的数。

3.3神经网络的研究方向

神经网络的研究可以分为理论研究和应用研究两大方面[10]。

一、理论研究可分为以下两类:

1、利用神经生理与认知科学研究人类思维以及智能机理。

2、利用神经基础理论的研究成果,用数理方法探索功能更加完善、性能更加优越的神经网络模型,深入研究网络算法和性能,如:

稳定性、收敛性、容错性、鲁棒性等;开发新的网络数理理论,如:

神经网络动力学、非线性神经场等。

二、应用研究可分为以下两类:

1、神经网络的软件模拟和硬件实现的研究。

2、神经网络在各个领域中应用的研究。

这些领域主要包括:

模式识别、信号处理、知识工程、专家系统、优化组合、机器人控制等。

随着神经网络理论本身以及相关理论、相关技术的不断发展,神经网络的应用定将更加深入。

4应用MATLAB进行仿真实验

4.1MATLAB语言简介

MATLAB是矩阵实验室(MatrixLaboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来计算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MathWorks也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。

在新的版本中也加入了对C,C++,FORTRAN,JAVA的支持。

可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。

目前的MATLAB已经成为国际上最为流行的软件之一,它除了传统的交互式编程之外,还提供了丰富可靠的矩阵运算、图形绘制、数据处理、图像处理,方便的Windows编程等使得工具,出现了各种以MATLAB为基础的实用工具箱,广泛地应用于自动控制、图像信号处理、生物医学工程、语言处理、雷达工程、信号分析、振动理论、时序分析与建模、优化设计等领域[11]。

较为常见的MATLAB工具箱主要包括:

系统辨识工具箱,鲁棒控制工具箱、最优化工具箱、模糊推理系统工具箱、小波分析工具箱。

4.2噪声抵消系统的仿真

4.2.1BP网络模型建立

控制系统的模拟和仿真是进行科学研究的重要手段,通过仿真研究可以对照比较各种控制方案,优化并确定相关控制参量。

在本节中,利用MATLAB中的神经网络工具箱,建立一个BP网络模型,并在Simulink环境下组成系统,进行系统仿真和动态模拟观察其信号处理质量。

构造一个1-4-1神经网络模型,隐层节点取4个,如图4.1所示。

本网络中的隐层变换函数为tansig函数(正切S型传递函数),它可以将神经元的输入范围(-∞,+∞)映射到(-1,+1),它是可微函数,非常适合于训练BP的神经元,如果BP网络的最后一层是Sigmiod型神经元,那么整个网络的输出就限制在一个较小的范围内;如果是purelin(线性传递函数)型线性神经元,则整个网络的输出可以是任意值。

图4.1BP神经网络模型

4.2.2BP网络训练过程

神经网络工具箱为训练神经网络提供了帮助,可以利用它提供的函数对网络进行初始化、仿真和训练,并通过变化的图形观察其动态训练过程。

如图4.2所示给出一个网络训练过程[12]。

图4.2BP网络训练过程及算法流程

4.3基于神经网络工具箱的BP网络学习和训练

1定义样本

t=0:

0.01:

15;

y=randn(size(t));

yn=cos(y);

样本p取y的前50个数据,t取yn的前50个数据。

p=y(1:

50);

t=yn(1:

50);

2初始化BP网络

[w1,b1,w2,b2]=initff(p,4,'tansig',1,'purelin');

其中,p为输入量,4、1为隐层和输出层的节点数,tansig和purelin分别为隐层和输出层的初始权值w1,w2,b1,b2。

w1=[1.2862-1.28621.2862-1.2862];

w2=[0.6428-0.11060.23090.5839];

b1=[2.18321.4758-0.2518-2.6883];

b2=[0.8436];

3BP网络的训练

利用BP学习规则训练前向神经网络,使其完成函数逼近,适量分类和模式识别,选择训练参数tp并指示如何进行训练。

tp1=10;%指定两次更新显示的训练次数

tp2=10000;%指定训练的最大次数

tp3=0.001;%误差平方和指标

tp4=0.01;%指定学习速率,即权值和阈值更新的比例

tp=[tp1tp2tp3tp4];

一旦训练达到最大的训练次数或网络误差平方和降低到误差之下,都会使网络停止学习。

④网络训练

[w1,b1,w2,b2,te,tr]=trainbp(w1,b1,'tansig',w2,b2,'purelin',p,t,tp);

函数利用单层权值失量w,阈值量b及转移函数成批训练网络,使当输入p时,网络的输出为目标矢量t,在这个环节将得到新的权值矢量w和阈值b,及训练的迭代次数te,及记录网络训练过程的误差平方和行矩量tr。

w1=[0.7530-0.88761.2686-0.4171]

w2=[1.39761.1918-0.10751.1635]

b1=[1.09901.3212-0.3419-3.0637]

b2=[-0.0315]

⑤画误差变化曲线:

ploterr(tr,tp3);

如图4.3所示经过4000多次训练之后,误差逼近于0.001。

从函数逼近曲线可以看出输出曲线非常逼近于目标曲线,证明训练后的网络具有较好的拟合性。

图4.3误差变化曲线

⑥计算网络仿真输出,逼近结果

a=simuff(p,w1,b1,'tansig',w2,b2,'purelin');

plot([0:

0.1:

4.9],t,'+',[0:

0.1:

4.9],a,'-');

画出函数逼近曲线如图4.4所示。

图4.4函数逼近曲线

4.4基于Simulink的噪声抵消系统设计及动态仿真

建模仿真可视化功能Simulink是MATLAB的主要功能之一,它是基于MATLAB环境下实现的动态系统仿真建模的一个集成环境,可以利用功能模块组建控制系统进行仿真,这种方框图式的建模方法很容易将一个复杂系统的数学模型输入到计算机中去,大大简化了编程进程。

①BP网络构造

在进入Simulink[14]环境后,在Simulink窗口的File菜单中,选择NEW命令就建立了一个模型窗口。

打开Block&Tooboxes模块库中NeuralNetworkBlockset子库分别拷贝模块TransferFunction、NetInputFunction和WeightFunction模块中的tansig、purelin、netsum、dotprod到模型窗口。

打开Simulink库中的CommonlyUsedBlocks,拷贝In1、Out1、Constant模块到模型窗口。

根据需要进行模块输入结点数目的调整(如netsum4),并连接模块。

根据前面训练BP网络得到的权值w和阈值b来对Constant模块进行修改。

通过以上步骤就形成了所需的BP网络构造如图4.5所示。

图4.5BP网络构造

在Simulink环境下构造大型控制系统方框图,如果把系统中的每个元件都显示出来,就会遇到空间不够的问题,往往整整一屏都放不下系统方框图的某个局部,解决这个问题的办法就是将实现某一功能的各个元件组合封装起来,形成

一个子系统(subsystem)。

将图4.5所示结构封装,就变为如图4.6所示。

如果用鼠标双击subsystem模块,就会显示其基本模型。

图4.6subsystem

②噪声抵消系统的构造

完成了BP网络的构造和封装后,从Simulink的Source、Sinks、User-DefinedFunction、CommonlyUsedBlocks模块库调用SineWave、Uniform

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1