错误识别
人工智能术语
为了在有可能出现错误的传输媒介上实现可靠的数据传输,必须使用自动错误识别和更正程序。
简介
为了在有可能出现错误的传输媒介上实现可靠的数据传输,必须使用自动错误识别和更正程序。为了实现错误识别,单个数据包必须带有附加的信息。这样,在出现错误的情况下,至少从一定程度上修复数据包正确的内容。发送者在要发送的数据包上计算出一个校验和,并把它附加到数据包上。
当数据包到达接收者处时,接收者使用相同的程序在接收到的数据包上(无需附上校验和)生成校验和,并将算出的数值与发送者在数据包上附加的校验相比较。如果两个数字相吻合,那么数据包就很可能被正确地发送了。如果不相符,那么就是在传输过程中发生了变化。接收者会要求发送者再次发送该数据包,但必须再次发送的不是全部信息,而只是出现错误的那部分数据包。
尽管数据传输变得越来越可靠,广泛使用的无线通信技术(如无线局域网),还是导致了传输错误的大幅增加,这些错误是由于噪音和干扰造成的。接收者常常无法根据收到的信号正确地修复数据包。
幸运的是,在无线通信过程中,如果出现错误,错误会成堆地以“簇”的形式出现。如果错误总是以单个比特的形式出现,那么在以恒定的错误率(比如0.01%)传输一个大小为1 000 000比特的数据包时,几乎每个数据包都是错误的,都必须重新发送。相反,如果错误以平均每100个错误为一簇的形式出现,那么100个数据包中就只有1~2个会受到错误波及。
传输错误的衡量单位是比特错误率,它是由错误传输的比特数与传输总比特数之间比计算出来的。识别和消除错误的方法,通常不能正确地识别所有的错误。错误识别程序的工作目的在于,将剩余的错误尽可能降到最低限度。
为了更有效地处理错误,人们研发了两种基本程序:在已经识别错误的情况下,使用错误识别码和与此相连接的重复传输,以及自动更正错误的纠错码。为了能够使用错误识别及更正的必要算法,发送信息上有必要带有冗余信息。
为此,原始信息应携带附加编码,这一编码不拥有自己的信息值,而只是有助于错误识别和排除。通过这些附加的多余信息,无效的编码词句可以被识别,这些无效编码不符合原始编码词句,所以会指向传输中的错误。
通过使用纠错码,人们至少可以在错误不多时推断出原始编码词句。与错误识别相比,错误更正则需要更高的花费。但在出现错误而又不能要求重新传输编码词句时,它就是非常必要的。
如果可以进行这样的要求,那么使用错误识别编码就足够了,因为被错误识别的编码词句可以再一次被传送。
程序调试
语法错误较好识别,因为MATLAB会给出相应的错误信息,以方便用户的检查和定位。
一般来说,执行错误较难识别,因为发生执行错误时,系统就会结束M文件的调用,这样将关闭函数的工作空间,无法获得需要的数据信息。MATLAB提供了以下几种方法来获取所需要的中间信息:
(1)将程序每一步执行的结果输出到命令窗口,以检查运行中间的结果,为实现这种效果,可以把程序中屏蔽输出的“;”号去掉。
(2)使用keyboard函数中断程序,此时程序处于调试状态,命令窗口的提示符变为K>>,可以实现函数工作空间和命令窗口工作空间的交互,从而获得所需要的信息。
(3)将函数头注释掉,这样函数将会变为脚本文件,所操作的对象也相应为命令窗口工作空间中的变量,也可以获得所需要的信息。
(4)使用调试菜单或调试函数。
识别手段
智能系统无法避免出现故障,因此必须采取措施避免这些故障错误造成重大损失。对于涉及安全性的系统,必须按照预定的安全性逻辑关系采取反应措施。对系统内错误的处理主要有两个步骤:首先是通过相应的措施对错误进行识别,之后是对错误的处理。
错误识别的主要功能在于识别系统中超出允许范围的误差。对错误识别措施进行定义,首先要分析系统组件潜在错误的特性,以保证对错误的识别和安全性处理。系统中主要采用以下手段进行错误识别:
(1)比较参照值:设备的一些特性标准值在使用前被存储在系统中,并将系统运行中测得的数值与之进行比较。
(2)对通讯连接中数据的传送与确认进行监测。
(3)程序运行监测:例如利用监测单元(看门狗或者第2处理器)对微处理器中过程的执行进行可信度监测。
(4)利用冗余配置:例如利用冗余传感器进行监测,或者进行荣誉运算监测。
(5)通过物理关系进行信号可信度监测。
错误处理
所谓错误处理,就是当代码运行时,如果发生错误,可以捕获错误,并按照程序设计者事先设计的方法来处理。使用错误处理的好处是:代码的执行不会中断,如果设定适当,可以让用户感觉不到错误的存在。
错误处理的步骤:设置错误陷阱,编写错误处理代码。
设置错误陷阱
设置错误陷阱是在代码中设置一个捕捉错误的转移机制,一旦出现错误,便无条件转移到指定位置执行。Access 2003提供了以下几个语句来构造错误陷阱:
(1)On Error Go To语句
在遇到错误发生时,控制程序的处理。
语句的使用格式有如下几种:
①On Error GoTo标号:在遇到错误发生时,控制程序转移到指定的标号所指位置代码执行,标号后的代码一般为错误处理程序。一般来说,“On Error GoTo标号”语句放在过程的开始,错误处理程序代码会在过程的最后。
②On Error Resume Next:在遇到错误发生时,系统会不考虑错误,继续执行下一行语句。
③On Error GoTo 0:用于关闭错误处理。如果在程序代码中没有执行“On Error GoTo”语句捕捉错误,或使用“On Error GoTo0”语句关闭了错误处理,则当程序运行发生错误时,系统会提示一个对话框,显示相应的出错信息。
(2)Err对象
返回错误代码。在程序运行发生错误后,Err对象的number属性返回错误代码。
(3)Error()函数
该函数返回出错代码所在的位置或根据错误代码返回错误名称。
(4)Error语句
该语句用于错误模拟。以检查错误处理语句的正确性。在实际编程中,不能期待使用上述错误处理机制来维持程序的正常运行,要对程序的运行操作有预见,采用正确的处理方法,尽量避免运行错误的发生。
编写错误处理代码
错误处理代码是由程序设计者编写的,根据可预知的错误类型决定采取哪种措施。
例如利用InputBox函数输入数据时,在InputBox对话框中,如果不输入数据或直接单击“取消”按钮,会产生运行错误,显示错误提示对话框。可以使用On Error ResumeNext语句忽略错误,也可以使用错误处理代码提示用户。
编写代码如下:
Private Sub Command0-Click()
On Error GoTo Errorline
Dim a As Integer
a=InputBox(”输入数据”,”提示框”)
MsgBox a
End Sub
参考资料
最新修订时间:2022-09-19 18:11
目录
概述
简介
参考资料