Tải bản đầy đủ (.pdf) (55 trang)

BÁO CÁO THỰC TẬP-TỔNG QUAN VỀ MÃ TURBO

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.33 MB, 55 trang )

MỤ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à E
b
/ N
0
với ma trận sinh G(13, 15). 48
KẾT LUẬN 53
2

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ị x
1
đến x
15
đƣợ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


3

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 x
1
đến x
18
đƣợ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 x
1
đến x
15
đƣợ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 c
3
đƣợ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


4

DANH MỤC TỪ VIẾT TẮT
AuC
Authentication Center
Trung tâm nhận thực
BER
Bit Error Rate
Tỷ lệ lỗi bit
CDMA

Code Division Multipe Access
Đa truy nhập phân chia theo mã
CN
Core Network
Mạng lõi
CRC
Cyclic Redundance Check
Kiểm tra các bit dƣ theo chu kỳ
CS
Circuit Switch
Chuyển mạch kênh
E
b
/N
0

Energy of a Bits/Noise
Năng lƣợng bít/ Mật độ công suất tạp
âm
EIR
Equipment Identity Register
Bộ nhận dạng thiết bị
GGSN
Gateway GPRS Support Node
cổng hỗ trợ dịch vụ GPRS
GMSC
Gateway MSC
Trung tâm chuyển mạch di động cổng
HCCC
Hybrid Concatenated Convolutional

Code
Mã chập kết nối hỗn hợp
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ế
MAP
Maximum A Posteriori
Thuật toán cực đại hậu nghiệm
ME
Mobile Equipment
Thiết bị di động
ML
Maxium Likelihood
Khả năng cực đại
MSC
Mobile Switching Center
Trung tâm chuyển mạch di động

PCCC
Parallel Concatenated Convolutional
Code
Mã chập kết nối song song
PDP
Packet Data Protocol
Giao thức số liệu gói
PS
Packet Switch
Chuyển mạch gói
RNC
Radio Network Controller
Bộ điều khiển mạng vô tuyến
RSC
Recursive Systematic Convolutional
Code
Mã chập hệ thống đệ quy
SCCC
Serial Concatenated Convolutional
Code
Mã chập kết nối nối tiếp
SGSN
Serving GPRS Support Node
Nút hỗ trợ dịch vụ GPRS
SISO
Soft Input Soft Output
Đầu vào mềm, đầu ra mềm
SLVA
Serial List Viterbi Algorithm
Thuật toán Viterbi liệt kê nối tiếp

SOVA
Soft Output Viterbi Algorithm
Thuật toán Viterbi đầu ra mềm
SRN
Signal to Noise Ratio
Tỷ số tín hiệu trên tạp âm
SRN
Signal to Noise Ratio
Tỷ số tín hiệu trên tạp âm
TC
Turbo code
Mã Turbo
TE
Terminal Equipment
Thiết bị đầu cuối
UE
User Equipment
Thiết bị thuê bao
5

UMTS
Universal Mobile Telecommunication
System
Hệ thống viễn thông di động toàn
cầu
USIM
UMTS Subcriber Identity Module
Module nhận dạng thuê bao UMTS
UTRAN
UMTS Terrestrial Radio Network

mạng truy nhập vô tuyến mặt đất
UMTS
VA
Viterbi Algorithm
Thuật toán Viterbi
VLR
Visitor Location Register
Thanh ghi định vị tạm trú
WCDMA
Wideband –CDMA
CDMA băng rộng


6

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
Mã kênh
Mã chuỗi có cấu trúc
Mã dạng sóng
Mã đối cực
Mã trực giao
Mã lƣới
Mã tín hiệu đa mức
Mã khối
Mã chập
Mã liên kết
7

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).
1.1.1. Mã khối
a) Cấu trúc mã khối
Mã khối là một bộ mã (n, k) nhận một bản tin đầu vào k ký hiệu và biến đổi thành
một chuỗi n ký hiệu tại đầu ra đƣợc gọi là từ mã. Đặc trƣng quan trọng nhất của bộ mã
khối là từ mã đầu ra chỉ phụ thuộc vào bản tin đầu vào hiện hành mà không phụ thuộc
vào các bản tin trƣớc đó. Do đó, mã khối là một bộ mã không nhớ. Nếu bản tin đầu
vào và từ mã đầu ra là các ký hiệu nhị phân thì bộ mã khối đƣợc gọi là bộ mã khối nhị
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 2
k
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
8

dài n là g
0
, g
1
, , 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
= (c
0
, c
1
, , c
k-1
) có thể biểu diễn là:

v
= c
0
.g
0
+ c
1
.g
1
+ + 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à:
v = c.G = c

0
.g
0
+ c
1
.g
1
+ + c
k-1
.g
k-1
.
Ví dụ 1.1: Cho mã khối tuyến tính (6, 3) với ma trận sinh là:























100011
010101
001110
2
1
0
g
g
g
G
(1. 1)
Bản tin c = ( 1 0 1 ) đƣợc mã nhƣ sau :
v = c. G = 1 . (011100) + 0 . (101010) + 1 . (110001)
= (011100) + (000000) + (110001) = (101101).
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.
Các bản tin
(c
0
, c
1
, c
2
)
Các từ mã

(v
0
, v
1
, v
2
, v
3
, v
4
,
v
5
)
9

(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:
 
  


  

  

m· Tõ
tin nB¶
tra kiÓmChuçi
tin nB¶
110110110
,,,,,,,,,,


kknk
cccvvvccc

Ma trận sinh của mã khối hệ thống tuyến tính có dạng: G = [P I
k
].
Trong đó, P là ma trận k  (n-k) và I
k

là ma trận đơn vị k  k.
Từ ví dụ 1.1 trên ta có:

kk
IP
g
g
g
























100011
010101
001110
3
1
0
G
(1. 2)
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.
10

Khoảng cách Hamming giữa hai từ mã v và u đƣợc ký hiệu là d
v,u
, với v  u, n 
d
v,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à d
min
, đƣợ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.
1.1.2. Mã chập
a) Giới thiệu mã chập
Mã chập là một loại mã sửa lỗi trong đó mỗi ký hiệu k bit (chuỗi k bit) đƣợc mã
hóa thành một ký hiệu n bit (n ≥ k). Mỗi lần đầu vào dịch k bit sẽ cho n bit đầu ra. Tốc
độ mã hóa là r = k/n.
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
11

Tại mỗi thời điểm, đầu ra không chỉ phụ thuộc k bit lối vào mà còn phụ thuộc vào
k(N - 1) bit trƣớc đó trong bộ đệm. Số trạng thái trong bộ đệm là 2
k(N-1)
.
N đƣợc gọi là độ dài ràng buộc của mã chập. Bộ tạo mã chập hữu hạn trạng thái
gồm M tầng thanh ghi có các đƣờng cố định trƣớc với n bộ cộng modul 2 và bộ hợp
kênh các lối ra của bộ cộng modul 2 này .

Khi đó 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
L
r
, khi L >> N
Độ dài ràng buộc là số dịch mà qua đó một bit đơn (một nhóm bit) có thể ảnh
hƣởng lên đầu ra. Trƣờng hợp dịch 1 bit, thanh ghi dịch có M tầng nên N = M + 1 là
độ dài ràng buộc.
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)
g
1
(i)
, g
2
(i)
,… g

M
(i)
. Ở đó thành phần của nhánh thứ i của dãy g
j
(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) = g
0
(i)
+ g
1
(i)
D + g
2
(i)
D
2
+… + g
N
(i)
D
N
(1.4)
Trong đó: D là phần tử trễ.
Bộ mã hoá đầy đủ thể hiện đa thức sinh G nhƣ sau :
12




















)(

)(
)(
2
1
D
D
D
G
g
g

g
n
(1.5)
Hình 1.3 có 2 nhánh: nhánh 1 có đa thức sinh là (1, 0, 1, 1), nhánh 2 là (1, 1, 0 , 1).
Do đó ta có đa thức sinh là :







1 0 1 1
1 1 0 1
G

Tƣơng ứng ta có g
(1)
= 1 + D
2
+ D
3
và g
(2)
= 1 + D + D
3
.
Với bản tin lối vào là (1 0 0 1 1) thì biểu diễn đa thức bản tin lối vào là :
M(D) = 1 + D
3

+ D
4

Tƣơng tự nhƣ biến đổi fourier, phép nhân tích chập trong miền thời gian tƣơng tự
nhƣ phép nhân trong miền D. Do đó lối ra của đa thức nhánh 1 là:
c
(1)
(D) = g
(1)
(D)M(D) = (1 + D
2
+ D
3
)(1 + D
3
+ D
4
) = 1 + D
2
+ D
4
+ D
5
+ D
7

Do đó, lối ra 1 là 10101101.
Tƣơng tự, lối ra 2 sẽ là:
c
(2)

(D) = g
(2)
(D)M(D) = (1 + D + D
3
)(1 + D
3
+ D
4
) = 1 + D + D
5
+ D
6
+ D
7

Hay lối ra 2 là 11000111.
Cuối cùng hợp kênh 2 lối ra này ta có dãy mã lối ra là :
c = (11, 01, 10, 00, 10, 11, 01, 11).
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
13

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).

Hình 1.4. Mã chập (2,1,3)
 Sơ đồ hình cây

Từ ví dụ hình 1.4, giả thiết trạng thái ban đầu của các thanh ghi dịch trong bộ mã
đều là trạng thái “toàn 0”. Nếu bit vào đầu tiên là bit “0” thì đầu ra ta nhận đƣợc chuỗi
“00”, còn nếu bit vào đầu tiên là bit “1” thì đầu ra ta nhận đƣợc chuỗi “11”. Nếu bit
vào đầu tiên là bit “1” và bit vào tiếp theo là bit “0” thì chuỗi thứ nhất là “11” và
chuỗi thứ hai là chuỗi “10”. Với cách mã hoá nhƣ vậy, ta có thể biểu diễn mã chập
theo sơ đồ có dạng hình cây (xem hình 1.5). Với hƣớng lên là hƣớng của bit 0 đi vào
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.
14

00
10
0
1
00
10
01
11
00
10
01
11
00
10
01
11
00
00
11

00
11
00
10
01
10
01
11
11
00
01
10

Hình 1.5. Sơ đồ hình cây của bộ mã (2,1,3)
 Sơ đồ hình lƣới
Do đặc tính của bộ mã chập, cấu trúc vòng lặp đƣợc thực hiện nhƣ sau: chuỗi n bit
đầu ra phụ thuộc vào chuỗi k bit đầu vào hiện hành và (N-1) chuỗi đầu vào trƣớc đó
hay (N-1) × k bit đầu vào trƣớc đó. Từ ví dụ hình 2.4 ta có chuỗi 2 bit đầu ra phụ
thuộc vào 1 bit đầu vào là “1” hoặc “0” và 4 trạng thái có thể có của hai thanh ghi dịch,
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”.
15

T=1

T=0
State
00
State
01
State
10
State
11
00
11
T=2
11
00
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
Current State
Input = 0
Input = 1
00
00/00
10/11
01
00/11
10/00

10
01/10
11/01
11
01/01
11/10
Bảng 1.3 Bảng trạng thái của bộ mã 00, 01, 10, 11
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)
16

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á: R
nt
=k
1
k
2
/n
1
n
2
.
Đối với mã song song, tốc độ mã hoá là: R
ss
=k/(n
1
+n
2
).

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.
Bộ mã hoá 1
r = k
1
/n
1

Bộ mã hoá 2
r = k

2
/n
2

Ngõ vào

Ngõ ra
17

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.
18

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.
Sơ đồ nhƣ hình 1.12.

Hình 1.12. Bộ mã tích chập đệ quy
Mã tích chập không đệ quy có từ mã ở đầu ra của bộ mã không đƣợc đƣa hồi tiếp
trở lại đầu vào. Sơ đồ nhƣ hình 1.11.
1.3.3. Bộ mã tích chập hệ thống đệ quy
Để mô tả bộ mã hóa mã chập ngƣời ta đƣa ra các thông số của bộ mã hóa nhƣ sau:
(n, k, N) trong đó:
k : số đầu vào
19

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 g
1
= [1 1 1] và
g

2
= [ 1 0 1] và có thể đƣợc viết là G = [ g
1
,g
2
]. 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, g
2
/g
1
] trong đó ngõ ra đầu tiên
(biểu diễn bởi g
1
) đƣợc hồi tiếp về ngõ vào, c
1
là ngõ ra hệ thống, c
2
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

c
2
c
1
+
D
g
1
g2
20

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á RSC
i
đƣợ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 .
21


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
c
3
Bộ mã hoá
RSC
1
Bộ mã hoá
RSC
2
Bộ ghép
x
c
2
c
1

22

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 c

1
và chuỗi chập đệ quy c
2
, 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 c
3
.
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 c
1
vẫn giữ nguyên và các chuỗi c
2
và c
3

sẽ đƣợc lấy xen kẽ. Chuỗi c
2
sẽ lấy các bit lẻ và chuỗi c
3
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
23

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 c
2
. Để 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 c
3
. 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 x
i
cho ra các chuỗi ngõ ra c
1i
và c
2i
tƣơng ứng. Các
chuỗi đầu vào x
1
và x
2
là các chuỗi hoán vị khác nhau của x
0
. 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ã.
c
2
Mã trọng số thấp
Mã trọng số cao
Mã hệ thống
Bộ mã hoá RSC 1
Bộ mã hoá RSC 2
Bộ ghép xen
x
c
1
c3
24



Chuỗi ngõ vào
x
i
Chuỗi ngõ ra
C
1i

Chuỗi ngõ ra
C
2i
Trọng số của từ mã
i
i = 0
1100
1100
1000
3
i = 1
1010
1010
1100
4
i = 2
1001
1001
1110
5
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
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:

x
1

x
7

x
13

x
2

x
8

x
14

x
3


x
9

x
15

x
4

x
10

x
16

25

x
5

x
11

x
17

x
6


x
12

x
18

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 (x
1,
x
2
, x
3
, ……… x
17
, x
18
) dùng ma trận bộ ghép xen 6

3 ở trên
thì chuỗi ra là:
x
1
x
7
x

13
x
2
x
8
x
14


x
12
x
18
Bảng 1.8. Chuỗi dữ liệu x1 đến x18 viết ra theo hàng
b) Bộ ghép xen helical
Tƣơng tự bộ ghép xen ma trận (hàng cột ), bộ ghép xen helical cũng ghi vào theo
hàng (hoặc cột) nhƣng lại đọc ra theo đƣờng chéo.
Ví dụ : Các giá trị đọc vào nhƣ bảng sau:
x
1

X
6

x
11

x
2


X
7

x
12

x
3

X
8

x
13

x
4

X
9

x
14

x
5

X
10


x
15

Bảng 1.9. Chuỗi dữ liệu x
1
đến x
15
được đọc vào theo cột
Các giá trị đọc ra là:
X
5

X
9

X
13

X
3

X
7

X
11

X
1


X
10

X
14


X
15

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.

×