สารบัญ
 อภิธานศัพท์(Glossary)
 บทคัดย่อ(ไทย อังกฤษ)
 บทนำ
พื้นฐานรหัสควบคุม
ความผิดพลาด
 ประเภทของรหัสควบคุม
ความผิดพลาด
 วิวัฒนาการของรหัสควบคุมความผิดพลาด
 การประยุกต์ใช้รหัสควบคุมความผิดพลาด
 จดหมายเหตุ
 บรรณานุกรม
บทสารานุกรมอื่น ๆ
โทรคมนาคม: นิยามและความหมาย
ประวัติการสื่อสาร
โทรคมนาคมโลก ๑ - โทรเลขและโทรศัพท์
ประวัติการสื่อสาร
โทรคมนาคมโลก ๒ - คลื่นวิทยุและการสื่อสารไร้สาย
ประวัติการสื่อสาร
โทรคมนาคมโลก ๓ - การ
สื่อสารด้วยแสงและการสื่อสารข้อมูลผ่านดาวเทียม
ประวัติการสื่อสาร
โทรคมนาคมโลก ๔-การสื่อสารข้อมูลและเครือข่าย
อินเทอร์เน็ต
ประวัติศาสตร์การสื่อสารไทย: ยุคอดีต
ประวัติศาสตร์การสื่อสาร
โทรคมนาคมไทย: วิวัฒนาการโทรเลขและโทรพิมพ์
ประวัติศาสตร์การสื่อสาร
โทรคมนาคมไทย: องค์การโทรศัพท์แห่งประเทศไทยกับกิจการโทรคมนาคม
ประวัติศาสตร์การสื่อสาร
โทรคมนาคมไทย: ยุคเครือข่าย
อินเทอร์เน็ต
พื้นฐานร่วมเทคโนโลยี
โทรคมนาคมกับการสื่อสาร
มวลชน
พื้นฐานกฎหมายเกี่ยวกับการประกอบกิจการโทรคมนาคม
ความเข้ากันได้ทางแม่เหล็กไฟฟ้าด้านสื่อสาร
วิทยาการการทดสอบทางโทรคมนาคม

วิทยาการวางแผนและการสร้างแผนที่นำทางเทคโนโลยี
โทรคมนาคม

เศรษฐศาสตร์โทรคมนาคม

โซ่คุณค่าของอุตสาหกรรมการสื่อสารโทรคมนาคม
พื้นฐานดัชนีวรรณกรรมสาขาวิศวกรรมไฟฟ้าสื่อสารและ
แขนงที่เกี่ยวข้อง
วิวัฒนาการวิทยุโทรศัพท์ โทรศัพท์เคลื่อนที่และมาตรฐานโทรคมนาคมที่เกี่ยวข้อง
สมาคมวิชาการไฟฟ้า/อิเล็กทรอนิกส์ คอมพิวเตอร์ โทรคมนาคมและสารสนเทศกับกิจกรรมวิชาการ
ชมรมไฟฟ้าสื่อสาร สมาคมสถาบันวิศวกรไฟฟ้าและอิเล็กทรอนิกส์
คลื่นแม่เหล็กไฟฟ้าและความถี่วิทยุเพื่อการสื่อสาร
การบริหารจัดการทรัพยากรการสื่อสารวิทยุเบื้องต้น
รหัสมอร์สเพื่อการสื่อสาร
กล้ำสัญญาณพื้นฐานเพื่อ
การสื่อสาร
พื้นฐานเทคโนโลยีรหัสควบคุมความผิดพลาดสำหรับการ
สื่อสาร
พื้นฐานการแผ่สเปกตรัมสำหรับการสื่อสาร
หลักการของซีดีเอ็มเอ
หลักการเทียบจังหวะสัญญาณโทรคมนาคม
หลักการของปริมาณการใช้งานวงจรสื่อสารและหมายเลขโทรคมนาคม
โครงข่ายการสื่อสารข้อมูลความเร็วสูงเอสดีเอช
พื้นฐานคุณภาพการบริการในเครือข่ายการสื่อสาร
เครือข่ายเฉพาะที่
เทคโนโลยีเอทีเอ็ม 
อินเทอร์เน็ตโพรโทคอล
เวอร์ชัน ๖
โครงข่ายโทรคมนาคมยุคหน้า
 พื้นฐานสายส่งสัญญาณสำหรับการสื่อสาร
 วิทยาการโทรศัพท์พื้นฐานและโครงข่าย
 เทคโนโลยีชุมสายโทรศัพท์พื้นฐาน
หลักการของระบบตรวจสอบคู่สายโทรศัพท์พื้นฐาน
พื้นฐานระบบเทเลกซ์
หลักการทำงานเบื้องต้นของเครื่องโทรสาร
เทคโนโลยีสื่อสารผ่านสายความเร็วสูง: ดีเอสแอล
การสื่อสารผ่านสายไฟฟ้า
โทรเลขเชิงแสง
พื้นฐานการสื่อสารเชิงแสง
พื้นฐานระบบสื่อสารด้วยเส้นใยนำแสง
พื้นฐานระบบเส้นใยนำแสงสู่บ้าน
ระบบสื่อสัญญาณแสงหลายช่องแบบ DWDM
พื้นฐานสายอากาศวิทยุเพื่อการสื่อสาร
สายอากาศฉลาด
เทคโนโลยีการสื่อสารไร้สายระยะใกล้
ระบบการระบุด้วยคลื่นวิทยุหรืออาร์เอฟไอดี
วิทยาการเครือข่ายไร้สายแบบไวไฟ
วิทยุสมัครเล่น
วิทยาการเครือข่ายตรวจวัดสัญญาณแบบไร้สาย
อัลตราไวด์แบนด์สำหรับการสื่อสารไร้สาย
ระบบโทรศัพท์เคลื่อนที่ ๔๗๐ เมกกะเฮิรตซ์
การสื่อสารเหนือพื้นน้ำ
เครือข่ายเคเบิลใต้น้ำและ
การเชื่อมต่อในประเทศไทย
การแพร่ภาพโทรทัศน์พื้นฐาน
การพัฒนาเทคโนโลยี
เครือข่ายโทรทัศน์ไทยทีวีสี ช่อง
เทเลเท็กซ์
การสื่อสารบรอดแบนด์
การสื่อสารบรอดแบนด์ความเร็วสูงผ่านสายไฟฟ้า
เครือข่ายเซ็นเซอร์ไร้สาย
พื้นฐานโครงข่ายการสื่อสารร่วมระบบดิจิทัล
เทคโนโลยีเครือข่ายส่วนตัวแบบเสมือน
เครือข่ายคอมพิวเตอร์เพื่อโรงเรียนไทย
เทคโนโลยีการสื่อสารสำหรับระบบควบคุมการจำหน่ายไฟฟ้า
พื้นฐานระบบสื่อสารสำหรับการจ่ายไฟฟ้า
วิทยาการการสื่อสารข้อมูลจราจรผ่านคลื่นวิทยุกระจายเสียงเอฟเอ็ม
พื้นฐานระบบการสื่อสารเพื่อการบริหารทรัพยากรน้ำ
ระบบโทรมาตรเพื่อการ
ชลประทาน
ระบบการสื่อสารเพื่อการเตือนภัยสึนามิ
ระบบการสื่อสารเพื่อการแจ้งภัยและความปลอดภัยทางทะเล
ของโลก
พื้นฐานการสื่อสารกับหอเตือนภัย
เครือข่ายโทรคมนาคมเพื่อโครงการการพัฒนาภูเก็ต
ระบบสื่อสารกองทัพไทย
พื้นฐานการสื่อสารผ่าน
ดาวเทียม
ประวัติและพัฒนาการของดาวเทียมสื่อสาร
วิทยาการดาวเทียมธีออส
ดาวเทียมไทพัฒ
ดาวเทียมสำรวจทรัพยากรประเทศไทย
การรังวัดด้วยดาวเทียมจีพีเอสเพื่อการสำรวจทางการแผนที่
ระบบสำรวจข้อมูลทางสมุทรศาสตร์และสภาพ
แวดล้อมทางทะเลโดยใช้เทคโนโลยีทุ่นลอยสื่อสารผ่านดาวเทียม

   พื้นฐานเทคโนโลยีรหัสควบคุมความผิดพลาดสำหรับการสื่อสาร
   ( Error Control Coding for Communication Systems )

   ดิสพล ฉ่ำเฉียวกุล
  
ละกองบรรณาธิการ
 

  ๑.อภิธานศัพท์ (Glossary)

 
 

  รหัสควบคุมความผิดพลาด (Error Control Coding)

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

  สัญญาณแทรกสอด (Interference Signal)

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

  การแก้ไขความผิดพลาดแบบล่วงหน้า (Forward Error Correction: FEC)

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

  ๒.บทคัดย่อ up

        รหัสควบคุมความผิดพลาดเป็นหนึ่งในเทคโนโลยีสำหรับลดความผิดพลาดของข่าวสารแบบดิจิทัล ได้รับการนำไปใช้ในระบบสื่อสารหลายประเภทเช่น ระบบโทรศัพท์เคลื่อนที่ ระบบสื่อสารผ่านดาวเทียมและระบบแพร่สัญญาณวีดีทัศน์ดิจิทัล รวมทั้งในระบบจัดเก็บข้อมูลเช่น ฮาร์ดดิสก์และแผ่นคอมแพ็คดิสก์ เป็นต้น พื้นฐานของรหัสควบคุมความผิดพลาด เป็นการนำข่าวสารมาผ่านกระบวนการเข้ารหัส เพื่อแปรสภาพให้กลายเป็นคำรหัสซึ่งมีความทนทานต่อความผิดพลาดตามรูปแบบรหัสที่เลือกใช้งาน คำรหัสที่ได้จากการทำงานถูกนำไปใช้งานตามปกติ และเมื่อต้องการนำข่าวสารกลับคืนมาก็จะนำคำรหัสมาผ่านการถอดรหัส เพื่อกำเนิดข่าวสาร โดยนำคุณสมบัติของรหัส มาใช้ตรวจจับ หรือแก้ไขความผิดพลาด ที่เกิดขึ้น ผลของการนำรหัสควบคุม
ความผิดพลาดมาใช้งานสามารถเพิ่มความน่าเชื่อถือให้แก่ข้อมูลรวมทั้งสามารถนำไปใช้ลดกำลังงานสำหรับส่งสัญญาณ ในระบบสื่อสารได้อันเป็นการเพิ่มประสิทธิภาพของระบบสื่อสารนั้น ๆ รหัสควบคุมความผิดพลาดมีหลายรูปแบบเช่น รหัสแบบแฮมมิ่ง รหัสบีซีเอช รหัสรีดโซโลมอน รหัสคอนโวลูชัน รหัสทีซีเอ็ม รหัสเทอร์โบและรหัสตรวจสอบพาริตี้แบบความหนาแน่นต่ำ เป็นต้น


  Abstract
  up

         Error control coding is a technique to reduce error during data transmission of digital communications and data storage devices. It is widely used to improve communication system performance. such as in mobile communications, satellite communications, and digital video broadcasting systems. In addition, this technique is also used for the same purpose in data storage systems. Basically, the information bit is encoded to be the code word in order to retrieving detection and correction capability. This codeword is transmitted through communication systems or stored in the devices as its purpose. It will then be recovered to be the original form by decoding with related method. The decoder adapts the detecting and correcting capability of the coding scheme to reduce some of error. Using error control coding improves reliability to the information bits and reduces the consumption of transmitted power. There are many types of error control coding scheme, for instance, Hamming code, BCH code, Reed-Solomon (RS) code, convolution code, Trellis-Coded Modulation (TCM), turbo codes, and Low-Density Parity Check (LDPC) code.


  ๓.
บทนำ (Introduction) up

   




                                         

  รูปที่ ๔.๑ พื้นฐานรหัสควบคุมความผิดพลาด
 

          ระบบสื่อสาร (Communication systems) เป็นระบบสำหรับส่งข่าวสาร (Information) โดยใช้สัญญาณทางไฟฟ้า (Electrical waveform) เป็นสื่อเพื่อส่งถ่ายข่าวสารระหว่างภาคส่งและภาครับ รูปแบบของการส่งข่าวสารมีหลายรูปแบบเช่น การส่งสัญญาณในรูปของคลื่นแม่เหล็กไฟฟ้าผ่านอากาศ   การส่งสัญญาณเสียงผ่านสายโทรศัพท์ (Telephone line) และการส่งข้อมูลผ่านสายโคแอค (Coaxial cable) เนื่องจากการเดินทางของสัญญาณผ่านตัวกลางหรือที่เรียกว่าช่องสัญญาณ (Channel) สัญญาณข่าวสารมีโอกาสเกิดการเปลี่ยนแปลงองค์ประกอบทั้งทางขนาด (Amplitude) และมุม (Phase) ได้เพราะว่าสัญญาณมีโอกาสถูกรบกวนจากสัญญาณรบกวน (Noise) รวมถึงเกิดความผิดเพี้ยนอันเนื่องมาจากคุณสมบัติของตัวกลางและอุปกรณ์ที่ใช้งาน ความผิดเพี้ยนนี้ส่งผลให้ข่าวสารที่ถูกส่งไปที่ภาครับมีโอกาสเกิดความคลาดเคลื่อนไปจากข่าวสารต้นฉบับได้ การลดความผิดพลาด (Error) ของข่าวสารสามารถทำได้หลายรูปแบบเช่น การเพิ่มกำลังงาน (Power) สำหรับส่งสัญญาณ เพื่อเพิ่มความแตกต่างระหว่างสัญญาณข่าวสาร และสัญญาณรบกวน   การปรับปรุง
อุปกรณ์ในระบบสื่อสารให้มีความทนทานต่อสัญญาณรบกวนและการใช้รหัสควบคุมความผิดพลาด (Error Control Coding: ECC) เป็นต้น
        สำหรับรหัสควบคุมความผิดพลาดเป็นเทคโนโลยีลดความผิดพลาดของข่าวสารสำหรับระบบสื่อสารแบบดิจิทัล (Digital communication systems) ซึ่งได้รับการนำไปใช้ ในระบบสื่อสารหลายประเภท เช่น ระบบโทรศัพท์เคลื่อนที่ (Mobile communications) ระบบสื่อสารผ่านดาวเทียม (Satellite communications) และ ระบบแพร่สัญญาณวีดีทัศน์ดิจิทัล (Digital Video Broadcasting: DVB) นอกจากนั้นรหัสควบคุมความผิดพลาด ได้ถูกนำไปใช้ในระบบจัดเก็บข้อมูล (Data storage systems) เช่น ฮาร์ดดิสก์ (Harddisk) และแผ่นคอมแพ็คดิสก์ (Compact disk) เป็นต้น การนำรหัสควบคุมความผิดพลาดมาใช้งานสามารถลดความต้องการกำลังงานสำหรับส่งสัญญาณซึ่งเป็นประโยชน์อย่างยิ่งแก่ระบบสื่อสารบางประเภทที่จำเป็นต้องส่งข่าวสาร ในระยะทางไกลหรือมีข้อจำกัดเป็นพิเศษทางด้านกำลังงานของอุปกรณ์ส่งสัญญาณ การส่งข้อมูลในอวกาศที่มีระยะทางไกล (Deep space communications) เป็นตัวอย่างหนึ่ง ของระบบสื่อสาร ที่นำรหัสควบคุมความผิดพลาดมาใช้งาน การปรับปรุงระบบสื่อสารประเภทนี้ ให้มีกำลังส่งสัญญาณเพิ่มขึ้นแม้เพียงเล็กน้อย ก็จำเป็นต้องใช้เงินทุนมหาศาล นอกเหนือจากการใช้งาน ในระบบสื่อสารแล้ว รหัสสำหรับควบคุมความผิดพลาด ถูกใช้เพื่อปกป้องข่าวสาร ใน
คอมพิวเตอร์และอุปกรณ์บันทึกข้อมูล ด้วยที่คำรหัสที่กำเนิดขึ้นมาจากกระบวนการเข้ารหัส ในแต่ละครั้ง มีปริมาณมากกว่าบิตข่าวสารที่ปราศจากการเข้ารหัสเสมอดังนั้นระบบสื่อสารที่นำรหัสควบคุมความผิดพลาดมาใช้งานจำเป็นต้องส่ง




                                                                                                           

  รูปที่ ๔.๒ การใช้รหัสควบคุมความผิดพลาดในระบบสื่อสาร
 

        ข้อมูลผ่านตัวกลางด้วยอัตราเร็วที่เพิ่มขึ้นหรือต้องการแบนด์วิด (Bandwidth) หรือช่วงความถี่ (Frequency) ที่ใช้เพื่อการส่งสัญญาณเพิ่มขึ้น สำหรับระบบจัดเก็บข้อมูลการนำรหัสควบคุมความผิดพลาดมาใช้งานส่งผลให้ข้อมูลที่จำเป็นต้องบันทึกลงในอุปกรณ์มีขนาดเพิ่มขึ้น
       พื้นฐานของรหัสควบคุมความผิดพลาดมีการทำงานดังรูป ๔.๑ เป็นการนำบิตข่าวสารมาผ่านการเข้ารหัส (Encoding) เพื่อแปรสภาพให้อยู่ในรูปของคำรหัส (Code word) ก่อนการนำไปส่งผ่านระบบสื่อสารหรือบันทึกลงสื่อตามปกติ คำรหัสเป็นข้อมูลที่มีคุณสมบัติพิเศษโดยสามารถนำมาใช้ตรวจจับ(Detection) หรือแก้ไข (Correction) ความผิดพลาดได้ เมื่อต้องการนำบิตข่าวสารกลับคืนมาก็จะนำคำรหัสที่รับได้มาผ่านการถอดรหัส (Decoding)   เพื่อตรวจจับหรือแก้ไขความผิดพลาด
        พื้นฐานของรหัสควบคุมความผิดพลาด มีความเกี่ยวข้องกับทฤษฏีข่าวสารของแชนนอน (Shannon's Information theory) ซึ่งเป็นทฤษฏีเกี่ยวกับคณิตศาสตร์สำหรับระบบสื่อสารที่ได้รับการนำเสนอใน พ.ศ.๒๔๙๑ โดย โคลด เอลวูด แชนนอน (Claude Elwood Shannon) [๑] ภายหลังจากการนำ เสนอทฤษฏีข่าวสารมีการพัฒนารหัสสำหรับควบคุมความผิดพลาดในลักษณะต่าง ๆ เช่น รหัสแฮมมิ่ง (Hamming code) [๒] รหัสบีซีเอช (BCH Code) [๓][๔] รหัสรีดโซโลมอน (Reed Solomon: RS) [๕] รหัสคอนโวลูชัน (Convolution code) [๖] รหัสทีซีเอ็ม (Trellis-Coded Modulation: TCM) [๗][๘] รหัสเทอร์โบ (Turbo code) [๙] และรหัสตรวจสอบพาริตี้แบบความหนาแน่นต่ำ (Low-Density Parity Check: LDPC) [๑๐] เป็นต้น
 

  ๔.พื้นฐานรหัสควบคุมความผิดพลาด (Principle of Error Control Coding)  up

         รหัสควบคุมความผิดพลาด มีกระบวนการทำงานที่สำคัญได้แก่ “กระบวนการเข้ารหัส ” (Encoding) และ “กระบวนการถอดรหัส” (Decoding) ระบบสื่อสารที่นำรหัสควบคุมความผิดพลาดมาใช้งานมีการทำงานดังรูปที่ ๔.๒ การทำงานที่ภาคส่ง (Transmitter) เป็นการนำบิตข่าวสารมาผ่านการเข้ารหัสเพื่อแปรสภาพให้กลายเป็นข้อมูลคำรหัส (Codeword) ซึ่งมีประสิทธิภาพในการแก้ไขหรือตรวจจับความผิดพลาดกันตามรูปแบบของรหัสที่ใช้งาน คำรหัสที่คำนวณได้ถูกส่งต่อไปที่ภาคผสมสัญญาณ (Modulator) เพื่อกำเนิดสัญญาณที่มีคุณสมบัติเหมาะสมต่อการส่งผ่านช่องสัญญาณ (Channel) เช่น อากาศ สายโทรศัพท์และสายโคแอค เป็นต้น
        การทำงานที่ภาครับ (Receiver) เป็นการนำสัญญาณที่รับได้มาคำนวณด้วยภาคแยกสัญญาณ (Demodulator) เพื่อกำเนิดข้อมูล ซึ่งแสดงถึงคำรหัส มีการนำข้อมูลคำรหัสที่ถูกตรวจจับได้มาผ่านกระบวนการ
ถอดรหัส เพื่อแปลงข้อมูลให้กลายเป็นบิตข่าวสาร และนำไปใช้งานต่อไปพร้อมทั้งทำการควบคุมข้อมูลให้อยู่ในรูปแบบที่คาดว่าจะถูกต้องมากยิ่งขึ้น   การนำรหัสควบคุมความผิดพลาดมาใช้งานทำให้ความต้องการค่าอัตราส่วน ระหว่างกำลังส่งสัญญาณข้อมูลต่อกำลังของสัญญาณรบกวน (Signal to Noise Ratio: SNR)  ในการส่งสัญญาณข้อมูลเพื่อให้อัตราการเกิดความผิดพลาดมีค่าอยู่ในระดับที่ใช้งานได้มีค่าลดค่าลงซึ่งเป็นการดีแก่ระบบสื่อสารเนื่องจากทำให้สามารถประหยัดพลังงาน และลดต้นทุนในการผลิตอุปกรณ์ได้  อย่างไรก็ตาม ด้วยที่คำรหัสที่ต้องส่งผ่านระบบสื่อสาร ต้องมีปริมาณมากกว่าบิตข่าวสารต้นฉบับเสมอดังนั้นระบบสื่อสาร ที่นำเทคโนโลยีนี้มาใช้งานจำเป็นต้องใช้แบนด์วิด (Bandwidth) เพื่อการส่งสัญญาณมากขึ้น




                                          

รูปที่ ๕. ประเภทของรหัสควบคุมความผิดพลาด
 

 

  ๕.ประเภทของรหัสควบคุมความผิดพลาด (Type of Error Control Coding)   up

        รูปแบบของรหัสควบคุมความผิดพลาดสามารถจำแนกประเภทได้ดังรูป ๕.๑ โดยสามารถแบ่งออกเป็นสองรูปแบบได้แก่ การแก้ไขความผิดพลาดแบบส่งซ้ำอัตโนมัติ (Automatic Repeat Request: ARQ) และการแก้ไขความผิดพลาดแบบล่วงหน้า (Forward Error Correction: FEC) การแก้ไขความผิดพลาดแบบส่งซ้ำอัตโนมัติเป็นการนำคุญสมบัติของการตรวจจับความผิดพลาดของรหัสมาใช้งาน ระบบที่ใช้หลักการนี้มีการนำคำรหัสที่รับได้มาทำการตรวจจับความผิดพลาดที่เกิดขึ้น หากพบว่าข้อมูลที่ถอดรหัส ได้เกิดความผิดพลาด ก็จะดำเนินการขอ(Request)  ให้ส่งข้อมูลดังกล่าวมา อีกครั้งหนึ่ง
รูปแบบของการรับและส่งข้อมูลมีหลายรูปแบบ (Protocol) เช่น แบบหยุดและรอ (Stop & Wait) แบบถอยหลัง (Go-Back-N) และแบบเลือกส่ง (Selective repeat) เป็นต้น การแก้ไขความผิดพลาด  แบบล่วงหน้า  เป็นการนำคุณสมบัติ  ในการแก้ไขความผิดพลาดมาใช้งาน มีการนำคำรหัส  ที่รับได้ที่ภาครับมาประมวลผลเพื่อกำเนิดบิตข่าวสาร พร้อมทั้งทำการแก้ไขบิตข่าวสารที่คาดว่าเกิดความผิดพลาดขึ้น การแก้ไขความผิดพลาดแบบล่วงหน้านิยมแบ่งออกเป็นสองประเภท ได้แก่ รหัสแบบบล็อก (Block code) และรหัสคอนโวลูชัน (Convolution code) สำหรับรหัสแบบบล็อกเป็นรหัสที่นำบิตข่าวสารมาแบ่งเป็นบล็อกย่อยๆ ซึ่งมีขนาดเท่ากันเพื่อนำมาเข้า หรือถอดรหัส ผลลัพธ์ที่ได้จากการทำงาน ของภาคเข้าหรือถอดรหัส ณ เวลาใด ๆ จะขึ้นอยู่กับรูปแบบ ของข้อมูลที่ป้อนเข้าสู่วงจร ณ ขณะนั้น รหัสแต่ละประเภทมีรูปแบบการเข้าและถอดรหัสรวมทั้งมีขีดความสามารถของการป้องกันความผิดพลาดที่แตกต่างกัน สำหรับรหัสแบบคอนโวลูชัน เป็นการเข้ารหัสข้อมูล ในลักษณะต่อเนื่องมากกว่ารหัสแบบบล็อก มีการนำอุปกรณ์ประเภทหน่วยความจำ (Memory)มาใช้ที่ภาคเข้ารหัสเพื่อให้สามารถนำบิตข่าวสารที่ถูกป้อนเข้าสู่วงจร ณ ในอดีตมาคำนวณร่วมกับข้อมูลที่ป้อนเข้ามา ณ ปัจจุบันรหัสคอนโวลูชันถูกพัฒนาขึ้นเพื่อรองรับการใช้งานสำหรับระบบสื่อสารที่มีการส่งข้อมูลด้วยอัตราเร็วสูงเช่น ระบบสื่อสารผ่านดาวเทียมและระบบโทรศัพท์เคลื่อนที่ เป็นต้น

  ๖.วิวัฒนาการของรหัสควบคุมความผิดพลาด (Evolution of Error Control Coding)  up

        พื้นฐานของรหัสควบคุมความผิดพลาดเริ่มต้นขึ้นหลังจากการนำเสนองานวิจัยเรื่อง “A mathematical theory of communication” [๑] ใน พ.ศ. ๒๔๙๑ โดย โคลด เอลวูด แชนนอน ในบทความแสดงให้เห็นว่าการส่งข้อมูลด้วยอัตราเร็วต่ำกว่าความจุช่องสัญญาณ (Channel capacity) สามารถออกแบบรหัส ที่สามารถทำให้ระบบมีอัตราความผิดพลาดบิตอยู่ในระดับต่ำต ามที่ต้องการได้ อย่างไรก็ตาม ในบทความของแชนนอนมิได้กล่าวถึงรูปแบบของ
รหัสที่สามารถใช้งานเพื่อให้บรรลุขีดจำกัดดังกล่าวได้ ดังนั้นในภายหลังจึงได้มีการคิดค้นรูปแบบของรหัสควบคุมความผิดพลาดในลักษณะต่างๆ ขึ้น
        งานวิจัยในช่วงเริ่มแรกเป็นการนำทฤษฏีทางพีชคณิต (Algebraic theory) และทฤษฏีความน่าจะเป็น (Probability theory) มาใช้เพื่อพัฒนารหัสควบคุมความผิดพลาด รหัสควบคุมความผิดพลาดรูปแบบแรกที่ได้รับการพัฒนาก็คือรหัสแฮมมิ่ง (Hamming code) พัฒนาขึ้นใน พ.ศ. ๒๔๙๓ โดย ริชาร์ด แฮมมิ่ง(Richard Hamming) เป็นรหัสแบบบล็อกที่มีคุณสมบัติเชิงเส้น (Linear block code) และมีความสามารถตรวจจับและแก้ไขความผิดพลาดของข้อมูลได้หนึ่งบิตต่อบล็อก ในเวลาต่อมา มีการพัฒนารหัสแบบบล็อกขึ้นมาหลายชนิด ใน พ.ศ.๒๕๐๓ และ พ.ศ.๒๕๐๒ อาร์ ซี โบส (R. C. Bose) กับ    ดี เค เรย์ ชอร์ฮูรี (D. K. Ray-Chaudhuri) และ เอ ฮอร์คเคนแฮม (A. Hocquenghem) [๓][๔] ได้พัฒนารหัสสำหรับแก้ไขความผิดพลาดต่อบล็อกได้มากกว่าหนึ่งบิต ใน พ.ศ.๒๕๐๓ ไอ เอส รีด (I. S. Reed) และ จี โซโลมอน (G. Solomon) ได้นำเสนอรหัสรีดโซโลมอนซึ่งมีขีดความสามารถในการแก้ไขความผิดพลาดแบบต่อเนื่อง (Burst error) มาก
        สำหรับรหัสแบบคอนโวลูชันเริ่มได้รับการกล่าวถึงเป็นครั้งแรกใน พ.ศ.๒๔๙๘ โดย พี อีเลียส (P. Elias) [๖] ในภายหลังได้มีการพัฒนาการถอดรหัสแบบคอนโวลูชันขึ้นหลายรูปแบบเช่น แบบซีเควนเชียล (Sequential decoding) แบบเทรชโฮล (Threshold decoding) และ แบบไวเทอร์บิ (Viterbi decoding) เป็นต้นโดยที่การถอดรหัสแบบไวเทอร์บิ เป็นรูปแบบการถอดรหัสซึ่งนิยมใช้งานมากที่สุด เนื่องจากให้ผลลัพธ์ ในการแก้ไขความผิดพลาดที่เหมาะสมในขณะที่กระบวนการถอดรหัสมีความซับซ้อนไม่มากเกินไป นอกเหนือจากการพัฒนารหัสแล้ว มีการนำรหัสตั้งแต่สองรูปแบบเป็นต้นไป มาทำงานร่วมกันซึ่งเรียกว่าการคอนคาทเนชั่น (Concatenation) เพื่อให้มีขีดความสามารถในการแก้ไขความผิดพลาดดียิ่งขึ้นในขณะที่อุปกรณ์สำหรับเข้าและถอดรหัสมีความซับซ้อนเพิ่มขึ้นไม่มากเกินไป รหัสที่นิยมนำมากระทำการคอนคาทเนชั่นได้แก่รหัสคอนโวลูชันและรหัสรีดโซโลมอน
        ใน พ.ศ.๒๕๑๗ งานวิจัยของ เจ แอล แมสีย์ (J. L. Massey) ได้กล่าวถึงการเพิ่มขีดความสามารถ  แก่ระบบสื่อสาร  ด้วยการนำการทำงาน ของการ
มอดุเลตและรหัสควบคุมความผิดพลาดมาออกแบบและใช้งานร่วมกัน[๗]ซึ่งต่อมาใน พ.ศ.2525 กอทไฟร์ อันเกอร์โบร์ค(Gottfried Ungerboeck)[๘] ได้นำเสนอถึงพื้นฐานของรหัสแบบทีซีเอ็ม(Trellis-Coded Modulation:TCM) สำหรับระบบสื่อสาร ที่จำเป็นต้องส่งข้อมูล ด้วยอัตราเร็วสูง ภายใต้ระบบ
สื่อสารที่มีข้อจำกัด  ในการส่งสัญญาณเป็นพิเศษ เช่น ระบบสื่อสารในอวกาศ และการรับส่งข้อมูลผ่านสายโทรศัพท์โดยใช้อุปกรณ์ประเภทโมเด็ม เป็นต้น แนวคิดเพื่อการออกแบบ ในลักษณะเดียวกันนี้ก็ได้รับการนำเสนอเช่นกันใน พ.ศ. ๒๕๒๐ โดย เอ็ช อิไม (H. Imai) และเอส ฮิราคาวา(S.Hirakawa) [๙]
        ต่อมา พ.ศ.๒๕๓๖ แอลง กลาวิเออ (Alain Glavieux) โคลด แบร์รู (Claude Berrou) และ ปัญญา ฐิติมัชฌิมา ได้นำเสนอหลักการเข้าและถอดรหัสแบบเทอร์โบ (Turbo code) [๑๐] เป็นรหัสซึ่งนำชุดเข้าและถอดรหัสแบบอาร์เอสซี (Recursive Systematic Convolution: RSC) จำนวนตั้งแต่สองชุดเป็นต้นไปมาทำงานร่วมกันในลักษณะขนานและปรับรูปแบบการถอดรหัสให้มีการทำงานเป็นแบบวนซ้ำ (Iterative decoding) รหัสเทอร์โบมีขีดความสามารถในการแก้ไขความผิดพลาดสูงมากเมื่อเปรียบเทียบ กับรหัสควบคุมความผิดพลาดรูปแบบอื่นๆ ณ ขณะนั้น และถูกนำไปใช้ในระบบสื่อสารหลาย
รูปแบบ เช่น ระบบโทรศัพท์เคลื่อนที่ยุคที่สาม (3G) ระบบแพร่สัญญาณวีดีทัศน์ดิจิทัล และระบบสื่อสารในอวกาศ ซึ่งมีระยะทางไกลมาก (Deep Space Communications) เป็นต้น
        นอกเหนือจากรหัสเทอร์โบแล้วรหัสตรวจสอบพาริตี้แบบความหนาแน่นต่ำก็เป็นรหัสอีกประเภทที่ได้รับการกล่าวถึง รหัสชนิดนี้ได้รับการพัฒนาขึ้นมา
ตั้งแต่ พ.ศ.๒๕๐๕ โดย อาร์ จี กาลาเกอร์ (R. G. Gallager) [๑๑] ทว่ายังมีการกล่าวถึงค่อนข้างน้อย จนกระทั่งใน พ.ศ.๒๕๓๙ ดี เจ ซี แมกกี้ (D. J. C. Mackey) และ  อาร์ เอ็ม นีล (R.M.Neal) [๑๒]ได้นำรหัสชนิดนี้ กลับมาใช้งานอีกครั้งหนึ่ง รหัสรหัสตรวจสอบพาริตี้แบบความหนาแน่นต่ำเ ป็นรหัสที่ได้รับ
ความสนใจและนำไปประยุกต์ใช้ในงานประเภทต่างๆ เพราะให้ผลลัพธ์ได้ใกล้เคียงกับขีดจำกัดตามทฤษฏีข่าวสารของแชนนอนรวมทั้งมีโครงสร้างของการถอดรหัสที่มีความซับซ้อนน้อยกว่าภาคถอดรหัสแบบเทอร์โบในบางครั้งรหัสตรวจสอบพาริตี้แบบความหนาแน่นต่ำถูกเรียกว่าเป็นรหัสกาลาเกอร์ (Gallager code) เพื่อให้เกียรติแก่ อาร์ จี กาลาเกอร์ ในฐานะผู้ค้นพบรหัสชนิดนี้

  ๗.การประยุกต์ใช้รหัสควบคุมความผิดพลา (Applications of Error Control Coding)   up

        เทคโนโลยีสำหรับรหัสควบคุมความผิดพลาดได้ถูกพัฒนาขึ้นทั้งในลักษณของซอฟท์แวร์และฮาร์ดแวร์ สำหรับซอร์ฟแวร์นั้นส่วนใหญ่มีจำหน่ายหรือเผยแพร่ทั่วไป ในลักษณะของโมดูลหรือไลบรารี่ (Library) เพื่อการศึกษาเรื่องการออกแบบระบบขั้นต้น ส่วนทางด้านฮาร์ดแวร์นั้น ถูกติดตั้งในอุปกรณ์สำหรับระบบสื่อสาร และระบบจัดเก็บข้อมูลหลายประเภท อุปกรณ์สำหรับเข้าและถอดรหัส อาจอยู่ในรูปของวงจรอิเล็กทรอนิกส์ อุปกรณ์ประมวลผลสัญญาณดิจิทัล (Digital Signal Processing: DSP) เอฟพีจีเอ (Field Programmable Gate Array: FPGA) และ ไอซีเฉพาะกิจ (Application Specific Integrated Circuit: ASIC) สำหรับการนำรหัสควบคุมความผิดพลาดมาใช้ในอุปกรณ์จัดเก็บข้อมูลเช่น ฮาร์ดดิสในเครื่องคอมพิวเตอร์ เทปแม่เหล็กและคอมแพ็คดิสก์มักนำการแก้ไขความผิดพลาดแบบล่วงหน้าแบบบล็อกหลายรูปแบบมาใช้งาน มีการนำรหัสรหัสรีดโซโลมอน มาใช้เพื่อแก้ความผิดพลาดในอุปกรณ์บันทึกข้อมูลประเภทแผ่นแม่เหล็ก (Magnetic disk) ซึ่งมักเกิดความผิดพลาดแบบต่อเนื่องและการสูญหายของข้อมูล
        สำหรับการสื่อสารในอวกาศที่มีระยะทางไกลซึ่งมีข้อจำกัดเป็นพิเศษในเรื่องกำลังงานสำหรับส่งสัญญาณ การเพิ่มกำลังงานเพื่อส่งสัญญาณแค่เพียงเล็กน้อยก็ส่งผลให้มีความจำเป็นต้องใช้เงินเพิ่มขึ้นอย่างมหาศาล มีการนำรหัสควบคุมความผิดพลาดหลายประเภทเช่น รหัสคอนโวลูชันและรหัสเทอร์โบ มาใช้เพื่อลดความต้องการกำลังงานสำหรับส่งสัญญาณซึ่งสามารถช่วยลดต้นทุนของระบบสื่อสารได้ สำหรับภารกิจต่าง ๆ ขององค์การบริหารอากาศยานและอวกาศ (National Aeronautics and Space Administration: NASA) ประเทศสหรัฐอเมริกา เช่นภารกิจโวยาเจอร์ (Voyager) ใน พ.ศ.๒๕๒๐ ภารกิจไพโอเนียร์ ๙ (Pioneer 9) ใน พ.ศ.๒๕๑๑ และภารกิจไพโอเนียร์ทูแซทเทอร์น (Pioneer II Saturn) ใน พ.ศ. ๒๕๑๖ ได้นำรหัสคอนโวลูชันมาใช้งาน ระบบสื่อสารในอวกาศตามมาตรฐานของหน่วยงานคณะกรรมการที่ปรึกษาระบบจัดการข้อมูลในอวกาศ (Consultative Committee for Space Data Systems: CCSDS) ก็นำรหัสเทอร์โบมาใช้งานเช่นกัน การส่งข้อมูลดิจิทัลผ่านสายโทรศัพท์ซึ่งมีแบนด์วิดสำหรับการส่งสัญญาณค่อนข้างจำกัดเมื่อเปรียบเทียบกับอัตราเร็วของการส่งข่าวสารมีการนำรหัสเทรลลิสสำหรับการผสมสัญญาณแบบหลายระดับมาใช้งานในอุปกรณ์รับและส่งสัญญาณที่เรียกว่าโมเด็มตามมาตรฐาน วี ๓๒ (V.32) และ วี ๓๓ (V.33)
        สำหรับโทรศัพท์เคลื่อนที่ยุคที่สามซึ่งมีมาตรฐานสำหรับระบบสื่อสารหลายรูปแบบเช่น มาตรฐาน ทีเอส๒๕๒.๒๑๒ (TS25.212) ของระบบดับบลิวซีดีเอ็มเอ (W-CDMA) ซึ่งกำหนด  โดยสหพันธ์โทรคมนาคมนานาชาติ (International Telecommunication Union: ITU ) และ มาตรฐานซี.เอส๐๐๐๒-เอ (C.S0002-A)ของระบบซีดีเอ็มเอ ๒๐๐๐(CDMA2000) ของสมาคมอุตสาหกรรมโทรคมนาคม(Telecommunication Industry Association: TIA) เป็นต้น มีการนำรหัสคอนโวลูชัน และรหัสเทอร์โบมาใช้งาน มีการนำรหัสเทอร์โบแบบบล็อก ไปใช้ในมาตรฐานไอทริปเปิลอี ๘๐๒.๑๖ (IEEE 802.16)  สำหรับ
เครือข่ายไร้สายภายในเมืองขนาดใหญ่ (Wireless Metropolitan Area Network)

 

  ๘.จดหมายเหตุ (Milestones)  up
       หลักการของรหัสควบคุมความผิดพลาดที่มีความสำคัญมีลำดับของการพัฒนา ดังตารางที่ ๘.๑

        ตารางที่ ๘.๑ ลำดับการพัฒนารหัสควบคุมความผิดพลาด

..
(..)
 


ลำดับเหตุการณ์สำคัญ


๒๔๙๑
(๑๙๔๘)
 


โคลด เอลวูด แชนนอน
นำเสนอบทความเกี่ยวกับทฤษฏีข่าวสาร


๒๔๙๓
(๑๙๕๐)
 


ริชาร์ด แฮมมิ่งพัฒนารหัสแฮมมิ่ง
(Hamming code)
 


๒๕๐๒
(๑๙๕๙)


อาร์ ซี โบส กับ ดี เค เรย์ ชอร์ฮูรี และ เอ ฮอร์คเคนแฮมพัฒนารหัส
สำหรับแก้ไขความผิดพลาดมากกว่าหนึ่งบิตต่อบล็อก
 


๒๕๐๓
(๑๙๖๐)
 

ไอ เอส รีด และ จี โซโลมอนพัฒนารหัสรีดโซโลมอน (Reed Solomon code)


๒๔๙๘
(๑๙๕๕)
 


พี อีเลียส อัสนำเสนอรหัสคอนโวลูชัน
(Convolution code)


๒๕๐๕
(๑๙๖๒)
 


อาร์ จี กาลาเกอร์นำเสนอรหัสตรวจสอบพาริตี้แบบความหนาแน่นต่ำ
(Low-Density Parity Check code: LDPC)


๒๕๒๕
(๑๙๘๒)
 


กอทไฟร์  อันเกอร์โบร์คพัฒนารหัสทีซีเอ็ม
(Trellis-Coded Modulation: TCM)


๒๕๓๖
(๑๙๙๓)
 


แอลง กลาวิเออ
(Alain Glavieux) โคลด แบร์รู (Claude Berrou) และ ปัญญา ฐิติมัชฌิมา
นำเสนอรหัสเทอร์โบ
(Turbo code)


๒๕๓๙
(๑๙๙๖)
 


นำรหัสตรวจสอบพาริตี้แบบความหนาแน่นต่ำกลับมาใช้งานใหม่


 
  .บรรณานุกรม  up
[ ๑ ]  C. E. Shannon,“A mathematical theory of communication,” Bell Syst.Tech. J.,Vol. 27, pp. 379-423 (Part one),pp.623-656 (Part two), 1948.

[ ๒ ]  M. Y. Rhee, Error-Correcting Coding Theory, McGraw-Hill publishing, 1989.

[ ๓ ]  R. C. Bose, and D. K. Ray-Chaudhuri, “On a Class of Error-Correcting Binary Group Codes,” Inf. Control., pp. 68-79, 1960.

[ ๔ ]  A. Hocquenghem, “Code Corecteurs d'erreurs,” Chiffers, pp. 144-156, 1959.

[ ๕ ]  I. S. Reed, and G. Solomon, “Polynomial Codes over Certain Finites,” J. Soc. Ind. Appl. Math., pp. 38-49, 1959.

[ ๖ ]  P. Elias, “Coding for noisy channels,” IRE Conv. Rec., pp. 37-46, 1955.

[ ๗ ]  J. L. Massey, “Coding and modulation in digital communication,” Proc., 1974.

[ ๘ ]  G.Ungerboeck, “Channel coding with multilevel/phase signals,” IEEE Trans.Inform. Theory, Vol. IT-28, No. 1, pp. 55-67, Jan. 1982.

[ ๙ ]  H. Imai and S. Hirakawa, “A new multilevel coding method using error correcting codes,” IEEE Trans. Inf. Theory, Vol. IT-23, pp. 371-377, 1977.

[๑๐] C. Berrou, A. Glavieux, P.Thitimajshima, “Near Shannon Limit Error-correcting Coding and Decoding: Turbo-Codes,” Proc. in ICC’93, pp. 1064-1070, May 1993.

[๑๑] R. G. Gallager, “Low-density parity-check codes,”, IRE Trans. on Info. Theory, vol. IT-8, pp. 21-28, Jan. 1962.

[๑๒] D. J. C. Mackay and R. M. Neal, “Near Shannon limit performance of low density parity check codes,” Electron. Lett., vol. 32, pp. 1645–1646, Aug. 1996.