การสื่อสารแบบดิจิทัล - การเข้ารหัสควบคุมข้อผิดพลาด
สัญญาณรบกวนหรือข้อผิดพลาดเป็นปัญหาหลักในสัญญาณซึ่งรบกวนความน่าเชื่อถือของระบบการสื่อสาร Error control codingเป็นขั้นตอนการเข้ารหัสที่ทำขึ้นเพื่อควบคุมการเกิดข้อผิดพลาด เทคนิคเหล่านี้ช่วยในการตรวจจับข้อผิดพลาดและการแก้ไขข้อผิดพลาด
มีรหัสแก้ไขข้อผิดพลาดที่แตกต่างกันมากมายขึ้นอยู่กับหลักการทางคณิตศาสตร์ที่ใช้กับรหัสเหล่านี้ แต่ในอดีตรหัสเหล่านี้ถูกแบ่งออกเป็นLinear block codes และ Convolution codes.
รหัสบล็อกเชิงเส้น
ในรหัสบล็อกเชิงเส้นพาริตีบิตและบิตข้อความมีการรวมเชิงเส้นซึ่งหมายความว่าคำรหัสผลลัพธ์คือการรวมเชิงเส้นของคำรหัสสองคำใด ๆ
ให้เราพิจารณาบล็อกข้อมูลบางส่วนซึ่งมี kบิตในแต่ละบล็อก บิตเหล่านี้ถูกแมปกับบล็อกที่มีnบิตในแต่ละบล็อก ที่นี่n มากกว่า k. เครื่องส่งจะเพิ่มบิตที่ซ้ำซ้อนซึ่ง ได้แก่(n-k)บิต วิทยุk/n คือ code rate. แสดงโดยr และค่าของ r คือ r < 1.
(n-k) เพิ่มบิตที่นี่คือ parity bits. พาริตีบิตช่วยในการตรวจจับข้อผิดพลาดและการแก้ไขข้อผิดพลาดและในการค้นหาข้อมูล ในข้อมูลที่กำลังส่งบิตส่วนใหญ่ด้านซ้ายของคำรหัสจะตรงกับบิตข้อความและบิตส่วนใหญ่ทางขวาของคำรหัสจะตรงกับพาริตีบิต
รหัสระบบ
รหัสบล็อกเชิงเส้นใด ๆ สามารถเป็นรหัสระบบได้จนกว่าจะมีการเปลี่ยนแปลง ดังนั้นรหัสบล็อกที่ไม่เปลี่ยนแปลงจึงถูกเรียกว่าเป็นไฟล์systematic code.
ต่อไปนี้เป็นตัวแทนของไฟล์ structure of code wordตามการจัดสรร
หากข้อความไม่ได้รับการเปลี่ยนแปลงจะเรียกว่าเป็นรหัสระบบ หมายความว่าการเข้ารหัสของข้อมูลไม่ควรเปลี่ยนแปลงข้อมูล
รหัส Convolution
จนถึงตอนนี้ในรหัสเชิงเส้นเราได้พูดคุยกันว่าควรใช้รหัสที่ไม่เปลี่ยนแปลงอย่างเป็นระบบ นี่คือข้อมูลทั้งหมดn บิตถ้าส่ง k บิตคือบิตข้อความและ (n-k) บิตเป็นพาริตีบิต
ในกระบวนการเข้ารหัสบิตพาริตีจะถูกลบออกจากข้อมูลทั้งหมดและมีการเข้ารหัสบิตข้อความ ตอนนี้พาริตีบิตถูกเพิ่มอีกครั้งและข้อมูลทั้งหมดจะถูกเข้ารหัสอีกครั้ง
รูปต่อไปนี้เป็นตัวอย่างสำหรับบล็อกข้อมูลและกระแสข้อมูลที่ใช้สำหรับการส่งข้อมูล
กระบวนการทั้งหมดที่ระบุไว้ข้างต้นน่าเบื่อซึ่งมีข้อบกพร่อง การจัดสรรบัฟเฟอร์เป็นปัญหาหลักที่นี่เมื่อระบบไม่ว่าง
ข้อเสียเปรียบนี้ถูกหักล้างด้วยรหัส Convolution โดยที่กระแสข้อมูลทั้งหมดจะถูกกำหนดสัญลักษณ์แล้วส่ง เนื่องจากข้อมูลเป็นสตรีมบิตจึงไม่จำเป็นต้องมีบัฟเฟอร์สำหรับการจัดเก็บ
รหัส Hamming
คุณสมบัติเชิงเส้นของคำรหัสคือผลรวมของคำรหัสสองคำก็เป็นคำรหัสเช่นกัน รหัส Hamming คือประเภทของlinear error correcting รหัสซึ่งสามารถตรวจจับข้อผิดพลาดได้ถึงสองบิตหรือสามารถแก้ไขข้อผิดพลาดหนึ่งบิตได้โดยไม่ต้องตรวจพบข้อผิดพลาดที่ไม่ได้แก้ไข
ในขณะที่ใช้โค้ด hamming จะใช้พาริตีบิตพิเศษเพื่อระบุข้อผิดพลาดบิตเดียว ในการรับจากรูปแบบหนึ่งไปยังอีกรูปแบบหนึ่งจะต้องมีการเปลี่ยนแปลงไม่กี่บิตในข้อมูล จำนวนบิตดังกล่าวสามารถเรียกได้ว่าเป็นHamming distance. หากพาริตีมีระยะห่าง 2 จะตรวจพบการพลิกหนึ่งบิตได้ แต่ไม่สามารถแก้ไขได้ นอกจากนี้ไม่สามารถตรวจพบการพลิกสองบิตใด ๆ
อย่างไรก็ตามโค้ด Hamming เป็นขั้นตอนที่ดีกว่าขั้นตอนที่กล่าวถึงก่อนหน้านี้ในการตรวจจับและแก้ไขข้อผิดพลาด
รหัส BCH
รหัส BCH ตั้งชื่อตามผู้ประดิษฐ์ Bโอเซ่ Chaudari และ Hocquenghem. ในระหว่างการออกแบบรหัส BCH มีการควบคุมจำนวนสัญลักษณ์ที่ต้องแก้ไขและด้วยเหตุนี้การแก้ไขบิตหลายรายการจึงเป็นไปได้ รหัส BCH เป็นเทคนิคที่มีประสิทธิภาพในการแก้ไขรหัสผิดพลาด
สำหรับจำนวนเต็มบวกใด ๆ m ≥ 3 และ t < 2m-1มีรหัสไบนารี BCH อยู่ ต่อไปนี้เป็นพารามิเตอร์ของรหัสดังกล่าว
ความยาวบล็อก n = 2m-1
จำนวนของตัวเลขตรวจสอบความเท่าเทียมกัน n - k ≤ mt
ระยะทางขั้นต่ำ dmin ≥ 2t + 1
รหัสนี้สามารถเรียกได้ว่าเป็น t-error-correcting BCH code.
รหัสวงจร
คุณสมบัติแบบวนรอบของคำรหัสคือการเปลี่ยนวงจรของคำรหัสใด ๆ ก็เป็นคำรหัสเช่นกัน รหัสวงจรเป็นไปตามคุณสมบัติของวงจรนี้
สำหรับรหัสเชิงเส้น Cถ้าทุกคำรหัสคือ C = (C1, C2, ...... Cn)จาก C มีการเลื่อนองค์ประกอบไปทางขวาของวงจรมันจะกลายเป็นคำรหัส การเลื่อนทางขวานี้เท่ากับn-1เลื่อนไปทางซ้าย ดังนั้นจึงไม่เปลี่ยนแปลงภายใต้การเปลี่ยนแปลงใด ๆ ดังนั้นรหัสเชิงเส้นCเนื่องจากไม่เปลี่ยนแปลงภายใต้การเปลี่ยนแปลงใด ๆ จึงสามารถเรียกได้ว่าเป็นไฟล์ Cyclic code.
รหัสวงจรใช้สำหรับการแก้ไขข้อผิดพลาด ส่วนใหญ่จะใช้เพื่อแก้ไขข้อผิดพลาดซ้ำซ้อนและข้อผิดพลาดในการระเบิด
ดังนั้นนี่คือข้อผิดพลาดเล็กน้อยในการแก้ไขรหัสซึ่งจะต้องตรวจพบที่เครื่องรับ รหัสเหล่านี้ป้องกันข้อผิดพลาดจากการแนะนำและรบกวนการสื่อสาร นอกจากนี้ยังป้องกันไม่ให้สัญญาณถูกแตะโดยเครื่องรับที่ไม่ต้องการ มีคลาสของเทคนิคการส่งสัญญาณเพื่อให้บรรลุสิ่งนี้ซึ่งจะกล่าวถึงในบทถัดไป