Cyclic redundancy checksum ม ว ธ การอย างไรบ าง

ในบทช่วยสอนนี้ เราจะเรียนรู้เกี่ยวกับการแก้ไขข้อผิดพลาดและรหัสการตรวจจับที่ใช้กันทั่วไป เราจะเห็นเกี่ยวกับข้อผิดพลาดในการสื่อสารแบบดิจิทัล ข้อผิดพลาดประเภทต่าง ๆ คืออะไร การแก้ไขข้อผิดพลาดบางอย่างและรหัสการตรวจจับเช่น Parity, CRC, Hamming Code เป็นต้น บทนำคืออะไร ข้อผิดพลาดประเภทข้อผิดพลาด Single Bit Data Errors ข้อผิดพลาดข้อมูลหลายบิตข้อผิดพลาด Burst Error Detecting Codes ประเภทของ การตรวจจับข้อผิดพลาด การตรวจสอบพาริตีEven ParityOdd Parity Cyclic Redundancy Check (CRC)การสร้างโค้ด CRCExample Longitudinal Redundancy CheckCheck SumExampleError Correcting CodesHamming CodeWhat is a Redundancy Bit? Hamming code แก้ไขข้อผิดพลาดได้อย่างไรจำนวน parity bits ที่จะวาง Parity Bits เหล่านี้ไว้ที่ไหน การสร้างตำแหน่งบิต TableAlpha Numeric CodesMORSE Code BOUDOT CodeHOLLERITH CodeASCII CODEEตัวอย่าง:UNICODEEBCDI CODEการแนะนำ ในระบบดิจิตอล สัญญาณแอนะล็อกจะเปลี่ยนเป็นลำดับดิจิตอล (ในรูปของบิต) ลำดับของบิตนี้เรียกว่า "สตรีมข้อมูล" การเปลี่ยนแปลงตำแหน่งของบิตเดียวยังทำให้เกิดข้อผิดพลาดร้ายแรง (สำคัญ) ในการส่งออกข้อมูล เราพบข้อผิดพลาดในอุปกรณ์อิเล็กทรอนิกส์เกือบทั้งหมด และเราใช้เทคนิคการตรวจหาข้อผิดพลาดและการแก้ไขเพื่อให้ได้ผลลัพธ์ที่แน่นอนหรือใกล้เคียงกัน ข้อผิดพลาดคืออะไร ข้อมูลอาจเสียหายระหว่างการส่ง (จากแหล่งที่มาไปยังผู้รับ) อาจได้รับผลกระทบจากเสียงภายนอกหรือความไม่สมบูรณ์ทางกายภาพอื่นๆ ในกรณีนี้ ข้อมูลอินพุตไม่เหมือนกับข้อมูลเอาต์พุตที่ได้รับ ข้อมูลที่ไม่ตรงกันนี้เรียกว่า “ข้อผิดพลาด” ข้อผิดพลาดของข้อมูลจะทำให้ข้อมูลสำคัญ/ข้อมูลปลอดภัยสูญหาย การเปลี่ยนแปลงข้อมูลแม้แต่นิดเดียวอาจส่งผลต่อประสิทธิภาพของทั้งระบบ โดยทั่วไปการถ่ายโอนข้อมูลในระบบดิจิทัลจะอยู่ในรูปแบบของ 'Bit – Transfer' ในกรณีนี้ ข้อผิดพลาดของข้อมูลมีแนวโน้มที่จะเปลี่ยนในตำแหน่ง 0 และ 1 กลับไปด้านบน ประเภทข้อผิดพลาดในลำดับข้อมูล หาก 1 เปลี่ยนเป็นศูนย์ หรือ 0 เปลี่ยนเป็น 1 จะเรียกว่า "ข้อผิดพลาดบิต" โดยทั่วไปจะมีข้อผิดพลาด 3 ประเภทที่เกิดขึ้นในการรับส่งข้อมูลจากเครื่องส่งไปยังเครื่องรับ ข้อผิดพลาดเหล่านี้คือ• ข้อผิดพลาดบิตเดียว• ข้อผิดพลาดหลายบิต• ข้อผิดพลาดต่อเนื่อง ข้อผิดพลาดข้อมูลบิตเดียวการเปลี่ยนแปลงในหนึ่งบิตในลำดับข้อมูลทั้งหมด เรียกว่า "ข้อผิดพลาดบิตเดียว" ข้อผิดพลาดบิตเดียวเกิดขึ้นน้อยมากในระบบการสื่อสารแบบอนุกรม ข้อผิดพลาดประเภทนี้เกิดขึ้นเฉพาะในระบบการสื่อสารแบบคู่ขนาน เนื่องจากข้อมูลถูกถ่ายโอนด้วยบิตที่ชาญฉลาดในบรรทัดเดียว จึงมีโอกาสที่บรรทัดเดียวจะเกิดสัญญาณรบกวน ข้อผิดพลาดข้อมูลหลายบิตหากมีการเปลี่ยนแปลงลำดับข้อมูลของเครื่องส่งสัญญาณไปยังเครื่องรับตั้งแต่สองบิตขึ้นไป เรียกว่า "ข้อผิดพลาดหลายบิต" ข้อผิดพลาดประเภทนี้เกิดขึ้นในเครือข่ายการสื่อสารข้อมูลทั้งแบบอนุกรมและแบบขนาน Burst Errors การเปลี่ยนแปลงชุดบิตในลำดับข้อมูลเรียกว่า “Burst error” ข้อผิดพลาดการระเบิดจะคำนวณจากการเปลี่ยนแปลงบิตแรกจนถึงการเปลี่ยนแปลงบิตล่าสุด ในที่นี้เราจะระบุข้อผิดพลาดจากบิตที่สี่ถึงบิตที่ 6 ตัวเลขระหว่างบิตที่ 4 และ 6 ก็ถือเป็นข้อผิดพลาดเช่นกัน ชุดบิตเหล่านี้เรียกว่า "Burst error" บิตระเบิดเหล่านี้เปลี่ยนจากตัวส่งไปยังตัวรับ ซึ่งอาจทำให้เกิดข้อผิดพลาดที่สำคัญในลำดับข้อมูล ข้อผิดพลาดประเภทนี้เกิดขึ้นในการสื่อสารแบบอนุกรมและยากต่อการแก้ไขกลับไปด้านบนError Detecting Codesในข้อผิดพลาดของระบบการสื่อสารแบบดิจิทัลจะถูกถ่ายโอนจากระบบการสื่อสารหนึ่งไปยังอีกระบบหนึ่งพร้อมกับข้อมูล หากตรวจไม่พบและแก้ไขข้อผิดพลาดเหล่านี้ ข้อมูลจะสูญหาย เพื่อการสื่อสารที่มีประสิทธิภาพ ควรถ่ายโอนข้อมูลด้วยความแม่นยำสูง ซึ่งสามารถทำได้โดยการตรวจจับข้อผิดพลาดก่อนแล้วจึงแก้ไข การตรวจจับข้อผิดพลาดเป็นกระบวนการตรวจจับข้อผิดพลาดที่มีอยู่ในข้อมูลที่ส่งจากเครื่องส่งไปยังเครื่องรับในการสื่อสาร ระบบ. เราใช้รหัสสำรองเพื่อตรวจจับข้อผิดพลาดเหล่านี้ โดยเพิ่มข้อมูลในขณะที่ส่งจากแหล่งที่มา (ตัวส่งสัญญาณ) รหัสเหล่านี้เรียกว่า "รหัสตรวจจับข้อผิดพลาด" ประเภทของการตรวจจับข้อผิดพลาดการตรวจสอบParity CheckingCyclic Redundancy Check (CRC) การตรวจสอบความซ้ำซ้อนตามยาว (LRC)Check Sum Parity CheckingParity บิตไม่ได้มีความหมายอะไรเลย นอกจากบิตเพิ่มเติมที่เพิ่มลงในข้อมูลที่เครื่องส่งสัญญาณก่อนที่จะส่งข้อมูล ก่อนเพิ่มพาริตีบิต ข้อมูลจะคำนวณจำนวน 1 หรือศูนย์ในข้อมูล จากการคำนวณข้อมูลนี้ จะมีการเพิ่มบิตพิเศษลงในข้อมูล/ข้อมูลจริง การเพิ่มพาริตีบิตลงในข้อมูลจะส่งผลให้ขนาดสตริงข้อมูลเปลี่ยนแปลง ซึ่งหมายความว่าหากเรามีข้อมูล 8 บิต จากนั้นหลังจากเพิ่มพาริตีบิตลงในสตริงไบนารีข้อมูลแล้ว จะกลายเป็นสตริงข้อมูลไบนารี 9 บิต เช็คเรียกอีกอย่างว่า “Vertical Redundancy Check (VRC)” ในการตรวจจับข้อผิดพลาดมีพาริตีบิตสองประเภท นั่นคือพาริตีคู่คี่Even Parityหากข้อมูลมีจำนวนคู่เท่ากับ 1 พาริตีบิตจะเป็น 0 ตัวอย่าง: data คือ 10000001 -> parity bit 0 เลขคี่ของ 1, parity bit คือ 1 ตัวอย่าง: data is 10010001 -> parity bit 1Odd Parityหากข้อมูลมีเลข 1 เป็นเลขคี่ parity bit จะเป็น 0 เช่น data คือ 10011101 -> parity bit 0 เลขคู่ของ 1, parity bit คือ 1 เช่น data is 10010101 -> parity bit 1หมายเหตุ: การนับบิตข้อมูลจะรวม parity bit ด้วย วงจรที่เพิ่ม parity bit ให้กับข้อมูลที่เครื่องส่งสัญญาณเรียกว่า "Parity generator" พาริตีบิตถูกส่งไปและถูกตรวจสอบที่เครื่องรับ หากพาริตีบิตที่ส่งที่ตัวส่งและพาริตีบิตที่ได้รับที่ตัวรับไม่เท่ากัน จะตรวจพบข้อผิดพลาด วงจรที่ตรวจสอบความเท่าเทียมกันที่เครื่องรับเรียกว่า "ตัวตรวจสอบความเท่าเทียมกัน" ข้อความที่มีความเท่าเทียมกันและความเท่าเทียมกันของคี่กลับไปด้านบน Cyclic Redundancy Check (CRC) รหัสแบบวนเป็นรหัสบล็อกเชิงเส้น (n, k) ที่มีคุณสมบัติที่ทุกรอบ ของ codeword ส่งผลให้เกิด code word อื่น โดยที่ k ระบุความยาวของข้อความที่เครื่องส่ง (จำนวนบิตข้อมูล) n คือความยาวทั้งหมดของข้อความหลังจากเพิ่มเช็คบิต (ข้อมูลจริงและบิตตรวจสอบ) n, k คือจำนวนเช็คบิต รหัสที่ใช้สำหรับการตรวจสอบความซ้ำซ้อนแบบวนซ้ำโดยการตรวจจับข้อผิดพลาดนั้นเรียกว่ารหัส CRC (รหัสการตรวจสอบแบบวนซ้ำแบบวนซ้ำ) รหัสตรวจสอบความซ้ำซ้อนแบบวนซ้ำเป็นรหัสแบบวนที่สั้นลง รหัสประเภทนี้ใช้สำหรับการตรวจจับข้อผิดพลาดและการเข้ารหัส พวกมันถูกนำไปใช้อย่างง่ายดายโดยใช้ shift-registers พร้อมการเชื่อมต่อข้อเสนอแนะ นั่นคือเหตุผลที่ใช้กันอย่างแพร่หลายในการตรวจจับข้อผิดพลาดในการสื่อสารดิจิทัล รหัส CRC จะให้การป้องกันที่มีประสิทธิภาพและในระดับสูง การสร้างรหัส CRC ขึ้นอยู่กับจำนวนการตรวจสอบบิตที่ต้องการ เราจะเพิ่มเลขศูนย์ (0) ให้กับข้อมูลจริง ลำดับข้อมูลไบนารีใหม่นี้หารด้วยคำใหม่ที่มีความยาว n + 1 โดยที่ n คือจำนวนบิตตรวจสอบที่จะเพิ่ม ตัวเตือนที่ได้รับจากการแบ่งโมดูโล 2 นี้ถูกเพิ่มไปยังลำดับบิตการจ่ายเงินปันผลเพื่อสร้างโค้ดแบบวนซ้ำ คำรหัสที่สร้างขึ้นนั้นหารด้วยตัวหารที่ใช้ในการสร้างรหัสอย่างสมบูรณ์ สิ่งนี้ถูกส่งผ่านตัวส่งสัญญาณ ตัวอย่างที่ฝั่งผู้รับ เราแบ่งคำรหัสที่ได้รับด้วยตัวหารเดียวกันเพื่อให้ได้คำรหัสจริง สำหรับการรับข้อมูลที่ปราศจากข้อผิดพลาด ตัวเตือนจะเป็น 0 หากตัวเตือนไม่ใช่ศูนย์ แสดงว่ามีข้อผิดพลาดในรหัส/ลำดับข้อมูลที่ได้รับ ความน่าจะเป็นของการตรวจจับข้อผิดพลาดขึ้นอยู่กับจำนวนบิตตรวจสอบ (n) ที่ใช้สร้างรหัสวัฏจักร สำหรับข้อผิดพลาดบิตเดียวและสองบิต ความน่าจะเป็นคือ 100 % สำหรับข้อผิดพลาดต่อเนื่องที่มีความยาว n – 1 ความน่าจะเป็นของการตรวจจับข้อผิดพลาดคือ 100 % ข้อผิดพลาดการแตกที่มีความยาวเท่ากับ n + 1 ความน่าจะเป็นของการตรวจจับข้อผิดพลาดจะลดลง ถึง 1 – (1/2)n-1 .A burst error of length more than n – 1 , ความน่าจะเป็นของการตรวจจับข้อผิดพลาดคือ 1 – (1/2)n .Back to top Longitudinal Redundancy CheckIn longitudinal redundancy method, a BLOCK ของบิตถูกจัดเรียงในรูปแบบตาราง (ในแถวและคอลัมน์) และเราจะคำนวณบิตพาริตีสำหรับแต่ละคอลัมน์แยกกัน ชุดของพาริตีบิตเหล่านี้จะถูกส่งไปพร้อมกับบิตข้อมูลดั้งเดิมของเราด้วย การตรวจสอบความซ้ำซ้อนตามยาวเป็นการคำนวณความเท่าเทียมกันแบบทีละบิต เนื่องจากเราคำนวณความเท่าเทียมกันของแต่ละคอลัมน์ วิธีนี้สามารถตรวจจับข้อผิดพลาดการระเบิดและข้อผิดพลาดบิตเดียวได้อย่างง่ายดาย ตรวจไม่พบข้อผิดพลาด 2 บิตที่เกิดขึ้นในสไลซ์แนวตั้งเดียวกัน กลับไปด้านบนCheck SumChecksums นั้นคล้ายกับพาริตีบิต ยกเว้น จำนวนของบิตในผลรวมจะมากกว่าพาริตี และผลลัพธ์จะถูกจำกัดให้เป็นศูนย์เสมอ ซึ่งหมายความว่าหากผลรวมของเช็คซัมเป็นศูนย์ แสดงว่าตรวจพบข้อผิดพลาด เช็คซัมของข้อความคือผลรวมเลขคณิตของคำรหัสที่มีความยาวที่แน่นอน ผลรวมระบุด้วยคำชมเชยของ 1 และจัดเก็บหรือโอนเป็นส่วนขยายรหัสของคำรหัสจริง ที่เครื่องรับ เช็คซัมใหม่คำนวณโดยรับลำดับบิตจากตัวส่ง วิธีเช็คซัมรวมถึงบิตพาริตี ตัวเลขตรวจสอบ และการตรวจสอบซ้ำซ้อนตามยาว (LRC) ตัวอย่างเช่น หากเราต้องถ่ายโอนและตรวจพบข้อผิดพลาดสำหรับลำดับข้อมูลที่ยาว (เรียกอีกอย่างว่าสตริงข้อมูล) เราจะแบ่งสิ่งนั้นเป็นคำที่สั้นลง และเราสามารถจัดเก็บข้อมูลด้วยคำที่มีความกว้างเท่ากัน สำหรับแต่ละบิตที่เข้ามาเราจะเพิ่มเข้าไปในข้อมูลที่เก็บไว้แล้ว ทุกๆ คำที่เพิ่มเข้ามาใหม่จะเรียกว่า “Checksum” ที่ฝั่งตัวรับ Checksum ของบิตที่ได้รับจะเหมือนกับของตัวส่ง ไม่พบข้อผิดพลาด เราสามารถค้นหา Checksum ได้โดยการเพิ่มบิตข้อมูลทั้งหมด ตัวอย่างเช่น ถ้าเรามีข้อมูล 4 ไบต์เป็น 25h, 62h, 3fh, 52h จากนั้น เพิ่มไบต์ทั้งหมด เราจะได้ 118HDการยก Nibble เราจะได้ 18Hค้นหาส่วนเสริมของ 2 ของแทะ นั่นคือ E8Hนี่คือเช็คซัมของข้อมูล 4 บิตที่ส่ง ที่ฝั่งผู้รับ เพื่อตรวจสอบว่าได้รับข้อมูลโดยไม่มีข้อผิดพลาดหรือไม่ เพียงเพิ่มการตรวจสอบลงในบิตข้อมูลจริง (เราจะได้ 200H) โดยการทิ้งแทะแทะเราจะได้ 00H ซึ่งหมายความว่าเช็คซัมถูกจำกัดให้เป็นศูนย์ ดังนั้นจึงไม่มีข้อผิดพลาดในข้อมูล โดยทั่วไปมีวิธีการตรวจสอบ 5 ประเภท เช่น การบวกจำนวนเต็ม checksumOne'scomplement checksumFletcher ChecksumAdler ChecksumATN Checksum (AN/466)ตัวอย่าง ณ ตอนนี้ เราได้พูดถึงรหัสการตรวจจับข้อผิดพลาดแล้ว แต่การได้รับลำดับข้อมูลที่แม่นยำและสมบูรณ์แบบไม่มีข้อผิดพลาด ยังไม่สามารถทำได้เพียงพอโดยการตรวจจับข้อผิดพลาดที่เกิดขึ้นในข้อมูลเท่านั้น แต่เราต้องแก้ไขข้อมูลด้วยการกำจัดข้อผิดพลาด หากมี ในการดำเนินการนี้ เราใช้รหัสอื่นกลับไปด้านบนรหัสแก้ไขข้อผิดพลาดรหัสที่ใช้สำหรับการตรวจจับข้อผิดพลาดและการแก้ไขข้อผิดพลาดเรียกว่า "รหัสแก้ไขข้อผิดพลาด" เทคนิคการแก้ไขข้อผิดพลาดมีสองประเภท การแก้ไขข้อผิดพลาดแบบบิตเดียว การแก้ไขข้อผิดพลาดแบบต่อเนื่อง กระบวนการหรือวิธีการแก้ไขข้อผิดพลาดบิตเดียวเรียกว่า “การแก้ไขข้อผิดพลาดบิตเดียว” วิธีการตรวจจับและแก้ไขข้อผิดพลาดการระเบิดในลำดับข้อมูลเรียกว่า “การแก้ไขข้อผิดพลาด Burst” รหัส Hamming หรือ Hamming Distance Code เป็นรหัสแก้ไขข้อผิดพลาดที่ดีที่สุดที่เราใช้ในเครือข่ายการสื่อสารและระบบดิจิทัลส่วนใหญ่ กลับไปด้านบน รหัส Hamming การตรวจจับข้อผิดพลาดนี้ และเทคนิคการแก้ไขโค้ดได้รับการพัฒนาโดย RWHamming รหัสนี้ไม่เพียงแต่ระบุบิตของข้อผิดพลาด ในลำดับข้อมูลทั้งหมด และยังแก้ไขด้วย รหัสนี้ใช้บิตพาริตีจำนวนหนึ่งซึ่งอยู่ที่ตำแหน่งหนึ่งในคำรหัส จำนวนบิตพาริตีขึ้นอยู่กับจำนวนบิตข้อมูล รหัส hamming ใช้ความสัมพันธ์ระหว่าง redundancy bits และ data bits และรหัสนี้สามารถใช้ได้กับ data bits จำนวนเท่าใดก็ได้ Redundancy Bit คืออะไร Redundancy หมายถึง “ความแตกต่างระหว่างจำนวนบิตของลำดับข้อมูลจริงและบิตที่ส่ง ” บิตสำรองเหล่านี้ใช้ในระบบการสื่อสารเพื่อตรวจจับและแก้ไขข้อผิดพลาด หากมี รหัส Hamming แก้ไขข้อผิดพลาดได้อย่างไร ในโค้ด Hamming บิตสำรองจะวางในตำแหน่งที่คำนวณไว้เพื่อขจัดข้อผิดพลาด ระยะห่างระหว่างสองบิตซ้ำซ้อนเรียกว่า "ระยะทางแฮมมิง" เพื่อให้เข้าใจการทำงานและการแก้ไขข้อผิดพลาดของข้อมูลและกลไกการตรวจจับของโค้ด hamming มาดูขั้นตอนต่อไปนี้กัน จำนวนของแพริตีบิตที่เราเรียนรู้ก่อนหน้านี้ จำนวนของพาริตี บิตที่จะเพิ่มลงในสตริงข้อมูลขึ้นอยู่กับจำนวนบิตข้อมูลของสตริงข้อมูลที่จะส่ง จำนวนของพาริตีบิตจะคำนวณโดยใช้บิตข้อมูล ความสัมพันธ์นี้แสดงไว้ด้านล่าง2P >= n + P +1ที่นี่ n แทนจำนวนบิตในสตริงข้อมูล P แทนจำนวนบิตพาริตี ตัวอย่างเช่น หากเรามีสตริงข้อมูล 4 บิต เช่น n = 4 จากนั้นจำนวนบิตพาริตีที่จะเพิ่มสามารถพบได้โดยใช้วิธีการทดลองและข้อผิดพลาด ลองหา P = 2 แล้ว2P = 22 = 4 และ n + P + 1 = 4 + 2 + 1 = 7นี่ละเมิดนิพจน์จริง ลอง P = 3 แล้ว2P = 23 = 8 และ n + P + 1 = 4 + 3 + 1 = 8 ดังนั้น เราสามารถพูดได้ว่าต้องใช้พาริตีบิต 3 บิตในการถ่ายโอนข้อมูล 4 บิตด้วยการแก้ไขข้อผิดพลาดบิตเดียว จะวางพาริตีบิตเหล่านี้ไว้ที่ใด หลังจากคำนวณจำนวนพาริตีบิตที่ต้องการแล้ว เราควรทราบตำแหน่งที่เหมาะสม วางไว้ในสตริงข้อมูล เพื่อให้แก้ไขข้อผิดพลาดบิตเดียว ในตัวอย่างที่พิจารณาข้างต้น เรามี 4 บิตข้อมูลและ 3 พาริตีบิต ดังนั้น codeword ทั้งหมดที่จะส่งคือ 7 บิต (4 + 3) โดยทั่วไปเราจะแสดงลำดับข้อมูลจากขวาไปซ้ายดังแสดงด้านล่าง บิต 7 บิต 6 บิต 5 บิต 4 บิต 3 บิต 2 บิต 1 บิต 0 บิตพาริตีจะต้องอยู่ที่ตำแหน่งยกกำลังของ 2. กล่าวคือ ที่ 1, 2, 4, 8 และ 16 เป็นต้น ดังนั้น codeword หลังจากรวม parity bits จะเป็นแบบนี้D7, D6, D5, P4, D3, P2, P1Here P1, P2 และ P3 เป็น parity bits D1 —- D7 เป็นบิตข้อมูล การสร้างตารางตำแหน่งบิตในโค้ด Hamming แต่ละพาริตีบิตจะตรวจสอบและช่วยในการค้นหาข้อผิดพลาดในคำโค้ดทั้งหมด ดังนั้นเราต้องหาค่าของพาริตีบิตเพื่อกำหนดค่าบิตให้ โดยการคำนวณและแทรกพาริตีบิตลงในบิตข้อมูล เราสามารถแก้ไขข้อผิดพลาดได้โดยใช้โค้ด Hamming มาทำความเข้าใจกันให้ชัดโดยดูตัวอย่าง ตัวอย่าง:เข้ารหัสข้อมูล 1101 ในความเท่าเทียมกันโดยใช้รหัส Hamming ขั้นตอนที่ 1 คำนวณจำนวนบิตพาริตีที่ต้องการ ให้ P = 2 จากนั้น 2P = 22 = 4 และ n + P + 1 = 4 + 2 + 1 = 7.2 พาริตีบิต ไม่เพียงพอสำหรับข้อมูล 4 บิต ลอง P = 3 จากนั้น 2P = 23 = 8 และ n + P + 1 = 4 + 3 + 1 = 8 ดังนั้น 3 พาริตีบิตจึงเพียงพอสำหรับข้อมูล 4 บิต บิตทั้งหมดในคำรหัสคือ 4 + 3 = 7ขั้นตอนที่ 2การสร้างตารางตำแหน่งบิตขั้นตอนที่ 3กำหนดบิตพาริตี สำหรับ P1 : 3, 5 และ 7 บิตมี 1 สามตัว ดังนั้นสำหรับพาริตีคู่ P1 = 1.สำหรับ P2 : 3, 6 และ 7 บิตมี 1 สองตัวดังนั้นสำหรับความเท่าเทียมกัน P2 = 0 สำหรับ P3 : 5, 6 และ 7 บิตมี 1 สองตัวดังนั้นสำหรับความเท่าเทียมกัน P3 = 0 โดยการป้อน / แทรกพาริตีบิตที่ตำแหน่งตามลำดับ โค้ดเวิร์ดสามารถสร้างขึ้นและส่งได้ มันคือ 1100101 หมายเหตุ: หาก codeword มีเลขศูนย์ทั้งหมด (เช่น: 0000000) แสดงว่าไม่มีข้อผิดพลาดในโค้ด Hamming เมื่อต้องการแสดงข้อมูลไบนารีในตัวอักษรและตัวเลข เราใช้รหัสตัวอักษรและตัวเลข กลับไปด้านบน รหัสตัวเลขอัลฟ่ารหัสตัวอักษรและตัวเลขเป็นพื้นฐาน รหัสไบนารีที่ใช้เพื่อแสดงข้อมูลตัวอักษรและตัวเลข เนื่องจากรหัสเหล่านี้แสดงข้อมูลเป็นตัวอักษร รหัสตัวอักษรและตัวเลขจึงเรียกอีกอย่างว่า “รหัสอักขระ” รหัสเหล่านี้สามารถแสดงข้อมูลทุกประเภท รวมถึงตัวอักษร ตัวเลข เครื่องหมายวรรคตอน และสัญลักษณ์ทางคณิตศาสตร์ในรูปแบบที่คอมพิวเตอร์ยอมรับได้ รหัสเหล่านี้ถูกนำมาใช้ในอุปกรณ์ I/O เช่น คีย์บอร์ด จอภาพ เครื่องพิมพ์ ฯลฯ ในสมัยก่อน บัตรเจาะรูจะใช้แทนรหัสตัวอักษรและตัวเลข เป็นรหัส MORSE รหัส BAUDOT รหัส HOLLERITH รหัส ASCII รหัส EBCDI รหัส UNICODEMORSE รหัสในช่วงเริ่มต้นของยุคคอมพิวเตอร์และอิเล็กทรอนิกส์ดิจิทัล รหัสมอร์สเป็นรหัสที่นิยมใช้กันมากที่สุด สิ่งนี้ถูกคิดค้นโดย Samuel FBMorse ในปี 1837 เป็นรหัสโทรเลขตัวแรกที่ใช้ในการสื่อสารโทรคมนาคม ส่วนใหญ่จะใช้ในช่องโทรเลข ช่องวิทยุ และในหน่วยควบคุมการจราจรทางอากาศ รหัส BOUDOT รหัสนี้คิดค้นโดยวิศวกรชาวฝรั่งเศส Emile Baudot ในปี 1870 มันคือรหัส 5 หน่วย หมายความว่ามันใช้องค์ประกอบ 5 อย่างเพื่อแสดงตัวอักษร นอกจากนี้ยังใช้ในเครือข่ายโทรเลขเพื่อถ่ายโอนตัวเลขโรมัน รหัส HOLLERITH รหัสนี้พัฒนาโดยบริษัทที่ก่อตั้งโดย Herman Hollerith ในปี 1896 รหัส 12 บิตที่ใช้ในการเจาะการ์ดตามข้อมูลที่ส่งเรียกว่า "รหัส Hollerith" ASCII CODEASCII หมายถึง American Standard Code สำหรับการแลกเปลี่ยนข้อมูล เป็นรหัสตัวอักษรและตัวเลขที่ได้รับความนิยมและใช้กันอย่างแพร่หลายมากที่สุดในโลก รหัสนี้ได้รับการพัฒนาและเผยแพร่ครั้งแรกในปี 1967 รหัส ASCII คือรหัส 7 บิต ซึ่งหมายความว่ารหัสนี้ใช้อักขระ 27 = 128 ตัว ประกอบด้วยอักษรตัวพิมพ์เล็ก 26 ตัว (a – z), 26 ตัวพิมพ์ใหญ่ (A – Z), 33 อักขระพิเศษและสัญลักษณ์ (เช่น ! @ # $ เป็นต้น), 33 อักขระควบคุม (* – + / และ % เป็นต้น) และ 10 หลัก (0 – 9) ในรหัส 7 บิตนี้ เรามีสองส่วน คือ 3 บิตซ้ายสุด และ 4 บิตทางขวาสุด ด้านซ้ายสุด 3 บิตเรียกว่า "ZONE bits" และ 4 บิตด้านขวาเรียกว่า "NUMERIC bits" ตาราง Ascii รหัส ASCII 8 บิตสามารถแสดงอักขระได้ 256 (28) ตัว เรียกว่า USACC – II หรือ ASCII – 8 รหัส ตัวอย่าง: หากเราต้องการพิมพ์ชื่อ LONDAN รหัส ASCII คือ? ASCII-7 เทียบเท่ากับ L = 100 1100 ASCII-7 เทียบเท่ากับ O = 100 1111The ASCII-7 เทียบเท่ากับ N = 100 1110 ASCII-7 เทียบเท่ากับ D = 100 0100 ASCII-7 เทียบเท่ากับ A = 100 0001 ASCII-7 เทียบเท่ากับ N = 100 1110ผลลัพธ์ของ LONDAN ในรหัส ASCII คือ 1 0 0 1 1 0 0 1 0 0 1 1 1 1 1 0 0 1 1 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 1 1 0 0 1 1 1 0 UNICODE ข้อเสียของรหัส ASCII และรหัส EBCDI คือไม่สามารถใช้ได้กับทุกคน ภาษาและไม่มีชุดอักขระเพียงพอที่จะแสดงข้อมูลทุกประเภท เพื่อเอาชนะข้อเสียเปรียบเหล่านี้ UNICODE นี้ได้รับการพัฒนา UNICODE เป็นแนวคิดใหม่ของเทคนิคการเข้ารหัสดิจิทัลทั้งหมด ในนี้เรามีตัวละครที่แตกต่างกันเพื่อเป็นตัวแทนของทุกตัวเลข เป็นภาษาขั้นสูงและซับซ้อนที่สุดด้วยความสามารถในการแสดงข้อมูลทุกประเภท ดังนั้นสิ่งนี้จึงเรียกว่า “รหัสสากล” มันเป็นรหัส 16 บิต ซึ่งเราสามารถแทน 216 = 65536 อักขระที่แตกต่างกัน UNICODE ได้รับการพัฒนาโดยความร่วมมือระหว่างกลุ่ม UNICODE และ ISO (องค์กรระหว่างประเทศเพื่อการมาตรฐาน) EBCDI CODEEBCDI ย่อมาจาก Extended Binary Coded Decimal Interchange code รหัสนี้พัฒนาโดยบริษัท IBM Inc. เป็นรหัส 8 บิต ดังนั้นเราจึงสามารถแสดงอักขระ 28 = 256 ตัวโดยใช้รหัส EBCDI ซึ่งรวมถึงตัวอักษรและสัญลักษณ์ทั้งหมด เช่น อักษรตัวพิมพ์เล็ก 26 ตัว (a – z) อักษรตัวพิมพ์ใหญ่ 26 ตัว (A – Z) อักขระพิเศษและสัญลักษณ์ 33 ตัว (เช่น !