Tƣơng tự nhƣ việc sử dụng hai khóa AK, một thiết bị BS và thiết bị SS cũng phải sử dụng hai khóa TEK (và các thuộc tính khóa của chúng) cùng hoạt động cho từng SAID. Các bản tin trong luồng 4 và luồng 5 thực hiện nhiệm vụ này. Khóa TEK mới sẽ đƣợc gán một số thứ tự lớn hơn khóa cũ một đơn vị. Tuy nhiên không giống nhƣ AK đƣợc sử dụng để bảo vệ bản tin chứa khóa TEK ở đƣờng xuống, khóa TEK dùng để bảo vệ lƣu lƣợng dữ liệu trên cả hai hƣớng, đƣờng lên và đƣờng xuống. Sự thay đổi của chúng phức tạp hơn sự thay đổi của AK. Nói chung, thiết bị BS điều khiển quá trình thay đổi TEK và thiết bị SS cập nhật TEK theo một cách tối ƣu nhất. Tùy vào bối cảnh thay đổi khóa mà chúng tuân theo một số luật nhất định. Thiết bị BS chuyển đổi giữa hai khóa TEK hoạt động tùy thuộc vào việc TEK có sử dụng cho đƣờng lên hay đƣờng xuống không.
• Đối với mỗi SAID sử dụng cho mục đích mã hóa, khi khóa TEK cũ hết hiệu lực thì thiết bị BS sẽ ngay lập tức chuyển sang sử dụng khóa TEK mới hơn.
• Một quá trình thay đổi đƣờng lên bắt đầu tính từ khi thiết bị BS gửi bản tin key reply chứa khóa TEK mới và việc thay đổi đƣợc xem là hoàn tất khi khóa cũ hết hiệu lực.
Chương 4: Bảo mật trong WiMAX
Quá trình thay đổi này là phù hợp để thiết bị SS có thể phản ứng và thay đổi khóa. Bất chấp thiết bị SS có nhận đƣợc khóa TEK mới hay không thì khi khóa cũ hết hiệu lực thiết bị BS sẽ chuyển sang sử dụng khóa mới để mã hóa lƣu lƣợng dữ liệu đƣờng xuống.
Thiết bị BS sử dụng TEK khác nhau cho đƣờng lên hay đƣờng xuống:
• Đối với mã hóa lƣu lƣợng đƣờng xuống, thiết bị BS sử dụng khóa cũ hơn bởi thiết bị BS biết chắc chắn thiết bị SS có khóa cũ hơn (nhƣng không nhất thiết có khóa mới). Điều này phù hợp khi khóa TEK cũ vẫn chƣa hết hiệu lực.
• Đối với giải mã lƣu lƣợng đƣờng lên thiết bị BS sẽ áp dụng một trong hai khóa TEK. Do thiết bị BS không chắc chắn khóa nào mà thiết bị SS sử dụng nên thiết bị BS áp dụng cả hai khóa, khi đó khóa sẽ đƣợc chỉ ra trong header của gói tin (tùy thuộc vào TEK vẫn chƣa hết hiệu lực).
Việc quan tâm đến khóa sử dụng hiện tại rất quan trọng khi quan sát lƣu lƣợng đƣờng xuống. Thiết bị BS sẽ chỉ sử dụng một khóa TEK xác định cho mỗi một nửa thời gian sống tổng cộng của TEK. Trong những trƣờng hợp đơn giản, điều này thực hiện đƣợc bởi vì đối với một khóa TEK xác định, khóa TEK trƣớc đó vẫn họat động và thiết bị SS chắc chắn sử dụng khóa TEK cũ hơn. Do đó thiết bị BS sẽ lựa chọn khóa cũ này. Thiết bị BS sẽ chuyển sang khóa mới khi nó nhận đƣợc bản tin key request từ thiết bị SS. Ngƣợc lại, đối với đƣờng lên, thiết bị BS sẽ sử dụng khóa nào trong hai khóa mà thiết bị SS quyết định chọn cho đƣờng lên của nó.
Chương 5: Mô phỏng hệ thống WiMAX
Chƣơng 5
MÔ PHỎNG HỆ THỐNG WIMAX 5.1 Giới hạn của chƣơng trình mô phỏng
Trong chƣơng này sẽ mô phỏng hệ thống WiMAX theo chuẩn 802.16d. Tín hiệu ban đầu đƣợc tạo ra từ khối tạo dữ liệu nhị phân Bernoulli. Chƣơng trình sử dụng phƣơng pháp mã hóa FEC, mã hóa RS và mã hóa xoắn. Các phƣơng pháp điều chế đƣợc sử dụng là BPSK, QPSK, 16-QAM, 64-QAM. Khối AWGN đƣợc dùng để mô phỏng cho nhiễu trên kênh truyền vô tuyến, tham số SNR là tham số có thể thay đổi cho phù hợp với môi trƣờng thực tế.
5.2 Sơ đồ khối của hệ thống WiMAX
Hình 5.1: Sơ đồ khối hệ thống WiMAX
5.2.1 Sơ đồ khối bên phát
Chương 5: Mô phỏng hệ thống WiMAX
Ở bên phát gồm các khối tạo dữ liệu ngẫu nhiên, khối mã hóa kênh FEC và điều chế, khối tạo IFFT tạo gói, khối mã hóa không gian-thời gian và khối phát OFDM . Các khối mã hóa kênh đƣợc thiết kế để cải thiện hiệu năng thông tin bằng việc cho phép tín hiệu phát chống lại tốt hơn các tác động làm suy hao kênh truyền nhƣ nhiễu hoặc pha đinh. Ngoài ra mã hóa kênh còn có thể sửa lỗi ban đầu nhờ vào khối FEC. Lợi ích của mã hoá kênh là giảm tỉ lệ lỗi bit, thực hiện giới hạn công suất và giới hạn độ rộng băng tần kênh bằng cách thêm một mã thừa vào dữ liệu đƣợc phát. Trong chuẩn IEEE 802.16d, mã hoá kênh bao gồm ngẫu nhiên hóa, sửa lỗi trƣớc FEC, và khối chèn. Khối FEC bao gồm mã hoá Reed-Solomon, mã xoắn và chia cột đƣợc sử dụng để điều chỉnh tốc độ dữ liệu khác nhau. Đây là các khối bắt buộc trong chuẩn 802.16d.
Điều chế trong chƣơng trình này là điều chế số, là quá trình dùng dữ liệu số để thay đổi tín hiệu sóng mang để phát qua kênh truyền. Với một hệ thống OFDM, thay đổi của pha và biên độ có thể đƣợc thực hiện nhƣng tần số thì không thay đổi bởi vì các tín hiệu sóng mang phải có tính trực giao với nhau. Điều chế sử dụng trong chuẩn 802.16d là BPSK, QPSK, 16-QAM và 64-QAM. Trong chƣơng trình mô phỏng này dùng tất cả các bộ điều chế trên với tốc độ mã hóa khác nhau.
Khối phát OFDM bao gồm ba phần: tạo khung OFDM, tạo tín hiệu OFDM bằng cách thực hiện IFFT, và chèn chuỗi CP trƣớc các ký tự OFDM.
Hệ thống WiMAX đƣợc mô phỏng là hệ thống MISO, nhiễu trên kênh truyền đƣợc mô phỏng bằng khối AWGN. Trong đó tham số tỷ lệ SNR có thể thay đổi để có những kết quả khác nhau.
5.2.2 Sơ đồ khối bên thu
Hình 5.3: Sơ đồ khối bên phía thu
Tín hiệu sau khi nhận đƣợc sẽ đƣợc giải điều chế theo các bƣớc ngƣợc lại so với bên phát để loại bỏ các bit dƣ thừa và nhận lại đƣợc tín hiệu thông tin ban đầu.
Chương 5: Mô phỏng hệ thống WiMAX
5.3 Thiết kế các khối
5.3.1 Khối tạo dữ liệu ngẫu nhiên
Hình 5.4: Khối tạo dữ liệu ngẫu nhiên
Khối này có nhiệm vụ tạo ra một chuỗi nhị phân ngẫu nhiên theo phân phối Bernoulli. Các tham số trong khối xác định giá trị ban đầu và xác suất xuất hiện bit 0 của dãy dữ liệu ngẫu nhiên. Chuỗi dữ liệu nhị phân đƣợc tạo ra tránh đƣợc hiện tƣợng nhiều bit 1 hoặc các nhiều bit 0 liên tiếp nhau. Điều này sẽ làm cho việc phục hồi sóng mang ở bên phía thu dễ dàng hơn. Tín hiệu tạo ra từ khối này sẽ đƣợc đƣa đến khối điều chế FEC.
5.3.2 Khối điều chế FEC và điều chế
Hình 5.5: Khối điều chế và sửa lỗi
Trong khối này thực hiện hai chức năng, chức năng đầu tiên là khối này có khả năng sửa lỗi trƣớc FEC và chức năng thứ hai là thực hiện quá trình điều chế. Mã hóa sửa lỗi trƣớc FEC đƣợc sử dụng để nâng cao chất lƣợng thông tin, cụ thể là đảm bảo tỷ số lỗi trong giới hạn cho phép mà không phải nâng cao giá trị của tỷ số SNR, đặc biệt là trong kênh truyền bị tác động của nhiễu AWGN. Chức năng sửa lỗi trƣớc FEC đƣợc thực hiện thông qua các khối mã hóa Reed-Solomon, khối mã hóa chập và khối chèn. Chức năng FEC là chèn các mã sửa lỗi vào dòng bit dữ liệu nhằm sửa các bit sai trong quá trình phát kênh truyền. Dữ liệu ngẫu nhiên đƣợc đƣa qua khối mã hóa RS để mã hóa dữ liệu sau đó đƣa đến khối mã hóa chập, khối mã hóa chập sẽ chia luồng dữ liệu này và mã hóa với tốc độ khác nhau. Khối chèn đƣợc sử dụng để phân tán lỗi cụm trong chuỗi dữ liệu. Bên phía thu sẽ sử dụng thuật toán Viterbi để giải mã. Hình 5.6 thể hiện các khối thực hiện chức năng mã hóa FEC.
Chương 5: Mô phỏng hệ thống WiMAX
Hình 5.6: Khối điều chế và sửa lỗi QPSK ½
Chức năng thứ hai trong khối này là điều chế tín hiệu, các dạng điều chế sử dụng là điều chế BPSK, QPSK, 16QAM, 64QAM. Việc sử dụng nhiều dạng điều chế này tạo ra sự linh động trong hệ thống WiMAX. Trong quá trình điều chế tín hiệu thì tùy thuộc vào tỷ số SNR mà một trong các phƣơng pháp điều chế trên thực hiện.
5.3.2.1 Khối mã hóa Reed solomon
Hình 5.7: Khối mã hóa RS
Mã Reed-solomon là một mã sửa lỗi thuộc loại mã khối tuyến tính, có rất nhiều ứng dụng trong thông tin số. Mã RS đƣợc sử dụng để sửa các lỗi trong nhiều hệ thống. Bộ mã hoá RS nhận một khối thông tin rồi thêm vào các bit dƣ. Lỗi xuất hiện trong khi truyền dẫn có thể do nhiều nguyên nhân, bộ giải mã RS sẽ xử lý từng khối dữ liệu và cố gắng sửa lỗi để khôi phục lại dữ liệu ban đầu. Số lƣợng và kiểu lỗi có thể sửa đƣợc phụ thuộc vào các đặc tính của mã RS đó.
Một mã RS thƣờng đƣợc kí hiệu là RS(n,k) với các symbol m bit, trong đó n là tổng số symbol sau khi mã hóa và k là số lƣợng thông tin hay số symbol dữ liệu. Bộ mã hoá lấy k symbol dữ liệu, mỗi symbol m bit, rồi thêm và (n-k) symbol kiểm tra để tạo thành một từ mã n symbol. Số lƣợng lỗi tối đa trong một khối mà mã RS(n,k) có thể đảm bảo sửa đƣợc là t=(n-k)/2. Thông thƣờng thì số symbol mã hóa đƣợc là n=2m-1. Nếu n nhỏ hơn số này thì mã đƣợc gọi là mã rút gọn. Tất cả các thuật toán mã hoá RS đều sử dụng mã RS trong trƣờng Galois GF(2m
Chương 5: Mô phỏng hệ thống WiMAX
Một mã RS đƣợc đặc trƣng bởi hai đa thức: đa thức trƣờng và đa thức sinh. Đa thức trƣờng xác định trƣờng Galois mà các symbol là thành phần của trƣờng đó. Đa thức sinh định nghĩa các symbol kiểm tra đƣợc sinh ra nhƣ thế nào. Cả hai đa thức này đều đƣợc định nghĩa cho mã RS.
- Đa thức trƣờng: đa thức này dùng để tạo ra trƣờng Galois của mã. Nó đƣợc nhập vào dƣới dạng số thập phân mà các bit ở dạng nhị phân tƣơng ứng với các hệ số của đa thức.
Ví dụ: p x( ) x8 x4 x3 x2 1 1000111012 28510 - Đa thức sinh: một từ mã RS đƣợc tạo ra nhờ một đa thức đặc biệt gọi là đa thức sinh. Tất cả các từ mã hợp lệ đều chia hết cho đa thức sinh. Dạng tổng quát của một đa thức sinh của một mã RS gốc sửa sai t lỗi có chiều dài 2m-1 là:
g(x) = (x + λ0)(x + λ1)(x + λ2) ... (x + λ2m-1), λ = 02HEX Với λ là một phần tử cơ bản của trƣờng GF(2m).
Sau đó, từ mã RS sẽ đƣợc tạo ra theo công thức: C(x) = g(x).i(x) Trong đó: g(x) là đa thức sinh.
i(x) là khối thông tin. C(x) là một từ mã hợp lệ.
Ví dụ: Một mã RS thƣờng gặp là RS(255,223) với các symbol 8 bit. Mỗi từ mã chứa 255 bytes, trong số đó có 223 bytes là dữ liệu, còn lại 32 bytes kiểm tra. Với mã này n=255, k=223, m=8, 2t = 32.
Bộ giải điều chế có thể sửa bất kỳ một lỗi 16 symbol nào trong từ mã, có nghĩa là có thể tự động sửa đƣợc lỗi tối đa 16 byte ở bất kỳ đâu trong từ mã cho một symbol cỡ là m, chiều dài tối đa cho một từ mã RS là n=2m
–1. Ví dụ, chiều dài tối đa cho một từ mã có các symbol dài 8 bit (m=8) là 255 byte.
Trong chuẩn IEEE 802.16d, Mã hoá Reed-Solomon sử dụng các cặp (n,k) tƣơng ứng với các dạng điều chế sau:
Chương 5: Mô phỏng hệ thống WiMAX
Bảng 5.1 Thông số của mã hóa RS Dạng điều chế Byte trƣớc khi mã
hóa (k)
Byte sau khi mã hóa(n) Mã hóa RS (n,k) QPSK ½ 24 32 (32, 24) QPSK ¾ 36 40 (40, 36) 16 QAM ½ 48 64 (64, 48) 16 QAM ¾ 72 80 (80, 72) 64 QAM 2/3 96 108 (108, 96) 64 QAM ¾ 108 120 (120, 108)
Độ phức tạp và sức mạnh xử lý để mã hoá và giải mã các mã RS phụ thuộc vào số lƣợng symbol kiểm tra trong một từ mã. Nếu t có giá trị lớn có nghĩa là có thể sửa đƣợc nhiều lỗi nhƣng lại đòi hỏi phải sử dụng số phép tính toán lớn hơn so với khi t có giá trị nhỏ.
Mã Reed-Solomon có khả năng sửa đƣợc nhiều lỗi. Một mã RS(n,k) có khả năng sửa sai tối đa (n-k)/2 lỗi. Sở dĩ nhƣ vậy vì ngƣời ta chứng minh đƣợc khoảng cách Hamming của một mã RS nhƣ vậy là (n-k+1). Ngoài sửa lỗi mã RS còn có khả năng sửa sai khi xảy ra hiện tƣợng mất symbol, các thủ tục mã hoá và giải mã RS(n,k) có thể đảm bảo sửa đƣợc tối đa (n-k) lỗi mất dữ liệu. Mã RS đặc biệt rất thích hợp cho sửa các lỗi cụm, đây là trƣờng hợp một dãy các bit lỗi xuất hiện liên tiếp ở máy thu.
5.3.2.2 Khối mã hóa xoắn
Sau quá trình mã hóa RS, các bit dữ liệu lại đƣợc mã hóa bởi bộ mã hóa xoắn của nhị phân, trong đó mã hóa có tỷ lệ là ½ và chiều dài bắt buộc là 7.
Đa thức nguồn đƣợc sử dụng để lấy hai bit mã hóa ngõ ra ký hiệu là X và Y, đƣợc qui định trong các biểu thức sau đây:
G1=171OCT đối với X G2=133OCT đối với Y
Một bộ mã hóa xoắn nhận tin có độ dài k0 bit và tạo ra từ mã của n0 bit, nói chung nó đƣợc tạo thành từ sự thay đổi của đoạn chiều dài hữu hạn L.
Chương 5: Mô phỏng hệ thống WiMAX
Hình 5.8: Mã hóa xoắn với tốc độ 1/2
Các bộ mã hóa xoắn của nhị phân đƣợc thể hiện trong hình 5.8 các đƣờng có kết nối đƣợc biểu diễn bởi bit 1, các đƣờng không có kết nối đƣợc biễu diễn bởi bit 0.
5.3.2.3 Khối phân chia
Phân chia là một quá trình xóa các bit của một bộ mã hóa tốc độ thấp để giảm lƣợng dữ liệu đƣợc truyền đi, vì vậy tạo thành một dạng mã hóa tốc độ cao. Việc sử dụng khối phân chia có khả năng thay đổi tốc độ mã hóa để có thể tránh đƣợc lỗi trong hệ thống. Các bit đƣợc xóa đi theo một ma trận đƣợc phân chia, nơi có bit 0 có nghĩa là đƣợc xóa đi một bit. Quá trình phân chia đƣợc sử dụng để tạo ra các tốc độ mã hóa là 1/2 , 2/3, 3/4 và 5/6. Với các tốc độ mã hóa khác nhau sẽ tạo ra các vector phân chia khác nhau nhƣ bảng.
Bảng 5.2 Vector phân chia tƣơng ứng với tốc độ mã hóa Tốc độ mã hóa Vector phân chia
1/2 [1]
2/3 [1 1 1 0]
3/4 [1 1 0 1 1 0]
Quá trình mã hóa xoắn và phân chia đƣợc thực hiện chung với nhau trong một khối.
Chương 5: Mô phỏng hệ thống WiMAX
5.3.2.4 Khối chèn
Hình 5.9: Khối chèn
Khối chèn sẽ cho biết số bit đƣợc mã hóa trên kênh truyền và tránh đƣợc lỗi tại máy thu. Chèn dữ liệu đƣợc sử dụng để phân tán lỗi burst, nhƣ vậy sẽ làm giảm bớt sự tập trung lỗi và tăng hiệu quả của thuật toán FEC bằng cách làm cho các kênh đƣợc truyền trong thời gian dài hơn. Việc chèn đƣợc thực hiện bằng cách sử dụng một bộ đệm mảng hai chiều, dữ liệu nhập vào trong các hàng, trong đó xác định số lƣợng chèn vào và sau đó nó đƣợc đọc từ các cột.Kết quả là lỗi burst trên một kênh sau khi đƣợc chèn thêm dữ liệu vào làm cho các lỗi dễ phát hiện và dễ sửa hơn.
Tất cả các bit dữ liệu đƣợc mã hoá sẽ đƣợc chèn bởi một khối chèn với kích thƣớc khối tƣơng ứng số bit đƣợc mã hoá trong mỗi kênh con của mỗi ký hiệu OFDM. Vì các dạng điều chế khác nhau BPSK, QPSK, 16QAM, 64QAM, nên số bit mã hoá trên kênh con (Ncbps) tƣơng ứng sẽ là 192, 384, 768, 1152 và số bit mã hóa trên sóng mang con (Ncpc) cũng sẽ lần lƣợt tƣơng ứng là 1, 2, 4, 6. Tất cả các dạng mã hóa đều sử dụng với số lƣợng kênh con là 16.
5.3.2.5 Khối điều chế và giải điều chế
Trong điều chế và giải điều chế chúng ta sử dụng các dạng BPSK, QPSK,