4.3.1. Bộ ánh xạ chòm sao
Ánh xạ chòm sao là phương pháp chuyển chuỗi dữ liệu có m bit thành một điểm a + jb. Trong đó, số bit m phụ thuộc vào phép ánh xạ. Ví dụ, QPSK có m bằng 2, 16_QAM có m=4. Trong hệ thống OFDM, ánh xạ chòm sao chỉ là việc chuyển chuỗi bit để cho phép truyền nhanh hơn. Khối mapper sử dụng các phương pháp của điều chế số nhưng nhiệm vụ điều chế được thực hiện ở phép biến đổi IFFT và bộ DAC ở ngõ ra. Có các phương pháp để thiết kế bộ mapper là sử dụng cấu trúc case, hoặc dùng bộ bảng tra, hoặc bộ nhớ ROM. Trong đề tài, khối mapper được thiết kế bằng bảng tra. Có hai bảng tra riêng được sử dụng để lưu giá trị trục đồng pha (I) và trục vuông pha (Q). Dữ liệu cần thực hiện ánh xạ sẽđặt vào đường địa chỉ của bảng
tra. Nội dung trong bảng tra lưu trữ giá trị tương ứng với chòm sao. Dữ liệu được ánh xạ sẽ có giá trị từ -1 đến 1. Ngõ ra của bộ DAC là 14 bit. Vì vậy, đề tài chuẩn hoá tín hiệu về dạng số có dấu chấm cốđịnh. Bảng 4.2 là các dữ liệu đặt trong bảng tra cho bộ mã hoá QPSK. Hình 4.8 trình bày nguyên tắc của phép QPSK và 16_QAM . Sơđồ mạch thực hiện phép điều chế QPSK được trình bày ở hình 4.9.
Hình 4.8: Phép điều chế QPSK và 16_QAM [9]
Bảng 4.2: Dữ liệu đặt trong bảng tra cho phép điều chế QPSK
Dữ liệu vào (địa chỉ) Ngõ ra (dữ liệu đã qua bộ Mapper)
Trục I Trục Q Hệ 10 Hệ nhị phân Giá trị (hệ 10) Số dấu chấm cốđịnh (hệ 10) Giá trị (hệ 10) Số dấu chấm cố định (hệ 10) 0 00 0.707 5792 0.707 5792 1 01 0.707 5792 -0.707 10592 2 10 -0.707 10592 0.707 5792 3 11 -0.707 10592 -0.707 10592 Hình 4.9: Mạch thực hiện phép điều chế QPSK
Bảng 4.3: Dữ liệu đặt trong bảng tra cho phép điều chế 16-QAM
Dữ liệu vào (địa chỉ) Ngõ ra (dữ liệu đã Mapper)
Trục I Trục Q Hệ 10 Hệ nhị phân Giá trị (hệ 10) Số dấu chấm cốđịnh (hệ 10) Giá trị (hệ 10) Số dấu chấm cốđịnh (hệ 10) 0 0000 0.316 2589 0.316 2589 1 0001 0.316 2589 0.949 7774 2 0010 0.316 2589 -0.316 13795 3 0011 0.316 2589 -0.949 8610 4 0100 0.949 7774 0.316 2589 5 0101 0.949 7774 0.949 7774 6 0110 0.949 7774 -0.316 13795 7 0111 0.949 7774 -0.949 8610 8 1000 -0.316 13795 0.316 2589 9 1001 -0.316 13795 0.949 7774 10 1010 -0.316 13795 -0.316 13795 11 1011 -0.316 13795 -0.949 8610 12 1100 -0.949 8610 0.316 2589 13 1101 -0.949 8610 0.949 7774 14 1110 -0.949 8610 -0.316 13795 15 1111 -0.949 8610 -0.949 8610 Hình 4.10: Mạch thực hiện phép điều chế 16-QAM
4.3.2. Bộ giải ánh xạ chòm sao
Ở đầu thu, các điểm chòm sao ở bộ truyền sẽ bị thay đổi do tác động của kênh truyền. Vì vậy, bộ giải ánh xạ chòm sao phải chọn ngưỡng để xác định điểm chòm sao ở phía thu. Khối giải ánh xạ chòm sao (demapper) được thiết kế bằng ngôn ngữ Verilog. Nguyên tắc của của bộ demapper là so sánh giá trị nhận được trên đường I và Q với các điểm lân cận trong chòm sao. Điểm được chọn ở ngõ ra là điểm có khoảng cách Euclid gần nhất với tín hiệu nhận được. Khi sử dụng phép QPSK, bộ demapper được thực hiện đơn giản bằng cách cho giá trị ngõ ra là bit có ý nghĩa lớn nhất (MSB) của chuỗi bit nhận được. Đây là bit dấu của chuỗi dữ liệu. Đối với phương pháp 16_QAM, bộ demapper được thiết kế theo qui luật IF – THEN. Dữ liệu ở ngõ ra sẽđược đặt vào bộ nhớ FIFO để chuẩn bịđi vào bộ giải mã kênh. Trong 256 giá trị của symbol OFDM có 192 giá trị là dữ liệu cần truyền. Vì vậy, bộ nhớ FIFO cần 192 từ nhớ. Mỗi từ có 2 bit nhớ tương ứng với phép điều chế QPSK và 4 bit nhớ đối với phép điều chế 16-QAM. Hình 4.11 là mạch thực hiện demapper.
Hình 4.11: Khối Demapper
4.4. SYMBOL OFDM
Trong symbol OFDM gồm dữ liệu, pilot, các giá trị 0. Vì vậy, trước khi tiến hành ghép symbol cần phải tạo các pilot. Các pilot này dùng để ước lượng kênh truyền phía bên thu.
4.4.1. Mạch tạo pilot
Để tạo pilot, ta cần bộ tạo ngẫu nhiên như hình 4.12. Đa thức sinh của PRBS này là: 1 + X9 + X11. Giá trị khởi tạo cho đa thức sinh là 10101010101B. Tín hiệu pilot ứng với OFDM symbol thứ k sẽ được suy ra từ các wk. Các vị trí dùng để chèn pilot và giá trị chèn được tính như sau:
c-88 = c-38 = c13 = c38 = c63 = c88 = 1-2wk và c-63 = c-13 = 1-2(!wk)
Hình 4.12: Bộ ngẫu nhiên hoá pilot [9]
Mạch tạo pilot được trình bày ở hình 4.13. Mạch gồm khối tạo các giá trị ngẫu nhiên LFSR, khối so sánh để chọn các vị trí cho !wk. Cuối cùng, là các mạch nhân và cộng để thực hiện tính biểu thức 1-2wk hoặc 1-2(!wk). Nếu đánh chỉ số của symbol là từ 0 đến 255 thì giá trị -63 và -13 sẽ trở thành 65 và 115. Tín hiệu index dùng để xác định vị trí bit trong symbol OFDM. Tín hiệu ena và rst dùng để cho phép và reset lại mạch. Tín hiệu pilot là ngõ ra của bộ cộng.
4.4.2. Mạch ghép và tách symbol
Đây là mạch sắp xếp và ghép chuỗi dữ liệu theo một trình tự hợp lý để truyền đi. Một symbol OFDM dùng trong chuẩn 802.16 được định nghĩa như sau: {28 số zero,100 data, zero, 100 data, 27 số zero}. Trong đó các vị trí chèn pilot là c-88, c-63, c-38, c-13, c13, c38, c63 và c88. Phần tạo symbol được thiết kế bằng ngôn ngữ Verilog. Ngõ vào của bộ ghép symbol gồm chỉ số của symbol, dữ liệu cần truyền, pilot và các số zero. Các dữ liệu cần truyền sau khi đã được ánh xạ là loại dữ liệu có hai đường I và Q. Do đó, bộ ghép symbol cũng có các đường tín hiệu riêng dành cho đường I và Q. Ngõ ra bộ bộ ghép symbol sẽđược đưa vào bộ biến đổi IFFT để tạo tín hiệu OFDM. Hình 4.14 trình bày mạch tạo symbol OFDM.
Hình 4.14: Mạch ghép symbol
Việc tách symbol OFDM ở phía thu có nhiệm vụ tách chuỗi dữ liệu nhận được thành luồng dữ liệu, pilot. Các dữ liệu sẽ được đưa vào bộ cân bằng. Trong khi đó, các pilot được sử dụng cho bộ ước lượng kênh truyền. Hình 4.15 trình bày mạch thực hiện chức năng tách symbol OFDM.
4.5. TẠO TÍN HIỆU OFDM BẰNG PHÉP BIẾN ĐỔI IFFT/FFT
Dữ liệu từ ngõ ra bộ tạo symbol OFDM sẽđược nối với ngõ vào bộ biến đổi IFFT. Hai đường dữ liệu I và Q sẽ được nối với hai ngõ vào dữ liệu thực (real) và ảo (image) tương ứng. Phép biến đổi IFFT có ý nghĩa sắp xếp các các symbol dữ liệu trên các sóng mang con khác nhau. Việc sử dụng phép IFFT giúp hệ thống luôn đảm bảo tính trực giao của các sóng mang con. Bộ FFT ở phía đầu thu có nhiệm vụ chuyển tín hiệu OFDM thành các symbol dữ liệu tương ứng.
4.5.1. Thiết kế bộ FFT/IFFT
Để giảm bớt số phép toán khi tính DFT/IDFT, nhiều thuật toán tính DFT/IDFT nhanh và được gọi là phép FFT/IFFT ra đời. Ý tưởng của FFT là dựa vào sự trùng lắp khi tính DFT để giảm các phép toán. Một trong những thuật toán tính FFT phổ biến là thuật toán của Cooley – Tukey. Thuật được sử dụng trong đề tài là thuật toán Cooley – Tukey FFT cơ số 4 tiêu huỷ theo tần số. Trong FFT cơ số 4, chuỗi dữ liệu được chia thành từng 4 điểm và việc thực hiện tính DFT chỉ thực hiện cho 4 điểm. Kết quả tính FFT cuối cùng có được bằng cách kết hợp với các bướm có thừa số xoay và bộ tính DFT 4 điểm. Bộ MegaCore sử dụng FFT cơ số 4 tiêu huỷ theo tần số được trình bày như hình 4.16. Các đường tín hiệu được giải thích trong bảng 4.4
Bảng 4.4: Các tín hiệu của bộ FFT/IFFT
Tên tín hiệu Hướng Mô tả
Báo tín hiệu vào
reset_n Input Reset mạch tính FFT inverse Input 0: tính FFT
1: tính IFFT
sink_valid Input Tín hiệu cho phép truyền dữ liệu sink_sop Input Bắt đầu gói dữ liệu
sink_eop Input Kết thúc gói dữ liệu
sink_real Input Ngõ vào dữ liệu thực, các giá trị là số có dấu sink_imag Input Ngõ vào dữ liệu phức, các giá trị là số có dấu
sink_error Input Cho biết có lỗi xảy ra ở dữ liệu ngõ vào 00: không có lỗi 01: mất tín hiệu SOP 10: mất tín hiệu EOP 11: báo hiệu bị lỗi EOP Báo tín hiệu ra
sink_ready Output Cho phép chấp nhận dữ liệu ngõ vào source_val Output Báo dữ liệu ngõ ra
source_sop Output Bắt đầu gói dữ liệu source_eop Output Kết thúc gói dữ liệu source_real Output Dữ liệu ngõ ra phần thực source_imag Output Dữ liệu ngõ ra phần ảo source_error Output
Báo hiệu có lỗi ở dữ liệu ngõ ra. Tín hiệu này báo hiệu khi xuất hiện tín hiệu sink_error ở ngõ vào
Hình 4.17 trình bày các đường tín hiệu điều khiển và dữ liệu của bộ FFT. Tín hiệu sink_valid xác nhận có thể đặt dữ liệu vào bộ FFT. Một dữ liệu được truyền thành công khi cả hai tín hiệu sink_valid và sink_ready đều được xác nhận.
Hình 4.17: Các đường dữ liệu của bộ FFT [15]
Khi hoàn tất truyền một fame dữ liệu, tín hiệu sink_sop phải được xác nhận lại và dữ liệu được nạp theo một trình tự nhiên. Hình 1.16 trình bày các tín hiệu điều khiển dữ liệu ngõ vào. Tín hiệu sink_eop và sink_valid sẽ xác nhận mẫu cuối cùng được nạp.
Khi FFT hoàn tất việc truyền khối dữ liệu ngõ vào, chúng sẽ xác nhận bằng tín hiệu source_valid và xuất ra các dữ liệu phức đã được biến đổi theo một trình tự tự nhiên. Tín hiệu source_sop cho biết dữ liệu ra đầu tiên. Việc điều khiển luồng dữ liệu ngõ ra được trình bày như hình 4.19.
Hình 4.19: Điều khiển luồng dữ liệu ngõ ra [15]
4.5.2. Bộ tạo tín hiệu OFDM
Bộ IFFT được sử dụng để tạo tín hiệu OFDM như hình 4.20. Một symbol OFDM gồm 256 giá trị. Vì vậy, phép biến đổi được sử dụng là IFFT 256 điểm. Dữ liệu từ bộ ghép symbol là dữ liệu phức. Điều này tương ứng với khả năng tính IFFT với dữ liệu là số phức. Ngõ vào khối tạo OFDM gồm ngõ vào phần thực (in_real), ngõ vào phần ảo (in_imag) và chỉ số của symbol OFDM (index_in). Chỉ số này được sử dụng để tạo tín hiệu bắt đầu fame dữ liệu SOP và kết thúc fame dữ liệu. Dữ liệu ngõ ra gồm ngõ ra dữ liệu thực (out_real), ngõ ra dữ liệu ảo (out_imag), out_rst và out_sop. Tín hiệu out_rst dùng để reset các mạch khác để bắt đầu một symbol mới. Điều chú ý là 18 giá trị đầu tiên trong symbol OFDM là các giá trị ‘0’. Vì vậy, việc lấy tín hiệu bắt đầu fame làm tín hiệu reset cho các mạch khác vẫn đảm bảo được tính đồng bộ của hệ thống. Tín hiệu out_sop để báo hiệu bắt đầu dữ liệu ngõ ra. Tín hiệu này được dùng để báo hiệu cho bộ cyclic prefix.
Hình 4.20: Mạch thực hiện việc tạo tín hiệu OFDM
4.5.3. Bộ tách tín hiệu OFDM
Việc tách tín hiệu OFDM về thành các symbol được thực hiện bằng phép biến đổi FFT như hình 4.21. Số điểm của phép biến đổi FFT cũng được sử dụng là 256 điểm. Các đường ngõ vào của bộ tách tín hiệu OFDM là bắt đầu fame dữ liệu vào (in_sop), kết thúc fame dữ liệu vào (in_eop), ngõ vào dữ liệu thực (in_realrx), và ngõ vào dữ liệu ảo (in_imagrx). Các tín hiệu ngõ ra gồm: báo hiệu bắt đầu có dữ liệu ngõ ra (sop_rx), ngõ ra dữ liệu thực (out_realrx) và ngõ ra dữ liệu ảo (out_imagrx).
Hình 4.21: Mạch thực hiện việc tách tín hiệu OFDM