實驗5 信號的檢錯與糾錯
練習一 線性塊編碼的實現與分析
實驗學時
0.5學時
實驗目的
● 掌握差錯控制的類型
● 掌握漢明距離的計算
● 掌握幾種常用的線性塊編碼
實驗環境
網絡拓撲結構一
實驗工具
虛擬通信工具
實驗任務
任務一 實例計算
任務一 實例計算
1. 計算漢明距離d(10101,11110);
異或:01011
d=3
2. 根據實驗原理的學習,計算下表中的編碼方案的最小漢明距離。
D(00000,01011)=3
D(00000,10101)=3
D(00000,11110)=4
D(01011,10101)=4
D(01011,11110)=3
D(10101,11110)=3
Dmin=3
練習二 循環編碼的實現與分析
實驗學時
0.5學時
實驗目的
● 掌握循環冗餘校驗
● 掌握循環編碼方法及其編碼特點
實驗環境
網絡拓撲結構一
實驗工具
虛擬通信工具
實驗任務
任務一 循環編碼實現與分析
任務一 循環編碼實現與分析
本任務每臺主機爲一組。現僅以主機A所在組爲例,其它組的操作參考主機A所在組的操作。
1. 搭建仿真線路
(1)打開虛擬通信工具,新建仿真視圖;
(2)選擇隨機信號、[7,4]循環碼編碼、[7,4]循環碼譯碼、信號輸出器,連接循環碼編譯碼的仿真線路圖,如下圖所示;
2. 器件參數設置
(1)設置隨機信號的參數,輸入方式選擇隨機輸入,由用戶自行輸入待編碼的二進制數的長度,如輸入8位,輸出方式選擇字符輸出,其他參數保持默認值;
(2)爲了方便觀察結果其他器件的輸出方式均選擇字符輸出,其他參數均可保持默認值;
3. 仿真結果分析
(1)運行仿真線路,觀察分析編碼前後、解碼前後碼元序列的變化,分析[7,4]循環碼編碼和譯碼的實現過程;
(2)重新調整隨機信號的輸入位數,重新運行,對比上面的結果進行分析,驗證[7,4]循環碼編碼原理;
(3)實驗結論。
在編碼器中,數據字有k(4)位,碼字有n(7)位,在數據字的右邊加上(n-k)=(3)位,n位結果傳給生成器,生成器使用長度爲n-k+1=4的除法。這個除數是預定義並經過雙方同意的。生成器用除數除增加後的數字(模2除法)除法的商被丟棄,餘數加到數據字上生成碼字。如果校正字全0,碼字最左邊的m位被接收爲數據字(被認爲無差錯),否則,這m位被丟棄(有差錯)。
練習三 因特網校驗和的計算
實驗學時
0.5學時
實驗目的
● 掌握校驗和的概念
● 掌握因特網校驗和的計算方法
● 掌握因特網校驗和的性能
實驗環境
網絡拓撲結構一
實驗工具
因特網校驗和工具
協議分析器
實驗任務
任務一 因特網校驗和的計算
任務一 因特網校驗和的計算
各主機打開協議分析器,進入相應的網絡結構並驗證網絡拓撲的正確性,如果通過拓撲驗證,關閉協議分析器繼續進行實驗,如果沒有通過拓撲驗證,請檢查網絡連接。
本任務每兩臺主機爲一組,將主機A和B作爲一組,主機C和D作爲一組,主機E和F作爲一組。現僅以主機A和主機B所在組爲例,其它組的操作參考主機A和主機B所在組的操作。
1. 主機A和主機B建立連接。
(1)主機B模擬信息接收端,打開因特網校驗和工具,設置類型爲“接收方”,地址默認,端口設置爲6006(這裏端口號可以任意設置,但保證不被系統佔用即可);點擊右側的“創建”按鈕,等待主機A的連接;
(2)主機A模擬信息發送端,打開因特網校驗和工具,設置類型爲“發送方”,地址爲接收端主機B的IP地址,端口設置與主機B相同,設置爲6006;
(3)主機A點擊參數後面的“連接”按鈕,建立與主機B的連接;
2. 主機A模擬信息發送端進行數據發送操作。
(1)在發送信息處,輸入要發送的信息,發送數據爲8位字符,(數字0-9或字符A-Z/a-z),例如我們這裏選擇發送Forouzan;
(2)點擊“轉換十六進制”按鈕,將輸入的待發送數據Forouzan轉換成十六進制;
(3)點擊“計算校驗和”按鈕,出現因特網校驗和演示界面,在此界面中,待發送的數據報文已經添加完成,校驗和設置爲全0;
(4)我們需要手動計算“十六位字”與“校驗和”的和,填入下面的“和(部分和)”,並將求出的進位填入最上方的“進位”處。最後一個進位會自動寫入“和(部分和)”的下一行。此時再計算出“和(部分和)”與最高進位的和,填入下面的“和”處。最後再對這個“和”求反,得出“校驗和(發送)”;
(5)計算完成後,點擊“校驗”按鈕,對其進行校驗,如果填入的數據有誤,會以紅色顯示提示,需要重新填寫,如無誤,填寫完成下面的表格,然後點擊“確定”,回到初始界面。
● 記錄實驗數據。
發送端校驗和的計算
發送端 | 數據 |
校驗和(初始值) | 0000 |
和(部分和) | CCD0 |
進位 | 0001 |
和 | CCD0 |
校驗和(發送) | 332F |
(6)在傳輸類型中選擇“正常傳輸”或者“異常傳輸”,異常傳輸是指待發送的數據將隨機改變一位,我們這裏先選擇正常傳輸,點擊“發送”,將數據發送給主機B,此處允許連續發送。
3. 主機B接收到數據後,進行操作。
(1)點擊“計算校驗和”按鈕,進入因特網校驗和演示界面,在此界面中,接收的數據已添加完成;
(2)我們需要手動計算,得出這些十六位字的和,填入下面的“和(部分和)”,並將求的進位填入最上面的“進位”處。最後一個進位會自動寫入“和(部分和)”的下一行。此時再計算出“和(部分和)”與最高進位的和,填入下面的“和”一行處。最後再對這個“和”求反,得出“校驗和(新)”;
(3)計算完成後,點擊“校驗”按鈕,對其進行校驗,如果填入的數據有誤,會以紅色顯示提示,需要重新填寫,如無誤,填寫完成下面的表格,然後點擊“確定”,回到初始界面;
● 記錄實驗數據。
接收端校驗和的計算
發送端 | 數據 |
校驗和(接收到) | 332F |
和(部分和) | FFFF |
進位 | 0001 |
和 | FFFF |
校驗和(新) | 0000 |
(4)此時的校驗和已被剛纔的數據填入,如果是0000,則後面顯示,否則顯示;
(5)在接收信息處,我們可以看到,如果接收方校驗和是0000,則顯示“校驗和的值是0,接收報文,數據爲:主機A發送的原始數據信息(該任務中顯示Forouzan)”,否則顯示“校驗和的值不是0,丟棄報文”。
4. 重新設置傳輸類型,重新進行實驗。
(1)主機A可以將剛纔設置的發送信息,選擇“異常傳輸”,點擊“發送”;
(2)主機B接收數據,並對數據進行校驗,查看校驗和是否爲全0,判斷報文傳輸是否正確,正確則接收,錯誤則丟棄;
(3)主機A和主機B完成實驗操作後,分別記錄校驗和的計算過程數據以及實驗的結果數據。
實驗記錄:
發送端校驗和計算:
發送端 | 數據 |
校驗和(初始值) | 0000 |
和(部分和) | CCD0 |
進位 | 0001 |
和 | CCD0 |
校驗和(發送) | 332F |
異常傳輸後接收端校驗和計算
發送端 | 數據 |
校驗和(接收到) | 332F |
和(部分和) | 00FF |
進位 | 1101 |
和 | 0100 |
校驗和(新) | FEFF |
實驗結果:
(1)正常傳輸,檢驗和的值爲0,接收報文,數據爲30 31 32 33 34 35 36 37。
(2)異常傳輸:檢驗和的值不爲-0,丟棄報文。
結論:
檢驗和使用較少的(16)位來檢測任何長度報文中的差錯。
發送方站點:
(1)報文被劃分爲16位字
(2)校驗和設置爲0
(3)所有字包括校驗和使用反碼運算相加
(4)求反變成校驗和
(5)數據和校驗和一起發送
接收方站點:
(1)報文被劃分爲16字
(2)用反碼加法將所有字相加
(3)對該和求反形成新的校驗和
(4)如果校驗值爲0則接收,否則丟棄報文。