Skip to main content

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

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

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

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

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

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

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