การสร้างและตรวจสอบเมทริกซ์ของรหัสแฮมมิ่ง การสร้างเมทริกซ์ของรหัสบล็อก การตรวจจับข้อผิดพลาดและรหัสการแก้ไข

เมทริกซ์กำเนิดรหัสเชิงเส้นเรียกว่าเมทริกซ์ขนาด ซึ่งแถวเป็นเวกเตอร์พื้นฐาน

ตัวอย่างเช่น,

คือเมทริกซ์กำเนิดของรหัสสองคำ (000, 011)

กำลังสร้างโค้ด B จากตัวอย่างที่ 6.3

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

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

มาดูปัญหาของการถอดรหัสกันเถอะ

สมมติว่าสำหรับเวกเตอร์ไบนารีบางตัว codewords ทั้งหมดของ -code ,ตอบสนองตัวตน

โดยที่แสดงถึงผลคูณสเกลาร์ของเวกเตอร์ และ

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

โปรดทราบว่า (6.2) ใช้ได้กับโค้ดเวิร์ดทั้งหมด หากใช้ได้กับเวกเตอร์พื้นฐาน เช่น ถ้า

โดยที่ตัวยก T หมายถึงการขนย้าย

ยิ่งเราพบ "การตรวจสอบ" ดังกล่าวมากเท่าใด เราก็ยิ่งสามารถตรวจจับและแก้ไขข้อผิดพลาดได้มากขึ้นเท่านั้น

แบบฝึกหัด 6.4. พิสูจน์ว่าเช็คสร้างช่องว่างเชิงเส้น

เราเรียกสเปซนี้ว่าสเปซตั้งฉากกับโค้ดเชิงเส้นหรือ พื้นที่ทดสอบ.

แบบฝึกหัด 6.5. ค้นหามิติของปริภูมิเชิงเส้นของเช็ค

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

ผลที่ตามมาของการพิจารณาเหล่านี้คือทฤษฎีบท

ทฤษฎีบท.ขนาดของพื้นที่ทดสอบของรหัสเชิงเส้นเท่ากับ

เราเขียนพื้นฐานของพื้นที่ทดสอบเป็นเมทริกซ์

เรียกว่า ตรวจสอบเมทริกซ์รหัส.

เมทริกซ์ตรวจสอบและตัวกำเนิดมีความสัมพันธ์กันโดยความสัมพันธ์

จากความสัมพันธ์นี้ เราจะเห็นว่าสำหรับโค้ดเวิร์ดใดๆ เรามี

ข้อมูลประจำตัวนี้สามารถใช้เป็นเกณฑ์สำหรับลำดับตามอำเภอใจที่จะเป็นของรหัส เช่น เพื่อตรวจหาข้อผิดพลาด

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

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

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

เมทริกซ์เอกลักษณ์ของคำสั่งอยู่ที่ไหน และเมทริกซ์ของขนาดคืออะไร

เมทริกซ์ของรูปแบบ (6.6) เรียกว่าเมทริกซ์การสร้างที่ลดลง มุมมองอย่างเป็นระบบและรหัสที่เกี่ยวข้องจะถูกเรียก อย่างเป็นระบบ. การเข้ารหัสสำหรับรหัสที่เป็นระบบนั้นง่ายกว่ารหัสทั่วไปเล็กน้อย:

, (6.7)

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

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

แบบฝึกหัด 6.6. ตรวจสอบ (6.7) คำแนะนำ: ในการทำเช่นนี้ ให้แทนที่ (6.8) และ (6.6) เป็น (6.4)

จะหาเมทริกซ์ตรวจสอบสำหรับรหัสที่ไม่เป็นระบบได้อย่างไร?

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

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

ให้เราตั้งกฎ (การสร้าง) อย่างเป็นทางการตามที่มีการเข้ารหัส เช่น การแปลงลำดับข้อมูลเป็นโค้ดเวิร์ด

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

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

อีกวิธีในการกำหนดรหัสบล็อกเชิงเส้นคือการใช้สิ่งที่เรียกว่า ระบบการสร้างสมการกำหนดกฎโดยที่สัญลักษณ์ของลำดับข้อมูลถูกแปลงเป็นสัญลักษณ์รหัส ในตัวอย่างเดียวกัน ระบบการสร้างสมการจะมีลักษณะดังนี้:

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

บล็อกเชิงเส้น(n, /c)-code ถูกกำหนดโดยเมทริกซ์ G ของขนาดอย่างสมบูรณ์ ถึงเอ็กซ์ พีด้วยองค์ประกอบเมทริกซ์ไบนารี ในกรณีนี้ โค้ดเวิร์ดแต่ละชุดเป็นการรวมแถวของเมทริกซ์ G เชิงเส้น และการรวมแถว G เชิงเส้นแต่ละชุดคือโค้ดเวิร์ด

รหัสบล็อกเชิงเส้นที่กำหนดโดยการสร้างเมทริกซ์จะถูกเรียก รหัสเมทริกซ์การแสดงเมทริกซ์การสร้างตามปกติ (บัญญัติ) มีลักษณะดังนี้:

ตัวอย่างเช่น สำหรับโค้ด (4, 3) ที่ง่ายที่สุดที่มีการตรวจสอบพาริตี เมทริกซ์การสร้างจะมีลักษณะดังนี้:

อนุญาต ที -(เ1; เสื้อ 2 , ..., ทีเค)จะเป็นบล็อกข้อความที่จะเข้ารหัสโดยใช้รหัสที่กำหนด

จากนั้นรหัสคำที่เกี่ยวข้อง ยูจะ

โดยคำนึงถึงโครงสร้างของเมทริกซ์ สัญลักษณ์โค้ดเวิร์ด และจะเป็นดังนี้:

กล่าวอีกนัยหนึ่ง ถึงสัญลักษณ์ซ้ายสุดของคำรหัสตรงกับสัญลักษณ์ของลำดับข้อมูลที่เข้ารหัสและส่วนที่เหลือ (n - ถึง)สัญลักษณ์เป็นการรวมกันเชิงเส้นของสัญลักษณ์ลำดับข้อมูล

ตัวอย่างเช่น ถ้าลำดับการป้อนข้อมูลตัวเข้ารหัส เสื้อ == (10 1) จากนั้นใช้เมทริกซ์สร้าง รหัสจะถูกสร้างขึ้นดังนี้:

8 ผู้บังคับบัญชาส่งหน่วยสอดแนมสามคนไปตามถนนสายแรก สาม - ไปตามทางที่สอง สอง - ไปตามทางที่สาม ไปตามทางที่สี่ เขาไปเอง เขียนเมทริกซ์การสร้างรหัสดังกล่าว

คำตอบ:ตามเนื้อเรื่องของภารกิจ ข้อความที่ผู้บัญชาการได้รับเป็นการส่วนตัวไม่สามารถบิดเบือนได้ ดังนั้นเราจึง จำกัด ตัวเองให้ศึกษาข้อมูลที่นักสู้ส่งมา ในกลุ่มที่ออกเดินทางไปตามถนนสายใดสายหนึ่ง นักสู้แต่ละคนจะต้องรายงานต่อผู้บังคับบัญชาเกี่ยวกับการพบวัตถุ (เราหมายถึงรายงานดังกล่าวเป็น "1") หรือเกี่ยวกับการไม่มีวัตถุ ("0") . ในกรณีที่ไม่มีการบิดเบือน รายงานของนักสู้แต่ละคนจากกลุ่มเดียวกันจะต้องตรงกัน เพราะฉะนั้น:

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

รหัสที่กำหนดจึงเรียกว่า บล็อกเชิงเส้นอย่างเป็นระบบ(พี/cj รหัสที่มีการตรวจสอบพาริตี้ทั่วไป

ในระบบการสื่อสาร มีหลายกลยุทธ์ในการจัดการกับข้อผิดพลาด:

  • การตรวจจับข้อผิดพลาดในบล็อกข้อมูลและ คำขอส่งสัญญาณซ้ำอัตโนมัติบล็อกที่เสียหาย - วิธีนี้ส่วนใหญ่ใช้ที่ชั้นลิงค์และการขนส่ง
  • การตรวจจับข้อผิดพลาดในบล็อคข้อมูลและการละทิ้งบล็อคที่ไม่ดี - วิธีการนี้บางครั้งใช้ในระบบสื่อสตรีมมิ่งที่การหน่วงเวลาการส่งเป็นสิ่งสำคัญและไม่มีเวลาสำหรับการส่งสัญญาณซ้ำ
  • แก้ไขข้อผิดพลาด(ภาษาอังกฤษ) แก้ไขข้อผิดพลาดไปข้างหน้า) ถูกนำไปใช้ที่ชั้นกายภาพ

การตรวจจับข้อผิดพลาดและรหัสการแก้ไข

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

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

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

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

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

รหัสบล็อก

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

ถ้าของเดิม เครหัสบิตไม่เปลี่ยนแปลงและเพิ่ม เค การตรวจสอบรหัสดังกล่าวเรียกว่า อย่างเป็นระบบ, มิฉะนั้น ไม่มีระบบ.

คุณสามารถตั้งรหัสบล็อกได้หลายวิธี รวมถึงตารางที่แต่ละชุดของ เคแมปบิตข้อมูล รหัสคำบิต อย่างไรก็ตาม โค้ดที่ดีควรเป็นไปตามเกณฑ์ต่อไปนี้เป็นอย่างน้อย:

  • ความสามารถในการแก้ไขข้อผิดพลาดให้ได้มากที่สุด
  • ซ้ำซ้อนน้อยที่สุดเท่าที่จะทำได้
  • ความสะดวกในการเข้ารหัสและถอดรหัส

เป็นเรื่องง่ายที่จะเห็นว่าข้อกำหนดเหล่านี้ขัดแย้งกัน นั่นเป็นเหตุผลว่าทำไมจึงมีรหัสจำนวนมากซึ่งแต่ละรหัสเหมาะสำหรับงานต่างๆ

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

ช่องว่างเชิงเส้น

เมทริกซ์กำเนิด

ความสัมพันธ์นี้สร้างการเชื่อมต่อระหว่างเวกเตอร์สัมประสิทธิ์ และเวกเตอร์ โดยรายการเวกเตอร์ทั้งหมดของสัมประสิทธิ์ คุณจะได้เวกเตอร์ทั้งหมด กล่าวอีกนัยหนึ่งคือเมทริกซ์ สร้างพื้นที่เชิงเส้น

การตรวจสอบเมทริกซ์

ซึ่งหมายความว่าการดำเนินการเข้ารหัสสอดคล้องกับการคูณของต้นฉบับ เค-บิตเวกเตอร์บนเมทริกซ์ที่ไม่ใช่เอกพจน์ เรียกว่า สร้างเมทริกซ์.

อนุญาต เป็นพื้นที่ย่อยมุมฉากที่เกี่ยวกับ , ก ชมเป็นเมทริกซ์ที่กำหนดพื้นฐานของพื้นที่ย่อยนี้ สำหรับเวกเตอร์ใด ๆ จะเป็นจริง:

.

สมบัติและทฤษฎีบทที่สำคัญ

ระยะทางขั้นต่ำและความสามารถในการแก้ไข

ตอกโค๊ดและโค้ดที่สมบูรณ์แบบ

ให้มีบล็อกไบนารี ( ,เค) รหัสแก้ไข ที. แล้วความไม่เท่าเทียมกัน (เรียกว่า ขีดเส้นแบ่งเขตแดน):

.

รหัสที่ตอบสนองขอบเขตความเท่าเทียมกันนี้เรียกว่า มุ่งมั่น. รหัสที่สมบูรณ์แบบ ได้แก่ รหัส Hamming รหัสที่มีอำนาจแก้ไขขนาดใหญ่ซึ่งมักใช้ในทางปฏิบัติ (เช่น รหัสรีด-โซโลมอน) นั้นไม่สมบูรณ์แบบ

ได้รับพลังงาน

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

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

แอปพลิเคชัน

ตรวจสอบเมทริกซ์- - [L.G. สุเมงโก. พจนานุกรมเทคโนโลยีสารสนเทศภาษาอังกฤษภาษารัสเซีย M.: GP TsNIIS, 2003.] หัวข้อ เทคโนโลยีสารสนเทศโดยทั่วไป EN ตรวจสอบเมทริกซ์ ... คู่มือนักแปลทางเทคนิค

ในสาขาคณิตศาสตร์และทฤษฎีสารสนเทศ ไลน์โค้ดเป็นบล็อกโค้ดประเภทสำคัญที่ใช้ในวงจรตรวจจับและแก้ไขข้อผิดพลาด รหัสเชิงเส้นเมื่อเปรียบเทียบกับรหัสอื่น ๆ อนุญาตให้ใช้อัลกอริทึมที่มีประสิทธิภาพมากกว่า ... ... Wikipedia

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

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

- (รหัส LDPC จากภาษาอังกฤษ รหัสตรวจสอบความเท่าเทียมกันความหนาแน่นต่ำ รหัส LDPC รหัสความหนาแน่นต่ำ) รหัสที่ใช้ในการส่งข้อมูล กรณีพิเศษของรหัสบล็อกเชิงเส้นที่มีการตรวจสอบความเท่าเทียมกัน คุณลักษณะคือความหนาแน่นต่ำของนัยสำคัญ ... ... Wikipedia

รหัสที่มีการตรวจสอบความเท่าเทียมกันความหนาแน่นต่ำ (รหัส LDPC จากภาษาอังกฤษ รหัสตรวจสอบความเท่าเทียมกันความหนาแน่นต่ำ รหัส LDPC รหัสความหนาแน่นต่ำ) รหัสที่ใช้ในการส่งข้อมูล กรณีพิเศษของรหัสบล็อกเชิงเส้นที่มีการตรวจสอบความเท่าเทียมกัน คุณลักษณะ ... ... วิกิพีเดีย

รหัส Reed-Solomon เป็นรหัสวงจรที่ไม่ใช่ไบนารีที่ให้คุณแก้ไขข้อผิดพลาดในบล็อกข้อมูล องค์ประกอบของเวกเตอร์รหัสไม่ใช่บิต แต่เป็นกลุ่มของบิต (บล็อก) รหัสรีดโซโลมอนเป็นเรื่องธรรมดามาก ... ... Wikipedia

วงจรใด ๆ ( n, k) – รหัสสามารถกำหนดได้ตามคำจำกัดความ 2 การสร้างพหุนาม ก(x)หรือตรวจสอบพหุนาม

การรู้พหุนามเหล่านี้ทำให้เราสามารถสร้างเมทริกซ์กำเนิดและเมทริกซ์ตรวจสอบได้ สำหรับวงจร ( n, k) – โค้ดมีวิธีหาง่ายๆ เคการรวมรหัสอิสระเชิงเส้นสร้างเมทริกซ์การสร้าง วิธีนี้มีดังนี้ มีการเขียนพหุนามที่สร้าง ก(x). ตามคำจำกัดความ 2 การรวมกันที่สอดคล้องกับการสร้างพหุนามเป็นของวงจร ( n, k) - รหัส ตามคำจำกัดความ 1 การเปลี่ยนแปลงแบบวนรอบของชุดค่าผสมที่สอดคล้องกับ ก(x)ต้องเป็นรหัสเดียวกันด้วย ในทางพีชคณิต การเปลี่ยนแปลงสอดคล้องกับการคูณโค้ดเวิร์ดด้วย เอ็กซ์. ตั้งแต่รับปริญญา ก(x)เท่ากับ n-kในทำนองเดียวกันเราจะได้รับชุดค่าผสมของรหัส

เป็นการง่ายที่จะตรวจสอบว่าการผสมรหัสเหล่านี้เป็นอิสระเชิงเส้น หากเพียงเพราะองศาของพหุนามเหล่านี้ต่างกัน ดังนั้นพหุนามชุดนี้จึงสามารถใช้เป็น:

.

โดยการแปลงเบื้องต้น เมทริกซ์นี้สามารถลดลงเป็นรูปแบบบัญญัติ


ในทำนองเดียวกัน การใช้เช็คพหุนาม เราสามารถสร้างเช็คเมทริกซ์ได้

.

ตัวอย่าง 6.4 สำหรับรหัสวงจร (7,4) ที่มีพหุนามสร้าง (ดูตัวอย่างที่ 6.3) สร้างเมทริกซ์ตัวสร้าง

ดังนั้นเมทริกซ์ตัวสร้างสำหรับรหัสนี้มีรูปแบบ:

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

ทรัพย์สิน 6.1. ผลคูณของการรวมรหัสของรหัสวงจรโดยพหุนามโดยพลการทำให้ได้รหัสที่รวมกันของรหัสวงจรเดียวกัน

แน่นอน และผลิตภัณฑ์ใด ๆ ประเภทนี้มีค่าเท่ากับศูนย์ เช่น เป็นของพื้นที่ย่อยรหัส (ส่วน 6.2)


หลักฐานเบื้องต้นเพิ่มเติม:

ผลรวมที่ได้คือผลรวมของการเปลี่ยนแปลงแบบวนรอบของการรวมรหัส ซึ่งตามคุณสมบัติการปิดของรหัสกลุ่ม ควรให้รหัสแบบวนรอบเดียวกัน

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


ค่าสัมประสิทธิ์ที่ เอ็กซ์ทำงาน เท่ากับ

ข้อกำหนดที่มี ปรากฏขึ้นเนื่องจากข้อกำหนดในผลิตภัณฑ์ที่มี แต่เนื่องจาก เช่น , ที่ . ความเท่าเทียมกันสำหรับสามารถแสดงเป็นผลิตภัณฑ์สเกลาร์:

ในผลิตภัณฑ์นี้ เวกเตอร์แรกสอดคล้องกับ โอ้). เวกเตอร์ที่สองประกอบด้วยค่าสัมประสิทธิ์ ข(x), จัดเรียงในลำดับย้อนกลับและเลื่อนตามวัฏจักร เจ+1 องค์ประกอบทางด้านขวา

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

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

ตัวอย่าง 6.5 สร้างเมทริกซ์ของการตรวจสอบสำหรับวงจร (7,4) - รหัสจากตัวอย่างก่อนหน้า m ซึ่งเป็นตัวประกอบของทวินาม และไม่ใช่ตัวประกอบของทวินามใดๆ ที่มีดีกรีน้อยกว่า รากของพหุนามเหล่านี้มีลำดับ 2 ม. -1 เช่น พวกมันเป็นองค์ประกอบดั้งเดิมของฟิลด์ GF(2ม.).ซึ่งหมายความว่าการสร้างพหุนามของรหัส Hamming จะสร้างฟิลด์ GF(2ม.).


ให้เราตกลงในรหัสวัฏจักรก่อน n-kองค์ประกอบของการรวมรหัสนั่นคือค่าสัมประสิทธิ์ที่ ใช้เป็นองค์ประกอบในการทดสอบและสุดท้าย เคองค์ประกอบนั่นคือค่าสัมประสิทธิ์ที่ , - เป็นข้อมูล (รูปที่ 6.0)

ก 0 ก, ….., ก n-1 = ก 0 x 0 +a 1 x 1 + …. + ก n-1 x n+1

x 0 x 1 x 2 x n-k-1 x n-k x n-2 x n-1

ให้ x1, x2, ..., xk แสดงคำของบิตข้อมูล k ที่อินพุตของตัวเข้ารหัส ซึ่งเข้ารหัสเป็นรหัส n บิตคำ C:

อินพุตตัวเข้ารหัส: เอ็กซ์=[x 1, x 2, ...,xk]

เอาต์พุตตัวเข้ารหัส: =[ 1, 2, ..., ซีเอ็น]

ให้สร้างเมทริกซ์พิเศษ จี เอ็น , เค,

การกำหนดรหัสบล็อก ( ,เค).

แถวเมทริกซ์ จี เอ็น , เคจะต้องเป็นอิสระเชิงเส้น

จากนั้นรหัสที่อนุญาต ตรงกับคำที่เข้ารหัส เอ็กซ์:

=x 1 กรัม 1 + x 2 กรัม 2 + ... + x ก ก ก.

รูปแบบที่เป็นระบบ (บัญญัติ) ของเมทริกซ์การสร้าง ขนาด เค x :

เมทริกซ์กำเนิดของรหัสที่เป็นระบบสร้างรหัสบล็อกเชิงเส้นซึ่งตัวแรก เคบิตของคำรหัสใด ๆ จะเหมือนกันกับบิตข้อมูล และส่วนที่เหลือ =-เคบิตของคำรหัสใด ๆ คือการรวมกันเชิงเส้น เคบิตข้อมูล

การตรวจสอบเมทริกซ์ เอช เอ็น เคมันมี x องค์ประกอบและเป็นความจริง:

x เอช ที = 0.

นิพจน์นี้ใช้เพื่อตรวจสอบการรวมรหัสที่ได้รับ หากไม่พอใจความเท่ากับศูนย์ เราก็จะได้เมทริกซ์แถว || 1 , 2 , ..., || เรียกว่ากลุ่มอาการผิดพลาด

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

พิจารณารหัส Hamming ด้วยระยะทางรหัส =3 ซึ่งช่วยให้คุณแก้ไขข้อผิดพลาดเดียว ( =2คิวแม็กซ์+1).

จำนวนรหัสที่อนุญาตสำหรับรหัสที่มี =3 สำหรับรหัส Hamming อย่างเคร่งครัดเท่ากับ 2 /(+1). อันดับแรก เคบิตของการรวมรหัสของรหัสถูกใช้เป็นข้อมูลและจำนวนของรหัสนั้นเท่ากับ

เค= บันทึก 2 (2 /(+1)] = - บันทึก 2 ( +1).

สมการนี้มีคำตอบเป็นจำนวนเต็ม เค= 0, 1, 4, 11, 26 ซึ่งกำหนดรหัส Hamming ที่สอดคล้องกัน: (3,1)-รหัส, (7,4)-รหัส, (15,11)-รหัส เป็นต้น (เสมอ =2‑1).

การตรวจสอบเมทริกซ์ ชมตอกโค้ด ( =n-kเส้นและ คอลัมน์): สำหรับรหัสไบนารี (n,k) n=2 w -1 คอลัมน์ประกอบด้วยเวกเตอร์ไบนารีที่เป็นไปได้ทั้งหมดที่มีองค์ประกอบ r=n-k ยกเว้นเวกเตอร์ที่มีองค์ประกอบเป็นศูนย์ทั้งหมด.

มันง่ายที่จะตรวจสอบว่า x เอช ที= 0 (ศูนย์เมทริกซ์ของขนาด เค x องค์ประกอบ).

ตัวอย่าง.ตรวจสอบการทำงานของรหัสเมื่อส่งข้อความ เอ็กซ์=1011. การรวมรหัสที่ส่งจะสร้างเป็นชุดค่าผสมเชิงเส้น (การบวกโมดูโล 2) ของแถวที่ 1, 3, 4 ของเมทริกซ์ 7,4:

เราคิดว่าสำหรับคำรหัสที่ส่ง ข้อผิดพลาด 0000100 ได้รับผลกระทบ ส่งผลให้ฝ่ายรับได้รับคำนั้น "=10111 10.



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

การเปรียบเทียบซินโดรมที่เกิดกับสตริง ชม T , เราได้บิต #5 ทางซ้ายนั้นผิด

ตัวถอดรหัส Hamming สามารถทำงานได้สองอย่าง แยกกันไม่ออกโหมด:

โหมดแก้ไขข้อผิดพลาด (แก้ไข) (เพราะ นาที = 3 จากนั้นจะอนุญาตให้คุณแก้ไขข้อผิดพลาดเดียว);

โหมดตรวจจับข้อผิดพลาด (เพราะ นาที = 3 จากนั้นตรวจพบข้อผิดพลาดหลายหลาก ถาม 2 ปอนด์) หากซินโดรมไม่เท่ากับ 0 แสดงว่าตัวถอดรหัสส่งสัญญาณข้อผิดพลาด

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

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

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

ความยาวรหัสเพิ่มขึ้นจาก 2 -1 ถึง 2 ซึ่งสะดวกในแง่ของการถ่ายโอนข้อมูลและการจัดเก็บ

ระยะทางขั้นต่ำ รหัส Hamming ที่ขยายเพิ่มขั้นต่ำคือ 4 ซึ่งทำให้สามารถตรวจจับ (!) ข้อผิดพลาด 3 เท่าได้

ความเท่าเทียมกันเพิ่มเติมช่วยให้สามารถใช้ตัวถอดรหัสในโหมดไฮบริดใหม่ - การตรวจจับและแก้ไขข้อผิดพลาด

พิจารณาส่วนขยายของ (7,4,3) Hamming code

เวกเตอร์รหัสแต่ละตัว a ได้มาจากเวกเตอร์โค้ด c โดยการเพิ่มแพริตีบิตพิเศษ ก = ( 1 , ..., 7, 8) โดยที่ .

การตรวจสอบเมทริกซ์ ชมรหัส (8,4) ได้มาจากเมทริกซ์ตรวจสอบของรหัส (7,4) ในสองขั้นตอน:

เพิ่มคอลัมน์ศูนย์ในเมทริกซ์ของรหัส (7,4)

เมทริกซ์ผลลัพธ์จะเสริมด้วยแถวที่ประกอบด้วยเมทริกซ์ทั้งหมด

เราได้รับ:

ด้วยการถอดรหัสซินโดรมิก

" = ชมที ,

และส่วนประกอบทั้งหมดของ s" ต้องเท่ากับ 0

ด้วยข้อผิดพลาดเดียว s "(4) = 1 ตามค่าของซินโดรม (3 บิตล่าง) เราจะค้นหาและแก้ไข (กลับด้าน) บิตที่ผิดพลาด

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

ดังนั้น ตัวถอดรหัส Hamming แบบขยายสามารถใช้ในโหมดใดโหมดหนึ่งจากสองโหมดที่ใช้ร่วมกันไม่ได้:

เพื่อแก้ไขข้อผิดพลาดเดี่ยวและตรวจหาข้อผิดพลาดซ้ำ

เพื่อตรวจหาข้อผิดพลาดสามข้อ



มีคำถามหรือไม่?

รายงานการพิมพ์ผิด

ข้อความที่จะส่งถึงบรรณาธิการของเรา: