รหัส Hamming คืออะไร?

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

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

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

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

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

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