กลับไปหน้าบทความ

อ่าน 6 นาที

แฮมมิง(7,4)

ในทฤษฎีการเข้ารหัส Hamming (7,4)เป็นรหัสแก้ไขข้อผิดพลาดเชิงเส้นที่เข้ารหัสข้อมูล สี่ บิต เป็นเจ็ดบิตโดยการเพิ่ม บิตพาริตี สามบิต เป็นสมาชิกของตระกูล รหัส Hamming ที่ใหญ่กว่า...

แฮมมิง(7,4)

รหัสแฮมมิง(7,4)
ตั้งชื่อตามริชาร์ด ดับเบิลยู. แฮมมิง
การจำแนกประเภท
พิมพ์รหัสบล็อกเชิงเส้น
ความยาวบล็อก7
ความยาวของข้อความ4
ประเมิน4/7 ~ 0.571
ระยะทาง3
ขนาดตัวอักษร2
สัญกรณ์[7,4,3] -รหัส
คุณสมบัติ
รหัสที่สมบูรณ์แบบ
ภาพแสดงโครงสร้างกราฟิกของบิตข้อมูล 4 บิตถึง d4 ) บิตตรวจสอบความถูกต้อง 3 บิตp1ถึงp3 พร้อมทั้งระบุว่าบิตตรวจสอบความถูกต้องใดใช้กับบิตข้อมูลใดบ้าง

ในทฤษฎีการเข้ารหัส Hamming (7,4)เป็นรหัสแก้ไขข้อผิดพลาดเชิงเส้นที่เข้ารหัสข้อมูล สี่ บิต เป็นเจ็ดบิตโดยการเพิ่ม บิตพาริตี สามบิต เป็นสมาชิกของตระกูล รหัส Hamming ที่ใหญ่กว่า แต่คำว่ารหัส Hammingมักหมายถึงรหัสเฉพาะนี้ที่Richard W. Hammingนำเสนอในปี 1950 ในขณะนั้น Hamming ทำงานที่Bell Telephone Laboratories และรู้สึกไม่พอใจกับเครื่องอ่าน บัตรเจาะรูที่มีข้อผิดพลาดได้ง่ายซึ่งเป็นเหตุผลที่เขาเริ่มทำงานเกี่ยวกับรหัสแก้ไขข้อผิดพลาด[ 1 ]

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

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

เป้าหมาย

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

นิดหน่อย #1234567
บิตที่ส่ง
ใช่เลขที่ใช่เลขที่ใช่เลขที่ใช่
เลขที่ใช่ใช่เลขที่เลขที่ใช่ใช่
เลขที่เลขที่เลขที่ใช่ใช่ใช่ใช่

ตารางนี้อธิบายว่าบิตพาริตีใดครอบคลุมบิตที่ส่งในคำที่เข้ารหัส ตัวอย่างเช่นp2ให้พาริตีคู่สำหรับบิตที่ 2, 3, 6 และ 7 นอกจากนี้ยังแสดงรายละเอียดว่าบิตที่ส่งใดถูกครอบคลุมโดยบิตพาริตีใดโดยการอ่านคอลัมน์ ตัวอย่างเช่นโดย p1 และแต่ไม่ใช่นี้จะมีความคล้ายคลึงอย่างมากกับเมทริกซ์ตรวจสอบพาริตี ( H )ในส่วนถัดไป

นอกจากนี้ หากลบคอลัมน์ความเท่าเทียมกันในตารางข้างต้นออก

ใช่ใช่เลขที่ใช่
ใช่เลขที่ใช่ใช่
เลขที่ใช่ใช่ใช่

จากนั้น จะเห็นความคล้ายคลึงกับแถวที่ 1, 2 และ 4 ของเมทริกซ์ตัวสร้างรหัส ( G ) ด้านล่างอย่างชัดเจน

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

เมทริกซ์แฮมมิง

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

ตำแหน่งบิตของบิตข้อมูลและบิตพาริตี

ดังที่กล่าวไว้ข้างต้น แถวที่ 1, 2 และ 4 ของGน่าจะคุ้นเคยกันดี เนื่องจากเป็นการจับคู่บิตข้อมูลกับบิตพาริตี:

  • หน้าครอบคลุมd , d , d
  • หน้าครอบคลุมd , d , d
  • หน้าครอบคลุมd , d , d

แถวที่เหลือ (3, 5, 6, 7) จะแมปข้อมูลไปยังตำแหน่งในรูปแบบที่เข้ารหัส และมีเพียง 1 ในแถวนั้น ดังนั้นจึงเป็นสำเนาที่เหมือนกันทุกประการ อันที่จริง แถวทั้งสี่นี้เป็นอิสระเชิงเส้นและประกอบกันเป็นเมทริกซ์เอกลักษณ์ (โดยตั้งใจ ไม่ใช่ความบังเอิญ)

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

บิตข้อมูลทั้งสี่บิตที่ประกอบกันเป็นเวกเตอร์p จะถูกคูณด้วยG ก่อน (เช่น) และนำกลับมาหารด้วย 2 เพื่อให้ได้ค่าที่เข้ารหัสซึ่งจะถูกส่ง บิตข้อมูลดั้งเดิม 4 บิตจะถูกแปลงเป็น 7 บิต (จึงเป็นที่มาของชื่อ "Hamming(7,4)") โดยเพิ่มบิตพาริตีอีก 3 บิตเพื่อให้แน่ใจว่าพาริตีเป็นเลขคู่โดยใช้การครอบคลุมบิตข้อมูลข้างต้น ตารางแรกด้านบนแสดงการแมประหว่างบิตข้อมูลและบิตพาริตีแต่ละบิตไปยังตำแหน่งบิตสุดท้าย (1 ถึง 7) แต่สามารถแสดงในแผนภาพเวนน์ได้เช่นกันแผนภาพแรกในบทความนี้แสดงวงกลมสามวง (หนึ่งวงสำหรับแต่ละบิตพาริตี) และล้อมรอบบิตข้อมูลที่แต่ละบิตพาริตีครอบคลุม แผนภาพที่สอง (แสดงทางด้านขวา) เหมือนกัน แต่แทนที่จะแสดงเป็นตัวเลข จะมีการทำเครื่องหมายตำแหน่งบิตไว้

สำหรับส่วนที่เหลือของหัวข้อนี้ บิตทั้ง 4 บิตต่อไปนี้ (แสดงเป็นเวกเตอร์คอลัมน์ ) จะถูกใช้เป็นตัวอย่างประกอบ:

การเข้ารหัสช่องสัญญาณ

ในตัวอย่างxวงกลมสีแดง สีเขียว และสีน้ำเงินมีค่าเท่ากัน

สมมติว่าเราต้องการส่งข้อมูลนี้ ( 1011) ผ่านช่องทางการสื่อสารที่มีสัญญาณรบกวน โดยเฉพาะอย่างยิ่งช่องสัญญาณสมมาตรแบบไบนารีซึ่งหมายความว่าความเสียหายจากข้อผิดพลาดไม่ได้เอื้อประโยชน์ต่อศูนย์หรือหนึ่ง (มีความสมมาตรในการทำให้เกิดข้อผิดพลาด) นอกจากนี้ เวกเตอร์ต้นทางทั้งหมดถือว่ามีความน่าจะเป็นเท่ากัน เราใช้ผลคูณของGและpโดยที่ค่าต่างๆ หารด้วย 2 เพื่อกำหนดคำรหัสที่ส่งx :

หมายความว่า0110011จะถูกส่งผ่านแทนที่จะส่ง1011ผ่าน

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

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

  • วงกลมสีแดงมีเลข 1 สองตัว
  • วงกลมสีเขียวมีเลข 1 สองตัว
  • วงกลมสีน้ำเงินมีเลข 1 อยู่สี่ตัว

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

การตรวจสอบความเท่าเทียมกัน

หากไม่มีข้อผิดพลาดเกิดขึ้นระหว่างการส่งข้อมูล รหัสคำที่ได้รับrจะเหมือนกับรหัสคำที่ส่งx ทุกประการ :

ตัวรับสัญญาณจะคูณHและrเพื่อให้ได้เวกเตอร์ซินโดรมzซึ่งบ่งชี้ว่าเกิดข้อผิดพลาดหรือไม่ และถ้าเกิด ข้อผิดพลาดนั้นเกิดขึ้นกับบิตรหัสคำใด การดำเนินการคูณนี้ (อีกครั้ง หารด้วยโมดูล 2):

เนื่องจากซินโดรมzเป็นเวกเตอร์ศูนย์ผู้รับจึงสามารถสรุปได้ว่าไม่มีข้อผิดพลาดเกิดขึ้น ข้อสรุปนี้อิงจากการสังเกตว่า เมื่อเวกเตอร์ข้อมูลถูกคูณด้วยG จะเกิด การเปลี่ยนฐานไปเป็นปริภูมิย่อยของเวกเตอร์ซึ่งเป็นเคอร์เนลของHตราบใดที่ไม่มีอะไรเกิดขึ้นระหว่างการส่งrจะยังคงอยู่ในเคอร์เนลของHและการคูณจะให้ผลลัพธ์เป็นเวกเตอร์ศูนย์

การแก้ไขข้อผิดพลาด

สมมติว่าเราสามารถเขียนได้ว่า

มอดูโล 2 โดยที่e คือเวกเตอร์หน่วยนั่นคือ เวกเตอร์ศูนย์ที่มีเลข 1 อยู่ในนั้นนับจาก 1

ดังนั้น นิพจน์ข้างต้นจึงแสดงถึงข้อผิดพลาดบิตเดียวในตำแหน่ง นั้น

ทีนี้ ถ้าเราคูณเวกเตอร์นี้ด้วยH :

เนื่องจากxคือข้อมูลที่ส่งมา จึงไม่มีข้อผิดพลาด และด้วยเหตุนี้ ผลคูณของHและxจึงเป็นศูนย์ ดังนั้น

ทีนี้ ผลคูณของHกับ เวกเตอร์ ฐานมาตรฐานจะเลือกคอลัมน์ของH นั้นออกมา ซึ่งเรารู้ว่าข้อผิดพลาดเกิดขึ้นในตำแหน่งที่คอลัมน์ของ H นี้ ปรากฏอยู่

ตัวอย่างเช่น สมมติว่าเราได้ใส่ข้อผิดพลาดบิตเข้าไปในบิตที่ 5

ความผิดพลาดของบิตที่ 5 ทำให้พาริตีในวงกลมสีแดงและสีเขียวไม่ถูกต้อง

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

ตอนนี้,

ซึ่งตรงกับคอลัมน์ที่ห้าของHยิ่งไปกว่านั้น อัลกอริทึมทั่วไปที่ใช้ ( ดูHamming code#General algorithm ) ถูกสร้างขึ้นโดยเจตนาเพื่อให้ซินโดรม 101 ตรงกับค่าไบนารี 5 ซึ่งบ่งชี้ว่าบิตที่ห้าเสียหาย ดังนั้นจึงตรวจพบข้อผิดพลาดในบิตที่ 5 และสามารถแก้ไขได้ (เพียงแค่พลิกหรือกลับค่า):

ค่าที่ได้รับซึ่งได้รับการแก้ไขแล้วนี้ ตรงกับค่าที่ส่งมาxจากด้านบนแล้ว

การถอดรหัส

เมื่อตรวจสอบแล้วว่าเวกเตอร์ที่ได้รับนั้นปราศจากข้อผิดพลาด หรือแก้ไขข้อผิดพลาดแล้ว (โดยสมมติว่ามีข้อผิดพลาดได้เพียงศูนย์หรือหนึ่งบิตเท่านั้น) ข้อมูลที่ได้รับจะต้องถูกถอดรหัสกลับไปเป็นข้อมูลสี่บิตดั้งเดิม

ขั้นแรก กำหนดเมทริกซ์Rดังนี้:

ดังนั้นค่าที่ได้รับp จะเท่ากับRrโดยใช้ตัวอย่างที่ยกมาข้างต้น

ข้อผิดพลาดบิตหลายรายการ

มีการเพิ่มข้อผิดพลาดบิตในบิตที่ 4 และ 5 (แสดงด้วยข้อความสีน้ำเงิน) โดยมีพาริตีที่ไม่ถูกต้องเฉพาะในวงกลมสีเขียว (แสดงด้วยข้อความสีแดง)

ไม่ใช่เรื่องยากที่จะแสดงให้เห็นว่าสามารถแก้ไขข้อผิดพลาดแบบบิตเดียวได้โดยใช้แผนการนี้ หรืออีกทางหนึ่ง สามารถใช้รหัสแฮมมิงในการตรวจจับข้อผิดพลาดแบบบิตเดียวและสองบิตได้ โดยเพียงแค่สังเกตว่าผลคูณของHไม่เป็นศูนย์เมื่อใดก็ตามที่เกิดข้อผิดพลาด ในแผนภาพด้านข้าง บิตที่ 4 และ 5 ถูกสลับกัน ทำให้เกิดวงกลมเพียงวงเดียว (สีเขียว) ที่มีค่าพาริตีไม่ถูกต้อง แต่ไม่สามารถแก้ไขข้อผิดพลาดได้

อย่างไรก็ตาม รหัสแฮมมิง (7,4) และรหัสแฮมมิงที่คล้ายกันไม่สามารถแยกแยะระหว่างข้อผิดพลาดบิตเดียวและข้อผิดพลาดสองบิตได้ กล่าวคือ ข้อผิดพลาดสองบิตจะปรากฏเหมือนกับข้อผิดพลาดบิตเดียว หากทำการแก้ไขข้อผิดพลาดกับข้อผิดพลาดสองบิต ผลลัพธ์จะไม่ถูกต้อง

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

รหัสลับทั้งหมด

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

ข้อมูลแฮมมิง(7,4)Hamming(7,4) พร้อมบิตพาริตี้พิเศษ (Hamming(8,4))
ส่งต่อแผนภาพส่งต่อแผนภาพ
000000 0 0 000รหัสแฮมมิงสำหรับ 0000 จะกลายเป็น 000000000 0 0 000 0รหัสแฮมมิงสำหรับ 0000 จะกลายเป็น 0000000 เมื่อเพิ่มบิตพาริตี 0 เข้าไป
100011 1 0 000รหัสแฮมมิงสำหรับ 1000 จะกลายเป็น 111000011 1 0 000 1รหัสแฮมมิงสำหรับ 1000 จะกลายเป็น 1110000 เมื่อมีบิตพาริตีเพิ่มอีกหนึ่งบิต
010010 0 1 100รหัสแฮมมิงสำหรับ 0100 จะกลายเป็น 100110010 0 1 100 1รหัสแฮมมิงสำหรับ 0100 จะกลายเป็น 1001100 เมื่อมีบิตพาริตีเพิ่มอีกหนึ่งบิต
110001 1 1 100รหัสแฮมมิงสำหรับ 1100 จะกลายเป็น 011110001 1 1 100 0รหัสแฮมมิงสำหรับ 1100 จะกลายเป็น 0111100 โดยมีบิตพาริตีเพิ่มอีกหนึ่งบิตคือ 0
001001 0 1 010รหัสแฮมมิงสำหรับ 0010 จะกลายเป็น 010101001 0 1 010 1รหัสแฮมมิงสำหรับ 0010 จะกลายเป็น 0101010 เมื่อมีบิตพาริตีเพิ่มอีกหนึ่งบิต
101010 1 1 010รหัสแฮมมิงสำหรับ 1010 จะกลายเป็น 101101010 1 1 010 0รหัสแฮมมิงสำหรับ 1010 จะกลายเป็น 1011010 เมื่อมีบิตพาริตีเพิ่มอีกหนึ่งบิตคือบิต 0
011011 0 0 110รหัสแฮมมิงสำหรับ 0110 จะกลายเป็น 110011011 0 0 110 0รหัสแฮมมิงสำหรับ 0110 จะกลายเป็น 1100110 เมื่อมีบิตพาริตีเพิ่มเข้ามาคือบิต 0
111000 1 0 110รหัสแฮมมิงสำหรับ 1110 จะกลายเป็น 001011000 1 0 110 1รหัสแฮมมิงสำหรับ 1110 จะกลายเป็น 0010110 เมื่อมีบิตพาริตีเพิ่มอีกหนึ่งบิตคือบิต 1
000111 0 1 001รหัสแฮมมิงสำหรับ 0001 จะกลายเป็น 110100111 0 1 001 0รหัสแฮมมิงสำหรับ 0001 จะกลายเป็น 1101001 เมื่อมีบิตพาริตีเพิ่มเข้ามาคือบิต 0
100100 1 1 001รหัสแฮมมิงสำหรับ 1001 จะกลายเป็น 001100100 1 1 001 1รหัสแฮมมิงสำหรับ 1001 จะกลายเป็น 0011001 โดยมีบิตพาริตีเพิ่มอีกหนึ่งบิตคือบิต 1
010101 0 0 101รหัสแฮมมิงสำหรับ 0101 จะกลายเป็น 010010101 0 0 101 1รหัสแฮมมิงสำหรับ 0101 จะกลายเป็น 0100101 เมื่อมีบิตพาริตีเพิ่มอีกหนึ่งบิต
110110 1 0 101รหัสแฮมมิงสำหรับ 1101 จะกลายเป็น 101010110 1 0 101 0รหัสแฮมมิงสำหรับ 1101 จะกลายเป็น 1010101 เมื่อมีบิตพาริตีเพิ่มเข้ามาคือบิต 0
001110 0 0 011รหัสแฮมมิงสำหรับ 0011 จะกลายเป็น 100001110 0 0 011 1รหัสแฮมมิงสำหรับ 0011 จะกลายเป็น 1000011 เมื่อมีบิตพาริตีเพิ่มอีกหนึ่งบิต
101101 1 0 011รหัสแฮมมิงสำหรับ 1011 จะกลายเป็น 011001101 1 0 011 0รหัสแฮมมิงสำหรับ 1011 จะกลายเป็น 0110011 โดยมีบิตพาริตีเพิ่มอีกหนึ่งบิตคือ 0
011100 0 1 111รหัสแฮมมิงสำหรับ 0111 จะกลายเป็น 000111100 0 1 111 0รหัสแฮมมิงสำหรับ 0111 จะกลายเป็น 0001111 เมื่อมีบิตพาริตีเพิ่มเข้ามาคือบิต 0
111111 1 1 111รหัสแฮมมิงสำหรับ 1111 จะกลายเป็น 111111111 1 1 111 1รหัสแฮมมิงสำหรับ 1111 จะกลายเป็น 1111111 เมื่อมีบิตพาริตีเพิ่มอีกหนึ่งบิตคือบิต 1

แลตทิซ E

รหัส Hamming(7,4) มีความสัมพันธ์อย่างใกล้ชิดกับแลตทิซE และในความเป็นจริง สามารถใช้สร้างแลตทิซ E (การสร้าง E ที่คล้ายกัน จะใช้รหัสคู่ [7,3,4] ) โดยเฉพาะอย่างยิ่ง การนำเซตของเวกเตอร์ทั้งหมดxในZ 7ที่xสอดคล้อง (โมดูล 2) กับคำรหัสของ Hamming(7,4) และปรับขนาดใหม่ด้วย 1/ 2จะได้แลตทิซ E

นี่เป็นกรณีเฉพาะของความสัมพันธ์ทั่วไประหว่างแลตทิซและรหัส ตัวอย่างเช่น รหัสแฮมมิงแบบขยาย (8,4) ซึ่งเกิดขึ้นจากการเพิ่มบิตพาริตี ก็มีความสัมพันธ์กับแลตทิซ E 8 [ 2 ]

  • ปัญหาการเขียนโปรแกรมเกี่ยวกับรหัสแฮมมิง (7,4)
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Hamming(7,4)&oldid=1358318928 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ แฮมมิง(7,4)

ในทฤษฎีการเข้ารหัส Hamming (7,4)เป็นรหัสแก้ไขข้อผิดพลาดเชิงเส้นที่เข้ารหัสข้อมูล สี่ บิต เป็นเจ็ดบิตโดยการเพิ่ม บิตพาริตี สามบิต เป็นสมาชิกของตระกูล รหัส Hamming ที่ใหญ่กว่า...

เป้าหมาย

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

เมทริกซ์แฮมมิง

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

การเข้ารหัสช่องสัญญาณ

สมมติว่าเราต้องการส่งข้อมูลนี้ ( 1011 ) ผ่าน ช่องทางการสื่อสาร ที่มีสัญญาณรบกวน โดยเฉพาะอย่างยิ่ง ช่องสัญญาณสมมาตรแบบไบนารี ซึ่งหมายความว่าความเสียหายจากข้อผิดพลาดไม่ได้เอื้อประโยชน์ต่อศูนย์หรือหนึ่ง (มีความสมมาตรในการทำให้เกิดข้อผิดพลาด) นอกจากนี้...