กระบวนการเข้ารหัสแอลดีพีซีสำหรับส่งสัญญาณข้อมูลแสดงดังบล็อกไดอะแกรมรูปที่ 1 การทำงานจะเริ่มต้นจากการนำข้อมูลที่ต้องการส่งไปเข้ารหัสด้วยรหัสตรวจจับความผิดพลาดที่เรียกว่า CRC ก่อนจะนำผลลัพธ์ที่ได้ผ่านกระบวนการแบ่งส่วนข้อมูล (Segmentation) เพื่อแบ่งข้อมูลให้มีขนาดเป็นไปตามมาตรฐานการสื่อสาร 5G โดยข้อมูลจะถูกแบ่งออกเป็นบล็อกย่อย ๆ ที่มีขนาดเท่ากัน
จากนั้นแต่ละบล็อกย่อยจะถูกนำไปเข้ารหัส CRC ซ้ำอีกหนึ่งครั้งแล้วนำผลลัพธ์ที่ได้ไปเข้ารหัส LDPC เพื่อแก้ไขความผิดพลาดของข้อมูลได้อย่างถูกต้อง ผลลัพธ์ที่ได้จากการเข้ารหัส LDPC จะถูกเรียกว่าคำรหัส (Codeword) ซึ่งคำรหัสจะถูกส่งต่อไปยังวงจรปรับอัตรารหัส (Rate Matching) เพื่อปรับความยาวของคำรหัสให้เหมาะสมกับการส่ง จากนั้นวงจรแทรกสลับบิต (Bit Interleaving) จะถูกใช้งานเพื่อแทรกสลับบิตข้อมูลในคำรหัสเพื่อป้องกันความผิดพลาดแบบติดกัน (Burst Error) สุดท้ายจะมีการต่อเรียงบล็อกรหัสเพื่อส่งต่อไปมอดูเลตและส่งข้อมูลออกไปตามลำดับ
รายละเอียดเพิ่มเติม
รหัส Cyclic Redundancy Check (CRC) เป็นรหัสที่ใช้ในการตรวจสอบความผิดพลาดของข้อมูล โดยมีลักษณะคล้าย Hash แต่มีความซับซ้อนและขนาดผลลัพธ์การคำนวณน้อยกว่า (ขนาดไม่เกิน 64 บิต ในขณะที่ Hash นั้นมีขนาดมากกว่า 128 บิต) รหัส CRC ถูกใช้ในการรับส่งข้อมูลที่มีการเข้าจังหวะ (Synchronous) และการสื่อสารข้อมูลที่ต้องการความรวดเร็วในการตรวจสอบความผิดพลาดของข้อมูล หลักการของ CRC จะใช้โพลีโนเมียล (Polynomial) มาเป็นค่าตัวหาร (Divisor) ซึ่งมีข้อกำหนดว่าบิตซ้ายสุดและบิตขวาสุดต้องมีค่าเท่ากับ 1 เสมอ อีกทั้งโพลิโนเมียลจะต้องมีจำนวนบิตน้อยกว่าจำนวนบิตของข้อมูล ในการหาค่า CRC สามารถทำได้โดยอาศัยตัวดำเนินการ Exclusive-OR หากบิตตรงกันผลที่ได้จะเท่ากับ 0 ในขณะที่บิตต่างกัน ผลที่ได้ก็จะเท่ากับ 1 การเข้ารหัสแบบ CRC ในมาตรฐาน 5G สำหรับแบบ Uplink และ Downlink ใช้การเข้ารหัส CRC ขนาด 24, 16, 11 และ 6 บิต โดยมีการกำหนดโพลิโนเมียลตัวหารดังนี้
- สำหรับการเข้ารหัส CRC 24 บิต
\(\begin{array}{l}{{g}_{{\text{CRC24A}}}}(X)={{X}^{{24}}}+{{X}^{{23}}}+{{X}^{{18}}}+{{X}^{{17}}}+{{X}^{{14}}}+{{X}^{{11}}}+{{X}^{{10}}}+{{X}^{7}}+{{X}^{6}}+{{X}^{5}}+{{X}^{4}}+{{X}^{3}}\\\quad \quad \quad \quad \quad +X+1\end{array}\)
\({{g}_{{\text{CRC24B}}}}(X)={{X}^{{24}}}+{{X}^{{23}}}+{{X}^{6}}+{{X}^{5}}+X+1\)
\(\displaystyle {{g}_{{\text{CRC24C}}}}(X)={{X}^{{24}}}+{{X}^{{23}}}+{{X}^{{21}}}+{{X}^{{20}}}+{{X}^{{17}}}+{{X}^{{15}}}+{{X}^{{13}}}+{{X}^{{12}}}+{{X}^{8}}+{{X}^{4}}+{{X}^{2}}+X+1\)
- สำหรับการเข้ารหัส CRC 16 บิต
\({{g}_{{\text{CRC16}}}}(X)={{X}^{{16}}}+{{X}^{{12}}}+{{X}^{5}}+1\)
- สำหรับการเข้ารหัส CRC 11 บิต
\({{g}_{{\text{CRC11}}}}(X)={{X}^{{11}}}+{{X}^{{10}}}+{{X}^{9}}+{{X}^{5}}+1\)
- สำหรับการเข้ารหัส CRC 6 บิต
\({{g}_{{\text{CRC6}}}}(X)={{X}^{6}}+{{X}^{5}}+1\)
โดยขนาดของการเข้ารหัส CRC และโพลิโนเมียลตัวหารดังกล่าวได้มีการพิสูจน์แล้วว่าเพียงพอสำหรับการใช้ตรวจสอบความผิดพลาดข้อมูลสำหรับช่องสัญญาณข้อมูล อย่างไรก็ตาม สำหรับกระบวนการเข้ารหัสช่องสัญญาณสำหรับช่องสัญญาณข้อมูลในมาตรฐาน 5G ประกอบด้วยการเข้ารหัส CRC 2 ส่วนได้แก่ การเข้ารหัส CRC ในส่วนของบล็อกการขนส่ง (Transport Block) และการเข้ารหัส CRC ในส่วนของบล็อกรหัสดังนี้
- การเข้ารหัส CRC ในส่วนของบล็อกการขนส่ง เป็นการเข้ารหัส CRC ข้อมูลทั้งหมดที่ต้องการส่งไปยังภาครับ โดยมีการแบ่งออกเป็น 2 กรณีได้แก่ กรณีข้อมูลมีความยาวมากกว่า 3824 บิต กำหนดให้ใช้การเข้ารหัส CRC ขนาด 24 บิต มีโพลิโนเมียลเป็น \({{g}_{{\text{CRC24A}}}}(X)\) หากเป็นกรณีอื่น กำหนดให้ใช้การเข้ารหัส CRC ขนาด 16 บิตมีโพลิโนเมียลเป็น \({{g}_{{\text{CRC16}}}}(X)\)
- การเข้ารหัส CRC ในส่วนของบล็อกรหัสเป็นการเข้ารหัส CRC ข้อมูลแต่ละบล็อกย่อย ๆ หลังผ่านกระบวนการ Segmentation เนื่องจากเมื่อทำการแบ่งข้อมูลเป็นบล็อกย่อย ข้อมูลบางบล็อกเป็นเพียงข้อมูลบางส่วนของข้อมูลเริ่มต้นที่ต้องการส่งไปยังภาครับ ดังนั้นจึงมีการเข้ารหัส CRC ข้อมูลแต่ละบล็อกย่อย ๆ เพื่อใช้ในการตรวจสอบความผิดพลาดของข้อมูลแต่ละบล็อกย่อยในภาครับ โดยมีการกำหนดให้ใช้การเข้ารหัส CRC ขนาด 24 บิต มีโพลิโนเมียลเป็น \({{g}_{{\text{CRC24B}}}}(X)\)
การแบ่งส่วนข้อมูล (Segmentation) เป็นกระบวนการแบ่งบล็อกข้อมูลให้เป็นบล็อกย่อย เมื่อบล็อกข้อมูลมีขนาดมากเกินขอบเขตในกระบวนการเข้ารหัส LDPC มาตรฐาน 5G ที่กำหนด บล็อกข้อมูลจะถูกแบ่งเป็นบล็อกรหัส (Code Block) แต่ละบล็อกรหัสจะถูกส่งไปเข้ารหัสด้วยรหัส CRC ซึ่งจำนวนบิตข้อมูลสูงสุดต่อบล็อก (\({{K}_{{cb}}}\)) ที่มาตรฐาน 5G รองรับจะขึ้นอยู่กับกราฟฐาน (Base Graph) ที่เลือกใช้
- กรณีที่ใช้กราฟฐาน 1 ขนาดบิตสูงสุดต่อบล็อก \({{K}_{{cb}}}\) = 8448 บิต
- กรณีที่ใช้กราฟฐาน 2 ขนาดบิตสูงสุดต่อบล็อก \({{K}_{{cb}}}\) = 3840 บิต
กระบวนการ Segmentation เริ่มต้นจากการพิจารณาจำนวนบิตอินพุตที่เข้ามาโดยบิตอินพุตที่เข้ามา (\(B\)) ซึ่งเป็นบิตข้อมูลที่ผ่านการเข้ารหัส CRC แล้ว 1 ครั้ง หาก \(B\) มีขนาดมากกว่า \({{K}_{{cb}}}\) จะทำการแบ่งบิตข้อมูลออกเป็นบล็อกรหัส (\(C\)) และทำการส่งแต่ละบล็อกไปเข้ารหัส CRC จำนวน 24 บิตอีกครั้ง แต่หาก \(B\) น้อยกว่าหรือเท่ากับ \({{K}_{{cb}}}\) จะไม่มีการเข้ารหัส CRC อีกครั้ง และจะมีบล็อกข้อมูลเพียงหนึ่งบล็อก และบิตทั้งหมดที่ต้องส่ง (\(B\)) จะเท่ากับ \(B\) การกำหนดค่าพารามิเตอร์สำหรับทั้ง 2 กรณี แสดงดังตารางที่ 1
หลังจากผ่านกระบวนการ Segmentation บิตข้อมูลจะถูกแบ่งออกเป็นบล็อกรหัสขนาด \(K\) บิต ซึ่งแต่ละบล็อกประกอบด้วย \(C{{r}_{0}},C{{r}_{1}},…,{{C}_{{r({{K}_{r}}-1)}}}\) เมื่อ \(0\le r<C\) โดยที่ \(r\) คือลำดับบล็อกรหัสและ \({{K}_{r}}\) คือ จำนวนบิตทั้งหมดในบล็อกที่ \(r\) โดยในแต่ละบล็อกจะถูกแบ่งให้มีจำนวนบิตข้อมูลเท่ากันทุกบล็อก หรือ \({{K}_{r}}=K\) โดยจำนวนบิตในแต่ละบล็อกจะมีขนาด \({K}’\) บิต ซึ่งสามารถหาได้จาก \({K}’={B}’/C\)
มาตรฐาน 5G มีการกำหนดจำนวนบิตในแต่ละบล็อกให้อยู่ภายใต้เงื่อนไข \({{K}_{b}}\centerdot {{Z}_{c}}\ge {K}’\) จากนั้นแทนค่า \({{Z}_{c}}\) ที่ได้จากเงื่อนไขดังกล่าวเพื่อหาค่า \(K\) โดยมีข้อกำหนดดังนี้ หากเลือกใช้กราฟฐาน 1 จะใช้ \(K=22{{Z}_{c}}\) และหากเลือกใช้กราฟฐาน 2 จะใช้ \(K=10{{Z}_{c}}\) จึงส่งผลให้ต้องมีการปรับขนาดของบิตข้อมูลที่แบ่งในตอนต้น จากเดิมขนาด \({K}’\) บิต เป็นขนาดบิตข้อมูลตามมาตรฐานกำหนดขนาด \(K\) บิต โดย \({{Z}_{c}}\) จะถูกกำหนดมาจากการเลือกค่า \(Z\) ที่ต่ำที่สุดและอยู่ภายใต้เงื่อนไขดังกล่าว ส่วน \({{K}_{b}}\) จะขึ้นกับกราฟฐานที่เลือกใช้ โดยมีเงื่อนไขการพิจารณาดังนี้
- กรณีใช้กราฟฐาน 1 ใช้ \({{K}_{b}}=22\) บิต
- กรณีใช้กราฟฐาน 2 และ \(B>640\) ใช้ \({{K}_{b}}=10\) บิต
- กรณีใช้กราฟฐาน 2 และ \(B>560\) บิต ใช้ \({{K}_{b}}=9\) บิต
- กรณีใช้กราฟฐาน 2 และ \(B>192\) บิต ใช้ \({{K}_{b}}=8\) บิต
- กรณีอื่น ๆ ใช้ \({{K}_{b}}=6\) บิต
หลังจากทำการแบ่งข้อมูลเป็นบล็อกย่อย ๆ แต่ละบล็อกจะมีองค์ประกอบ 2 ส่วน ได้แก่ บิตข้อมูล และบิตว่าง (Null Bits) บิตข้อมูลอินพุตจะถูกใส่เข้าไปในตำแหน่งที่ 0 ถึง \({K}’-L-1\) ของบล็อก ในกรณีที่ \(C<1\) หรือมีจำนวนบล็อกย่อยมากกว่า 1 บล็อก ข้อมูลภายในบล็อกจะถูกส่งไปเข้ารหัสตรวจจับความผิดพลาดหรือ CRC โดยทำการคำนวณหา CRC พาริตี 24 บิต จากโพลีโนเมียล \({{g}_{{\text{CRC24B}}}}(D\text{)}\) และถูกใส่ในตำแหน่งที่ \({K}’-L\) ถึง \({K}’-1\) จากนั้นจะมีการเติมบิตว่างตั้งแต่บิตที่ \({{K}^{‘}}\) ถึง \(K-1\) เพื่อให้ครบจำนวนบิตข้อมูลในแต่ละบล็อก (\(K\))
รหัสแอลดีพีซีเป็นรหัสที่ถูกใช้งานในการสื่อสารไร้สายยุค 5G
รายละเอียดของรหัสแอลดีพีซี อ่านเพิ่มเติมตรงนี้
รหัส LDPC มีบทบาทสำคัญในการสื่อสารยุค 5G โดยได้รับการยอมรับให้เป็นรูปแบบการเข้ารหัสช่องสัญญาณบนช่องสัญญาณข้อมูลสำหรับการสื่อสารไร้สาย ในการประชุมมาตรฐาน 3GPP ได้ข้อสรุปว่าโครงสร้างเมทริกซ์ฐานของรหัส LDPC ที่ใช้สำหรับการสื่อสารไร้สาย 5G มีลักษณะดังรูปที่ 2 ประกอบด้วยเมทริกซ์ย่อย 5 เมทริกซ์คือ \(\text{A}\), \(\text{B}\), \(\text{O}\), \(\text{C}\), และ \(\text{I}\) โดย เมทริกซ์ย่อย \(\text{A}\) เกี่ยวข้องกับบิตข้อมูล เมทริกซ์ย่อย \(\text{B}\) เกี่ยวข้องกับบิตพาริตี้ (Parity Bits) เมทริกซ์ย่อย O เป็นเมทริกซ์ศูนย์ เมทริกซ์ย่อย \(\text{C}\) สอดคล้องกับแถว SPC (Single Parity check) และเมทริกซ์ย่อย \(\text{I}\) เป็นเมทริกซ์เอกลักษณ์ โดยเมทริกซ์ย่อย \(\text{A}\) และเมทริกซ์ย่อย \(\text{B}\) รวมกันเรียกว่าเคอร์เนล (Kernel) และเมทริกซ์ย่อยส่วนอื่น ๆ (\(\text{O}\), \(\text{C}\), และ \(\text{I}\)) เรียกว่าส่วนขยาย
กระบวนการเข้ารหัส LDPC: กระบวนการการเข้ารหัส LDPC สำหรับช่องสัญญาณข้อมูลในมาตรฐาน release 15 เริ่มต้นจากการพิจารณาค่า MCS (Modulation and Coding Scheme) เพื่อให้ทราบอัตรารหัสที่ต้องใช้ในการเข้ารหัส แล้วทำการเลือกกราฟฐานของรหัส LDPC ซึ่งกราฟฐาน 1 ใช้สำหรับบล็อกข้อมูลขนาดใหญ่ \((44\le K\le 8448)\) และอัตรารหัสสูงในช่วง \((1/3\le R\le 8/9)\) ในขณะที่กราฟฐาน 2 ใช้สำหรับบล็อกข้อมูลขนาดเล็ก \((20\le K\le 3840)\) และอัตรารหัสที่ต่ำในช่วง \((1/5\le R\le 10/13)\) โดยมีเงื่อนไขในการพิจารณาเลือกดังนี้
1) กรณีข้อมูลเท่ากับ \(K\le 308\) บิต ใช้กราฟฐาน 2
2) กรณีอัตรารหัสเท่ากับ \(R<1/4\) ใช้กราฟฐาน 2
3) กรณีอัตรารหัสเท่ากับ \(R<2/3\) และขนาดข้อมูล \(K<3840\) บิต ใช้กราฟฐาน 2
4) กรณีอื่น ๆ ใช้กราฟฐาน 1
รายละเอียดกราฟฐาน ของรหัส LDPC : โครงสร้างของรหัส LDPC ในมาตรฐาน release 15 หรือ มาตรฐาน 5G phase 1 แสดงได้โดยใช้เมทริกซ์พาริตี้เช็คกราฟฐาน 1 ดังรูปที่ 3 และกราฟฐาน 2 ดังรูปที่ 4 ซึ่งมีรายละเอียดของเมทริกซ์ฐานของทั้งกราฟฐาน 1 และกราฟฐาน 2 แสดงดังตารางที่ 3 โดยช่องสีขาวคือเมทริกซ์ศูนย์ขนาด \(Z\times Z\) และช่องสีอื่นๆ คือเมทริกซ์ที่มีการสลับเปลี่ยนแบบเวียนหนุน (Circular Permutation Matrix) ขนาด \(Z\times Z\) สามารถหาได้ตามสมการด้านล่าง
\(Z=K/22\) สำหรับกราฟฐาน 1
\(Z=K/10\) สำหรับกราฟฐาน 2
เมื่อทราบค่า \(Z\) แล้วจึงสามารถสร้างเมทริกซ์ที่มีการสลับเปลี่ยนแบบเวียนหนุนได้จากการนำเมทริกซ์เอกลักษณ์มาดำเนินการหมุนแบบวนกลับ โดยจำนวนครั้งของการหมุนสามารถหาได้ตามสมการ
\({{P}_{{i,j}}}={{V}_{{i,j}}}\oplus Z\)
โดยค่า \({{V}_{{i,j}}}\) ขึ้นอยู่กับค่าดัชนีเซต (Set index) และกราฟฐานของ LDPC
การปรับอัตรารหัส (Rate matching) คือกระบวนการปรับขนาดคำรหัสให้มีขนาดเท่ากับขนาดบล็อกการขนส่ง (Transport Block) สำหรับ downlink และ uplink เนื่องจากในมาตรฐาน 5G ได้มีการนำเทคนิค Incremental Redundancy – Hybrid Automatic Repeat request (IR- HARQ) มาใช้งานในการแก้ไขความผิดพลาด (Correct Errors) ในการส่งข้อมูลระหว่างโหนด และตัวอุปกรณ์ของผู้ใช้งาน (User’ s Device) เมื่อตัวอุปกรณ์ได้มีการร้องขอให้ส่งข้อมูลใหม่โหนดจะมีการส่งข้อมูลเฉพาะในส่วนบิตพาริตีที่เพิ่มขึ้นไปให้ตัวอุปกรณ์เพื่อใช้ในการแก้ไขข้อมูล แต่เนื่องจากปัญหาในเรื่องของขนาดบัฟเฟอร์กระบวนการ HARQ ที่จำกัด กระบวนการปรับอัตรารหัสจึงเป็นเทคนิคที่ถูกนำมาใช้งานในการแก้ปัญหานี้ โดยจำเป็นต้องประมาณค่าทรูพุตสูงสุด (Maximum Throughput) ซึ่งสามารถคำนวณได้ดังนี้
กรณี \(j\le {C}’-\bmod G/{{N}_{L}}\cdot {{Q}_{m}},{C}’-1\)
\({{E}_{r}}={{N}_{L}}\cdot {{Q}_{m}}\cdot \left\lfloor {\frac{G}{{{{N}_{L}}\cdot {{Q}_{m}}\cdot C’}}} \right\rfloor \)
กรณีอื่น ๆ
\({{E}_{r}}={{N}_{L}}\cdot {{Q}_{m}}\cdot \left\lceil {\frac{G}{{{{N}_{L}}\cdot {{Q}_{m}}\cdot C’}}} \right\rceil \)
เมื่อ
\(j\) คือหมายเลขของบล็อกจากการแบ่งส่วนข้อมูล (Segmentation)
\({{E}_{r}}\) คือความยาวเอาต์พุตของการปรับอัตรารหัส (Rate Matching)
\({{N}_{L}}\) คือลำดับของชั้นการขนส่ง (Transport layer) มีค่าเป็น 1, 2, 3 หรือ 4
\({{Q}_{m}}\) คือลำดับการมอดูเลต มีค่า 1 สำหรับ BPSK, ค่า 2 สำหรับ QPSK, ค่า 4 สำหรับ 16-QAM, ค่า 6 สำหรับ 64-QAM หรือ ค่า 8 สำหรับ 256-QAM
\(G\) คือจำนวนบิตทั้งหมดที่สามารถใช้ได้สำหรับการส่งของบล็อกการขนส่ง
\({C}’\) คือจำนวนบล็อกทั้งหมดที่ผ่านการแบ่งส่วนข้อมูล
การปรับอัตรารหัสสำหรับรหัส LDPC ตามมาตรฐาน 5G จะมีการกำหนดค่า Redundancy Version (\(rv\)) ซึ่ง \(rv\) จะมีความสอดคล้องกับตำแหน่งคอลัมน์ของกราฟฐาน
เทคนิคการแทรกสลับ (interleaving) คือการป้องกันความผิดพลาดของข้อมูลที่ส่งไปบนช่องสัญญาณด้วยกระบวนการสลับบิตหรือไบต์ข้อมูลที่ภาคส่ง หากมีสัญญาณรบกวนเกิดขึ้นบนช่องสัญญาณเป็นผลให้ข้อมูลที่ส่งนั้นมีความผิดพลาดติดกัน เมื่อทำกระบวนการแทรกสลับบิตกลับ (De-Interleaving) จะทำให้บิตผิดพลาดที่ติดกันมีการกระจายตัวออก หลักการของการแทรกสลับบิต คือจะแบ่งบิตข้อมูลออกเป็นบล็อกย่อย ๆ ขนาด \(r\times c\) บิต โดย \(r\) คือ จำนวนแถวและ \(c\) คือ จำนวนคอลัมน์ จากนั้นก็จะทำการสลับตำแหน่งของแต่ละบิต ภายในบล็อกเดียวกันก่อนการส่งออก โดยอาศัยวิธีการคือนำข้อมูลที่จะส่งมาเขียนลงในหน่วยความจำทีละแถวตามลำดับของข้อมูลที่เข้ามาจนครบหนึ่งบล็อก จากนั้นทำการอ่านข้อมูลในแนวตั้งเพื่อส่งออกทีละคอลัมน์จนหมด และเมื่อบิตข้อมูลเหล่านี้ถึงที่ภาครับแล้วก็จะทำการสลับตำแหน่งของบิตให้กลับเป็นปกติโดยอาศัยกระบวนการที่กลับกันกับที่ภาคส่ง โดยข้อมูลที่จะส่งถูกแบ่งออกเป็นบล็อกขนาด 5 x 3 บิต หลังจากที่ได้ทำการอินเทอร์ลีฟ ลำดับการส่งบิตข้อมูลจะแตกต่างไปจากข้อมูลเดิม สังเกตว่าถึงแม้บิตข้อมูลเหล่านี้จะได้รับผลกระทบจากความผิดพลาดแบบเบริสต์ (Burst Error) เนื่องจากความไม่เป็นอุดมคติของช่องสัญญาณ อย่างไรก็ตาม เมื่อข้อมูลมาถึงภาครับจะมีการแทรกสลับบิตกลับเพื่อให้บิตข้อมูลมีลำดับที่ถูกต้องเหมือนเดิม หมายเหตุว่า กระบวนการแทรกสลับบิตจะสามารถทำให้ความผิดพลาดมีการกระจายตัวตลอดทั้งบล็อกข้อมูลในรูปแบบที่ต่างไปจากเดิม ซึ่งการกระจายของความผิดพลาดนี้ช่วยทำให้ระบบไม่ต้องอาศัยวิธีการเข้ารหัสที่มีขีดความสามารถในการแก้บิตที่ผิดพลาดที่สูงนัก ในรหัส LDPC สำหรับมาตรฐาน 5G กระบวนการแทรกสลับบิตถูกนำไปใช้หลังจากการเลือกบิตในการส่งซึ่งทำโดยการแทรกระหว่างแถวและคอลัมน์ดังรูปที่ 12 ซึ่งขนาดแถวขึ้นอยู่กับลำดับการมอดูเลต 4/16/64/256 ของการมอดูเลตเชิงตัวเลขทางขนาดและเฟส (Quadrature Amplitude Modulation: QAM)
การต่อเรียงบล็อกรหัส ประกอบไปด้วยการต่อเรียงบล็อกรหัสเอาต์พุตที่ได้จากการปรับอัตรารหัสซึ่งมีการทำงานโดยจะกำหนดให้ลำดับอินพุตบิตสำหรับกระบวนการต่อเรียงบล็อกรหัสคือลำดับ \({{f}_{{rk}}}\) สำหรับ \(r=0,…,C-1\) และ \(k=0,…,{{E}_{r}}-1\) เมื่อ \({{E}_{r}}\) คือจำนวนบิตหลังมีการปรับอัตรารหัสแล้วสำหรับบล็อกรหัสลำดับที่ r จะได้ลำดับเอาต์พุตของบิตจากกระบวนการต่อเรียงบล็อกรหัสคือลำดับ \({{g}_{k}}\) สำหรับ \(k=0,…,G-1\)