ในระบบดิจิทัลข้อมูลที่ส่งสำหรับ การสื่อสาร อาจเสียหายได้เนื่องจากเสียงภายนอกและความล้มเหลวทางกายภาพอื่น ๆ หากข้อมูลที่ส่งไม่ตรงกับข้อมูลอินพุตที่ระบุจะเรียกว่า 'ข้อผิดพลาด' ข้อผิดพลาดของข้อมูลสามารถลบข้อมูลสำคัญในระบบดิจิทัลได้ การถ่ายโอนข้อมูลจะอยู่ในรูปของบิต (0 และ 1) ในระบบดิจิทัล หากมีการเปลี่ยนแปลงบิตใด ๆ ประสิทธิภาพของระบบทั้งหมดอาจได้รับผลกระทบ หากบิต ‘1’ เปลี่ยนเป็นบิต ‘0’ หรือในทางกลับกันจะเรียกว่าบิตผิดพลาด มีที่แตกต่างกัน ประเภทของข้อผิดพลาด เช่นข้อผิดพลาดบิตเดียวข้อผิดพลาดหลายข้อและข้อผิดพลาดต่อเนื่อง ในบทความนี้เราจะพูดถึงการแก้ไขข้อผิดพลาดและการตรวจจับและรหัสการใช้งาน
การตรวจจับและแก้ไขข้อผิดพลาดคืออะไร?
ในการสื่อสารแบบดิจิทัลข้อมูลจะสูญหายหากเกิดข้อผิดพลาดในการถ่ายโอนข้อมูลจากระบบ / เครือข่ายหนึ่งไปยังระบบ / เครือข่ายอื่น ดังนั้นจึงเป็นสิ่งสำคัญที่จะต้องค้นหาและแก้ไขข้อผิดพลาด ข้อผิดพลาดบางอย่าง การตรวจจับ และใช้วิธีการแก้ไขเพื่อตรวจจับและแก้ไขข้อผิดพลาดเพื่อการสื่อสารที่มีประสิทธิภาพ หากใช้วิธีการเหล่านี้จะสามารถถ่ายโอนข้อมูลด้วยความแม่นยำที่สูงขึ้น
การตรวจจับข้อผิดพลาดถูกกำหนดให้เป็นวิธีการที่ใช้ในการตรวจจับข้อผิดพลาดที่ส่งจากเครื่องส่ง / ผู้ส่งไปยังเครื่องรับในระบบดิจิทัล รหัสความซ้ำซ้อนจะถูกเพิ่มลงในข้อมูลระหว่างการส่งข้อมูลเพื่อค้นหาข้อผิดพลาด สิ่งเหล่านี้เรียกว่ารหัสตรวจจับข้อผิดพลาด
การแก้ไขข้อผิดพลาดคือการแก้ไขข้อมูลที่ส่งจากเครื่องส่งไปยังเครื่องรับ การแก้ไขข้อผิดพลาดสามารถทำได้สองประเภท
การแก้ไขข้อผิดพลาดย้อนหลัง
ในการแก้ไขข้อผิดพลาดประเภทนี้ผู้รับจะร้องขอให้ผู้ส่งส่งข้อมูลกลับมาอีกครั้งหากผู้รับตรวจพบข้อผิดพลาด
ส่งต่อการแก้ไขข้อผิดพลาด
หากข้อมูลที่ผู้รับได้รับพบข้อผิดพลาดจะเรียกใช้รหัสแก้ไขข้อผิดพลาดเพื่อแก้ไขและกู้คืนข้อมูลโดยอัตโนมัติ
หากไม่มีบิตข้อมูล 'm' และหมายเลข 'r' ของบิตที่ซ้ำซ้อนการรวมกันของข้อมูลจะเป็น 2r
2r> = m + r + 1
ประเภทของรหัสตรวจจับข้อผิดพลาด
ข้อผิดพลาดในข้อมูลที่ได้รับสามารถตรวจพบได้โดยใช้รหัสตรวจจับข้อผิดพลาด 3 ประเภท นั่นคือการตรวจสอบความเท่าเทียมกันการตรวจสอบความซ้ำซ้อนแบบวนซ้ำ (CRC) และการตรวจสอบความซ้ำซ้อนตามยาว
การตรวจสอบความเท่าเทียมกัน
มีการเพิ่มบิตที่ซ้ำซ้อนที่เรียกว่า parity bit เพื่อทำให้จำนวนบิตเป็นคู่หรือคี่ในกรณีที่มีความเท่าเทียมกันหรือความเสมอภาคคี่ ตัวรับจะนับจำนวนบิต (1) ในเฟรมเพื่อเพิ่มพาริตีบิต สิ่งนี้เรียกว่าการตรวจสอบความเท่าเทียมกัน หากเลขที่ 1 ในเฟรมเป็นเลขคู่ความเท่าเทียมกันจะถูกใช้โดยการเพิ่มบิต ‘1’ ด้วยค่าศูนย์ ในทำนองเดียวกันของ no.of 1 เป็นจำนวนคี่ดังนั้นจึงใช้ความเท่าเทียมกันโดยการเพิ่มบิตที่มีค่า '1'
การตรวจจับข้อผิดพลาด
ดังนั้นจึงใช้เพื่อให้แน่ใจว่าเฟรม / วันที่ที่ผู้รับได้รับจากต้นทางจะไม่เสียหาย ในการตรวจจับข้อผิดพลาดประเภทนี้เลขที่ 1 ควรอยู่ในเฟรมที่ได้รับ มีค่าใช้จ่ายน้อยมากในการตรวจจับข้อผิดพลาดทุกประเภท
การตรวจสอบความซ้ำซ้อนตามยาว (LRC)
เมื่อชุด / บล็อกของบิตถูกจัดระเบียบแล้วสามารถใช้เมธอด LRC เพื่อตรวจสอบพาริตีบิตในทุกเฟรม ช่วยในการส่งชุดของพาริตีบิตพร้อมกับข้อมูลต้นฉบับและตรวจสอบความซ้ำซ้อน
การตรวจสอบความซ้ำซ้อนของวงจร
ชนิดของเขาใช้ในการตรวจจับข้อมูล / เฟรมที่ได้รับจากแหล่งข้อมูลว่าถูกต้องหรือไม่ มันเกี่ยวข้องกับการหารไบนารีของข้อมูลที่ควรส่งและใช้พหุนาม (เพื่อสร้างตัวหาร) ก่อน การส่ง การดำเนินการหารจะดำเนินการโดยผู้ส่งบนข้อมูล / บิต / เฟรมเพื่อคำนวณส่วนที่เหลือ
การตรวจสอบวงจรซ้ำซ้อน
ในระหว่างการส่งข้อมูลจริงจากผู้ส่งจะเพิ่มส่วนที่เหลือต่อท้ายข้อมูลจริง การรวมกันของข้อมูลจริงและส่วนที่เหลือเรียกว่า codeword ข้อมูลจะถูกส่งในรูปแบบของคำรหัส ในกระบวนการนี้หากข้อมูลเสียหายผู้รับจะปฏิเสธข้อมูลมิฉะนั้นจะได้รับการยอมรับ
Hamming Code คืออะไร?
โค้ด Hamming ถูกกำหนดให้เป็นรหัสเชิงเส้นที่ใช้ในกระบวนการตรวจจับข้อผิดพลาดซึ่งมีข้อผิดพลาดไม่เกิน 2 ระดับ นอกจากนี้ยังสามารถตรวจจับข้อผิดพลาดบิตเดียว ในวิธีนี้ผู้ส่งจะเพิ่มบิตที่ซ้ำซ้อนลงในข้อมูล / ข้อความเพื่อเข้ารหัสข้อมูล ในการตรวจจับและแก้ไขข้อผิดพลาดบิตที่ซ้ำซ้อนเหล่านี้จะถูกเพิ่มในบางตำแหน่งสำหรับกระบวนการแก้ไขข้อผิดพลาด
ตอกโค้ด
ประวัติรหัส Hamming
ในปี 1950 Richard W. hamming ได้คิดค้นรหัส Hamming เพื่อตรวจจับและแก้ไขข้อผิดพลาดในข้อมูล หลังจากวิวัฒนาการของคอมพิวเตอร์ที่มีความน่าเชื่อถือสูงขึ้นเขาได้เปิดตัวรหัสแฮมมิงสำหรับรหัสแก้ไขข้อผิดพลาด 1 ข้อและต่อมาเขาขยายรหัสตรวจจับข้อผิดพลาดได้ถึง 2 โค้ด Hamming ถูกสร้างขึ้นเนื่องจากการตรวจสอบความเท่าเทียมกันไม่สามารถตรวจพบและแก้ไขข้อผิดพลาดในข้อมูลได้ รหัส Hamming จะถูกแทรกลงในช่วงความยาวคลื่นของข้อมูลระหว่างข้อมูลจริงและบิตซ้ำซ้อน เขาพัฒนาอัลกอริทึมอาร์เรย์เพื่อแก้ปัญหาของวิธีการแก้ไขข้อผิดพลาดและรหัสเหล่านี้ใช้กันอย่างแพร่หลายในหน่วยความจำ ECC
กระบวนการเข้ารหัสข้อความโดยใช้ Hamming Code
ขั้นตอนการเข้ารหัสข้อความโดยใช้รหัสแฮมมิงโดยผู้ส่งมี 3 ขั้นตอน
ขั้นตอนที่ 1: ขั้นตอนแรกคือการคำนวณจำนวนบิตที่ซ้ำซ้อนในข้อความ
- ตัวอย่างเช่นหากข้อความมี 'n' no.of bits และ 'p' no ของบิตที่ซ้ำซ้อนจะถูกเพิ่มเข้าไปในข้อความดังนั้น 'np' จะบ่งชี้ (n + p + 1) สถานะ
- โดยที่ (n + p) แสดงตำแหน่งของข้อผิดพลาดในทุกตำแหน่งบิต
- 1 (สถานะพิเศษ) แสดงว่าไม่มีข้อผิดพลาด
- เนื่องจาก 'p' แสดงสถานะ 2 ^ p (2p) ซึ่งเท่ากับ (n + p + 1) สถานะ
ขั้นตอนที่ 2: วางบิตที่ซ้ำซ้อนในตำแหน่งที่แน่นอน / ถูกต้อง
บิต 'p' ถูกแทรกในตำแหน่งบิตซึ่งเป็นกำลังของ 2 เช่น 1, 2, 4, 8, 16 เป็นต้นตำแหน่งบิตเหล่านี้ระบุเป็น p1 (ตำแหน่งที่ 1), p2 (ตำแหน่ง 2), p3 (ตำแหน่ง 4) ฯลฯ
ขั้นตอนที่ 3: คำนวณค่าของบิตที่ซ้ำซ้อน
- พาริตีบิตที่นี่ใช้เพื่อคำนวณค่าของบิตซ้ำซ้อน
- Parity bits สามารถทำให้เลข 1 ในข้อความเป็นคู่หรือคี่
- หากจำนวนรวมของ 1 ในข้อความเป็นเลขคู่ก็จะใช้ความเท่าเทียมกัน
- หากจำนวนรวมของ 1 ในข้อความเป็นเลขคี่ระบบจะใช้ความเสมอภาคคี่
กระบวนการถอดรหัสข้อความใน Hamming Code
กระบวนการถอดรหัสข้อความที่ผู้รับได้รับจากผู้ส่งโดยใช้โค้ดแฮมมิงมีขั้นตอนต่อไปนี้ กระบวนการนี้ไม่ใช่อะไรนอกจากการคำนวณใหม่เพื่อตรวจจับและแก้ไขข้อผิดพลาดในข้อความ
ขั้นตอนที่ 1: นับจำนวนบิตที่ซ้ำซ้อน
สูตรในการเข้ารหัสข้อความโดยใช้บิตซ้ำซ้อนคือ
2p≥ n + p + 1
ขั้นตอนที่ 2: แก้ไขตำแหน่งของบิตที่ซ้ำซ้อนทั้งหมด
เลข ‘p’ ของบิตที่ซ้ำซ้อนถูกวางไว้ในตำแหน่งบิตของกำลัง 2 เช่น 1,2,4,8,16,32 เป็นต้น
ขั้นที่ 3: การตรวจสอบความเท่าเทียมกัน (ความเท่าเทียมกันและความเท่าเทียมกัน)
พาริตีบิตคำนวณจากเลข 1 ในบิตข้อมูลและบิตที่ซ้ำซ้อน
ตัวอย่างเช่น
ความเท่าเทียมกันของ p1 จะเป็น 1, 3, 5, 7, 9, 11, ...
ความเท่าเทียมกันของ p2 จะเป็น 2, 3, 6, 7, 10, 11, ...
ความเท่าเทียมกันของ p3 จะเป็น 4-7, 12-15, 20-23, ...
ข้อดีของ Hamming Code
ข้อได้เปรียบหลักของการใช้โค้ด hamming คือประหยัดต้นทุนหากสตรีมข้อมูลมีข้อผิดพลาดบิตเดียว
- สามารถตรวจจับข้อผิดพลาดและระบุบิตที่มีข้อผิดพลาดสำหรับการแก้ไข
- รหัส Hamming นั้นง่ายมากและดีที่สุดที่จะใช้ในหน่วยความจำคอมพิวเตอร์และการแก้ไขและตรวจจับข้อผิดพลาดแบบบิตเดียว
ข้อเสียของ Hamming Code
- จะดีที่สุดสำหรับการแก้ไขและตรวจจับข้อผิดพลาดบิตเดียวเท่านั้น หากมีข้อผิดพลาดหลายบิตอาจเกิดความเสียหายได้ทั้งหมด
- อัลกอริทึมโค้ด Hamming สามารถแก้ไขข้อผิดพลาดบิตเดียวเท่านั้น
การใช้รหัส Hamming
ใช้รหัส Hamming ใน
- คอมพิวเตอร์
- โทรคมนาคม
- การบีบอัดข้อมูล
- การแก้ปริศนาและรหัสเทอร์โบ
- ดาวเทียม
- พลาสม่า CAM
- สายป้องกัน
- โมเด็ม
- หน่วยความจำคอมพิวเตอร์
- เปิดตัวเชื่อมต่อ
- ระบบฝังตัว และโปรเซสเซอร์
คำถามที่พบบ่อย
1). โค้ด Hamming สามารถตรวจจับข้อผิดพลาด 2 บิตได้หรือไม่?
โค้ด Hamming สามารถตรวจจับและแก้ไขข้อผิดพลาดได้ถึง 2 บิตในสตรีมข้อมูล
2). คุณจะแก้ไขโค้ด Hamming ได้อย่างไร?
โค้ด Hamming จะถูกวางไว้ในความยาวของข้อมูลระหว่างข้อมูลจริงและบิตที่ซ้ำซ้อน รหัสเหล่านี้คือตำแหน่งที่มีระยะห่างขั้นต่ำ 3 บิต
3). รหัสพาริตีคืออะไร?
รหัสพาริตีหรือพาริตีบิตกำลังเพิ่มบิตลงในเฟรมที่ได้รับ (ข้อมูลประกอบด้วย 1 และ 0) เพื่อสร้างจำนวนบิตทั้งหมด (1) เป็นคู่หรือคี่
4). Hamming ระยะห่างระหว่างข้อมูลคืออะไร?
ระยะห่างระหว่างสตรีมข้อมูลที่แตกต่างกันสองสตรีมที่มีความยาวเท่ากันคือเลข 1
ระยะห่างระหว่างสตริงข้อมูลสองสายที่มีความยาวเท่ากันสามารถคำนวณได้โดยใช้การดำเนินการ XOR
ตัวอย่างเช่น a = 11011001
b = 10011101
ระยะแฮมมิงสามารถคำนวณได้ดังนี้
11011001 ⊕ 10011101 = 01000100 (หมายเลข 1 บิตคือ 2)
ระยะห่างของค้อนแสดงถึงหมายเลข 1 ในสตรีมข้อมูลผลลัพธ์
ดังนั้น d (11011001, 10011101) = 2
ในทำนองเดียวกัน 010 ⊕ 011 = 001, d (010, 011) = 1
5). Hamming code เป็นวัฏจักรหรือไม่?
ใช่รหัสแฮมมิงเทียบเท่ากับรหัสวัฏจักรที่สามารถใช้เป็นรหัสตรวจจับข้อผิดพลาด
ดังนั้นทั้งหมดนี้จึงเกี่ยวกับการแก้ไขและตรวจจับข้อผิดพลาดประเภทของการตรวจจับข้อผิดพลาด รหัสค้อน , กระบวนการเข้ารหัสและถอดรหัสข้อความโดยใช้รหัสแฮมมิง, การใช้รหัสแฮมมิง, ข้อดีและข้อเสียของรหัสแฮมมิง คำถามสำหรับคุณมีดังนี้ 'แอปพลิเคชันตรวจจับและแก้ไขข้อผิดพลาดมีอะไรบ้าง'