Các phương pháp xử lý tín hiệu trên kênh PDSCH của mạng 5G hiện nay

Một phần của tài liệu (Luận văn thạc sĩ) Mô phỏng và đánh giá khả năng xử lý tín hiệu trên kênh PDSCH của hệ thống 5G MIMO (Trang 45)

hiện nay

PDSCH là kênh chính được sử dụng để truyền dữ liệu, phân trang thông tin, một số phần của thông tin hệ thống và cả thông báo phản hồi truy cập ngẫu nhiên. Nó giải mã DCI từ PDCCH cung cấp thông tin cần thiết để giải mã dữ liệu trong PDSCH. Trong mỗi TTI, một hoặc hai khối truyền tải có kích thước thay đổi đến lớp vật lý và được truyền qua giao diện vô tuyến. Sau đó, chúng tôi đính kèm CRC (Kiểm tra dự phòng theo chu kỳ) cho mục đích phát hiện lỗi cho mỗi khối truyền tải, tiếp theo là LDPC (Mã kiểm tra chẵn lẻ mật độ thấp) một mã sửa lỗi. Các quy trình theo sau là so khớp Tỷ lệ giúp điều chỉnh số lượng bit được mã hóa với tổng số tài nguyên được lập lịch.

Điều này theo sau quá trình xáo trộn quan trọng được thực hiện để ngẫu nhiên hóa nhiễu giúp bộ giải mã ở đầu thu giải mã một cách hiệu quả. Trình tự xáo trộn phụ thuộc vào id ô lớp vật lý. Sau khi xáo trộn, chúng ta sẽ đi đến điều chế. Các ký hiệu đã điều chế sau đó được ánh xạ tới các tài nguyên vật lý thực tế. Sau khi ánh xạ, chúng ta tiến hành chèn IFFT và CP tại mỗi ăng ten máy phát của đường xuống. Kích thước IFFT mà chúng ta có thể sử dụng có thể thay đổi, tức là 2048,4096, v.v. Độ dài của CP được thêm vào các ký hiệu khác nhau cũng khác nhau, tức là đối với ký hiệu

31

thứ nhất và thứ bảy của mỗi vị trí, độ dài của nó là 288 và đối với các ký hiệu khác, độ dài là 320. Đầu tiên, Khối SS và PBCH giúp khóa và thực hiện đồng bộ hóa với trạm gốc. Sau đó, dữ liệu truyền trên PDCCH được giải mã tại máy thu cung cấp DCI mà máy thu cần để giải mã dữ liệu thực tế [14] .

Hình 2.2 Sơ đồ xử lý tín hiệu trên kênh PDSCH [6] 2.2.1 Tính toán CRC và thuật toán CRC

CRC (Cyclic Redundancy Check) là một phương pháp kiểm tra và phát hiện lỗi, được sử dụng trong các mạng số và các thiết bị lưu trữ để phát hiện sự thay đổi ngẫu nhiên của dữ liệu được truyền đi hay lưu trữ. Phía thu kiểm tra và phát hiện lỗi có xảy ra trên dữ liệu nhận hay không, bằng cách tính CRC của thông tin thu nhận, kiểm tra với chuỗi CRC được truyền kèm.

Tạo khối CRC

Lựa chọn ma trận LDPC

Phân tách khối truyền tải

Mã hoá kênh

Rate Matching

Ghép nối khối truyền tải

Xáo Trộn

Điều chế

Tham chiếu các lớp

Tham chiếu cổng anten

Tham chiếu tài nguyên vật lý

32

Việc đính kèm bit CRC vào khối dữ liệu truyền tải nhằm xác định lỗi trên các kênh truyền và thông báo lên các lớp cao hơn. Đối với kênh truyền tải dữ liệu cho đường xuống, các khối bit truyền được đính kèm mã CRC khác nhau tùy theo từng kênh. Khối CRC sẽ được sử dụng để tính toán và ghép mã CRC cho khối truyền tải và khối mã hóa. Việc thực thi CRC cho khối mã hóa giúp giảm việc truyền lại cả khối truyền tải gây tốn tài nguyên. Phía phát chỉ cần truyền lại khối mã hóa bị lỗi, trong trường hợp CRC của khối truyền tải phát hiện lỗi thì việc truyền lại cả khối truyền tải mới được thực hiện. Tính toán CRC có thể được thực hiện bằng phép chia đa thức. Giả sử, chuỗi dữ liệu đầu vào được biểu diễn dưới dạng một đa thức nhị phân A(x), thì phần dư R(x) của phép chia A(x) cho đa thức sinh chuẩn G(x) chính là giá trị CRC cần xác định. Đối với một bản tin n bit 𝑎!"#𝑎!"$… 𝑎% nó có thể được biểu diễn dưới dạng một đa thức như sau:

𝐴(𝑥) = 𝑎!"#𝑥!"#+ 𝑎!"$𝑥!"$+ ⋯ 𝑎#𝑥 + 𝑎% (2.1)

Trong đó 𝑎!"# là MSB và 𝑎% là LSB của bản tin (hay chuỗi dữ liệu đầu vào). Một đa thức sinh chuẩn bậc m-1 G(x) được định nghĩa:

𝐺(𝑥) = 𝑔&"#𝑥&"#+ 𝑔&"$𝑥&"$+ ⋯ + 𝑔% (2.2)

Trong đó 𝑔&"# = 1 và 𝑔' ∈ {0,1} với mọi 0 ≤ 𝑖 ≤ 𝑚 − 2. Khi đó CRC được tính bởi phương trình:

𝐶𝑅𝐶9𝐴(𝑥): = 𝑅(𝑥) = 𝐴(𝑥)𝑥&"#𝑚𝑜𝑑𝐺(𝑥) (2.3)

Thời gian thực hiện tính toán CRC lớn do trình tự thực hiện là tuần tự, để giảm thiểu được thời gian thực hiện tính CRC, thuật toán tính CRC song song được học viên đề xuất. Thuật toán này được thực hiện dựa trên hai định lý cơ bản [6] :

Định lý 1: Nếu 𝐴(𝑥) = 𝐴#(𝑥) + 𝐴$(𝑥) + ⋯ + 𝐴!(𝑥) trên miền GF(2) (Galois Field)

thì 𝐶𝑅𝐶9𝐴(𝑥): = ∑! 𝐶𝑅𝐶9𝐴'(𝑥):

'(# .

Định lý 2: Cho B(x) là một đa thức trên miền GF(2), thì 𝑥)𝐶𝑅𝐶9𝐵(𝑥):

𝐶𝑅𝐶9𝑥)𝐵(𝑥): = 𝐶𝑅𝐶 với mọi k.

Định lý 1 cho biết rằng có thể chia bản tin thành nhiều khối nhỏ và tính toán CRC cho mỗi khối một cách độc lập. Ví dụ, 𝐴(𝑥) = 𝑎*"#𝑥*"#+ 𝑎*"$𝑥*"$+ ⋯ + 𝑎%

33

đại diện cho một chuỗi l bit và được chia thành các khối b bit. Giả sử l là bội của b, 𝑙 = 𝑁𝑏, khi đó khối thứ i của bản tin sẽ bao gồm b bit từ bit thứ (i-1)*b +1 đến bit thứ i kèm theo (l-ib) bit 0. Như vậy khối thứ i cũng có thể biểu diễn được dưới dạng đa thức độc lập để từ đó tính toán được giá trị CRC của nó: 𝐴'(𝑥) = ∑*"('"#)-"#𝑎)𝑥)

)(*"'- .

Hình 37 mô tả trường hợp mỗi khối dài n byte và CRC được tính theo các khối riêng biệt.

Định lý 2 mô tả về các tính 𝐶𝑅𝐶[𝐴'(𝑥)] theo phương pháp pipeline. Như mô tả trên hình 2.3, mỗi khối Ai(x) chứa rất nhiều bit 0 ở phía sau, ảnh hưởng trực tiếp tới bậc của Ai(x). Do vậy, chiều dài của dữ liệu vào phải được biết trước để có thể biết chính xác khối Ai(x). Nhờ định lý 2, ta có thể tính được CRC cho thành phần đầu của khối Ai(x) (bao gồm b bit được cắt ra từ dữ liệu vào ban đầu) và sau đó sẽ update CRC khi mà số lượng bit 0 phía sau đã được biết.

Hình 2.3: Tính toán CRC luân phiên

Dựa vào hai định lý đã nêu, thuật toán để xử lý N byte dữ liệu song song để tính toán giá trị CRC được thiết kế như sau:

- Chia chuỗi dữ liệu đầu vào thành một chuỗi các block n bytes. Bởi vì kích thước của mỗi LUT sẽ tăng nhanh khi số lượng bit của mỗi block tăng, vì vậy mỗi khối sẽ được thiết kế với 8 bit dữ liệu và khi đó mỗi LUT sẽ chứa 256 phần tử.

- XOR giá trị CRC với 3 byte đầu của dữ liệu vào đối với CRC-24 và 2 byte đầu của dữ liệu vào đối với CRC-16.

34

- Sử dụng 3 byte (hoặc 2 byte đối với CRC-16) kết quả thu được từ bước 2, và N- 3 byte (hoặc N -2 đối với CRC-16) còn lại đóng vai trò như là địa chỉ của LUT. Khi đó thu được N giá trị CRC từ mỗi LUT

- XOR N giá trị CRC thu được, giá trị thu được chính là CRC của N byte đầu vào.

Theo cách triển khai này, chuỗi dữ liệu đầu vào M bit có thể được tính toán với (M/(N*8)) vòng, mỗi vòng sẽ có N*8 bit dữ liệu được xử lí. Khi N bằng 16, thuật toán sẽ chia 128 bit dữ liệu đầu vào thành 16 byte và sử dụng 16 LUT để xử lí 16 byte này trong 1 lần thực hiện. Như vậy 16 LUT sẽ tốn 16 × 256 × 24 bit bộ nhớ (đối với CRC-24) ít hơn rất nhiều so với thuật toán sử dụng LUT truyền thống 2#$.× 24.

2.2.2 Mã hóa kênh LDPC

2.2.2.1 Lựa chọn LDPC base graph

Chuỗi dữ liệu kênh PDSCH có độ dài A và coding rate R (tính toán dựa vào chỉ số MCS – tham khảo 5.1.3.1 chuẩn TS 38.214) được mã hóa với LDPC base graph 1 hoặc 2 theo nguyên tắc như hình 2.4 sau:

Hình 2.4 : lựa chọn base graph cho LDPC theo 3GPP 2.2.2.2 Phân đoạn mã hóa khối và chèn CRC

Giả sử chuỗi bit tuần tự đầu vào của bộ khối mã hóa segmentation được kí hiệu là b0,b1,b2,…,bB-1, với B > 0. Nếu B lớn hơn kích thước lớn nhất Z của khối khối mã

A R A < 292 R < 0.25 A < 3824 R < 0.67 BG2 BG2 BG1 BG2 FAIL

TRUE FAIL TRUE

35

hóa, quá trình phân đoạn khối bit đầu vào sẽ được thực hiện và đồng thời đính kèm đoạn mã CRC 24B vào từng khối khối mã hóa.

Kích thước lớn nhất của khối khối mã hóa cho LDPC base graph 1 là: Kcb = 8448 bit. Kích thước lớn nhất của khối khối mã hóa cho LDPC base graph 2 là: Kcb = 3840 bit. Ta định nghĩa tổng số các khối khối mã hóa được tạo ra là C được xác định qua thuật toán sau:

Hình 2.5: Thuật toán xác định tổng số Khối mã hóa

Số bit đầu ra từ mỗi phân đoạn khối mã hóa, với C ≠ 0, được kí hiệu là cr0,cr1,…,cr(Kr -1), với r là thự tự khối khối mã hóa và Kr là số lượng các bit trong khối khối mã hóa thứ r.

Hình 2.6: Phân đoạn khối truyền tải

Số lượng các bit trong khối khối mã hóa (chỉ áp dụng cho trường hợp C ≠ 0) được tính toán qua thuật toán sau:

Transport block L = 0 C = 1 B’ = B L = 24 C = éB /(Kcb -L)ù B’ = B + C* L B <= Kcb Y N

36

K’ = B’/C

Với LDPC Base graph 1: Kb = 22; Với LDPC Base graph 2:

Nếu B > 640 -> Kb = 10; Nếu B > 560 -> Kb = 9; Nếu B > 192 -> Kb = 8 Còn lại Kb = 6;

Tìm giá trị nhỏ nhất của Z trong tất cả kích thước lifting size trong bảng dưới đây mà Kb * Zc >= K’ và K = 22Zc cho LDPC base graph 1 và K = 10Zc cho LDPC base graph 2

Bảng 2.1: Bảng tham chiếu giá trị Z

Chỉ số (𝒊𝑳𝑺) Giá trị Z 0 {2, 4, 8, 16, 32, 64, 128, 256} 1 {3, 6, 12, 24, 48, 96, 192, 384} 2 {5, 10, 20, 40, 80, 160, 320} 3 {7, 14, 28, 56, 112, 224} 4 {9, 18, 36, 72, 144, 288} 5 {11, 22, 44, 88, 176, 352} 6 {13, 26, 52, 104, 208} 7 {15, 30, 60, 120, 240}

(Nguồn : 3GPP.TS.38214 Physical layer procedure for data)

2.2.2.3 Mã hóa kênh qua LDPC

Chuỗi bit đầu vào của mỗi khối mã hóa ký hiệu là 𝑐%, 𝑐#, 𝑐$, 𝑐1, . . . , 𝑐2"#, K là chiều dài của khối mã hóa. Sauk hi được mã hóa LDPC ta được chuỗi 𝑑%, 𝑑#, 𝑑$, . . . , 𝑑3"#, với 𝑁 = 66𝑍4 cho LDPC base graph 1 và 𝑁 = 50𝑍4 cho LDPC base graph 2, 𝑍4 được tính toán trong mục segmentation cho LDPC.

Mã hóa LDPC được thực hiện theo các bước như sau: Bước 1: Tìm chỉ số index 𝑖56 ở Bảng 2.1 mà có𝑍4. Bước 2: Thực hiện thuật toán

37 for 𝑘 = 2𝑍4 to 𝐾 − 1 if 𝑐) ≠< 𝑁𝑈𝐿𝐿 > 𝑑)"$7! = 𝑐); else 𝑐) = 0; 𝑑)"$7! =< 𝑁𝑈𝐿𝐿 >; Bước 3: Tạo 𝑁 + 2𝑍4− 𝐾 bit chẵn lẽ 𝑤 = T𝑤%, 𝑤#, 𝑤$, . . . , 𝑤38$7!"2"#U9 mà 𝐻 × W𝑤X = 0𝑐 , với 𝑐 = [𝑐%, 𝑐#, 𝑐$, . . . , 𝑐2"#]9; 0 là vector cột mà tất cả phần tử bằng 0. Mã hóa thực hiện bởi GF(2). Với LDPC base graph 1, một ma trận HBG có 46 hàng chỉ số 𝑖 = 0,1,2, . . . ,45và 68 cột chỉ số 𝑗 = 0,1,2, . . . ,67. Với LDPC base graph 2, một ma trân HBG có 42 hàng chỉ số 𝑖 = 0,1,2, . . . ,41 và 52 columns chỉ số𝑗 = 0,1,2, . . . ,51. Phần tử trong HBG với hàng và cột cho LDPC base graph 1 và cho LDPC base graph 2 là bằng 1, và tất cả phần tử còn lại của ma trận HBG là bằng 0. Một ma trận H kích thước 𝑍4 × 𝑍4 được thay thế bởi mỗi phần tử trong ma trận HBG. Mỗi phần tử 0 trong HBG được thay thế bởi ma trận 0có kích thước 𝑍4 × 𝑍4

Mỗi phần tử 1 trong HBG được thay thế bởi ma trận hoán vị vòng tròn I9𝑃',;: kích thước 𝑍4× 𝑍4, với 𝑖 và 𝑗 là chỉ số hàng và cột, và I9𝑃',;: là ma trận dịch vòng được xác định từ ma trận I kích thước 𝑍4 × 𝑍4 dịch phải 𝑃',; lần. giá trị𝑃',; xác định 𝑃',; = 𝑚𝑜𝑑9𝑉',;, 𝑍4:. Giá trị 𝑉',; được đưa bởi Bảng 5.3.2-2 và 5.3.2-3 trong TS38.212 theo chỉ số 𝑖56 và LDPC base graph.

2.2.3 Phân mảnh dữ liệu

Giả sử chuỗi bit tuần tự đầu vào của bộ khối mã hóa segmentation được kí hiệu là𝑎%, 𝑎#, 𝑎$, 𝑎1, . . . , 𝑎<"#với A > 0 và A < 1706. Nếu 𝐼=>? = 1, cho phép segmentation, thì số lượng khối mã hóa: C = 2, nếu không số lượng khối mã hóa C = 1. Do vậy, khối mã hóa segmentation chỉ có ý nghĩa trong trường hợp 𝐼=>? = 1.

Nếu số lượng khối mã hóa C = 2, số lượng bit A không phải số chẵn thì bit 0 sẽ được chèn vào đầu của bit A, khi đó độ dài bit cho mỗi khối mã hóa sẽ là (A+1)/2. Sau đó chuỗi CRC sẽ được tính dựa vào tùy theo mỗi loại kênh truyền.

38

2.2.4 Rate Matching và chức năng HARQ

Khối rate matching cho LDPC chứa đựng bit được lựa chọn và bit xen kẽ. Chuỗi bit đầu vào khối rate matching là d0,d1,d2,...,dN -1. Chuỗi bit đầu ra sau khối rate matching là f0, f1, f2,..., fE-1. Khối rate matching thực hiện điều phối tốc độ sao cho dữ liệu đầu ra sau khối rate tham chiếu phù hợp với số lượng bit khả dụng trên lưới tài nguyên. Ngoài ra khối rate matching còn thực hiện xáo trộn bit xen kẽ để chống lỗi cụm. Việc truyền lại dữ liệu mã khối cũng được thực hiện trong khối bit lựa chọn, có tối đa 4 phiên bản truyền lại, tại phía giải mã có thể thực kết hợp các bit đảo ngược khác nhau giúp cho giải mã thông tin được tốt hơn.

Chuỗi bit đầu vào của bộ block interleaver được kí hiệu như sau: 𝑑%, 𝑑#, 𝑑$, . . . , 𝑑3"#với N là số lượng bit. Chuỗi bit này được chia làm 32 sub-block. Chuỗi đầu ra sau bộ sub-block interlever được kí hiệu là 𝑦%, 𝑦#, 𝑦$, . . . , 𝑦3"#

Bộ bit sau khi Sub-block interleaving là 𝑦%, 𝑦#, 𝑦$, . . . , 𝑦3"# được sắp xếp vào một bộ đệm có độ dài N. Kí hiệu E là chiều dài chuỗi đầu ra của bộ rate matching ứng với khối mã hóa thứ rth và rvidx là số redundancy version (RV) sử dụng cho kênh truyền (rvidx = 0,1,2 hoặc 3), chuỗi bit đầu ra của bộ rate matching được kí hiệu 𝑒), k = 0,1,..., 𝐸 − 1. Chuỗi bit 𝑒%, 𝑒#, 𝑒$, . . . , 𝑒@"# sẽ được xáo trộn với chuỗi bit 𝑓%, 𝑓#, 𝑓$, . . . , 𝑓@"#, trong đó E <=8192

Hình 2.7: Mô tả bit xen kẽ cho điều chế 256QAM

Với HARQ-ACK truyền trên kênh PDSCH, số symbol điều chế trên mỗi layer là 𝑄ACKA với số CRC bít L = 0. Chuỗi bit đầu vào rate matching là 𝑑%, 𝑑#, 𝑑$, . . . , 𝑑3"#. Rate matching thực hiện với kích thước chuỗi đầu ra 𝐸 = 𝑁5 ⋅ 𝑄′ACK⋅ 𝑄&, trong đó:

39

§ 𝑁5 là số layer xử lý trong kênh PDSCH;

§ 𝑄& là mức điều chế dùng trong kênh PDSCH.

Chuỗi bit thông tin đầu ra sau khi xử lý rate matching là 𝑓%, 𝑓#, 𝑓$, . . . , 𝑓@"#.

2.2.5 Ghép nối dữ liệu

Khối ghép nối dữ liệu có chức năng ghép các khối mã hóa sau khi thực hiện Rate Matching thành một khối truyền tải để đưa vào khối trộn bit trước khi thực hiện phần xử lý I/Q.

Các khung dữ liệu sau mã hóa kênh và phối hợp tốc độ sẽ được nối lại với nhau thành một bản tin duy nhất. Thuật toán thưc hiện được mô tả như hình 2.8

Hình2.8: Quá trình móc nối các khối mã hóa sau mã hóa

Các tham số liên quan đến quá trình ghép nối :

- E: số lượng bit trong một Khối mã hóa sau quá trình Rate Matching - C: số lượng Khối mã hóa trong một khối truyền tải

Giả sử chuỗi bit đầu vào tuần tự của khối móc nối từ các khối mã hóa tương ứng là 𝑓B) với 𝑟 = 0, . . . , 𝐶 − 1và 𝑘 = 0, . . . , 𝐸B− 1. Chuỗi bit đầu ra sau khối khối mã hóa ghép nối tương ứng là 𝑔) với 𝑘 = 0, . . . , 𝐺 − 1.

2.2.6 Bộ xáo trộn bit

Bộ xáo trộn bit dùng để xáo trộn chuỗi bit đầu vào theo một giải thuật riêng ở bên phát làm cho phía thu không thể hiểu được dữ liệu được truyền đi nếu không có một bộ giải xáo trộn phù hợp. Bộ xáo trộn bit sẽ thay thế chuỗi đầu vào bằng một chuỗi đầu ra khác mà không làm mất đi dữ liệu cần truyền và không làm thay đổi

Một phần của tài liệu (Luận văn thạc sĩ) Mô phỏng và đánh giá khả năng xử lý tín hiệu trên kênh PDSCH của hệ thống 5G MIMO (Trang 45)

Tải bản đầy đủ (PDF)

(88 trang)