การสื่อสารแบบดิจิทัล - การเข้ารหัสควบคุมข้อผิดพลาด

สัญญาณรบกวนหรือข้อผิดพลาดเป็นปัญหาหลักในสัญญาณซึ่งรบกวนความน่าเชื่อถือของระบบการสื่อสาร 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.

รหัสวงจรใช้สำหรับการแก้ไขข้อผิดพลาด ส่วนใหญ่จะใช้เพื่อแก้ไขข้อผิดพลาดซ้ำซ้อนและข้อผิดพลาดในการระเบิด

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