网站大量收购独家精品文档,联系QQ:2885784924

虚拟仪器的设计与实现第7章.ppt

  1. 1、本文档共47页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
虚拟仪器的设计与实现第7章

if (InitCVIRTE (0, argv, 0) == 0) return –1; /* out of memory */ if ((panelHandle = LoadPanel (0, fftuir.uir, PANEL)) 0) return –1; DisplayPanel (panelHandle); RunUserInterface ( ); return 0; } int CVICALLBACK SIGNAL (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { int signal_type; double time[1024],amp[512]; double frequence; double phase=0; complex specture[1024]; switch (event) { case EVENT_COMMIT: GetCtrlVal (panelHandle, PANEL_SIGNAL, signal_type); GetCtrlVal (panelHandle, PANEL_FREQUENCE, frequence); switch (signal_type) { case 1: SinePattern (1024, 1.0, 0.0, frequence, time); //产生正弦波 break; case 2: TriangleWave (1024, 1.0, frequence/1024, phase, time);//产生三角波 break; * 第7章 虚拟仪器常用算法 第7章 虚拟仪器常用算法 7.1 神经网络BP算法 7.2 快速傅立叶变换(FFT)的算法 7.3 低通滤波算法 7.1 神经网络BP算法 7.1.1 神经网络BP算法原理 1.神经网络的结构 神经网络由输入层、隐层及输出层组成,它可以通过对已知样本学习,掌握经验,从而对未知样本做出判别。整个网络的特性决定于网络相邻层间神经元的连接权和神经元上的阈值。隐层及输出层中各神经元的结构如图7.1所示。 图7.1 隐层及输出层中神经元的结构 图7.1中,x1、x2、…、xn为神经元的输入,ω1、ω2、…、ωn为相应输入的权值,b为神经元的阈值,f(y)为神经元的激励函数,z表示整个神经网络的运算输出。通过神经网络的训练算法,可以使网络的权和阈值在某种准则下得以确定,从而接近于期望值。 2.神经网络的训练算法 1) 自适应调整步长 在网络的训练过程中,根据误差函数的趋向自动调整训练步长,可以加快网络的收敛速度,缩短训练时间。 其思路为:先设一初始步长,若一次迭代后误差函数E增大,则将步长η乘以一个小于1的常数β沿原方向重新计算下一个迭代点;若一次迭代后误差函数E减小,则将步长η乘以一个大于1的常数φ,加大训练步长。 2) 加动量因子 加动量因子的训练算法可以降低网络对于误差曲面局部细节的敏感程度,有效地抑制网络陷于局部极小。其思想是利用动量因子α记忆上一时刻权的修改方向,在下一时刻将这一趋势考虑进去。 自适应调整步长和加动量因子的网络训练算法可用下式表示: 神经元阈值的训练方法与上式相同。 7.1.2 神经网络BP算法实现 本算法所设计的BP网络共三层:第一层两点输入(x[0],x[1]);中间层有三点(x1[0],x1[1],x1[2]);输出层有两点(y[0],y[1])。w1[ i ][ j ]为第一层i点到中间层j点的权值,w2[ i ][ j ]为中间层i点到输出层j点的权值。 验证BP算法的仪器面板如图7.2所示。 图7.2 验证BP算法的仪器面板 选择Study按钮,先进行学习训练过程,学习样本在程序中设定。 选择START按钮,再进行验证过程,输入样本在程序中设定。 选择Quit按钮,关闭仪器。 仪器面板中有五个控件,三个CommandButton控件,两个Numeric控件。 完整的算法源代码如下所示。 #include analysis.h #include cvirte.h #include userint.h #include NET.h static int panelHandle; int step=1; int n=2,m=2; double x[2],x1[3],y[2]

文档评论(0)

asd522513656 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档