tìm hiểu về mã turbo
Trang 1MỤC LỤC
MỤC LỤC 1
MỤC LỤC HÌNH 2
MỤC LỤC BẢNG 3
DANH MỤC TỪ VIẾT TẮT 4
CHƯƠNG I 6
TỔNG QUAN VỀ MÃ TURBO 6
1.1 Mã kênh trong thông tin số 6
1.1.1 Mã khối 7
1.1.2 Mã chập 10
1.2 Sự kết nối mã và ra đời của mã Turbo (TURBO CODE) 16
1.3 Bộ mã hóa tích chập hệ thống đệ quy RSC 17
1.3.1 Mã tích chập hệ thống và không hệ thống 17
1.3.2 Mã tích chập đệ quy và không đệ quy 18
1.3.3 Bộ mã tích chập hệ thống đệ quy 18
1.4 Quyết định cứng và quyết định mềm 19
1.5 Mã hóa mã turbo PCCC (parallel concatenated convolutional code) 20
1.5.1 Bộ mã hóa 20
1.5.2 Kỹ thuật punturing 22
1.5.3 Bộ ghép xen (interleaver) 22
1.6 Giải mã Turbo 29
1.6.1 Tổng quan về các thuật toán giải mã 29
1.6.2 Giải thuật MAP 32
1.6.3 Nguyên lý của bộ giải mã viterbi đầu ra mềm 33
Kết luận 36
CHƯƠNG II 37
MÃ TURBO TRONG HỆ THỐNG W-CDMA 37
2.1 Công nghệ W - CDMA 37
2.2 Kiến trúc cho công nghệ WCDMA theo 3GPP 38
2.2.1 Thiết bị người sử dụng 40
2.2.2 Mạng truy nhập vô tuyến UMTS 40
2.2.3 Bộ điều khiển mạng vô tuyến 41
2.2.4 Node B 42
2.2.5 Mạng lõi 42
2.3 Mã hoá Turbo trong W-CDMA 45
2.3.1 Bộ mã hoá Turbo 45
2.3.2 Kết thúc trạng thái của mã Turbo 46
CHƯƠNG III 47
MÔ PHỎNG ĐÁNH GIÁ CHẤT LƯỢNG MÃ TURBO 47
3.1 Chương trình mô phỏng hệ thống W – CDMA 47
3.2 Kết quả mô phỏng theo tỉ lệ giữa BER và Eb/ N0 với ma trận sinh G(13, 15). 48 KẾT LUẬN 53
Trang 22
MỤC LỤC HÌNH
Hình 1.1 Sơ đồ phân loại mã kênh 6
Hình 1.2 Sơ đồ tạo mã chập 10
Hình 1.3 Bộ tạo mã chập 11
Hình 1.4 Mã chập (2,1,3) 13
Hình 1.5 Sơ đồ hình cây của bộ mã (2,1,3) 14
Hình 1.6 Sơ đồ hình lưới bộ mã chập (2,1,3) và bộ phát mã (7,5) 15
Hình 1.7 Sơ đồ trạng thái của bộ mã chập (2,1,3) 15
Hình 1.8 Mã kết nối nối tiếp 16
Hình 1.9 Mã kết nối song song 16
Hình 1.10 Bộ mã hóa tích chập hệ thống 17
Hình 1.11 Bộ mã tích chập không hệ thống 18
Hình 1.13 Bộ mã hoá RSC với r=1/2 k=1 19
Hình 1.14 Bộ mã hoá PCCC tổng quát 21
Hình 1.15 Mã PCCC tốc độ 1/3 gồm 2 bộ mã hoá chập hệ thống đệ quy 21
Hình 1.16 Bộ ghép xen làm tăng trọng số mã của bộ mã hoá RSC2 so với RSC1 23
Hình 1.17 Ví dụ minh họa khả năng của bộ ghép xen 23
Bảng 1.10 Các giá trị x1 đến x15 được đọc ra theo đường chéo 25
Hình 1.18 Bộ ghép xen giả ngẫu nhiên với độ dài chuỗi đầu vào L= 8 26
Hình 1.19 Bộ ghép xen dịch vòng với L=8, a=3, s=0 26
Bảng 1.12 Bộ ghép xen khối 3x3 27
Hình 1.19 Tổng quan các thuật toán giải mã 30
Hình 1.20 Bộ giải mã lặp MAP 32
Hình 1.21 Bộ giải mã SOVA kết nối 33
Hình 1.22 Sơ đồ khối bộ giải mã SOVA 34
Hình 1.24 Bộ giải mã SOVA lặp 34
Hình 2.1 Kiến trúc mạng 3G trong 3GPP phát hành năm 1999 39
Hình 2.2 Cấu trúc của bộ mã hoá Turbo 8 trạng thái (K=4) 45
Hình 3.1 Sơ đồ khối mô phỏng hệ thống W – CDMA sử dụng mã Turbo 47
Trang 33
MỤC LỤC BẢNG
Bảng 1.1 Mã khối tuyến tính (6,3) 9
Bảng 1.3 Bảng trạng thái của bộ mã 00, 01, 10, 11 15
Bảng 1.4 Các chuỗi đầu vào và đầu ra của bộ mã hóa trong hình 1.17 24
Bảng 1.7 Chuỗi vào x1 đến x18 được viết vào theo ma trận 25
Bảng 1.8 Chuỗi dữ liệu x1 đến x18 viết ra theo hàng 25
Bảng 1.9 Chuỗi dữ liệu x1 đến x15 được đọc vào theo cột 25
Bảng 1.11 Bộ ghép xen chẵn lẻ với L=9 27
Bảng 1.13 Các bit chẵn của chuỗi c3 được lưu trữ với chuỗi tin x 28
Bảng 1.14 Chuỗi tin x và chuỗi mã hóa được ghép 28
Trang 44
DANH MỤC TỪ VIẾT TẮT
Eb/N0 Energy of a Bits/Noise
Năng lượng bít/ Mật độ công suất tạp
âm
HCCC
Hybrid Concatenated Convolutional
HLR Home Location Register Thanh ghi định vị thường trú
HLR Home Location Register Thanh ghi định vị thường trú
IMEI
International Mobile Equipment Identity
Số nhận dạng thiết bị di động quốc tế
IMSI
International Mobile Subsscriber Identity
Số nhận dạng thuê bao di động quốc tế
PCCC
Parallel Concatenated Convolutional
RSC
Recursive Systematic Convolutional
SCCC
Serial Concatenated Convolutional
SLVA Serial List Viterbi Algorithm Thuật toán Viterbi liệt kê nối tiếp
SRN Signal to Noise Ratio Tỷ số tín hiệu trên tạp âm
Trang 5mạng truy nhập vô tuyến mặt đất UMTS
VLR Visitor Location Register Thanh ghi định vị tạm trú
Trang 66
CHƯƠNG I TỔNG QUAN VỀ MÃ TURBO
Sau 50 năm kể từ khi Shannon đưa ra lý thuyết thông tin số, lần đầu tiên các nhà nghiên cứu về mã hoá mới tìm được một phương pháp mã hoá tiếp cận được gần tới dung lượng của kênh Gaussian, đó chính là phát hiện ra mã Turbo vào năm 1993 Việc kết hợp giữa mã hoá với ghép xen ở phía phát và giải mã lặp ở phía thu đã cho những kết quả bất ngờ Tuy nhiên, cơ sở lý thuyết cho mã Turbo vẫn chưa được hoàn thiện
Vì vậy, việc tìm hiểu về mã Turbo có ý nghĩa khoa học cao
Chương này trình bày:
- Mã kênh trong thông tin số
- Sự kết nối các mã và sự ra đời của mã Turbo (TC)
- Giới thiệu về mã chập hệ thống đệ quy (Recursive Systematic Convolutional Code_RSC), là cơ sở của việc tạo ra mã TC
- Chi tiết cấu trúc bộ mã hóa PCCC
- Thuật toán giải mã Turbo
1.1 Mã kênh trong thông tin số
Mã kênh thường được chia làm hai loại, đó là mã dạng sóng (Waveform) và mã chuỗi có cấu trúc (Structured sequence)
Hình 1.1 Sơ đồ phân loại mã kênh
Trang 77
Mã khối là bộ mã không nhớ (chuỗi bit nhận được ở đầu ra của bộ mã chỉ phụ thuộc vào bản tin đầu vào hiện hành mà không phụ thuộc vào bản tin trước đó) Trái ngược với mã khối là mã chập, đây là bộ mã có nhớ (chuỗi bit nhận được ở đầu ra của
bộ mã không chỉ phụ thuộc vào bản tin đầu vào hiện hành mà còn phụ thuộc vào một vài bản tin trước đó) Mã liên kết là sự kết hợp của hai bộ mã vòng trong và vòng ngoài được phân biệt bởi bộ xáo trộn
Năm 1967, Forney đưa ra sơ đồ mã hoá gồm mã vòng trong là mã chập và mã vòng ngoài là mã khối Reed-Solomon Sau đó, năm 1993 Berrou đưa ra bộ mã Turbo có cấu trúc gồm hai bộ mã chập kết nối song song thông qua xáo trộn Năm 1996, Benedetto đưa
ra sơ đồ mã gồm hai mã chập liên kết nối tiếp Các bộ mã này đều sử dụng thuật toán giải
mã lặp và có chất lượng tiến tới giới hạn Shannon
Bộ mã Turbo là một bộ mã có nhớ, có cấu trúc gồm hai bộ mã chập liên kết song song PCCC thông qua xáo trộn và khi xem xét mã Turbo xử lý theo từng khối bit thông tin thì có thể coi bộ mã Turbo như một bộ mã khối Do vậy, trong phần này sẽ
đề cập tới bộ mã khối (block code), bộ mã chập (convolutional code) và bộ mã Turbo (Turbo code)
phân, bộ mã này thường được sử dụng vì có độ phức tạp vừa phải Trong mã khối (n,
k) nhị phân, có 2 k bản tin có độ dài k bit đầu vào khác nhau được bộ mã khối sắp xếp
thành 2k từ mã có độ dài n bit đầu ra khác nhau và tốc độ mã là R = k/n
Một bộ mã khối được gọi là tuyến tính khi thoả mãn cả hai điều kiện là nó chứa một từ mã “toàn 0” và tổng modul 2 của hai từ mã thành phần là một từ mã khác Một
mã khối tuyến tính (n, k) có thể được tạo ra từ một tập k các véc tơ độc lập tuyến tính
Trang 88
dài n là g0, g1, , g k-1 Các từ mã nhận được là tổ hợp tuyến tính của k véc tơ này Do
đó, từ mã ứng với bản tin c = (c0, c1, , c k-1) có thể biểu diễn là:
v = c0.g0 + c1.g1 + + c k-1 g k-1 với phép cộng modul-2 theo từng phần tử
Nếu sắp xếp k véc tơ đó theo hàng trong ma trận k n sau:
Với g i, j = 0 hoặc 1 thì G được gọi là ma trận sinh của mã (ma trận tạo mã)
Từ mã v ứng với bản tin c được biểu diễn là:
0 1 0 1 0 1
0 0 1 1 1 0
2 1 0
g g
Các từ mã đầu ra bộ mã khối tuyến tính tương ứng với các bản tin đầu vào trong ví
dụ 1.1 được liệt kê trong bảng 1.1
Trang 99
(000) (100) (010) (110) (001) (101) (011) (111)
(000000) (011100) (101010) (110110) (110001) (101101) (011011) (000111)
Bảng 1.1 Mã khối tuyến tính (6,3)
Về cấu trúc, bộ mã khối hệ thống tuyến tính gồm hai phần: phần đầu là chuỗi
kiểm tra có độ dài n-k-1 chữ số, phần tiếp theo là bản tin có độ dài k chữ số (chính là
bản tin đầu vào) Cấu trúc từ mã đƣợc biểu diễn nhƣ sau:
tra kiÓm Chuçi
tin n B¶
1 1
0 1 1
0 1 1
0 1 0 1 0 1
0 0 1 1 1 0
3 1
0
b) Khoảng cách cực tiểu của mã khối
Xét mã khối tuyến tính (n, k) Ta thấy ngoài tham số tốc độ mã còn có tham số
quan trọng khác là trọng số Hamming (hay trọng số) của từ mã v, tức là số các phần tử khác “0” (với mã nhị phân là tổng các bit “1”) trong từ mã Mỗi từ mã có một trọng số xác định, tập hợp tất cả các trọng số của các từ mã trong bộ mã lập thành phân bố
trọng số của bộ mã Khi tập M = 2 k từ mã có trọng số bằng nhau thì bộ mã đó đƣợc gọi
là bộ mã có trọng số không đổi hay bộ mã có trọng số cố định
Trang 1010
Khoảng cách Hamming giữa hai từ mã v và u được ký hiệu là dv,u, với v u, n
dv,u > 0 và được định nghĩa là số các vị trí khác nhau giữa hai từ mã Ví dụ, nếu hai từ
mã là v = (100111) và u = (010001) thì khoảng cách Hamming giữa chúng là 4 Khoảng cách Hamming giữa hai từ mã cũng chính là trọng số của tổng modul-2 của hai từ mã đó
Khoảng cách Hamming cực tiểu hay còn gọi là khoảng cách cực tiểu của bộ mã,
ký hiệu là dmin, được định nghĩa là khoảng cách Hamming nhỏ nhất giữa hai từ mã khác nhau trong bộ mã Như vậy, khoảng cách cực tiểu của mã khối tuyến tính chính là trọng số nhỏ nhất của một trong các từ mã mà không phải là từ mã “toàn 0” Điểm quan trọng của tham số khoảng cách cực tiểu là trong thực tế nó xác định khả năng phát hiện và sửa lỗi của bộ mã
Từ ví dụ 1.1 ở trên, xét các từ mã trong bảng 1.1, thì khoảng cách Hamming cực tiểu (hay là khoảng cách cực tiểu) của bộ mã là 3
Dữ liệu vào được lưu giữ trong bộ đệm có độ dài xác định Đầu ra là một tổ hợp của
dữ liệu vào và các dữ liệu trong bộ đệm Việc mã hóa được tiến hành liên tục theo các bước dịch vào của dòng dữ liệu mà không theo từng cụm như mã khối
Hình 1.2 Sơ đồ tạo mã chập
Trang 11Khi đó bản tin L bit tạo nên n(L/k +N) bit lối ra, tốc độ của bộ mã hoá là :
n
k )(
N k
L n
Ví dụ 1.2: n = 2, N = 4, k = 1 nên tốc độ mã là r = ½, khi đó đưa một dãy dữ liệu
đầu vào 1 bit sẽ cho ta 2 bit dữ liệu đầu ra, đa thức tạo mã là G(11, 13)
Hình 1.3 Bộ tạo mã chập
Một bộ mã chập thường được định nghĩa theo vị trí của dãy tạo mã (đa thức sinh)
g1(i), g2(i) ,… gM(i) Ở đó thành phần của nhánh thứ i của dãy gj (1 ≤ j ≤ kN, 1 ≤ i ≤ n) sẽ là 1 nếu thành phần của thanh ghi được nối đến bộ tổ hợp ở lối ra ở lối ra i, sẽ là
0 nếu không được nối
g(i)(D) = g0(i) + g1(i)D + g2(i)D2 +… + gN(i)DN (1.4)
Trong đó: D là phần tử trễ
Bộ mã hoá đầy đủ thể hiện đa thức sinh G như sau :
Trang 12) (
) (
2 1
D
D D G
g
g g
1 1 0 1
Với bản tin L = 5 tạo dãy mã dài n(L + N – 1) = 16 bit
Để thanh ghi trở về trạng thái zero ban đầu thì phải có N – 1 = 3 zero tại cuối bản tin Dãy N – 1 zero này gọi là đuôi bản tin
b) Biểu diễn mã chập
Trang 1313
Có ba phương pháp để biểu diễn mã chập đó là: sơ đồ lưới, sơ đồ trạng thái, và sơ
đồ hình cây Để làm rõ phương pháp này ta tập trung phân tích dựa trên ví dụ hình 1.4 với bộ mã (2,1,3), đa thức sinh (7,5)
bộ mã, nhánh đi xuống biểu hiện cho bit 1 được dịch vào Từ sơ đồ hình cây ta có thể thực hiện mã hoá bằng cách dựa vào các bit đầu vào và thực hiện lần theo các nhánh của cây, ta sẽ nhận được tuyến mã, từ đó ta nhận được dãy các chuỗi đầu ra
Trang 1400
11 00
10
01 10
là “00”; “01”; “10”; “11” Từ sơ đồ hình cây trên, ta thấy rằng tại tầng thứ 3, cứ mỗi trạng thái 00, 01, 10, 11 đều có 2 nhánh đến từ các trạng thái trước đó tùy thuộc vào bit được dịch vào bộ mã là bit 0 hay bit 1 Với tính chất đó ta có thể biểu diễn mã chập bằng sơ đồ có dạng hình lưới gọn hơn, trong đó các đường liền nét được ký hiệu cho bit đầu vào là bit “1” và đường đứt nét được ký hiệu cho các bit đầu vào là bit “0” (xem hình 1.6) Ta thấy rằng từ sau tầng thứ hai hoạt động của lưới ổn định, tại mỗi nút có hai đường vào nút và hai đường ra khỏi nút Trong hai đường đi ra thì một ứng với bit đầu vào là bit “0” và đường còn lại ứng với bit đầu vào là bit “1”
Trang 1515
T=1 T=0
10
01
T=3
11 00
10
11
00
01 10 01
T=4
11 00
10
11
00
01 10 01
T=5
11 00
10
11
00
01 10 01
Hình 1.6 Sơ đồ hình lưới bộ mã chập (2,1,3) và bộ phát mã (7,5)
Sơ đồ trạng thái
Sơ đồ trạng thái đƣợc thực hiện bằng cách đơn giản sơ đồ 4 trạng thái có thể có của bộ mã (00, 01, 10 và 11) và trạng thái chuyển tiếp có thể đƣợc tạo ra từ trạng thái này chuyển sang trạng thái khác, quá trình chuyển tiếp có thể là:
Next State/output symbol
Kết quả ta thu đƣợc sơ đồ trạng thái trong hình 1.7 nhƣ sau:
Hình 1.7 Sơ đồ trạng thái của bộ mã chập (2,1,3)
Trang 1616
Từ sơ đồ trạng thái hình 1.7, các đường liền nét được ký hiệu cho bit đầu vào là bit
“0” và đường đứt nét được ký hiệu cho các bit đầu vào là bit “1” So với sơ đồ hình lưới và sơ đồ hình cây thì sơ đồ trạng thái là sơ đồ đơn giản nhất
1.2 Sự kết nối mã và ra đời của mã Turbo (TURBO CODE)
Mã Turbo là sự kết nối gồm hai hay nhiều bộ mã riêng biệt để tạo ra một mã tốt hơn và cũng lớn hơn Mô hình ghép nối mã đầu tiên được Forney nghiên cứu để tạo ra một loại mã có xác suất lỗi giảm theo hàm mũ tại tốc độ nhỏ hơn dung lượng kênh trong khi độ phức tạp giải mã chỉ tăng theo hàm đại số Mô hình này bao gồm sự kết nối nối tiếp một bộ mã trong và một bộ mã ngoài
Forney đã sử dụng một bộ mã khối ngắn hoặc một bộ mã tích chập với giải thuật giải mã Viterbi xác suất lớn nhất làm bộ mã trong và một bộ mã Reed-Salomon dài không nhị phân tốc độ cao với thuật toán giải mã sửa lỗi đại số làm bộ mã ngoài Mục đích lúc đầu chỉ là nghiên cứu một lý thuyết mới nhưng sau này mô hình ghép nối mã đã trở thành tiêu chuẩn cho các ứng dụng cần độ lợi mã lớn Có hai kiểu kết nối cơ bản là kết nối nối tiếp (hình 1.8) và kết nối song song ( hình 1.9)
Hình 1.8 Mã kết nối nối tiếp
Bộ mã hoá 1 được gọi là bộ mã ngoài, còn bộ mã hoá 2 là bộ mã trong
Đối với mã kết nối nối tiếp, tốc độ mã hoá: Rnt=k1k2/n1n2
Đối với mã song song, tốc độ mã hoá là: Rss=k/(n1+n2)
Hình 1.9 Mã kết nối song song
Trên chỉ là các mô hình kết nối lý thuyết Thực tế các mô hình này cần phải sử dụng thêm các bộ ghép xen giữa các bộ mã hoá nhằm cải tiến khả năng sửa sai
Trang 1717
Năm 1993, Claude Berrou, Alain Glavieux, Puja Thitimajshima đã cùng viết tác
phẩm “ Near Shannon limit error correcting coding and decoding: TURBO CODE” đánh dấu một bước tiến vượt bậc trong nghiên cứu mã sửa sai Loại mã mà họ giới thiệu thực hiện trong khoảng 0.7dB so với giới hạn của Shannon cho kênh AWGN Loại mã này được gọi là mã Turbo, thực chất là sự kết nối song song các bộ mã tích chập đặc biệt cùng với các bộ ghép xen Cấu hình này gọi là: “Kết nối song song các
mã tích chập ( Parallel Concatenated Convolutional Code- PCCC) “
Ngoài ra cũng có “kết nối nối tiếp các mã tích chập (Serial Concatenated Convolutional Code_SCCC)” và dạng “kết nối hỗn hợp các bộ mã tích chập” (Hybrid Concatenated Convolutional Code_HCCC)” Các loại mã này có nhiều đặc điểm tương
tự nhau và cùng xuất phát từ mô hình của Berrou nên gọi chung là: Turbo code (TC)
1.3 Bộ mã hóa tích chập hệ thống đệ quy RSC
Trong bộ mã TC sử dụng một bộ mã tích chập đặc biệt: mã tích chập hệ thống đệ quy (Recursive Systematic Convolutional Code_RSC )
1.3.1 Mã tích chập hệ thống và không hệ thống
Mã tích chập có tính hệ thống là mã tích chập mà có một phần tử mã ở đầu ra chính là dãy tin đầu vào, tức là đầu vào của dãy tin được đưa trực tiếp đến một trong những đầu ra của bộ mã Sơ đồ của bộ mã tích chập hệ thống như hình 1.10
Hình 1.10 Bộ mã hóa tích chập hệ thống
Đối với mã chập hệ thống thì ta có thể dễ dàng xác định từ mã ở đầu ra hơn so với
mã chập không hệ thống Do cấu trúc như vậy nên yêu cầu của bộ mã hóa và giải mã ít phức tạp hơn so với mã không hệ thống
Trang 1818
Mã chập không hệ thống có từ mã đầu ra không phản ánh đƣợc dãy tin ở đầu vào, tức là đầu ra của bộ mã không nối trực tiếp đến dãy tin đầu vào Sơ đồ của bộ mã chập không hệ thống nhƣ hình 1.11
Hình 1.11 Bộ mã tích chập không hệ thống
1.3.2 Mã tích chập đệ quy và không đệ quy
Mã tích chập đệ quy có từ mã ở đầu ra đƣợc đƣa hồi tiếp trở lại dãy tin đầu vào
Trang 1919
n: số đầu ra
N: chiều dài constraint lengths (số ngăn lớn nhất trên thanh ghi)
Trong đó k < n để ta có thể thêm độ dư vào luồng dữ liệu để thực hiện phát hiện
sai và sửa sai
Một bộ mã tích chập thông thường được biểu diễn qua các chuỗi g1 = [1 1 1] và
g2 = [ 1 0 1] và có thể được viết là G = [ g1,g2] Bộ mã hoá RSC tương ứng bộ mã hoá
tích chập thông thường đó được biểu diễn là G = [ 1, g2/g1 ] trong đó ngõ ra đầu tiên
(biểu diễn bởi g1) được hồi tiếp về ngõ vào, c1 là ngõ ra hệ thống, c2 là ngõ ra
feedforward Hình 1.13 trình bày bộ mã hoá RSC
Hình 1.13 Bộ mã hoá RSC với r=1/2 k=1
Một bộ mã hoá tích chập đệ quy có khuynh hướng cho ra các từ mã có trọng số
tăng so với bộ mã hoá không đệ quy, nghĩa là bộ mã tích chập đệ quy cho ra ít từ mã
có trọng số thấp và cũng dẫn đến việc thực hiện sửa sai tốt hơn
Đối với mã Turbo, mục đích của việc thực hiện các bộ mã hoá RSC là tận dụng
bản chất đệ quy của các bộ mã hoá và tận dụng bộ mã hoá là hệ thống
1.4 Quyết định cứng và quyết định mềm
Chuỗi tin sau khi truyền qua kênh truyền và được giải điều chế thì sẽ được đưa đến
bộ giải mã Tín hiệu tại đầu ra của bộ giải điều chế và đầu vào của bộ giải mã sẽ quyết
định quá trình giải mã là “ cứng ”hay “mềm ”
Nếu tín hiệu đến của bộ giải điều chế và được bộ điều chế ra quyết định từng bít là
bít 0 hay 1 thì gọi là quyết định cứng Ví dụ xét một hệ thống sử dụng tín hiệu đường
D
+
+ x
Trang 2020
dây là bipolar NRZ với biên độ là 1V Nếu giá trị nhận được là 0,8V hoặc 0,03V thì đều được quyết định là bit 1 Còn nếu giá trị nhận được là -0,7V hoặc -0,02 thì đều được quyết định là bit 0 Như vậy ta thấy được phương pháp sai sót của quyết định cứng là dù 0,8V hay 0,03V thì bộ giải mã cũng nhận được bít 1 trong khi giá trị 0,8V
có xác suất đúng là bit 1 cao hơn nhiều so với 0,03V Như vậy, bộ giải mã không có thông tin nào về độ chính xác của quyết định từ bộ giải điều chế Việc này sẽ làm cho chất lượng của bộ giải mã không chỉ phụ thuộc vào bộ giải mã mà còn phụ thuộc vào
bộ giải điều chế và chất lượng không cao Tuy nhiên quyết định cứng dễ dàng hơn cho việc giải mã
Nếu bộ giải điều chế không tự quyết định xem giá trị lấy mẫu nhận được là bit 0 hay bit 1 mà đưa thẳng cho bộ giải mã để bộ giải mã có đầy đủ thông tin về bit sau khi
đã qua kênh truyền thì với cấu trúc phù hợp bộ giải mã sẽ cho các quyết định chính xác hơn, tức là chất lượng cao hơn Bộ giải mã sẽ tính toán các giá trị để xét độ tin cậy của từng giá trị và cuối cùng mới quyết định Điều này sẽ làm giảm khả năng có thể xẩy ra lỗi và độ lợi mã tổng cộng có thể tăng 2,5 dB so với giải mã cứng đối với môi trường
có SNR thấp Tuy nhiên, để đạt được độ lợi mã này thì bộ giải mã mềm sẽ có độ phức tạp cao hơn rất nhiều so với bộ giải mã cứng
1.5 Mã hóa mã turbo PCCC (parallel concatenated convolutional code)
1.5.1 Bộ mã hóa
Mã PCCC là sự kết nối song song của hai hay nhiều mã RSC Thông thường người
ta sử dụng tối thiểu hai bộ mã hoá tích chập Sơ đồ khối mã PCCC tổng quát như hình 1.15
Mỗi bộ mã hoá RSCi được gọi là các bộ mã thành phần (constituent code) Các bộ
mã thành phần có thể khác nhau, tốc độ mã khác nhau nhưng có cùng cỡ khối bit đầu vào là k, các chuỗi mã hoá ngõ ra bao gồm một chuỗi hệ thống (chuỗi bit vào) Ở các
bộ mã hoá thứ hai trở đi, chuỗi bit nhận vào để mã hoá trước hết phải qua một bộ ghép xen Tất cả các chuỗi mã hoá ngõ ra sẽ được hợp lại thành một chuỗi bit duy nhất n bit trước khi truyền
Trang 2121
Hình 1.14 Bộ mã hoá PCCC tổng quát
Tốc độ mã hoá (code rate) của bộ mã hoá PCCC là: r = k/n
Mỗi bit thông tin đầu vào sẽ trở thành một phần của từ mã ngõ ra (tính hệ thống)
và sẽ đƣợc kèm theo bằng (1/r - 1) bit (gọi là bit parity) để sửa lỗi nếu có Nếu r càng nhỏ tức số bit parity đi kèm sẽ lớn và dẫn đến khả năng sửa lỗi cao hơn rất nhiều nhƣng tốc độ truyền giảm đi, số bit truyền nhiều hơn có nghĩa là băng thông lớn hơn
và độ trễ tăng lên Theo khuyến cáo của các tổ chức định chuẩn thì giá trị r chỉ nên nhỏ
nhất là 1/6
Trong quá trình hợp các chuỗi mã hoá thành một chuỗi mã hoá duy nhất ta có thể dùng một kỹ thuật khá mới mẻ đó là kỹ thuật puncturing
Một mã Turbo tiêu biểu là loại đƣợc kết nối theo kiểu PCCC Sơ đồ khối đƣợc
biểu diễn trong hình 1.15
Hình 1.15 Mã PCCC tốc độ 1/3 gồm 2 bộ mã hoá chập hệ thống đệ quy
c3
Bộ mã hoá RSC1
Bộ mã hoá RSC2
Bộ ghép
x
c2
c1
Trang 2222
Bộ mã hoá Turbo cơ bản được thiết kế bằng cách kết nối song song hai bộ mã hoá
hệ thống đệ quy tích chập lại với nhau, hai bộ mã hoá thành phần được phân cách nhau bởi một bộ ghép xen (interleaving) Chỉ có một trong ba đầu ra của hai bộ RSC trên là đầu ra của hệ thống, đầu ra của hệ thống có được bằng cách thay đổi thứ tự vị trí của bit đầu vào Tốc độ mã hoá của bộ mã này là r =1/3, bộ mã hoá RSC đầu tiên cho ra chuỗi hệ thống c1 và chuỗi chập đệ quy c2, trong khi bộ mã hoá RSC thứ hai thì bỏ qua chuỗi hệ thống của nó và chỉ cho ra chuỗi chập đệ quy c3
1.5.2 Kỹ thuật punturing
Kỹ thuật punturing là kỹ thuật dùng để tăng tốc độ mã của một bộ mã hoá mà không làm thay đổi cấu trúc của bộ mã hoá Tốc độ mã càng thấp thì chất lượng càng cao nhưng băng thông tăng Ví dụ bộ mã tốc độ 1/3 có thể trở thành bộ mã hoá tốc độ 1/2 bằng cách thay vì 1 bit ngõ vào sẽ có tương ứng 3 bit ngõ ra mã hoá thì ta cho đầu
ra mã hoá chỉ còn 2 bit Bản chất của kỹ thuật puncture là làm giảm n theo một quy luật nào đó để tốc độ mã hoá r tăng lên
Ví dụ:
Bộ mã trong hình 1.16, nếu chuỗi hệ thống c1 vẫn giữ nguyên và các chuỗi c2 và c3
sẽ được lấy xen kẽ Chuỗi c2 sẽ lấy các bit lẻ và chuỗi c3 lấy các bit chẵn thì bộ mã hóa
sẽ có tốc độ 1/2 Khi bộ giải mã nhận được chuỗi bit đến thì nó sẽ thêm vào chuỗi này các bit 0 tại những chỗ đã bị xoá bớt Như vậy có thể làm sai lệch bit parity nên giảm chất lượng
1.5.3 Bộ ghép xen (interleaver)
Đối với mã Turbo, có thể có một hay nhiều bộ ghép xen được sử dụng giữa các bộ
mã hoá thành phần Bộ ghép xen được sử dụng tại bộ mã hoá nhằm mục đích hoán vị tất cả các chuỗi đầu vào có trọng số thấp thành chuỗi ra có từ mã đầu ra trọng số cao hay ngược lại Luôn đảm bảo với một chuỗi đầu vào thì đầu ra một bộ mã hoá sẽ cho
từ mã trọng số cao còn bộ mã hoá kia sẽ cho ra từ mã trọng số thấp để làm tăng khoảng cách tự do tối thiểu
Bộ ghép xen không những được sử dụng tại bộ mã hoá mà nó cùng với bộ giải ghép xen (deinterleaver) có trong bộ giải mã đóng một vai trò quan trọng Vai trò của
Trang 2323
bộ ghép xen tại bộ giải mã mới bộc lộ hết Một bộ ghép xen tốt sẽ làm cho các đầu vào của bộ giải mã SISO ít tương quan với nhau tức là mức độ hội tụ của thuật toán giải mã sẽ tăng lên, đồng nghĩa với việc giải mã chính xác hơn
Hình 1.16 Bộ ghép xen làm tăng trọng số mã của bộ mã hoá RSC2 so với RSC1
Ví dụ bộ ghép xen được sử dụng để tăng trọng số của các từ mã như trong hình 1.16
Từ hình 1.16, đối với bộ mã hoá RSC1 thì chuỗi đầu vào x cho ra chuỗi mã tích chập đệ quy có trọng số thấp c2 Để tránh bộ mã hoá RSC2 cho ra chuỗi đầu ra đệ quy khác cũng có trọng số thấp, bộ ghép xen hoán vị chuỗi đầu vào x thành 1 chuỗi mới với hi vọng cho ra chuỗi mã tích chập đệ quy có trọng số cao c3 Vì vậy, trọng số mã của mã PCCC là vừa phải, nó được kết hợp từ mã trọng số thấp của bộ mã hoá 1 và
trọng số cao của bộ mã hoá 2 Hình 1.17 là một ví dụ minh họa
Hình 1.17 Ví dụ minh họa khả năng của bộ ghép xen
Theo hình 2.11 chuỗi đầu vào xi cho ra các chuỗi ngõ ra c1i và c2i tương ứng Các chuỗi đầu vào x1 và x2 là các chuỗi hoán vị khác nhau của x0 Bảng 2.1 trình bày kết
quả của các từ mã và trọng số của các từ mã
Trang 24Bảng 1.4 Các chuỗi đầu vào và đầu ra của bộ mã hóa trong hình 1.17
Từ bảng trên cho thấy trọng số của từ mã có thể tăng bằng cách sử dụng bộ ghép xen Bộ ghép xen ảnh hưởng đến việc thực hiện mã vì nó ảnh hưởng trực tiếp đến đặc tính khoảng cách của mã Bằng cách tránh các từ mã có trọng số thấp, BER của mã Turbo có cải tiến đáng kể Vì vậy có nhiều bộ ghép xen khác nhau đã được nghiên cứu thiết kế Phần sau đây trình bày các bộ ghép xen tiêu biểu thường sử dụng trong việc thiết kế mã Turbo
a) Bộ ghép xen ma trận (bộ ghép xen khối)
Bộ ghép xen ma trận là bộ ghép xen thường được sử dụng nhất trong các hệ thống liên lạc Nó viết vào theo cột từ trên xuống dưới, từ trái sang phải và đọc ra theo hàng
từ trái sang phải và từ trên xuống dưới hoặc có thể viết vào theo hàng và đọc ra theo cột như hình dưới đây:
Trang 2525
Bảng 1.7 Chuỗi vào x 1 đến x 18 được viết vào theo ma trận
Với chuỗi vào (x1, x2, x3, ……… x17, x18 ) dùng ma trận bộ ghép xen 63 ở trên thì chuỗi ra là:
Bảng 1.10 Các giá trị x 1 đến x 15 được đọc ra theo đường chéo
Một điều cần lưu ý là ma trận ghép xen helical có số hàng lẻ
c) Bộ ghép xen giả ngẫu nhiên
Bộ ghép xen giả ngẫu nhiên sử dụng tính ngẫu nhiên cố định tức là sắp xếp các chuỗi đầu vào theo một thứ tự hoán vị Giả thiết độ dài của chuỗi đầu vào là L Hình sau trình bày bộ ghép xen ngẫu nhiên với L = 8
Trang 2626
Hình 1.18 Bộ ghép xen giả ngẫu nhiên với độ dài chuỗi đầu vào L= 8
Bộ ghép xen giả ngẫu nhiên sử dụng tính ngẫu nhiên cố định và sắp xếp chuỗi đầu vào theo thứ tự hoán vị Như hình trên bộ ghép xen viết vào [01011011] và đọc ra [00011111]
d) Bộ ghép xen dịch vòng
Phép hoán vị p của bộ ghép xen dịch vòng được định nghĩa:
P(i)= (ai+ s)mod L
Yêu cầu a < L, a gần bằng L và s < L trong đó i là chỉ số, a là kích cỡ của bước
và s là phần bù (offset) Hình 2.13 trình bày bộ ghép xen dịch vòng với L = 8, a=3 và
s=0
Hình 1.19 Bộ ghép xen dịch vòng với L=8, a=3, s=0
Từ hình trên bộ ghép xen viết vào [01101001] và đọc ra [00011110] Việc tách bit lân cận là 3 hay 5 Bộ ghép xen này được đưa ra để hoán vị các chuỗi đầu vào có trọng
số 2 có các trọng số từ mã thấp thành các chuỗi đầu vào trọng số 2 có các trọng số từ
mã cao Tuy nhiên, bởi vì tính quy tắc vốn có của bộ ghép xen này, sẽ khó hoán vị các chuỗi đầu vào trọng số cao hơn có các trọng số từ mã thấp thành các chuỗi đầu vào khác có các trọng số từ mã cao
Chỉ số
Trang 2727
e) Bộ ghép xen chẵn lẻ
Bộ ghép xen chẵn lẻ là đặc trưng cho mã PCCC r = 1/2 Một mã PCCC r =1/2 được lấy bằng cách kết hơp 2 chuỗi ngõ ra của mã PCCC r = 1/3 thành một chuỗi ngõ
ra của mã PCCC r = 1/2 Tuy nhiên, bằng cách kết hợp 2 chuỗi đầu ra được mã hóa này, có thể một bit thông tin sẽ không có các bit mã hóa của nó (hoặc cả hai bit mã hóa kết hợp lại cho ra sửa sai cho cùng một bit tin) Cũng có thể một bit tin có một hay cả hai bít được mã hóa của nó Vì vậy, nếu một lỗi xẩy ra cho bit tin không được bảo vệ (không có một bit nào của nó được mã hóa của nó), thì chất lượng của bộ bộ giải mã
TC có thể bị giảm hay BER của nó có thể tăng
Bộ ghép xen chẵn lẻ có thể khắc phục được vẫn đề này bằng cách cho phép mỗi bit tin có một trong các bít được mã hóa của nó một cách chính xác Như kết quả của
bộ ghép xen này, khả năng sửa sai của mã được phân bố đồng nhất trên tất cả các bít tin Thực sự bộ ghép xen này giống như một cách cải tiến của kỹ thuật punture
Ví dụ bộ ghép xen chẵn lẻ sau:
Chuỗi tin x = c1 của L = 9 sau khi đi qua bộ mã hoá RSC1 thì cho ra chuỗi mã hóa
c2 Từ chuỗi c2, chỉ có các bit mã hoá ở vị trí lẻ được lưu trữ như trong bảng Chỉ số dưới là vị trí bit trong chuỗi bit