3.2.1. Mã hoá Convolutional Code
Bộ mã hoá kênh được sử dụng là bộ mã Convolutional code, tốc độ mặc định là 1/2, chiều dài bộ mã hoá là 7 và dùng đa thức sinh là: G1 = 171OCT và G2 = 133OCT. Bộ mã hoá được thiết kế bằng cách kết hợp 6 bộ trễ (delay) và 2 cổng XOR 5 ngõ vào. Hình 3.3 trình bày bộ mã hoá convolutional code.
Hình 3.3: Mã hóa chập với tỉ lệ ½
3.2.1.1. Giải mã bằng thuật toán Viterbi
Bộ giải mã được thiết kế bằng thuật toán Viterbi. Kiến trúc cơ bản của thuật toán Viterbi được trình bày ở Hình 3.4. Thuật toán gồm bốn khối chính: khối tính khoảng cách nhánh (branch metric), khối cộng-so sánh-chọn (add compare and select), khối chọn đường tối ưu (survivor path metric), và khối qui hồi và giải mã (traceback and output decode block).
Khối tính khoảng cách nhánh (branch metric) dùng để tính khoảng cách Haming của các bit (là 2 bit nếu sử dụng tốc độ mã là R=1/2) với các nhánh. Khối cộng-so sánh-chọn có nhiệm vụ tính tổng khoảng cách Haming của nhánh với trạng thái hiện tại và giữ lại nhánh có khoảng cách ngắn nhất. Khối chọn đường tối ưu để tìm ra chuỗi trạng thái phù hợp nhất. Khối qui hồi và giải mã có nhiệm vụ chọn dò lại chuỗi trạng thái tối ưu và quyết định chuỗi bit ở ngõ ra. Đây là chuỗi bit giải mã của thuật toán.
Hình 3.4: Mô hình thuật toán Viterbi
Hình 3.5 là ví dụ về giải mã dùng thuật toán Viterbi cho chuỗi dữ liệu thu là (11,00,01,11,10,10,11). Chuỗi trạng thái phù hợp nhất được xác định bằng cách tính khoảng cách Haming với tất cả các đường. Khi hai đường cùng gặp nhau tại một điểm, ta chỉ giữ lại đường có khoảng cách Haming ngắn hơn. Đường cuối cùng được chọn để quyết định trạng thái ngõ ra là đường có khoảng cách Haming ngắn nhất. Vì vậy, chuỗi dữ liệu tối ưu nhất là (11, 01, 01, 11, 11, 10,11). Khi xác định được chuỗi dữ liệu tối ưu, ta có thể xác định chuỗi dữ liệu ở ngõ ra bộ giải mã. Trong ví dụ trên, chuỗi dữ liệu sau khi giải mã là (1100100).
Hình 3.5: Ví dụ giả mã dùng thuật toán Viterbi
Thuật toán Viterbi dựa vào chuỗi trạng thái phù hợp nhất. Vì vậy, việc xác định độ dài của chuỗi sẽ ảnh hưởng đến hiệu quả của bộ giải mã. Nếu chiều dài
được chọn quá dài sẽ làm tăng các phép tính toán, sử dụng nhiều bộ nhớ, và tăng thời gian trễ. Ngược lại, nếu chọn chiều dài quá ngắn sẽ hạn chế khả năng sửa lỗi của thuật toán. Chiều dài qui hồi thường được chọn gấp 6 lần chiều dài bộ mã trong trường hợp không bỏ bớt (puncture). Trong trường hợp có bỏ bớt, chiều dài được chọn dài gấp 15 lần chiều dài bộ mã.
3.2.1.2. Đan xen (Interleaver) và giải đan xen (De-Interleaver)
Đan xen là sự phân tập về thời gian mà không cần phải thêm mào đầu thực hiện bằng cách xen kẽ các bit thông tin cần truyền để phân tán các dữ liệu quan trọng nhằm tăng khả năng sửa lỗi cho các dữ liệu này ở đầu thu.
Có 2 loại đan xen là Block interleaver và Convolutional interleaver. Trong đề tài này phương pháp được sử dụng là Block interleaver (đan xen khối) để đan xen khối dữ liệu cần truyền.
Ví dụ, xét một đoạn dữ liệu với t=1 và 3 coded bits. Một sai số dạng chuỗi có độ dài 2 bit trở lên trong 1 codeword thì không thể sửa được như Hình 3.6.
Hình 3.6: Chưacó đan xen
Sử dụng một khối đan xen tách các bit ở cùng một khối phân tán khắp nơi và tạo thành các khối mới có thành phần khối cũ đan xen với khối mới như
Hình 3.7. Giải đan xen ở phía thu thực hiện ngược lại. Các codeword chỉ sai 1 bit nên lúc này hoàn toàn có thể sửa sai đem lại dữ liệu đúng như ban đầu.
Dữ liệu sau khi qua khối mã hóa kênh sẽ được đan xen bởi một khối đan xen với một cỡ khối tương ứng số bít được mã hóa trong mỗi kênh con đã cấp phát mỗi ký hiệu OFDM được gọi là Ncbps. Đan xen được định nghĩa bởi hoán vị hai bước.
Ncpc là số bit được mã hóa trên sóng mang, Ncpc sẽ bằng 2, 4, hoặc 6 tương ứng với QPSK, 16QAM, 64QAM và = . Đặt k là chỉ số của bit được mã hóa trước khi hoán vị đầu tiên ở lúc phát, mk là chỉ số sau khi hoán vị đầu tiên và trước khi hoán vị thứ hai, và jk là chỉ số sau khi hoán vị thứ hai, trước khi điều chế. d là một tham số tùy ý như phải lớn hơn Ncpc.
Hoán vị bước thứ nhất:
mk = ( )+ k=0,1,2,…,Ncbps–1
Hoán vị bước thứ hai:
jk = s. floor + (mk + Ncbps – floor . )mod(s)
Ý nghĩa các lần hoán vị: Hoán vị lần thứ nhất đảm bảo rằng các bit lân cận nhau được mã hóa được sắp xếp vào các sóng mang không lân cận. Điều này đảm bảo rằng nếu fading sâu ảnh hưởng đến một bit, các bit lân cận của nó sẽ không bị tác động bởi fading, và vì vậy có khả năng sửa chữa những ảnh hưởng của fading. Hoán vị các mã bít kế nhau sao cho đảm bảo chúng không nằm trên các subcarrier kế nhau.
Hoán vị lần thứ hai đảm bảo rằng các bit được mã hóa lân cận sẽ được ghép xen kẽ vào các bit có trọng số nhỏ hơn của chòm sao. Điều này giúp thực hiện tách chính xác và tránh được sự kéo dài của các bit có độ tin cậy thấp.
Giải đan xen được thực hiện ngược lại ở phía thu theo công thức:
mj = s. floor + + .
( )
kj = d.mj − ( −1). .
Với : j: là chỉ số của bit trước khi giải hoán vị đầu tiên,
mj: chỉ số sau khi giải hoán vị đầu tiên và trước khi giải hoán vị thứ 2
kj: là chỉ số sau khi giải hoán vị thứ hai và trước khi giải điều chế
(3.1)
(3.2)
3.2.2. Khối điều chế số (Khối Modulation) và Khối giải điều chế số
Một khi mỗi sóng mang phụ được chỉ định các bit để truyền dẫn, chúng được ánh xạ sang pha và biên độ của một sóng mang phụ bằng cách dùng kiểu điều chế được miêu tả bằng một vector phức cùng pha (In-phase) và vuông pha (Quadrature- phase) (IQ). Hình 3.8 cho ta thấy một ví dụ việc ánh xạ điều chế sóng mang phụ. Ví dụ này dùng 16-QAM, ánh xạ 4 bit cho mỗi symbol. Mỗi sự kết hợp của 4 bit dữ liệu tương ứng với một vector IQ duy nhất.
Hình 3.8: Chòm sao điều chế IQ, 16-QAM dùng mã Gray
Ở đầu thu, bộ giải điều chế sóng mang phụ ánh xạ ngược vector IQ nhận được trở về từ mã dữ liệu. Trong quá trình truyền, nhiễu và méo được cộng vào tín hiệu vì kênh truyền bị nhiễu nhiệt, suy giảm công suất tín hiệu và bộ cân bằng kênh không hoàn hảo. Hình 3.9 là một ví dụ về tín hiệu 16-QAM nhận được với SNR là 15dB. Mỗi điểm IQ được làm mờ trong vị trí của nó vì nhiễu kênh truyền. Đối với mỗi vector IQ nhận được máy thu phải ước lượng vector gốc được truyền đi gần giống nhất. Điều này đạt được bằng cách tìm vector truyền gần nhất với vector nhận được. Các lỗi xuất hiện khi nhiễu vượt quá phân nửa khoảng cách giữa các điểm IQ truyền làm cho nó giao thoa qua một đường biên quyết định.
Dữ liệu số được truyền trên một kết nối OFDM bằng cách dùng một kiểu điều chế trên mỗi sóng mang phụ. Một kiểu điều chế là một phép ánh xạ các từ mã dữ liệu sang một chòm sao thực (In phase) và chòm sao ảo (Quadrature), hay còn gọi là
một chòm sao IQ. Ví dụ như 16-QAM có 16 điểm IQ trong chòm sao. Số bit có thể được chuyển bằng cách dùng một symbol đơn tương ứng với log2(M), trong đó M là số điểm trong chòm sao, vì thế 16-QAM chuyển 4 bit trên một symbol. Vector phức kết quả I+j. Q tương ứng với một biên độ và pha. Tăng số điểm trong chòm sao không thay đổi băng thông truyền dẫn. Vì thế dùng kiểu điều chế với số lượng điểm chòm sao lớn cho phép cải thiện hiệu quả phổ. Ví dụ như 16-QAM có hiệu quả phổ là 4 b/s/Hz trong khi đó BPSK là 1 b/s/Hz. Tuy nhiên số lượng điểm trong chòm sao điều chế càng nhiều thì chúng càng khó giải điều chế ở đầu thu, vì vị trí các IQ nằm gần nhau nên chỉ cần một lượng nhiễu nhỏ cũng đủ gây ra lỗi trong truyền dẫn.
Hình 3.9: Biểu đồ IQ dữ liệu 16-QAM có nhiễu cộng với SNR=15dB
3.2.3. Khối phân tập và giải phân tập sử dụng thuật toán MMSE (MMSE Decoder) Decoder)
Có chức năng như khối giải ghép xen (De-Multiplexer), hay đúng hơn là có chức năng như khối chuyển đổi dữ liệu nối tiếp sang song song (S/P), số lượng ngõ ra của khối phân tập phụ thuộc vào số lượng an-ten phát. Trong luận văn, khối phân tập tách 1 luồng dữ liệu thành 2 luồng song song để truyền đi trên 2 an-ten.
Tại phía đầu thu thực hiện ngược lại như Hình 3.11:
Hình 3.11: Ví dụ về giải phân tập an-ten trong hệ thống MIMO 2x2
3.2.4. Điều chế và giải điều chế OFDM
OFDM là kỹ thuật truyền khối. Tín hiệu dải gốc sau khi thực hiện ánh xạ chòm sao (ví dụ BPSK, QPSK, QAM,…) thành các symbol dữ liệu ở dạng phức, các symbol dữ liệu này sẽ được sắp xếp thành từng khối và điều biến một nhóm sóng mang con rất sát nhau nhưng trực giao với nhau như Hình 3.12.
Hình 3.12: Các sóng mang con OFDM trực giao
Khối sóng mang con này tạo thành một OFDM symbol. Các tín hiệu OFDM thông thường được tạo ra ở dạng số vì tạo một dải rộng các bộ tạo dao động khóa pha và các máy thu trong miền tương tự là rất khó khăn. Trong đề tài, mỗi ký hiệu OFDM gồm có 180 dữ liệu tải trọng phức, 45 thành phần zero làm khoảng bảo vệ (23 thành phần đầu, 22 thành phần cuối), 31 thành phần hoa tiêu (pilot). Các pilot sẽ được chèn vào mỗi cụm dữ liệu theo thứ tự để tạo thành ký hiệu và các sóng mang pilot sẽ được điều chế dựa vào vị trí sóng mang của chúng bên trong ký hiệu OFDM.
Hình 3.13: Cấu trúc 1 symbol OFDM
Các luồng dữ liệu có thể điều khiển để chiếm một hay nhiều kênh con hoặc toàn bộ OFDM symbol. Tín hiệu OFDM được truyền đi là đa hợp của các luồng dữ liệu này.
Hệ thống OFDM được thực hiện bằng phép biến đổi IFFT để tạo tính trực giao giữa các song mang con để truyền đi.
Tương tự như bên đầu phát, các giải điều chế tín hiệu OFDM có thể được thay thế bởi phép biến đổi FFT.
3.2.5. Chèn khoảng bảo vệ Cyclic Prefix
Để đối phó với 2 ảnh hưởng lên tín hiệu do kênh truyền là ISI và ICI (như đã đề cập trong chương 3), một tiền tố tuần hoàn (Cyclic Prefix - CP) được chèn vào trước mỗi ký hiệu được phát. Nếu trễ đa đường nhỏ hơn khoảng CP, ISI được loại trừ hoàn toàn bởi thiết kế. Vì vậy, sau khi thực hiện IFFT, tiền tố tuần hoàn cần được thêm vào mỗi ký hiệu OFDM. Điều này được thực hiện bằng cách chép lại dữ liệu phần sau cùng trong một ký hiệu OFDM để làm phần bắt đầu. Tuỳ vào môi trường truyền, độ dài CP 1/4, 1/8, 1/16, 1/32 có thể được áp dụng cho ký hiệu phát. Trong luận văn, chiều dài CP được lựa chọn là 1/4. Tại phía thu thực hiện ngược lại.
Chu kỳ bảo vệ Cyclic prefix được mô tả như Hình 3.14.
Toàn bộ quá trình tạo symbol OFDM được thể hiện như hình 3.15, tại phía đầu thu thực hiện ngược lại:
Hình 3.15: Quá trình ghép sysmbol OFDM
3.2.6. Khối ước lượng kênh truyền (bộ Estimation) [6]
Để ước lượng kênh truyền, vị trí đặt pilot trước khi tính toán IFFT được sắp xếp theo nguyên tắc: Vị trí đặt pilot của luồng dữ liệu trên an-ten thứ nhất sẽ là vị trí đặt zero của luồng dữ liệu thứ hai, và ngược lại, như Hình 3.16.
Vị trí đặt pilot của luồng dữ liệu thuộc an-ten thứ nhất (không tính 45 zero đầu và cuối):
Vị trí pilot mang thông tin: 1, 15, 29, 43, 57, 71, 85, 99, 113, 127, 141, 155, 169, 183, 197, 211.
Vị trí pilot không mang thông tin (zero): 8 , 22, 36, 50, 64, 78, 92, 106, 120, 134, 148, 162, 176, 190, 204.
Vị trí đặt pilot của luồng dữ liệu thuộc an-ten thứ hai được sắp xếp ngược lại như điều kiện đã nêu ở trên.
Với sắp xếp pilot như vậy, khi dữ liệu được truyền đi, dựa vào giá trị biến đổi của các pilot nhận được, sẽ ước lượng được kênh truyền theo công thức sau:
Gọi:
Tx1, Tx2 là dữ liệu truyền trên an-ten thứ nhất và thứ hai. Rx1, Rx2 là dữ liệu nhận trên an-ten thứ nhất và thứ hai. H11, H12, H21, H22: là kênh truyền lên dữ liệu truyền.
P1i, P2i: giá trị pilot thứ i trên luồngg dữ liệu của an-ten thứ nhất và hai. P’1i, P’2i: giá trị pilot thứ i nhận được tại của an-ten thu thứ nhất và hai. Như vậy:
Rx1 = Tx1 x H11 + Tx2 x H21 Rx2 = Tx1 x H12 + Tx2 x H22
Giả sử xét vị trí thứ nhất, chính là vị trí pilot đầu tiên (P11≠0, P21=0).
P’11 = P11 x H11 + P21 x H21 = P11 x H11 + 0 x H21 = P11 x H11 P’21 = P11 x H12 + P21 x H22 = P11 x H12 + 0 x H22 = P11 x H12
Suy ra, tại vị trí đầu tiên:
H11 = P’11/P11 H12 = P’21/P11
Giả sử xét vị trí thứ 8 (P1i=0, P2i≠0)
P’18 = P18 x H11 + P28 x H21 = 0x H11 + P28 x H21 = P28 x H21 P’28 = P18 x H12 + P28 x H22 = 0 x H12 + P28 x H22 = P28 x H22
Suy ra, tại vị trí thứ 8:
H21 = P’18/P28 H22 = P’28/P28
Như vậy, dựa và 2 giá trị pilot kế cận, hệ thống dễ dàng xác định được 4 giá trị kênh truyền tại thời điểm đó. Dựa vào các giá trị này, đề tài sử dụng phép nội suy tuyến tính để nối các giá trị pilot để ước lượng các kênh truyền ở giữa, như ví dụ tại Hình 3.17:
Hình 3.17: Ứớc lượng nội suy tuyến tính các giá trị kênh truyền giữa các pilot
3.2.7. Khối giải mã SDM (bộ SDM Decoder)
Sau khi tín hiệu nhận được tại đầu thu là sự kết hợp của dữ liệu và nhiễu của kênh truyền như công thức (2.2). Kênh truyền sau khi được ước lượng bởi khối ước lượng kênh sẽ được tính toán để xác định ma trận trọng số WT theo công thức (2.25) nếu sử dụng phương pháp Zero-Forcing, và theo công thức (2.29) nếu sử dụng phường pháp MMSE. Về việc thiết kế trên Matlab cũng khá đơn giản khi thự viện đã hỗ trợ hoàn toàn các phép toán (cộng, trừ, nhân, chia…), do đó về mô hình thiết kế không khác so với công thức (2.22). Tuy nhiên khi thiết kế trên ngôn ngữ phần cứng sẽ gặp 1 số vấn đề, vì vậy đề tài sẽ đề cập sâu hơn về thiết kế trong chương 4.
3.3. Mô hình kênh truyền 3.3.1. Nhiễu AWGN 3.3.1. Nhiễu AWGN
3.3.1.1. Hiện tượng đa đường
(a) (b) Hình 3.18: Chi tiết khối tạo kênh truyền (khối H)
Đề tài tạo giá trị nhiễu ngẫu nhiên sử dụng kết hợp 2 bộ tạo nhiễu phân bố Gaussian với Variance bằng 0.5 nhằm tạo các giá trị nhiễu Rayleigh trong điều kiện đường bao của tổng hai tín hiệu nhiễu Gauss trực giao:
Kênh truyền 1 tại đường thứ nhất (path 1) bao gồm 4 giá trị phức cho 2 an-ten Giá trị kênh truyền (H11, H12, H21, H22) được tạo bởi 2 bộ tạo nhiễu phân bố Gaussian.
Hình 3.19: Hàm phân bố Rayleigh
3.3.2. Mô hình kênh truyền SUI [7]
Mô hình SUI chính là mô hình mở rộng của nhóm Wireless AT&T và Erceg, được phát triển bởi IEEE. Nó sử dụng cho ba loại địa hình cơ bản: loại A, B và C. Các loại địa hình trên cung cấp một phương pháp đơn giản để đánh giá chính xác hơn suy hao đường truyền của các kênh vô tuyến (RF channel).
Khoảng cách: 7 km.
Phân loại: Có hai hình thức để phân loại các mô hình SUI: