影响变量值突变的因素可能有哪些?

abc3000 2005-11-29 08:47:28
做一个项目,遇到件怪事,大家不要说不信,我一开始也不相信,结果把现场的LOG拿回来一看,果然是这样:

有程序A,A中有变量a(计数器),a是integer型,a是formcreate时从配置文件中读入初始值,然后开始向上累加,一分钟加个1到2,除非操作员手动清零,否则不会变小. formdestory时再把a值写入配置文件,以备下次启动是调用.

还有一种情况a也会增加,那就是接到程序B送来的message,这种情况下a也会自动+1.

程序A基本上是24小时运行,除非断电或死机,基本上不关的.我写了一个定时器,每一分钟把a的值写在文本文件中,结果三天后从现场拿回那个文本文件,三天中a一共2次突然之间变小而且是个非零数. 三天中没有清过零,没有关过程序A.

所以请问,什么情况下内存中的变量值会突然变小?我已经Find in Files变量名这个关键字,所有跟变量名有关的语句全部仔细看过,没什么问题,唯一直接赋值的语句就是清零和从配置文件中读入初始值.其他都是a:=a+1; 请有类似经验的同志想一下, 什么情况下会这样?
...全文
171 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
abc3000 2005-12-01
  • 打赏
  • 举报
回复
照你这么说 那是可能附近某个变量写超了

没办法了 只能静下心来 仔细检查了
ttch 2005-11-29
  • 打赏
  • 举报
回复
一般A不可能出现这种情况 除非接收消息的那部分出了点问题。。你检查一下接收消息的时间。然后写一下记录看看能跟你的那个4的时间是不是能对上 如果对上的话 那就是消息的问题了。

异常有时候也会改变一些事情 但我对此没有太多经验。。。

最后说一下 也有可能是社会学问题 呵呵 具体不清楚了。
abc3000 2005-11-29
  • 打赏
  • 举报
回复
因为每次受伤的总是a,所以基本上不太可能是写超了
abc3000 2005-11-29
  • 打赏
  • 举报
回复
1. a无作为参数传递行为
2. 程序中没有嵌入汇编语言
3. "比如对a变量附近的某个变量进行赋值时写超了" 我也想过,不过我想的是内存可能有问题,因为有时在调试时点了"运行"按扭,会跳出来CPU调试框,显示一个很小的内存地址值,要再点一下才会正常的运行,我一直不知道是为什么. 这种情况怎么处理?
abc3000 2005-11-29
  • 打赏
  • 举报
回复
1. a无作为参数传递行为
2. 程序中没有嵌入汇编语言
3. "比如对a变量附近的某个变量进行赋值时写超了" 我也想过,不过我想的是内存可能有问题,因为有时在调试时点了"运行"按扭,会跳出来CPU调试框,显示一个很小的内存地址值,要再点一下才会正常的运行,我一直不知道是为什么. 这种情况怎么处理?
阿呆_ 2005-11-29
  • 打赏
  • 举报
回复
可能性很多,比如对a变量附近的某个变量进行赋值时写超了。还有比如将a变量作为参数传递时范围缩小了(比如将integer作为byte传了)。还有在对a变量赋值前后有嵌入汇编但是没有保存寄存器也可能将a变量的值冲掉了等等。
abc3000 2005-11-29
  • 打赏
  • 举报
回复
呵呵 正在强烈质疑客户有没有强制关闭我的程序,非正常关闭可能导致没有正确在配置文件中保存变量a值 而下一次重启后从配置文件中读到非正确的4. 是不是这是种可能?

小呆之家 2005-11-29
  • 打赏
  • 举报
回复
呵~~,没想法.
是不是人家改了又说没有改啊?你和人家关系怎么样?
abc3000 2005-11-29
  • 打赏
  • 举报
回复
呵呵 我也没想法了
一次加到260多变4 一次加到70又多变4
不知道4哪里来的
g961681 2005-11-29
  • 打赏
  • 举报
回复
呵呵,如果没超过integer,那就没什么想法了~~~~~
g961681 2005-11-29
  • 打赏
  • 举报
回复
加到多少后,直接变小的了?
你用的是什么类型,是integer吗?
abc3000 2005-11-29
  • 打赏
  • 举报
回复
再说一句 没有超过integer范围
阿呆_ 2005-11-29
  • 打赏
  • 举报
回复
"因为每次受伤的总是a,所以基本上不太可能是写超了", 恰恰相反,这正说明有可能是写超了,除非你的a是动态分配的(直接或间接调用GetMem分配的)。
因为a的相对地址每次运行时都是一样的(绝对地址可能不同,但相对某个基址来说这个值是固定的),而写超了的话每次超出的地址也是固定的。
如果你确定不可能写超,那么内存硬件出问题的概率就很大了。
中南大学有限单元法考试试卷(岳乐-庞俊)。 有限元分析复习点点滴滴——张义涵 1402 1、 什么是平面应力问题?什么是平面应变问题?(张毅涵做) 答:平面应变问题是指薄板受平行于板面且沿厚度均度载荷用 。 在考虑有限元法表述位移时,首先是选取一组函数,他们可以用节点位移来表示有限元内任一点的位移分量。然后从外加位移场发展解法得的各个步都是,应变分量由位移的各种导数唯一确定,于是外加位移变化确定了整个单元的应变状态。这些诱导应变和介质弹性性质一起确定了单元的诱导应力。将初始应力与诱导应力叠加就得到了单元的总应力。 有限单元法的假设是,相邻有限单元边界之间的内力通过单元节点的相互作用来传递。因此必须建立节点力的表达式,节点力在静力学上等价于单元之间沿边界的作用力。该方法通过离散区域的一组节点力和位移来分析连续介质问题。为便于讲述。 什么是位移模式? 位移模式是单元范围内的位移函数。是坐标的函数。位移模式通常应当满足:1)反映刚体位移。2)反映常变形。3)单位边界上位移连续。 什么是节点力?什么是节点载荷?(陈尹依) 答:节点力是单元给节点的力,或者节点给单元的力;等于单元的弹性力,节点载荷是外界作用在弹性节点上的力。 什么是单元分析?说说单元分析的过程。(石登明) 答:单元分析就是寻求单元节点力与单元位移之间的关系。单元分析的大致过程:设定节点位移表达单元内任意一点位移、建立应变与位移之间的几何方程、建立应变与应力之间的几何关系、又虚功原理建立节点力与单元内任意一点应力之间的平衡关系,从而得到单元刚度方程。 单元刚度矩阵具有哪些特点?简述其物理意义。(课本) 答:单元刚度矩阵具有对称性、奇异性。可按节点分块对称性反映功的互等关系,奇异性说明单元在无约束情况下可以发生刚体位移。由于每个节点具有相同的自由度,因此单元矩阵可按节点分成若干个相似的子块。 功互等定理:对于线弹性体,作用在同一构件上的第一组力在第二组引起的位移上所作的功,等于第二组力在第一组力引起的位以上所作的功. 1. 诉述有限元法的定义 答:有限元法是近似求解一般连续场问题的数值方法 2. 有限元法的基本思想是什么 答:首先,将表示结构的连续离散为若干个子域,单元之间通过其边界上的节点连接成组合体。其次,用每个单元内所假设的近似函数分片地表示求解域内待求的未知厂变量。 3. 有限元法的分类和基本步骤有哪些 答:分类:位移法、力法、混合法;步骤:结构的离散化,单元分析,单元集成,引入约束条件,求解线性方程组,得出节点位移。 4. 有限元法有哪些优缺点 答:优点:有限元法可以模拟各种几何形状复杂的结构,得出其近似解;通过计算机程序,可以广泛地应用于各种场合;可以从其他CAD软件中导入建好的模型;数学处理比较方便,对复杂形状的结构也能适用;有限元法和优化设计方法相结合,以便发挥各自的优点。 缺点:有限元计算,尤其是复杂问题的分析计算,所耗费的计算时间、内存和磁盘空间等计算资源是相当惊人的。对无限求解域问题没有较好的处理办法。尽管现有的有限元软件多数使用了网络自适应技术,但在具体应用时,采用什么类型的单元、多大的网络密度等都要完全依赖适用者的经验。 5. 梁单元和平面钢架结构单元的自由度由什么确定 答:由每个节点位移分量的总和确定 6. 简述单元刚度矩阵的性质和矩阵元素的物理意义 答:单元刚度矩阵是描述单元节点力和节点位移之间关系的矩阵 单元刚度矩阵中元素aml的物理意义为单元第L个节点位移分量等于1,其他节点位移分量等于0时,对应的第m个节点力分量。 7. 有限元法基本方程中的每一项的意义是什么 P14 答:Q——整个结构的节点载荷列阵(外载荷、约束力);整个结构的节点位移列阵;结构的整体刚度矩阵,又称总刚度矩阵。 8. 位移边界条件和载荷边界条件的意义是什么 答:由于刚度矩阵的线性相关性不能得到解,引入边界条件,使整体刚度矩阵求的唯一解。 9. 简述整体刚度矩阵的性质和特点 P14 答:对称性;奇异性;稀疏性;对角线上的元素恒为正。 10 简述整体坐标的概念 P25 答:在整体结构上建立的坐标系叫做整体坐标,又叫做统一坐标系。 11. 简述平面钢架问题有限元法的基本过程 答:1)力学模型的确定,2)结构的离散化,3)计算载荷的等效节点力,4)计算各单元的刚度矩阵,5)组集整体刚度矩阵,6)施加边界约束条件,7)求解降价的有限元基本方程,8)求解单元应力,9)计算结果的输出。 12. 弹性力学的基本假设是什么。 答:连续性假定,弹性假定,均匀性和各向同性假定,小变形假定,无初应力假定。 13.弹性力学和材料力学相比,其研究方法和对象有什么不同。 答:研究对象:材料力学主要研究杆件,如柱体、梁和轴,在拉压、剪切、弯曲和扭转等作用下的应力、形变和位移。弹性力学研究各种形状的弹性体,除杆件外,还研究平面体、空间体,板和壳等。因此,弹性力学的研究对象要广泛得多。研究方法:弹性力学和材料力学既有相似之外,又有一定区别。弹性力学研究问题,在弹性体区域内必须严格考虑静力学、几何学和物理学三方面条件,在边界上严格考虑受力条件或约束条件,由此建立微分方程和边界条件进行求解,得出较精确的解答。而材料力学虽然也考 虑这几方面的条件,但不是十分严格的,材料力学只研究和适用于杆件问题。 14. 简述圣维南原理。 答;把物体一小部分上的面力变换为分布不同但静力等效的面力,但影响近处的应力分量,而不影响远处的应力。“局部影响原理” 15.平面应力问题和平面应变问题的特点和区别各是什么?试各举出一个典型平面应力和平面应变的问题的实例。 答:平面应力问题的特点:长、宽尺寸远大于厚度,沿板面受有平行板的面力,且沿厚度均匀分布,体力平行于板面且不沿厚度变化,在平板的前后表面上无外力作用平面应变问题的特点:Z向尺寸远大于x、y向尺寸,且与z轴垂直的各个横截面尺寸都相同,受有平行于横截面且不沿z向变化的外载荷,约束条件沿z向也不变,即所有内在因素的外来作用都不沿长度变化。区别:平面应力问题中z方向上应力为零,平面应变问题中z方向上应变为零、应力不为零。举例:平面应力问题等厚度薄板状弹性体,受力方向沿板面方向,荷载不沿板的厚度方向变化,且板的表面无荷载作用。 平面应变问题——水坝用于很长的等截面四柱体,其上作用的载荷均平行于横截面,且沿柱长方向不变法。 16. 三角形常应变单元的特点是什么?矩形单元的特点是什么?写出它们的位移模式。 答:三角形单元具有适应性强的优点,较容易进行网络划分和逼近边界形状,应用比较灵活。其缺点是它的位移模式是线性函数,单元应力和应变都是常数,精度不够理想。 矩形单元的位移模式是双线性函数,单元的应力、应变式线性变化的,具有精度较高,形状规整,便于实现计算机自动划分等优点,缺点是单元不能适应曲线边界和斜边界,也不能随意改变大小,适用性非常有限。 17. 写出单元刚度矩阵表达式、并说明单元刚度与哪些因素有关。 答:单元刚度矩阵与 节点力坐标变换矩阵, 局部坐标系下的单元刚度矩阵, 节点位移有关的坐标变换矩阵。 18. 如何由单元刚度矩阵组建整体刚度矩阵(叠加法)? 答:(1)把单元刚度矩阵 扩展成单元贡献矩阵 ,把单元刚度矩阵中的子块按其在整体刚度矩阵中的位置排列,空白处用零子块填充。(2)把单元的贡献矩阵 的对应列的子块相叠加,即可得出整体刚度矩阵 。 19. 整体刚度矩阵的性质。 答:(1)整体刚度矩阵 中每一列元素的物理意义为:欲使弹性体的某一节点沿坐标方形发生单位为移,而其他节点都保持为零的变形状态,在各节点上所需要施加的节点力;(2)整体刚度矩阵中的主对角元素总是正的;(3)整体刚度矩阵是一个对称阵;(4)整体刚度矩阵式一个呈带状分布的稀疏性矩阵。(5)整体刚度矩阵式一个奇异阵,在排除刚体位移后,他是正定阵。 20. 简述形函数的概念和性质。 答:形函数的性质有:(1)形函数单元节点上的值,具有“本点为一、他点为零”的性质;(2)在单元的任一节点上,三角函数之和等于1;(3)三角形单元任一一条边上的形函数,仅与该端点节点坐标有关,而与另外一个节点坐标无关;(4)型函数的值在0~1之间变换。 21. 结构的网格划分应注意哪些问题.如何对其进行节点编号。才能使半带宽最小。P50,P8相邻节点的号码差最小 答:一般首选三角形单元或等参元。对平直边界可选用矩形单元,也可以同时选用两种或两种以上的单元。一般来说,集中力,集中力偶,分布在和强度的突变点,分布载荷与自由边界的分界点,支撑点都应该取为节点,相邻节点的号码差尽可能最小才能使半带宽最小 22. 为了保证解答的收敛性,单元位数模式必须满足什么条件? 答:(1)位移模式必须包含单元刚体位移;(2)位移模式必须包含单元的常应变;(3)位移模式在单元内要连续,且唯一在相邻单元之间要协调。在有限单元法中,把能够满足条件1和条件2的单元称为完备单元,把满足条件3的单元叫做协调单元或保续单元。 23 有限元分析求得的位移解收敛于真实解得下界的条件。 答:1.位移模式必须包含单元的刚体位移,2.位移模式必须包含单元的常应变,3.位移模式在单元内要连续,且位移在相邻单元之间要协调。 24. 简述等参数单元的概念。 答:坐标变换中采用节点参数的个数等于位移模式中节点参数的个数,这种单元称为等参单元。 25. 有限元法中等参数单元的主要优点是什么? 答:1)应用范围广。在平面或空间连续体,杆系结构和板壳问题中都可应用。 2)将不规则的单元变化为规则的单元后,易于构造位移模式。 3)在原结构中可以采用不规则单元,易于适用边界的形状和改变单元的大小。 4)可以灵活的增减节点,容易构造各种过度单元。 5)推导过程具有通用性。一维,二维三维的推导过程基本相同。 26. 简述四节点四边形等参数单元的平面问题分析过程。 答:(1)通过整体坐标系和局部坐标系的映射关系得到四节点四边形等参单元的母单元,并选取单元的唯一模式;(2)通过坐标变换和等参元确定平面四节点四边形等参数单元的几何形状和位移模式;(3)将四节点四边形等参数单元的位移模式代入平面问题的几何方程,得到单元应变分量的计算式,再将单元应变代入平面问题的物理方程,得到平面四节点等参数单元的应力矩阵(4)用虚功原理球的单元刚度矩 阵,,最后用高斯积分法计算完成。
clear all; close all; clc; % 最近同步技术里面有很多关于costas环的帖子,很多集中讨论环路滤波的,也有自己做了程序发出来。但都没有一个完整的结论和系统的有方向性的讨论点.最近做了一个simulink仿真.个人认为现有的所谓经典方法很难被别人掌握.因此,从锁相环的原理出发,结合现成的经典方法,做了这个仿真.说明一下: % 一个是高载频,一个是低载频的。低载频的我用的FIR代替的积分清零器,大家可以换成积分清零器件.阶数应该几阶就可以了。 % % 1:如果是没有进行成形滤波的数据,那么信息数据率不要太高,以防止在锁定 时间内发生极性翻转,这样就锁不住了。(说简单点就是信息数据对载波的调制作用引起的载波相位的突变.) % % 2.积分清零的目的是滤除倍频信号,在系统采样率(系统时钟)相对中频信号频率只是几倍关系时,积分清零阶数可以很低,几阶.原理在于数字频率对模拟频率的 归一化. % % 3.鉴相方式非常关键.将鉴频差和相差结合起来,是一个新的发现.这样可以很好的锁定.通过调整对应的两个控制增益,便可独立的控制相位和频率的锁定速度.相差(信号点所在的位置的相位)和频差(相位点旋转的方向和快慢)可以很直观的在星座图上看出来. % % 4.环路滤波器的输出进行积分操作,能够很好的把反馈送入NCO. % % 5.环路滤波器参数设置没什么新意思.阻尼0.707.噪声带宽25 % % 欢迎大家下回去琢磨,然后讨论!论坛空间也有限,想好了再把你的问题说出来,谢谢! % 阅过之后,更敢无新意,我的看法如下: % 1,costas loop在不同的应用场合(诸如,符号速率,动态应力,多谱勒,信道环境等等),其环路设计就会有非常大的差异. % 比如,在某些情况下,环路滤波的前或后,可能要进行环滤更新操作.以匹配NCO的需要.但通常的科环并不需要这样的设计等等. % 2,变型的科环很多,难以统一一种模式. % 3,经典的科环理论很重要,很多变型都是根据不同的应用进行改进的. % 切忌:想以一种仿真结论来定论所有形式的科环设计. % 同意楼上的。掌握一个跟踪环路的本质是重要的,光Costas环就有好多种,关键看你要应用在什么场合,实现复杂度有什么要求。 % 如果楼主想对costas环有点更深入的认识,建议考虑一下低SNR环境下或者高动态环境的载波跟踪这种例子可能会更有些帮助。这种情况下每一个环节的设计考虑就都不像你所说的那样简单了。至少不会有“环路滤波器参数设置没什么新意思.阻尼0.707.噪声带宽25”。 % 楼上两位说得很有道理,确实,针对不同的应用场合,环路的参数设置,滤波器的设计,鉴相方式,都会有所变化. % 我发这篇帖的目的,就是希望大家可以从costas环原理的角度,通过仿真,掌握各种参数,各个关键部分,对环的影响,从而真正掌握锁相环的设计方法.而不是每遇到新问题就失去了主动权,找不到北. % % 还希望大家够针对具体的锁相环的问题,各抒己见.不泛泛而谈,深入下去,发扬我们大家的研学精神! % gardner定时同步算法是一种适合高速信号的 % 反馈式算法,它只需要每符号两个采样点,且载波 % 相位误差不影响算法的定时性能,鉴于以上优点, % 该算法适合多种应用场合。 % % 它是从平方律定时推导出的,依靠检测码元转换处的 % 过零点来定时,因此数字基带信号的归零特性很大程度 % 上影响算法的性能,一般升余弦滤波器成型的数字波形 % 在码元转换点是不归零的,使码元转换点归零,一般使用 % 模拟系统中针对平方律定时的预滤波方法,理论和实践证明 % 这种方法是有效的,几乎可以消除定时抖动。 % % 这里分享我找到的有关gardner算法的一些文章,基本涵盖了 % 各个放面的内容,包括算法原文,算法性能分析,算法的应用 % 和改进方面的文章 % 锁相环有几个体现捕捉性能的参数: % 对于无源滤波二阶环路 % 捕捉带=4*sqrt(K*阻尼因子*环路自然角频率) % 快捕带= 4*阻尼因子*环路自然角频率 %% % 对于二阶环 % 根据带宽与阻尼系数的关系 % 一般取阻尼系数为0.707 % 剩下的就是确定环路带宽了 % 当然要确定最终的k1k2,鉴相或者鉴频增益也是很重要的 % GPS的跟踪,一般采用数字锁相环的结构. 环路等效噪声带宽的设计数字环路的一个重要参数, %该参数影响着环路的收敛速度,跟踪精度,以及环路可收敛的输入频差范围等, 反过来带宽的设计也由这些因素决定. % % 5楼给的数值应该分别是载波锁相环环路噪声带宽, 锁频环的噪声带宽以及码环的噪声带宽. %通过噪声带宽可以求出环路滤波器的参数,(通常限定在3阶环路以下), 具体方法可以参考书籍: % GPS原理及应用 第一, 二版, 还有一本是fundamentals of global positonging system receiver % 这两本书比较适合初学者. % 经常有师弟师妹问我怎样学习LDPC码,现在我将个人学习LDPC码的心得写在下面,以供参考。 % 1. 了解LDPC码的基本概念(主要是校验矩阵与Tanner图的关系)之后,学习LDPC码的和积译码算法。这里建议首先用概率测度推出无环图下,变量节点和校验节点消息的更新公式,透彻理解“消息”、“更新”和“传递”的含义。 % 2. 看LDPC码和积译码算法的程序。要点在双循环链表、两个消息更新的计算步骤(检验节点和变量节点运算,也叫水平步骤和垂直步骤)。(c 程序可以在网上Mackey的网站下,我这也有)。 % 3. 对LDPC码的和积译码算法充分理解之后,可以看密度进化理论及其高斯逼近算法,推倒文章中的公式是很有助于理解和积译码算法的。 % 4.经过步骤3,我们应该对什么样的LDPC码性能会好有一个初步的理解,这样我们可以试着设计 LDPC码。(高斯逼近和密度进化程序我这也有) % 5.理解信道编码定理和Turbo原理,“码长”“随机”“迭代译码“”对于一个实用好码很重要。 % 另外,在这之前最好弄清楚信噪比,编码速率,BER和FER的含义。 %% gardner 位同步测试程序 %% M.Moeneclaey提出的数控方法 %% m(k+1)-m(k)=int[Ti/Ts+uk]; %% u(k+1)=[uk+Ti/Ts]mod1 clc;clear;format long; fb=2e+6; %% 符号速率 fs=56e+6; %% 采样速率 ps=0; %%%%%%%%%平方根滤波器%%%%%%%%%因为是采样率是28倍符号速率,所以采用了500阶的滤波器系数,保证通带和阻带的特性 load FIR2M; Num=FIR2M; i=0;q=0; %%%%%%%%建立数据缓存区间%%%%%%%%%%%%% dataI=zeros(1,501); dataQ=zeros(1,501); bufferI=zeros(1,501); bufferQ=zeros(1,501); bitsyninI=zeros(1,4); %% 插值滤波器的输入,每次插值需要连续四个数据 bitsyninQ=zeros(1,4); GarI=zeros(1,3); GarQ=zeros(1,3); %%========环路滤波器=============== K0=fb*0.05; %% 环路的NCO增益 C2=2; Alpha=0.5; Kd=2*C2/((1-Alpha^2/4))*sin(pi*Alpha/2); %% 鉴相增益 K=K0*Kd; %% 环路增益 wn=0.03*fb; %% 环路滤波器的自然频率 Kesai=1/sqrt(2); %% 环路滤波器的衰减因子 %%============ 环路滤波器系数设计=========== g1=2*wn*Kesai/K; g2=wn^2/fb/K; g=[-g1;g1+g2]; cnt=0; %% 控制数据输出 LPF=0; %% 环路滤波输出 pre_TED=0; %% 前一鉴相值 TED=0; %% 当前鉴相值 %% NCO控制参数 deltamk=1; deltamkcnt=0; V=fs/fb/2; uk=0; t=0.014; %% 仿真时间 TimeLen=fix(t*fs); %%-------建立存储文件------------------------------------- if (exist('data1.txt')>0) delete data1.txt; end fid1=fopen('data1.txt','a+'); if (exist('data2.txt')>0) delete data2.txt; end fid2=fopen('data2.txt','a+'); if (exist('data3.txt')>0) delete data3.txt; end fid3=fopen('data3.txt','a+'); disp('QPSK---------BitSync') for k=1:TimeLen ProcessShow(k,TimeLen,25); %%过程显示 ps=ps+fb; %% if(ps>=fs) ps=ps-fs; i=randint*2-1; %% 输入随机数据 输出转化为双极性 q=randint*2-1; end dataI=[dataI(2:end),i]; %% 没有采用常规的插0方法,而是采用采样保持的方式 dataQ=[dataQ(2:end),q]; di=dataI*Num'; %% 成型滤波,Num为501位平方根升余弦滤波器 dq=dataQ*Num'; T_sign=(di+1j*dq); %% 发送信号 %%%%%%滑动窗存储接收信号,并完成卷积运算%%%%%%%%%%%%% bufferI=[bufferI(2:end),real(T_sign)]; %滑动窗存储接收信号 bufferQ=[bufferQ(2:end),imag(T_sign)]; ri=bufferI*Num'; %% 匹配滤波 rq=bufferQ*Num'; fprintf(fid1,'%f,%f\n',ri,rq); %%存储匹配滤波后的波形 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% deltamkcnt=deltamkcnt+1; bitsyninI=[bitsyninI(2:4),ri]; %%存储插值滤波前的连续4点 bitsyninQ=[bitsyninQ(2:4),rq]; if (flag) flag=0; C_4 = 0.5 * uk^2 - 0.5 * uk; % c_4=c(-2);其中内插系数为BS_Alpha=0.5 C_3 = -0.5 * uk^2 + ( 0.5 + 1 ) * uk; % c_3=c(-1) C_2 = -0.5 * uk^2 + ( 0.5 - 1 ) * uk + 1; % c_2=c(0) C_1 = 0.5 * uk^2 - 0.5 * uk; % c_1=c(1) C=[C_1,C_2,C_3,C_4]; Inter_I=bitsyninI*C'; %插值输出 Inter_Q=bitsyninQ*C'; GarI=[GarI(2:3),Inter_I]; %用数组存放,表示I(k-2),I(k-1),I(k) GarQ=[GarQ(2:3),Inter_Q]; cnt=mod(cnt+1,2); if (cnt==1) %% 以数据速率完成环路滤波 I=Inter_I; %% 同步数据输出 Q=Inter_Q; fprintf(fid2,'%f,%f\n',I,Q); %% 存储同步后的I,Q路数据 TED=GarI(2)*(GarI(3)-GarI(1))+GarQ(2)*(GarQ(3)-GarQ(1)); %Error=I(k-1)*[I(k)-I(k-2)]+Q(k-1)*[Q(k)-Q(k-2)]; LPF=[pre_TED,TED]*g+LPF; %环路滤波 pre_TED=TED; end end V=V-LPF/256; %V近似等于Ti/Ts; if (deltamkcnt==deltamk) flag=1; %%产生插值脉冲 deltamkcnt=0; %%计数器, deltamk=fix(uk+V); %%计算下一脉冲时刻 uk=mod(uk+V,1); V=fs/fb/2; %%保证V是一个近似等于Ti/Ts的值 end fprintf(fid3,'%f,%f,%f,%f\n',uk,deltamk,LPF,TED);%%%%%%%%%%%%%%%%存储观测参数 end disp('The End!'); load data3.txt; figure; plot(data3(:,1)) title('小数间隔索引uk'); figure; plot(data3(:,2)) title('整数间隔索引差M') load data2.txt figure;plot(data2(12000:end,1)+1j*data2(12000:end,2),'.') title('同步后的星座图')
一、研究现状 1. 预测算法研究现状 在过去的几十年中,预测逐渐成为各国的研究热点,许多模型和理论被应用于国防、 科技预测的研究中,归纳下来,主要有以下三种类型: (l)基于线性理论模型:主要有卡尔曼滤波模型、指数平滑模型、自适应权重模型 (2)基于非线性理论模型:主要有小波理论模型、突变理论模型、混沌理论模型等 (3)基于知识发现的智能预测模型:主要有神经网络模型、非参数回归模型等。 卡尔曼滤波预测模型是通过观测方程和状态方程组成的线性随机系统来描述滤波器, 并结合递推算法对该状态变量进行估计,从而得到交通流的预测值。基于卡尔曼滤波递 推算法的预测模型的理论简单、容易被理解,该方法在预测时只能通过本路段的历史数 据进行模型训练,没有考虑其他影响,因此随着预测时间间隔的减少,该模型的性能会 明显变差。 指数平滑预测模型是利用最新观测的状况对预测结果进行纠正,将上一次的预测误差 综合到下一次的预测中,反复迭代后,形成一个前面所有观测值的线性组合,然后得到 最终的预测结果。该模型对存储的要求较低,不需要训练,计算较简单,在早期的预测 中应用较多。 自适应预测模型通过实时监测指标,如突发事故、天气变化、平均时间等因素来动态 的调整各个预测因子在模型中的权重,从而解决了线性模型不能够很好随机性和非线性 的缺陷。但该模型缺乏科学的选择机制。 小波理论预测模型通过小波分析理论将数据分解为分辨率不同的信号,对分解后的信 号分别采用预测算法进行预测,最后将分解信号的预测结果合成就得到了最终的预测结 果。小波理论预测模型的抗干扰能力较强,但该模型的计算量大,运算效率较低,且对 于每一个预测段均需要建立相应的模型,因此当对海量数据进行预测时,需要建立的模 型会非常多,训练模型的时间花销也会很大。 神经网络预测模型需要通过大量的数据去对神经网络模型进行训练,生成的模型是输 出数据与输入数据之间的映射关系,输入数据通过该映射关系就能得到与之对应的预测 结果。该模型预测精度高,但前期需要大量的历史数据进行模型训练。 非参数回归预测模型是从历史数据中通过近邻匹配找到与当前状态最相似的近邻数据 集合,通过这些近邻数据去预测道路下一时刻的交通流。该模型不需要任何的先验知识 ,也不需要建立复杂的数学模型,能够适应多变的状况,预测精度高,但是需要大量的 历史数据。 预测精度与计算效率是矛盾的。预测精度高的模型一般都较为复杂或者需要处理大量 的历史数据,从而导致计算效率较低,而计算效率高的模型其预测精度一般会较低。为 了能够在保证预测精度的同时,提高算法的计算效率,使预测算法能够更好的应用于实 际预测中,我们讲通过试验神经网络、非回归参数模型选取准确率最高的算法并采用分 布式计算环境来解决计算计算效率的问题。 2. 计算平台 Hadoop, Spark等技术的快速发展为海量数据的存储与处理提供了技术支持Hadoop框架能够对大规 模数据进行分布式计算和存储,用户可以根据数据规模方便的扩展集群规模,扩展计算 能力。但是Hadoop在实际应用过程中仍存在很多不足: 第一、一个MapReduce任务只有M ap和Reduce两个阶段,复杂的计算需要大量的Job共同完成,Job之间的依赖关系需要由 开发者自己管理,这增加了开发者的研发难度。 第二、Hadoop在进行MapReduce计算的过程中,会将map的计算结果写入到本地磁盘或 Hadoop分布式文件系统(Hadoop Distributed File System, HDFS)上,然后再通过shuffle过程将计算结果发送到reduce上进行处理,反复的磁盘读 写使Hadoop不能够满足低延迟的交互式数据挖掘任务的要求。 第三、时间延迟高,ReduceTask需要等待所有MapTask都完成后才可以开始。相比Ha doop,Spark是一个分布式内存型计算框架,它在Hadoop MapReduce优点的基础上,提出了RDD数据模型,提供了多种算子,并且可以将计算的中 间结果存放到内存中,这使得迭代计算的效率更高,更适合于实时计算、交互式计算等 场景,所以拟采用spark平台进行分布式计算。 Spark项目是使用函数式语言Scala开发的,利用Scala开发的Spark应用程序可以像操 作本地数据集一样操作分布在Spark集群中的分布式数据集。Spark基于RDD的一栈式解决 方案,将批处理、交互式查询、Streaming流计算、Graph Processing等模型统一到一个平台下,这些模型通过一致的API接口和相同的部署方案, 使得各个框架可以在内存中无缝的集成,协作完成系统任务。 MLlib是Spark对常用的机器学习算法的实现库。机器学习是一个多学科交叉的领域, 涉及信息学、概率论、计算机、统计学等众多知识,

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧