Hamming Code คืออะไร: ประวัติความเป็นมาการทำงานและการใช้งาน

ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา





ในระบบดิจิทัลข้อมูลที่ส่งสำหรับ การสื่อสาร อาจเสียหายได้เนื่องจากเสียงภายนอกและความล้มเหลวทางกายภาพอื่น ๆ หากข้อมูลที่ส่งไม่ตรงกับข้อมูลอินพุตที่ระบุจะเรียกว่า 'ข้อผิดพลาด' ข้อผิดพลาดของข้อมูลสามารถลบข้อมูลสำคัญในระบบดิจิทัลได้ การถ่ายโอนข้อมูลจะอยู่ในรูปของบิต (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 เพื่อตรวจสอบพาริตีบิตในทุกเฟรม ช่วยในการส่งชุดของพาริตีบิตพร้อมกับข้อมูลต้นฉบับและตรวจสอบความซ้ำซ้อน

การตรวจสอบความซ้ำซ้อนของวงจร

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

Cyclic-Redundancy-Check

การตรวจสอบวงจรซ้ำซ้อน

ในระหว่างการส่งข้อมูลจริงจากผู้ส่งจะเพิ่มส่วนที่เหลือต่อท้ายข้อมูลจริง การรวมกันของข้อมูลจริงและส่วนที่เหลือเรียกว่า codeword ข้อมูลจะถูกส่งในรูปแบบของคำรหัส ในกระบวนการนี้หากข้อมูลเสียหายผู้รับจะปฏิเสธข้อมูลมิฉะนั้นจะได้รับการยอมรับ

Hamming Code คืออะไร?

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

Hamming- รหัส

ตอกโค้ด

ประวัติรหัส 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 เป็นวัฏจักรหรือไม่?

ใช่รหัสแฮมมิงเทียบเท่ากับรหัสวัฏจักรที่สามารถใช้เป็นรหัสตรวจจับข้อผิดพลาด

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