複製鏈接
請複製以下鏈接發送給好友

錯誤識別

鎖定
為了在有可能出現錯誤的傳輸媒介上實現可靠的數據傳輸,必須使用自動錯誤識別和更正程序。 [1] 
錯誤識別即對系統中的錯誤進行識別,其主要功能在於識別系統中超出允許範圍的誤差。
中文名
錯誤識別
外文名
misidentification
拼    音
cuò wù shí bíe
主要功能
識別系統中超出允許範圍的誤差
應用學科
人工智能

錯誤識別簡介

為了在有可能出現錯誤的傳輸媒介上實現可靠的數據傳輸,必須使用自動錯誤識別和更正程序。為了實現錯誤識別,單個數據包必須帶有附加的信息。這樣,在出現錯誤的情況下,至少從一定程度上修復數據包正確的內容。發送者在要發送的數據包上計算出一個校驗和,並把它附加到數據包上。
當數據包到達接收者處時,接收者使用相同的程序在接收到的數據包上(無需附上校驗和)生成校驗和,並將算出的數值與發送者在數據包上附加的校驗相比較。如果兩個數字相吻合,那麼數據包就很可能被正確地發送了。如果不相符,那麼就是在傳輸過程中發生了變化。接收者會要求發送者再次發送該數據包,但必須再次發送的不是全部信息,而只是出現錯誤的那部分數據包。
儘管數據傳輸變得越來越可靠,廣泛使用的無線通信技術(如無線局域網),還是導致了傳輸錯誤的大幅增加,這些錯誤是由於噪音和干擾造成的。接收者常常無法根據收到的信號正確地修復數據包。
幸運的是,在無線通信過程中,如果出現錯誤,錯誤會成堆地以“簇”的形式出現。如果錯誤總是以單個比特的形式出現,那麼在以恆定的錯誤率(比如0.01%)傳輸一個大小為1 000 000比特的數據包時,幾乎每個數據包都是錯誤的,都必須重新發送。相反,如果錯誤以平均每100個錯誤為一簇的形式出現,那麼100個數據包中就只有1~2個會受到錯誤波及。
傳輸錯誤的衡量單位是比特錯誤率,它是由錯誤傳輸的比特數與傳輸總比特數之間比計算出來的。識別和消除錯誤的方法,通常不能正確地識別所有的錯誤。錯誤識別程序的工作目的在於,將剩餘的錯誤儘可能降到最低限度。
為了更有效地處理錯誤,人們研發了兩種基本程序:在已經識別錯誤的情況下,使用錯誤識別碼和與此相連接的重複傳輸,以及自動更正錯誤的糾錯碼。為了能夠使用錯誤識別及更正的必要算法,發送信息上有必要帶有冗餘信息。
為此,原始信息應攜帶附加編碼,這一編碼不擁有自己的信息值,而只是有助於錯誤識別和排除。通過這些附加的多餘信息,無效的編碼詞句可以被識別,這些無效編碼不符合原始編碼詞句,所以會指向傳輸中的錯誤。
通過使用糾錯碼,人們至少可以在錯誤不多時推斷出原始編碼詞句。與錯誤識別相比,錯誤更正則需要更高的花費。但在出現錯誤而又不能要求重新傳輸編碼詞句時,它就是非常必要的。
如果可以進行這樣的要求,那麼使用錯誤識別編碼就足夠了,因為被錯誤識別的編碼詞句可以再一次被傳送。 [1] 

錯誤識別程序調試

語法錯誤較好識別,因為MATLAB會給出相應的錯誤信息,以方便用户的檢查和定位。
一般來説,執行錯誤較難識別,因為發生執行錯誤時,系統就會結束M文件的調用,這樣將關閉函數的工作空間,無法獲得需要的數據信息。MATLAB提供了以下幾種方法來獲取所需要的中間信息:
(1)將程序每一步執行的結果輸出到命令窗口,以檢查運行中間的結果,為實現這種效果,可以把程序中屏蔽輸出的“;”號去掉。
(2)使用keyboard函數中斷程序,此時程序處於調試狀態,命令窗口的提示符變為K>>,可以實現函數工作空間和命令窗口工作空間的交互,從而獲得所需要的信息。
(3)將函數頭註釋掉,這樣函數將會變為腳本文件,所操作的對象也相應為命令窗口工作空間中的變量,也可以獲得所需要的信息。
(4)使用調試菜單或調試函數。 [2] 

錯誤識別識別手段

智能系統無法避免出現故障,因此必須採取措施避免這些故障錯誤造成重大損失。對於涉及安全性的系統,必須按照預定的安全性邏輯關係採取反應措施。對系統內錯誤的處理主要有兩個步驟:首先是通過相應的措施對錯誤進行識別,之後是對錯誤的處理。
錯誤識別的主要功能在於識別系統中超出允許範圍的誤差。對錯誤識別措施進行定義,首先要分析系統組件潛在錯誤的特性,以保證對錯誤的識別和安全性處理。系統中主要採用以下手段進行錯誤識別:
(1)比較參照值:設備的一些特性標準值在使用前被存儲在系統中,並將系統運行中測得的數值與之進行比較。
(2)對通訊連接中數據的傳送與確認進行監測。
(3)程序運行監測:例如利用監測單元(看門狗或者第2處理器)對微處理器中過程的執行進行可信度監測。
(4)利用冗餘配置:例如利用冗餘傳感器進行監測,或者進行榮譽運算監測。
(5)通過物理關係進行信號可信度監測。 [3] 

錯誤識別錯誤處理

所謂錯誤處理,就是當代碼運行時,如果發生錯誤,可以捕獲錯誤,並按照程序設計者事先設計的方法來處理。使用錯誤處理的好處是:代碼的執行不會中斷,如果設定適當,可以讓用户感覺不到錯誤的存在。
錯誤處理的步驟:設置錯誤陷阱,編寫錯誤處理代碼。
設置錯誤陷阱
設置錯誤陷阱是在代碼中設置一個捕捉錯誤的轉移機制,一旦出現錯誤,便無條件轉移到指定位置執行。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 [4] 
參考資料
  • 1.    [德]邁內爾,[德]薩克.WWW:Internet、Web技術及應用:科學出版社,2008-03:140
  • 2.    王沫然.MATLAB6.0與科學計算:電子工業出版社,2001年09月:第1版,第185頁
  • 3.    (德)賴夫.汽車電子學 第3版:西安交通大學出版社,2011-07:265
  • 4.    米紅娟主編;王瑞梅,張旭東,張軍玲等參編.Access數據庫基礎及應用教程 第3版:機械工業出版社,2014-01