Channel Coding คืออะไร?

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

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

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

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

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

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