วันจันทร์ที่ 17 สิงหาคม พ.ศ. 2552

Week 7 ... 11 August 2009

Error Detection and Correction

  • Types of errors
- Single Bit error ความผิดพลาดของข้อมูลแบบบิตเดียว
- Burst error ความผิดพลาดของข้อมูลแบบหลายบิต
  • Error detection

- Parity Check 1. Simple Parity Check วิธีการนี้ใช้บิตตรวจสอบ หรือ parity ส่งไปพร้อมกับบิตข้อมูลจริง ก่อนที่จะส่งข้อมูลออกไปได้จะต้องคำนวณหา parity เสียก่อน และหาได้ 2 วิธี คือ Evev parity และ Odd parity

2. Two Dimensional Parity Check สามารถตรวจสอบความผิดพลาดได้ดีกว่าแบบ Simple Parity Check จะนำบิตของข้อมูลที่ต้องการส่งออกมาทำเป็นตาราง โดยจะคำนวณหา parity ทั้งแนวนอนและแนวตั้ง

- Cyclic Redundancy Check (CRC) หลักการทำงานจะแตกก่างจาก parity โดย CRC จะใช้การหาร และจะต้องนำบิตที่ได้จากการตรวจสอบไปต่อท้ายของข้อมูล

การหาบิตตรวจสอบ ใช้กระบวนการหารแบบ modulo 2 ซึ่งจะไม่มีการทดสำหรับการบวกและไม่มีการยืมสำหรับการลบ การลบแบบนี้จะเหมือนการนำบิตข้อมูลมา XOR กัน การตรวจสอบความผิดพลาดของข้อมูล เมื่อผู้รับได้รับบิตข้อมูลรวมทั้งบิตตรวจสอบที่อยู่ส่วนท้ายของบิตข้อมูลแล้ว จะใช้วิธีการหารแบบ modulo 2 เช่นกันถ้าเศษของการหารเท่ากับ 0 หรือหารลงตัว แสดงว่าข้อมูลชุดนี้เป็นข้อมูลที่ถุกต้อง

- Polynomial ปกติแล้วในการแทนบิตข้อมูลของตัวหารจะไม่ใช้รูปฐานสอง แต่จะเขียนให้อยู่ในรูปของ Polynomial และในการเลือกตัวหารเพือที่จะนำมาใช้ในกับวิธีแบบ CRC นั้น ควรจะต้องมีคุณสมบัติอย่างน้อยดังนี้ ไม่ควรที่จะถูกหารด้วย x ลงตัว ควรที่จะหารด้วย x + 1 ลงตัว

- Checksum

การหาบิตตรวจสอบ จะต้องแบ่งข้อมูลออกเป็นเซกเมนต์ก่อน โดยแต่ละเซกเมนต์จะต้องมีข้อมูล n บิต จากนั้นนำข้อมูลมาบวกกันด้วยวิธี 1's complement ซึ่งจะได้ผลลัพธ์ออกมาเป็น n บิต แล้วนำผลลัพธ์มาทำ complement ผลที่ได้จะต้องนำไปต่อท้ายของบิตข้อมูลก่อนที่จะส่งออกไป การตรวจสอบความผิดพลาดของข้อมูล เมื่อข้อมูลถึงผู้รับ 1. รวบรวมข้อมูลแต่ละเซกเมนต์ๆละ n บิต 2. นำข้อมูลมาบวกกันด้วยวิธี 1' s complement 3. นำผลรวมมาทำ complement 4. ถ้าผลที่ได้เท่ากับ 0 แสดงว่าข้อมูลชุดนี้ถูกต้อง

  • Error Correction

- Retranmission เมื่อผู้รับตรวจสอบแล้วว่ามีความผิดพลาดของข้อมูล จะต้องทำการส่งไปบอกกับทางผู้ส่งว่าให้ส่งข้อมูลกับมาอีกครั้ง

- Forward Error Correction เป็นเทนนิคที่ทำให้ผู้รับข้อมูลที่ผิดพลาดนั้นมาสารถที่จะแก้ไขความผิดของได้เอง แต่มีความยุ่งยากและต้องการจำนวนบิตตรวจสอบที่มากขึ้น เทคนิคนี้สามารถใช้ได้กรณีข้อมูลที่มีความผิดพลาดเกิดขึ้นบิตเดียว โดยกำหนดให้ m เป็นบิตข้อมูล ส่วน r เป็นบิตตรวจสอบ ดังนั้นข้อมูลที่ต้องส่งจริงคือ m + r