基于傅里叶变换的BP神经网络滤波

时间:2022-10-26 11:26:19

基于傅里叶变换的BP神经网络滤波

【摘要】BP神经网络强大的非线性函数逼近、自适应学习和并行信息处理能力使得BP神经网络在信号去噪滤波中得到应用,但是随着BP网络输入向量维数的增加,其自身隐含层层数也会相应增加,从而降低了网络的自适应能力以及延长了学习时间。本文采用基于傅里叶变换的BP神经网络,利用傅里叶变换对信息进行预处理,并利用BP网络强大的函数逼近能力,对信息进行拟合,再通过傅里叶逆变换还原含噪的信息。最后通过MATLAB软件分别对傅里叶变换、BP神经网络、基于傅里叶变换的BP神经网络滤波效果进行仿真比较。

【关键词】傅里叶变换;BP神经网络;自适应滤波

引言

BP神经网络具有很强的非线性函数逼近、自适应学习和并行信息处理能力,为解决未知不确定非线性信息处理和自适应滤波提供了一条新途径[1]。但随着BP神经网络输入向量维数增加,其隐含层层数和学习次数也会相应增加,降低了网络的自适应性且延长了学习时间。傅里叶变换是数字信号处理领域一种很重要的算法,其思想是将原始信号从时域变换到频域,通过对频谱图的分析,去除高频处的频率分量,再将频域变换回时域,达到信号去噪滤波的功能[2]。利用傅里叶变换与神经网络相结合的方法,对信息进行预处理,减少信息处理量,再利用神经网络强大的非线性函数逼近能力,从而实现信号的自适应滤波,减少网络的待处理信息,增强网络的自适应能力,其工作过程如图1所示。

图1

1.BP神经网络模型

1.1 神经元结构模型

人工神经网络是人脑的某种抽象、简化或模拟,它由大量的神经元广泛互联而成。网络的信息处理由神经元之间的相互作用来实现,网络的学习和识别取决于神经元间连接权系数的动态演化过程[3],其模型可以用图2来表示。

输入向量与输出y之间的关系式;

其中权值向量,输入向量,阈值,活化函数。

图2

1.2 BP神经网络

BP神经网络(Back-Propagation Neural Network)是一种无反馈的前向网络,网络中的神经元分层排列,除了有输入层、输出层之外,还至少有一层隐含层,BP学习算法是调整权值使网络总误差最小。具有隐含层BP网络的结构如图3所示,图中设有M个输入节点,L个输出节点,隐含层含有n个神经元。其中为网络输入向量,为实际输出向量,为网络的目标输出,为网络的输出误差。BP网络学习流程:(1)网络初始化,确定输入向量与输出向量的维数、目标向量、学习次数以及允许的误差值。(2)输入学习规则,初始化权值W。(3)计算输出层的输出与目标向量的误差。(4)判断误差精度是否达到预定值,没有则调整权值W并改变学习规则。(5)误差精度达到预定值,学习结束。

图3

2.BP神经网络权值变换理论基础

BP网络的自适应过程,其实就是对输出层权系数和隐含层权系数的调整的过程。记为第i层网络节点输出,为第j层网络节点的输入,则:

(1)

(2)

(3)

(4)

记二次型误差函数:

(5)

3.数值仿真与分析

在MATLAB神经网络工具箱中提供了实现BP神经网络的创建,仿真环境以单输入单输出的非线性函数,分别作为输入函数和目标函数。本文同时采取傅里叶变换、BP神经网络以及基于傅里叶变换的BP神经网络分别进行仿真滤波[5][6],表1给出了三种算法在MATLAB软件中的仿真主要步骤。

表1

三种算法在MATLAB中仿真处理方法

傅里叶变换 采样点N=256,t=0:1/256:255/256,X=fft(x),前24个点不变,高频部分置0,x=ifft(X)

BP神经网络 N=256,t=0:1/256:255/256,T1=y(t),P1=x(t), net=newff(P1,T1,900),学习次数2000,误差精度0.01,[net,tr]=train(net,P1,T1)a1=sim(net,P1);

基于傅里叶变换的BP神经网络 X=fft(x),Y=fft(x),前24个点不变,高频置0,T2=Y(1,1:24),P2=X(1,1:24)net=newff(P2,T2,200),学习次数1000误差精度0.01,[net,tr]=train(net,P2,T2)

a2=sim(net,P2);x=ifft(a2);

图4为y(t)与x(t)函数的波形图,图5是经傅里叶变换处理后的x(t)波形,图6是BP网络自适应滤波后的x(t)波形,图7是基于傅里叶变换的BP网络作用后的x(t)自适应滤波后的波形。通过比较图5、6、7可以明显看出傅里叶变换的滤波效果出现高频振荡,BP网络自适应滤波在形状上几乎与元波形一致,但是在某些点位置出现疵点,而基于傅里叶变换的BP神经网络自适应滤波后波形几乎和目标函数y(t)波形完全一致。

图4

图5

图6

图7

4.结束语

本文通过三种算法在MATLAB中的仿真分析,可以得出在输入向量维数比较大时,可以采用基于傅里叶变换的BP神经网络的方法对含噪信息进行处理,不仅可以降低隐含层的层数,增加自适应能力和减少学习时间,而且在波形拟合上可以达到更好的效果。

参考文献

[1]华,李雷,赵力.基于BP神经网络的自适应补偿控制方法[J].计算仿真,2012,29(7):202-205.

[2]张德丰.MATLAB小波分析[M].北京:机械工业出版社,2009:39-48.

[3]杨芳,马建伟.基于神经网络自适应滤波的低频Prony分析[J].中国水能及电气化,2012,86(4):32-37.

[4]李国勇,杨丽娟.神经模糊预测控制及其MATLAB实现[M].北京:电子工业出版社,2013:17-22.

[5]高金辉,苏明坤.基于神经网络的自适应滤波研究[J].河南师范大学学报:自然科学版,2013,41(1):47-49.

[6]齐晓慧,李杰,韩帅涛.基于BP神经网络的自适应自抗扰控制及仿真[J].兵工学报,2013,34(6):776-782.

上一篇:浅析监测台“机房设备控制系统单元电路的设计... 下一篇:浅谈西电110KV线路保护实际应用及改进