Tải bản đầy đủ (.docx) (28 trang)

mã hóa mạng không dây,ma hoa khong day ,wireless coding channel

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 (419.51 KB, 28 trang )

1. Mã khối tuyến tính phổ biến
Bây giờ chúng ta mô tả một số các mã khối tuyến tính phổ biến.Các loại phổ biến nhất
của mã khối là một mã Hamming,diễn tả theo 1 hàm số nguyên
Mã Hamming,

n = 2m − 1



k = 2m − m − 1

vì vậy

n−k = m

trong n=

.Đối với một (n, k)

bit dư thừa được đưa bởi các

mã.Khoảng cách tối thiểu của tất cả các mã Hamming là
2m − 1

m≥2

d min = 3

, cho nên t = 1 lỗi

ký tự từ mã có thể được sửa chữa.Mặc dù mã Hamming không phải là rất



lớn.Chúng là các mã hoàn hảo, và do đó có xác suất lỗi được đưa ra một cách chính xác
ở công thức (8,34).
Mã Golay và mã Golay mở rộng là một lớp khác của các mã hóa kênh với hiệu suất
tốt.Mã Golay là một mã tuyến tính (23,12) mã với

d min = 7

và t = 3.Mã Golay mở rộng

thu được bằng cách thêm một bit chẵn lẻ duy nhất vào mã Golay.Kết quả trong một mã
khối (24,12) với

d min = 8

và t = 3.Các bit lẻ thêm vào không làm thay đổi khả năng sửa
chẵn

lỗi bởi vì t vẫn như cũ.Nhưng nó thực hiện rất đơn giản bởi vì tỷ lệ bit thông tin là một
nửa tỷ lệ bit được mã hóa.Như vậy, cả hai dòng bit không được mã hóa và bit được mã
hóa có thể được tạo ra bởi cùng một đồng hồ sử dụng mỗi mẫu đồng hồ khác để tạo ra
các bit không được mã hóa .Các mã này có cao hơn

d min

và do vậy khả năng hiệu chỉnh

lỗi tốt hơn so với mã Hamming.Nhưng giải mã phức tạp hơn và tỷ lệ mã thấp hơn
Rc = k / n


.Các tỷ lệ mã thấp hơn có nghĩa là các mã có thể có một tốc độ dữ liệu thấp hơn

hoặc đòi hỏi thêm băng thông.
Một lớp khác của mã khối là mã Bose-Chadhuri-Hocquenghem (BCH là một lớp các mã
sửa lỗi vòng xây dựng bằng trường hữu hạn).Các mã này là mã cyclic và với tốc độ cao


thường tốt hơn tất cả các mã khối khác với cùng một n và k tại giá trị của SNR từ trung
bình đến cao.Lớp mã này cung cấp một lựa chọn lớn của độ dài khối, tỷ lệ mã, và khả
năng hiệu chỉnh lỗi.Đặc biệt, các mã BCH phổ biến nhất có

n = 2m − 1

cho bất kỳ số

nguyên m ≥3.
Pb cho một số mã BCH dưới giải mã quyết định cứng và điều chế BPSK kết hợp được
thể hiện trong hình 8.4. Hình vẽ được dựa trên công thức (8.40) trong đó, điều chế
BPSK kết hợp, chúng ta có

m≥2

 2 Ec
p = Q 
 N0


÷
÷= Q



(

2 Rcγ b

)
(8.48)

Trong hình vẽ này các mã BCH (127,36) thực sự có được độ lợi mã hóa âm ở mức
SNR thấp


Hình 8.4: Pb cho mã BCH khác nhau.
22 Mã khối không tuyến tính phổ biến:mã Reed Solomon
Một mã khối không nhị phân có tính chất tương tự như các mã nhị phân.Nó có K bit
thông tin ánh xạ vào các từ mã có chiều dài N.Tuy nhiên N ký tự từ mã của mỗi từ mã
được lựa chọn từ một bảng chữ cái nonbinary kích thước q > 2.Như vậy, các biểu tượng
từ mã có thể lấy bất kỳ giá trị trong

{0,1....., q − 1}

.Thường

q = 2k

để bit k thông tin có thể

được ánh xạ vào một ký tự từ mã.
Các mã khối không nhị phân phổ biến nhất là Reed Solomon(RS) được sử dụng trong
một loạt các ứng dụng từ ghi từ tính đến Cellular Digital Packet Data (CDPD).



Mã RS có

N = q − 1 = 2k − 1

và K =1 ,2,...,N−1.Giá trị của K là điều kiện khả năng sửa lỗi

của mã.Đặc biệt, một mã RS có thể sửa chữa lên đến

t = 0.5( N − K )

lỗi ký tự từ mã.Trong

các mã không nhị phân khoảng cách tối thiểu giữa các từ mã là định nghĩa như số lượng
các ký tự từ mã trong đó các từ mã là khác nhau.Mã RS đạt được một khoảng cách tối
thiểu

d min = N − k + 1

đó là khoảng cách tối thiểu có thể lớn nhất giữa từ mã cho bất kỳ

mã tuyến tính với cùng một đầu vào bộ mã hóa và các độ dài khối ngõ ra.
Bởi vì mã không nhị phân và mã RS trong tường hợp đặc biệt tạo ra các ký tự tương ứng
với
với

2k
2k


bit.Đôi khi chúng được sử dụng cho M-ary kỹ thuật điều chế cho M=

2k

.Đặc biệt

-ary điều chế ký tự từ mã được truyền qua các kênh như là một trong những

2k

điểm chòm sao có thể.Nếu xác suất lỗi liên quan đến việc điều chế( xác suất nhầm lẫn
các điểm chòm sao nhận được cho một điểm chòm sao khác hơn điểm truyền) là

PM

.Khi

đó xác suất của lỗi ký tự liên quan với mã không nhị phân bị chặn trên bởi:

Ps ≤

N

N

j =t +1

 

∑  j ÷P


j
M

(1 − PM ) N − j
(8.49)

Tương tự như các hình thức cho các mã nhị phân (8,34). Xác suất lỗi bit là

2k −1
Pb = k Ps
2 −1

(8.50)

8.3 Mã Xoắn
Một mã xoắn tạo ra các ký tự mã hóa bằng cách đưa các bit thông tin thông qua một
thanh ghi dịch trạng tuyến tính có hữu hạn trạng thái .Như thể hiện trong hình 8.5.Các
thanh ghi dịch bao gồm các K giai đoạn với k bit trên mỗi giai đoạn.Có n số nhị phân


thêm vào các toán tử với đầu vào lấy từ tất cả các K giai đoạn:các toán tử tạo ra một từ
mã có độ dài n cho mỗi chuỗi đầu vào k bit.Đặc biệt, dữ liệu đầu vào nhị phân được
chuyển vào từng giai đoạn của thanh ghi dịch k bit tại một thời điểm và mỗi lần dịch tạo
ra một chuỗi mã có độ dài n.Tỷ lệ mã là

Rc = k / n

.Số lượng K giai đoạn thanh ghi dịch


được gọi là độ dài ràng buộc của mã.Rõ ràng từ hình 8.5 rằng một từ có chiều dài n phụ
thuộc vào

kK

bit đầu vào.Trái ngược với một mã khối cái mà chỉ phụ thuộc vào k bit đầu

vào.Mã xoắn được cho là có bộ nhớ bởi vì từ mã hiện tại phụ thuộc vào nhiều bit đầu
vào(

kK

) hơn số đầu vào cho các bộ mã hóa để tạo ra nó(k).

Hình 8.5 Bộ mã hóa mã xoắn
8.3.1 Mã đặc tính :Sơ đồ Trellis
Khi một từ mã có chiều dài n được tạo ra bởi một bộ mã hóa xoắn.Từ mã này phụ thuộc
cả vào k bit đầu vào cho giai đoạn đầu tiên của thanh ghi dịch cũng như trạng thái của
bộ mã hóa,định nghĩa là các nội dung trong K -1 giai đoạn khác của thanh ghi dịch.Để
mô tả một mã xoắn chúng ta phải mô tả các từ mã phụ thuộc cả vào các bit k đầu vào và


trạng thái mã hóa,trong đó có

2k −1

giá trị có thể có.Có nhiều cách để mô tả mã xoắn,

bao gồm một sơ đồ cây, sơ đồ trạng thái và sơ đồ Trellis.
Các sơ đồ cây đại diện cho các bộ mã hóa dưới dạng một cây nơi mà mỗi nhánh đại diện

cho một trạng thái mã hóa khác nhau và đầu ra bộ mã hóa tương ứng.Một sơ đồ trạng
thái là một biểu đồ cho thấy các trạng thái khác nhau của bộ mã hóa và chuyển trạng
thái có thể và tương ứng với kết quả đầu ra bộ mã hóa.Một sơ đồ trellis sử dụng thực tế
là các đại diện cây tự lặp lại khi mà số lượng các trạng thái trong cây vượt quá độ dài
hạn chế của mã.Các sơ đồ trellis đơn giản đại diện cây bằng cách kết hợp các nút trong
cây tương ứng với trạng thái mã hóa tương tự. Trong phần này chúng tôi sẽ tập trung
vào biểu diễn đại diện trellis của một mã xoắn vì nó là đặc tính phổ biến nhất.Các chi
tiết của các đại diện sơ đồ trellis được mô tả bằng một ví dụ.
Hãy xem xét các bộ mã hóa xoắn thể hiện trong hình 8.6 với n =3 , k =1, và K =3.Trong
bộ mã hóa này, một bit tại một thời điểm được chuyển vào Giai đoạn 1 của 3 giai đoạn
của thanh ghi dịch.Tại một thời điểm t cho chúng ta biểu thị các bit trong giai đoạn
của thanh ghi dịch như
mã có độ dài 3,

C1C2C3

Si

i

.3 giai đoạn của thanh ghi dịch được sử dụng để tạo ra một từ

,từ hình vẽ chúng ta thấy rằng

C1 = S1 + S 2 C2 = S1 + S2 + S3

,




C3 = S 3

.Một chuỗi U bit chuyển thành các bộ mã hóa tạo ra một chuỗi các ký tự mã hóa,mà
chúng biểu thị bởi C.Lưu ý rằng những biểu tượng được mã hóa tương ứng với

C3

chỉ là

các bit thông tin gốc.Như với các mã khối, khi một trong những ký tự được mã hóa
trong một mã cập tương ứng với các bit thông tin ban đầu,chúng ta nói rằng mã có hệ
thống.Chúng tôi xác định trạng thái mã hóa như
cuối cùng của bộ mã hóa, và có

22 = 4

S = S 2 S3

.Các nội dung của hai giai đoạn

giá trị có thể cho trạng thái mã hóa này.Để mô tả

các bộ mã hóa, chúng ta phải hiển thị cho mỗi bit đầu vào và mỗi trạng thái có thể mã


hóa những cái mà đầu ra bộ mã hóa sẽ được,và làm thế nào các bit đầu vào mới thay đổi
trạng thái mã hóa cho các bit đầu vào tiếp theo.

Hình 8.6: Ví dụ mã hóa xoắn (n = 3, k = 1, K = 3).
Sơ đồ trellis cho mã này được thể hiện trong hình 8.7. Những đường liền trong Hình 8.7

chỉ chuyển đổi trạng thái mã hóa khi một bit 0 là đầu vào cho giai đoạn 1 của bộ mã hóa
và các đường đứt nét cho thấy sự chuyển đổi trạng thái tương ứng với một 1 bit đầu
vào.Ví dụ, bắt đầu từ trạng thái S = 00, nếu một bit 0 là đầu vào cho giai đoạn 1 sau đó,
khi quá trình chuyển đổi thanh ghi dịch, trạng thái mới sẽ vẫn giữ là S = 00(bởi vì 1
trong 1 giai đoạn chuyển đến Stage 2 và 0 trong Giai đoạn 2 chuyển đến Stage 3 ,dẫn
đến trạng thái mới

S = S2 S3 = 10

).Các đầu ra bộ mã hóa tương ứng với một trạng thái mã

hóa S và đầu vào S1 được viết tiếp vào các đường chuyển tiếp trong hình 8.7.Đầu ra này
là đầu ra bộ mã hóa là kết quả từ các hoạt động mã hóa bổ sung trên các bit

S1 , S 2



S3

trong từng giai đoạn của bộ mã hóa. Ví dụ, nếu S = 00 và S1 = 1 thì đầu ra bộ mã hóa
C1C2C3



C1 = S1 + S2 = 1, C2 = S1 + S2 + S3 = 1



C 3 = S3 = 0


.Ngõ ra 110 được vẽ bên cạnh nét

đứt việc chuyển đổi từ trạng thái S = 00 đến trạng thái S = 10 trong hình 8.7.Lưu ý rằng
đầu ra bộ mã hóa cho S1 = 0 và S = 00 luôn là tất cả từ mã không.không phụ thuộc vào


các phép cộng cái mà hình thành từ mã

C1C2C3

.Bởi vì tổng hợp lại với nhau bất cứ số 0

luôn bằng 0.Các phần của Trellis giữa thời gian

ti = ti +1

được gọi là nhánh thứ i của

trellis.Hình 8.7 chỉ ra rằng trạng thái ban đầu vào thời điểm

t0

là tất cả trạng thái là

0.Trellis đạt được trạng thái ổn định,được định nghĩa là điểm mà tất cả các trạng thái có
thể được nhập từ một trong hai trạng thái trước ,ở thời gian

t3


Sau khi trạng thái ổn định

này đạt được,trellis tự lặp lại trong mỗi khoảng thời gian. Cũng lưu ý rằng trong trạng
thái ổn định mỗi lần chuyển đổi trạng thái cho một trong hai trạng thái mới có thể.Trong
cấu trúc Trellis nói chung bắt đầu từ trạng thái tất cả là 0 lúc
định vào thời điểm

tk

.

Hình 8.7: Sơ đồ Trellis

t0

đạt được trạng thái ổn


Đối với giá trị tổng quát của k và K sơ đồ trellis sẽ có


2k

con đường vào mỗi nút và có

2k

2 K −1

trạng thái,mỗi trạng thái đều


con đường rời khỏi mỗi nút.Như vậy, số lượng

các đường dẫn thông qua trellis tăng theo hàm mũ với

k, K

và chiều dài của các đường

dẫn Trellis.
Ví dụ 8,7: Xem xét các mã xoắn đại diện bởi trellis trong hình 8.7.Đối với một trạng
thái ban đầu

S = S2 S3 = 01

tìm chuỗi trạng thái ban đầu

S

C

ngõ ra bộ mã hóa

cho chuỗi

bit đầu vào U=011.
Giải: Sự xuất hiện đầu tiên của
thời điểm
S = 01


t2

rằng nếu bit thông tin

tại thời điểm

qua trellis là

S = 01

t2

C = 011

để

S = 00

trong trellis ở thời điểm

S1 = 0

tại thời điểm

t3

và ngõ ra tương ứng với con đường này

t3


.Bây giờ ở tại thời điểm bắt đầu ở

tương ứng với con đường này qua trellis là
cho bit thông tin

S1 = 1

.Chúng ta nhìn thấy ở

chúng ta theo đường liền mạch trong trellis từ

chúng ta đi theo các đường nét đứt trong trellis đến

S = 10

t2

C = 111

S = 10

S = 00

cho bit thông tin

ở tại thời điểm

,cuối cùng, tại thời điểm

chúng ta đi theo nét đứt trong trellis đến


t5

điểm ,và đầu ra tương ứng với con đường này qua trellis là
8.3.2 Giải mã Maximum Likelihood

t4

C = 101

.

S1 = 1

.Và ngõ ra

t4

S = 11

bắt đầu ở
ở tại thời


Các mã xoắn được tạo ra bởi sự thay đổi hữu thanh ghi dịch là một máy trạng thái hữu
hạn cơ bản.Vì vậy, không giống như một mã khối (n, k).nơi mà maximum likelihood đòi
hỏi tìm kiếm từ mã có chiều dài cái mà gần nhất để nhận được độ dài n từ mã,maximum
likelihood phát hiện một mã xoắn đòi hỏi phải tìm kiếm các chuỗi có khả năng nhất của
các ký tự được mã hóa C cho tín hiệu thu được của chuỗi các ký tự được mã hóa,cái mà
chúng ta biểu thị bởi R, Đặc biệt, đối với một chuỗi nhận R, các bộ giải mã quyết định

rằng chuỗi các ký tự được mã hóa C * được truyền qua nếu:


p( R C ) ≥ p ( R C )∀C
(8.51)
Bởi vì mỗi chuỗi C có thể tương ứng với một con đường thông qua các sơ đồ trellis của
mã.Giải mã maximum likelihood tương ứng với việc tìm kiếm con đường tối ưu nhất
thông qua các sơ đồ trellis.Đối với một kênh AWGN, tiếng ồn ảnh hưởng đến mỗi ký tự
được mã hóa một cách độc lập.Như vậy, đối với một mã xoắn của tỉ lệ 1 / n, chúng ta có
thể thể hiện likelihood(8.51) như :




n

p( R C ) = ∏ p ( Ri Ci ) = ∏∏ p ( Rij Cij )a
i =0

ở đây

Ci

i = 0 j =1

(8.52)

là một phần của chuỗi mã C tương ứng với các nhánh thứ i của trellis,

phần nhận được chuỗi mã R tương ứng với các nhánh thứ i của trellis ,

được mã hóa tương ứng với

Cj



Rij

Cij

Ri



là ký tự thứ j

là ký tự nhận được mã hóa thứ j tương ứng với

Ri

p( R C )

.Các hàm log likelihood được định nghĩa là log của


được đưa ra là :s


n


(

log p ( R C ) = ∑ log p ( Ri Ci ) = ∑∑ log p Rij Cij
i =0

i = 0 j =1

)
(8.53)


Biểu thức:

(

n

Bi = ∑ log p Rij Cij
j =1

)
(8.54)

các bộ giải mã có thể sử dụng một trong quyết định giải mã cứng hoặc quyết định giải

(

log p Rij Cij

mã mềm cho các biểu thức


)

.Cho hard decision decoding,các

Rij

được giải

mã là 1 hoặc 0.Xác suất lỗi quyết định giải mã cứng phụ thuộc vào điều chế và được ký
hiệu là

p

.

Nếu R và C là L những bit dài và khác nhau trong d (nghĩa là khoảng cách Hamming
của chúng là d), khi đó ta có

p ( R C ) = p d (1 − p) L −d

log p ( R C ) = −d log

1− p
+ L log(1 − p)
p

(8.55)

Bời vì p<0.5 (8.55) là nhỏ nhất khi d là nhỏ nhất Vì vậy, các mã chuỗi C với khoảng

cách Hamming tối thiểu để các chuỗi nhận R tương ứng với chuỗi maximum
likelihood ,
Trong quyết định giải mã mềm các giá trị của những ký tự được nhận

Rij

được sử dụng

trực tiếp trong các bộ giải mã chứ không phải là lượng tử hóa chúng để 1 hoặc 0.


Ví dụ, nếu

Cij

được gửi qua BPSK trên một kênh AWGN khi đó:

Rij = Ec (2Cij − 1) + nij

ở đây

Ec = kEb / n

và phương sai

là năng lượng cho mỗi ký tự mã hóa và

σ 2 = 0.5N 0

(8.56)

nij

biểu thị nhiễu Gaussian zero

do đó:
 ( Rij − Ec (2Cij − 1)) 2 
1
p Rij Cij =
exp −

2σ 2
2πσ



(

)

(8.57)

Hàm của Maximizing likelihood này là tương đương với việc lựa chọn
trong khoảng cách Euclide đến

Rij

Cij

cái gần nhất


.Trong việc xác định chuỗi C tối đa hóa chức năng

log likelihood.Tương tự như vậy, chúng ta có thể mở rộng tất cả các điều khoản trong
(8.53) mà không thay đổi trình tự tối đa hóa,Như vậy, bằng cách bỏ qua các yếu tố mở
rộng quy mô và các điều kiện trong (8.57) là chung cho bất kỳ

thế



n
j −1

Cij

,chúng ta có thể thay

log p ( Rij Cij )

với các nhánh số liệu tương đương
n

µi = ∑ Rij (2Cij − 1)
j =1

Và có được ngõ ra tương tự như maximum likelihood output.

(8.58)



Bây giờ chúng ta minh họa việc tính toán số liệu dưới cả hai quyết định cứng và mềm
cho mã xoắn của hình 8.6 với sơ đồ trellis trong Hình 8.7.Để đơn giản, chúng ta sẽ chỉ
xem xét hai con đường có thể thông qua các trellis, và tính toán các khả năng tương ứng
của chugn1 đối với một chuỗi nhận được R.Giả sử chúng ta bắt đầu vào thời điểm

t0

trong trạng thái hoàn toàn không.Con đường đầu tiên chúng ta xem xét là con đường tất
cả là zero,tương ứng với chuỗi đầu vào tất cả các số không,Con đường thứ hai, chúng ta
xem xét bắt đầu trong trạng thái S = 00 vào thời điểm

t0

và chuyển tiếp đến trạng thái S

t1

= 10 vào thời điểm sau đó đến trạng thái S = 01 tại thời điểm
thái S = 00 tại thời điểm

t3

t2

, và kết thúc đến trạng

.tại thời điểm đó đường này kết hợp với đường dẫn tất cả

các số không.Bởi vì các con đường và do đó số liệu nhánh của chúng tại thời điểm



t ≥ t3

t < t0

là tương tự.Con đường the maximum likelihood tương ứng với con đường tổng

hợp có số liệu nhánh qua các nhánh, trong đó hai con đường khác nhau là nhỏ hơn,Từ
hình 8.7, chúng ta thấy rằng con đường tất cả các số không qua trellis tạo ra chuỗi mã
hóa

C0 = 000000000

trình tự mã hóa

trong ba nhánh đầu tiên trong trellis,Con đường thứ hai tạo ra các

C1 = 110110011

trong ba nhánh đầu tiên trong trellis.

Hãy để chúng tôi đầu tiên xem xét quyết định cứng giải mã với xác suất lỗi p.Giả sử
chuỗi nhận được hơn ba nhánh là
R và

C0

R = 100110111

,Lưu ý rằng khoảng cách Hamming giữa


là 6 trong khi khoảng cách Hamming giữa R và

C1

là 2,Như đã thảo luận ở trên,


con đường có khả năng nhất do đó tương ứng với

C1

vì nó có khoảng cách Hamming tối

thiểu đến R. Các số liệu đường dẫn cho các con đường tất cả zero là :
2

(

3

)

M 0 = ∑∑ log P Rij Cij = 6log p + 3log(1 − p)
i = 0 j =1

(8.59)

trong khi các số liệu đường dẫn cho các con đường khác là:
2


(

3

)

M 0 = ∑∑ log P Rij Cij = 2log p + 7log(1 − p)
i =0 j =1

Assuming p <<1, ta có

M 0 ≈ 6log p

(8.60)


M 1 ≈ 2log p

Bây giờ chúng ta xem xét giải mã quyết định mềm theo thời gian

t0

t3

đến . Giả sử tín

hiệu thu được (trước khi giải điều chế) trong ba nhánh:
cho


Ec = 1

là Z =( .8,−.35,−.15,1.35,1.22,−.62,.87,1.08,.91) Các số liệu đường dẫn cho

các con đường tất cả không là:
2

2

3

2

3

M 0 = ∑ µi = ∑∑ Rij (2Cij − 1) = ∑∑ − Rij = −5.11
i =0

i = 0 j =1

i = 0 j =1

Các số liệu đường dẫn cho các con đường thứ hai là
2

3

M 1 = ∑∑ Rij (2Cij − 1) = 4.91
i = 0 j =1


Do đó, con đường thứ hai có con số con đường cao hơn lần đầu tiên. Để xác định xem
con đường thứ hai là con đường có khả năng tối đa, chúng ta phải so sánh số liệu đường
dẫn của nó với tất cả các đường dẫn khác thông qua lưới. Sự khác biệt với khả năng giải
mã tối đa là sự phức tạp của tính toán hàm log likelihood (8.53) tăng lên theo hàm mũ
với bộ nhớ của mã, và tính toán này phải được thực hiện cho mọi đường dẫn có thể qua


vách ngăn. Thuật toán Viterbi, được thảo luận trong phần tiếp theo, làm giảm sự phức
tạp của giải mã có khả năng tối đa bằng cách tận dụng cấu trúc của phép tính số liệu
đường đi
8.3.3 Thuật toán Viterbi
Thuật toán Viterbi, phát hiện bởi Viterbi năm 1967 nhằm làm giảm sự phức tạp của giải
mã bằng cách loại bỏ các đường đi một cách có hệ thống nhờ vào việc so sánh lựa chọn
đường dẫn có chỉ số cao nhất. Tiền đề cơ bản là sự xem xét dữ liệu đường dẫn được liên
kết với tất cả các đường dẫn vào một nút cho trước (Nút N) trong lưới. Do các đường
dẫn có thể qua nút N giống nhau cho mỗi đường vào, đường dẫn của đường dẫn hoàn
chỉnh với chỉ số đường đi cao nhất đi qua Nút N phải trùng với con đường có chỉ số
đường dẫn có chỉ số cao nhất đến nút N. Điều này được minh họa trong hình 8.8, trong
đó Đường P1, Đường P2, và Đường P3 nhập Nút N, đường P1 có lượng dữ liệu nhiều
nhất. Đường dẫn hoàn chỉnh là đường có dữ liệu tốt nhất được in đậm lên, là một nhánh
của B(k) sau khi qua nút N.
Thuật toán Viterbi chiếm ưu thế của cấu trúc này bằng cách loại bỏ tất cả các đường dẫn
vào một nút nhất định, ngoại trừ đường dẫn có số liệu đường đi một phần lớn nhất đến
nút đó. Con đường không bị bỏ đi được gọi là con đường sống sót. Do đó, đối với ví dụ
của Hình 8.8, Đường 1 là người sống sót tại nút N và Đường 2 và 3 sẽ bị loại bỏ khi
xem xét thêm. Như vậy, ở mỗi giai đoạn trong lưới có 2 K−1 các đường dẫn còn sót lại,
một cho mỗi trạng thái mã hóa có thể. Một chi nhánh cho một giai đoạn nhất định của
lưới không thể được giải mã cho đến khi tất cả các đường dẫn còn sót lại ở giai đoạn
lưới tiếp theo chồng lên nhau với nhánh đó, như thể hiện trong hình 8.9. Con số này cho
thấy các đường dẫn sống sót vào thời điểm t k+3. Chúng ta thấy trong con số này rằng tất

cả những đường dẫn còn sót lại này có thể được bắt nguồn từ nhánh gốc thông thường
từ thời gian t k to tk+1. Tại thời điểm này, bộ giải mã có thể xuất ra từ mã Ci gắn với
nhánh của lưới. Lưu ý rằng không có sự chậm trễ giải mã cố định liên quan đến khoảng
bao xa trở lại trong lưới có một thân chung xảy ra cho một tập hợp các đường dẫn còn
sót lại, sự chậm trễ này phụ thuộc vào k, K và đặc tính mã cụ thể. Để tránh sự chậm trễ
trong việc giải mã ngẫu nhiên, thuật toán Viterbi thường được sửa đổi sao cho ở một
giai đoạn nhất định trong lưới, các nhánh n phần trở lại sẽ được quyết định dựa trên các
chỉ số đường đi một phần đến điểm đó. Mặc dù sự sửa đổi này không mang lại độ xác
suất chính xác tối đa, cho n đủ lớn (thường là n ≥ 5K) đó là một sự xấp xỉ tốt.


Maximum Likelihood Path

Survivor Path
P

(1)

B
P

k

(2)

N

B
P


n+2

(3)

B

n+1

Figure 8.8: Partial Path Metrics on Maximum Likelihood Path
Thuật toán Viterbi phải theo dõi 2k(K− 1) các đường dẫn sống sót và các chỉ số tương ứng
của chúng. Tại mỗi giai đoạn, 2k số liệu phải được tính cho mỗi nút để xác định đường
dẫn còn sót lại, tương ứng với 2k các đường dẫn đi vào mỗi nút. Do đó, số lượng tính
toán trong giải mã và các yêu cầu về bộ nhớ cho thuật toán gia tăng theo cấp số với k và
K. Điều này hàm ý rằng đối với các mã thực hiện thực tế, các mã xoắn được hạn chế với
các giá trị tương đối nhỏ của k và K.
8.3.4 Thuộc tính Khoảng cách
Cũng giống như các mã khối, khả năng hiệu chỉnh lỗi của mã xoắn phụ thuộc vào
khoảng cách giữa các chuỗi từ mã. Vì các mã xoắn là tuyến tính, khoảng cách tối thiểu
giữa tất cả các chuỗi mã có thể được tìm thấy bằng cách xác định khoảng cách tối thiểu


từ bất kỳ dãy nào hoặc tương đương với bất kỳ đường dẫn nào tới đường dẫn all-zero.
Rõ ràng đường dẫn của đường hầm với khoảng cách tối thiểu tới con đường không bằng
nhau sẽ phân rã và quay trở lại với con đường không hoàn toàn, sao cho hai đường dẫn
trùng với nhau, ngoại trừ một số nhánh. Để tìm đường đi từ xa tối thiểu này, chúng ta
phải xem xét tất cả các đường đi phân rã từ trạng thái không số không và sau đó lại với
trạng thái này. Ví dụ, trong hình 8.10, chúng ta vẽ tất cả các đường dẫn trong hình 8.7
giữa các lần t0 và t5 phân tách và sửa lại với trạng thái zero-zero. Lưu ý rằng Đường 2
giống như Đường 1, chỉ cần chuyển theo thời gian, và do đó không được coi là một con
đường riêng. Lưu ý rằng chúng ta có thể nhìn qua một khoảng thời gian dài hơn, nhưng

bất kỳ đường đi nào khác nhau và đi qua trong khoảng thời gian dài hơn này sẽ đi qua
cùng một nhánh (thay đổi theo thời gian) như là một trong những đường dẫn cộng thêm
một số nhánh bổ sung và do đó có các chỉ số đường đi lớn hơn . Cụ thể, chúng ta thấy
rằng Đường 4 đi qua cùng một nhánh như Đường 1, 00-10-01 và sau đó là 01-00, cộng
với các nhánh 01-10-01. Do đó chúng ta không cần phải cân nhắc khoảng thời gian dài
hơn để tìm đường đi từ xa tối thiểu. Đối với mỗi đường dẫn trong hình 8.7, chúng ta
đánh dấu khoảng cách Hamming của từ mã trên mỗi nhánh thành từ mã không zero
trong nhánh tương ứng của đường đi bằng 0. Bằng cách tổng hợp các khoảng cách
Hamming trên tất cả các nhánh của mỗi đường, chúng ta thấy Đường 1 có khoảng cách
Hamming là 6 và Đường 3 và 4 có khoảng cách Hamming là 8. Nhắc lại rằng các đường
kẻ đứt cho thấy các đầu vào 1 bit, trong khi các đường kẻ liền cho biết các đầu vào 0 bit,
chúng ta thấy rằng Path 1 tương ứng với một dãy bit đầu vào từ t 0 đến t5 của 10000,
đường dẫn 3 tương ứng với một chuỗi bit đầu vào là 11000, và đường dẫn 4 tương ứng
với một dãy bit đầu vào là 10100. Do đó, đường dẫn 1 kết quả trong một bit lỗi, liên
quan đến tất cả các chuỗi không, và đường 3 và 4 gây ra lỗi hai bit.
Chúng tôi xác định khoảng cách tối thiểu df ree của một mã xoắn, còn được gọi là khoảng
cách tự do, là
t

k

Common Stem

C

i

t

k+1


t

k+2

t

k+3


Figure 8.9: Common Stem for All Survivor Paths in the Trellis
khoảng cách Hamming tối thiểu của tất cả các đường dẫn qua mạng lưới trellis đến
đường đi bằng không, trong ví dụ này là 6. Khả năng hiệu chỉnh lỗi của mã thu được
bằng cách tương tự như đối với mã khối, với d phút được thay thế bởi df, mã có thể sửa
lỗi kênh t với =( d(f)-1 ) /2
8.3.5 Sơ đồ trạng thái và chức năng truyền
Chức năng truyền của một mã xoắn được sử dụng để mô tả các đường dẫn phân cách và
loại bỏ khỏi đường đi bằng không, và cũng được dùng để xác định giới hạn lỗi. Chức
năng truyền tải được lấy từ sơ đồ trạng thái của mã thể hiện các chuyển tiếp từ trạng thái
zero-zero đến trạng thái zero-zero. Biểu đồ trạng thái cho mã được minh hoạ trong hình
8.7 được biểu diễn trong hình 8.11 với tất cả các trạng thái zero = 00 chia thành nút thứ
hai e để tạo thuận lợi cho các đường dẫn bắt đầu và kết thúc trong trạng thái này. Sự
chuyển đổi giữa các trạng thái do một bit đầu vào 0 được biểu diễn bằng các đường kẻ
cố định, trong khi các chuyển tiếp do 1 bit đầu vào được biểu diễn bởi các đường nét
đứt. Các nhánh của sơ đồ trạng thái được dán nhãn là D0 = 1, D1, hoặc D2, trong đó số
mũ của D tương ứng với khoảng cách Hamming giữa từ mã, được hiển thị cho mỗi
chuyển đổi nhánh, và từ mã không zero trong tất cả -zero đường dẫn. Các vòng lặp tự
trong nút a có thể bỏ qua vì nó không đóng góp vào các thuộc tính khoảng cách của mã.
Biểu đồ trạng thái có thể được đại diện bởi các phương trình trạng thái cho mỗi nhóm.
Ví dụ về hình 8.7 chúng ta có được các phương trình trạng thái tương ứng với bốn trạng

thái:
Xc = D3Xa + DXb, Xb = DXc + DXd, Xd = D2Xc + D2Xd, Xe = D2Xb,

(8.61)

nơi Xa,. . . , Xe là các biến giả mô tả các đường dẫn từng phần. Chức năng chuyển mã,
mô tả đường đi từ trạng thái a đến trạng thái e, được định nghĩa là T (D) = Xe / Xa.
Bằng cách giải phương trình trạng thái cho mã,


mà có thể được thực hiện bằng cách sử dụng các kỹ thuật tiêu chuẩn như Mason của
công thức, chúng tôi có được một chức năng chuyển dạng

trong đó quảng cáo là số đường đi có khoảng cách Hamming d từ con đường all-zero.
Như đã nêu ở trên, khoảng cách Hamming tối thiểu đến con đườngall zero là df, và chức
năng truyền T (D) chỉ ra rằng có những đường ADF với khoảng cách tối thiểu này. Đối
với ví dụ của hình 8.7, chúng ta có thể giải quyết các phương trình trạng thái được đưa
ra trong 8.61 để có được chức năng chuyển giao

Chúng ta thấy từ chức năng truyền rằng có một đường đi với khoảng cách tối thiểu df =
6, và 2 đường đi với khoảng cách Hamming 8, phù hợp với hình 8.10. Chức năng
chuyển giao là một cách viết tắt thuận tiện để liệt kê số và khoảng cách Hamming tương
ứng của tất cả các đường dẫn trong một mã cụ thể phân tách và sau đó gom lại với
đường đi bằng không.


Trong khi chức năng truyền tải là đủ để nắm bắt được số lượng và khoảng cách
Hamming của các đường dẫn trong lưới đến tất cả các con đường không, chúng ta cần
một đặc tính chi tiết hơn để tính toán xác suất lỗi bit của mã xoắn. Do đó chúng tôi giới
thiệu hai tham số bổ sung vào chức năng truyền, N và J cho đặc tính bổ sung này. Yếu tố

N được giới thiệu trên tất cả các sự chuyển đổi nhánh liên quan đến 1 bit đầu vào (các
đường đứt trong hình 8.11). Hệ số J được giới thiệu cho mọi nhánh trong sơ đồ trạng
thái sao cho số mũ của hàm J tương ứng với số cành trong bất kỳ đường đi nào từ nút a
đến nút e. Biểu đồ trạng thái mở rộng tương ứng với lưới của Hình 8.7 được biểu diễn
trong hình 8.12.
Biểu đồ trạng thái mở rộng cũng được biểu diễn bởi các phương trình trạng thái. Ví dụ
về hình 8.12 được cho bởi:
Xc = J N D3Xa + J N DXb, Xb = J DXc + J DXd, Xd = J N D2Xc + J N D2Xd, Xe = J D2Xb,


Tương tự như định nghĩa chức năng chuyển tiếp trước đó, chức năng truyền liên
kết với trạng thái mở rộng này được định nghĩa là T (D, N, J) = Xe / Xa,

Yếu tố J quan trọng nhất khi chúng ta quan tâm đến việc truyền các chuỗi chiều
dài hữu hạn: đối với chuỗi độ dài vô hạn, chúng ta thường đặt J = 1 để có được
chức năng truyền cho trạng thái mở rộng
T (D, N ) = T (D, N, J = 1).
Chức năng chuyển đổi cho trạng thái mở rộng cho chúng ta biết thêm thông tin
về các đường dẫn phân tách và tái kết nối; cụ thể là đường đi từ xa tối thiểu với
khoảng cách Hamming 6 có chiều dài 3 và kết quả là lỗi bit đơn (số mũ của N là
một), một đường đi của khoảng cách Hamming 8 có chiều dài 4 và kết quả là lỗi
2 bit và đường kia khoảng cách Hamming 8 có chiều dài 5 và kết quả là lỗi 2 bit,
phù hợp với hình 8.10. Chức năng truyền mở rộng là một ký hiệu thuận tiện để
biểu diễn khoảng cách, chiều dài và số lỗi bit của Hamming tương ứng với mỗi
đường dẫn phân tách và chuyển đổi của một mã từ toàn bộ đường đi không.
Chúng ta sẽ thấy trong phần kế tiếp rằng biểu diễn thuận lợi này rất hữu ích
trong việc xác định đặc tính xác suất lỗi cho các mã xoắn.
8.3.6 Xác suất lỗi đối với mã xoắn

(8.66)



Vì các mã xoắn là các mã tuyến tính, nên xác suất lỗi có thể đạt được bằng giả
định rằng chuỗi không-zero được truyền và xác định xác suất mà bộ giải mã
quyết định ủng hộ một dãy khác nhau. Chúng tôi sẽ xem xét xác suất lỗi cho cả
hai quyết định khó khăn và giải quyết quyết định mềm.
Đầu tiên chúng ta xem xét giải mã quyết định mềm. Chúng ta quan tâm đến xác
suất mà chuỗi zero-zero được gửi, nhưng một dãy khác nhau được giải mã. Nếu
các ký hiệu được mã hoá xuất ra từ bộ mã hoá xoắn được gửi đi qua kênh
AWGN sử dụng điều chế BPSK với năng lượng Ec = RcEb, thì có thể thấy rằng
nếu chuỗi không toàn zero được truyền, xác suất sai lầm chuỗi này bằng một
chuỗi Hamming khoảng cách xa là [2]

Chúng ta gọi xác suất này là xác suất sai số cặp đôi, vì nó là xác suất lỗi liên
quan đến việc so sánh cặp của hai đường dẫn khác nhau về d bit. Hàm chuyển
giao liệt kê tất cả các đường đi phân cách và gom lại với đường đi bằng 0, do đó,
bởi ràng buộc liên kết chúng ta có thể giới hạn trên xác suất sai lầm đường đi
bằng 0 cho một đường dẫn khác là


nơi mà quảng cáo biểu thị số đường dẫn của khoảng cách d từ con đường bằng
không. Sự ràng buộc này có thể được biểu diễn dưới dạng chức năng truyền nếu
ta sử dụng hàm số mũ với hàm trên, tức là chúng ta sử dụng thực tế là

,

sau đó:

Trong khi giới hạn trên cho chúng ta biết xác suất sai lầm một dãy đối với một
chuỗi khác, nó không mang lại xác suất lỗi bit, điều này là cơ bản hơn. Chúng ta

biết rằng số mũ trong hệ số N của T (D, N) cho biết số lỗi bit thông tin liên quan
đến việc lựa chọn một đường dẫn không chính xác qua lưới. Cụ thể, chúng ta có
thể biểu diễn T (D, N) như

trong đó f (d) biểu thị số bit lỗi liên quan đến một đường dẫn khoảng cách d từ
đường đi bằng không. Sau đó, chúng ta có thể tăng ràng buộc bit xác suất bit,
cho k = 1, như [2]

nơi chênh lệch duy nhất với (8.68) là thừa số f (d) tương ứng với số lỗi bit trong
mỗi đường dẫn sai. Nếu hàm Q ở trên bị giới hạn bởi hàm mũ phức tạp như trên
chúng ta nhận được giới hạn trên

Nếu k> 1 thì chúng ta chia (8.71) hoặc (8.72) bởi k để có được Pb.
Tất cả các giới hạn này cho rằng sự truyền dẫn BPSK mạch lạc (hoặc QPSK
mạch lạc, tương đương với hai truyền BPSK phụ thuộc). Đối với các điều chế
khác, xác suất sai số cặp P2 (d) phải được tính lại dựa trên xác suất lỗi liên quan
đến điều chế đã cho.


Bây giờ chúng ta hãy xem xét việc giải mã quyết định khó. Xác suất chọn một
đường dẫn không chính xác ở khoảng cách d từ toàn bộ con đường không, cho d
lẻ, được cho bởi

trong đó p là xác suất hoặc lỗi trên kênh. Điều này là do đường dẫn không chính
xác sẽ được chọn chỉ khi đường dẫn giải mã gần với đường dẫn không chính xác
so với đường dẫn bằng không, tức là bộ giải mã gây ra lỗi ít nhất .5 (d + 1). Nếu
d là chẵn, thì đường dẫn không chính xác sẽ được chọn khi bộ giải mã có nhiều
lỗi hơn 0,5 lần, và bộ giải mã cho phép ngẫu nhiên chọn sai số chính xác là 5d.
Chúng ta có thể đơn giản hóa xác suất lỗi cặp bằng cách sử dụng Chernoff ràng
buộc để mang lại

P2(d) < [4p(1 − p)]d/2.
Theo cách tiếp cận tương tự như trong giải quyết quyết định mềm, chúng tôi sau
đó có được xác suất lỗi ràng buộc như



8.4 Mã liên kết

Mã nối được sử dụng hai mức mã hoá: mã bên trong và mã bên ngoài, như thể
hiện trong hình 8.13. Mã nội bộ thường được thiết kế để loại bỏ hầu hết các lỗi
bởi kênh, và mã bên ngoài thường là một mã ít mạnh hơn làm giảm xác suất lỗi
khi các bit được nhận mã hoá có một xác suất sai số tương đối thấp (vì hầu hết
các lỗi được sửa bởi mã bên trong). Mã kết nối có thể có mã số bên trong và bên
ngoài được ngăn cách bởi một bộ rẽ dòng để chia lỗi lỗi do kênh giới thiệu. Các
mã liên kết thường đạt được xác suất lỗi rất thấp với độ phức tạp ít hơn một mã
duy nhất có cùng hiệu suất xác suất lỗi. Việc giải mã mã nối được thực hiện theo
hai giai đoạn, như được chỉ ra trong hình: đầu tiên mã nội bộ được giải mã, và

(8.74)


mã bên ngoài được giải mã riêng. Đây là một kỹ thuật tối ưu, vì trên thực tế cả
hai mã đều hoạt động song song để giảm xác suất lỗi. Tuy nhiên, bộ giải mã ML
cho một mã nối, thực hiện việc giải mã chung, rất phức tạp. Nó đã được phát
hiện vào giữa những năm 1990 rằng có thể thu được một bộ giải mã gần như tối
ưu cho các mã số nối dựa trên giải mã lặp, và đó là tiền đề cơ bản đằng sau các
mã turbo, được mô tả trong phần tiếp theo.
8.5 Mã Turbo (Turbo Code):
Mã turbo được giới thiệu vào năm 1993 trong một bài báo của Berrou,
Glaveux và Thitimojshima là một loại mã rất mạnh, có thể đạt đến được một

phần nhỏ của 1dB trong giới hạn của dB trên kênh AWGN. Mã Turbo và nhều
loại mã khác được thể hiện giải thuật tạo và giải mã trên hình [11, 12], đã đươc
nghiên cứu rộng rãi một cách tổng quát, nhưng một số đặc điểm của loại mã này
vẫn chưa được hiểu rõ.
Những ý tưởng đằng sau các loại mã được giới thiệu trong 60 năm
đầu[10], tuy nhiên trong thời gian này, kỹ thuật mã hóa bị xem là không thực tế
và thường không được nghiên cứu và theo đuổi bởi những người theo chuyên
ngành này. Một bài báo về mã Turbo năm 1993 đã cung cấp những thông tin giá
trị hơn, và có nhiều điều kiện và thể hiện một cách đầy đủ hơn để xem xét lại đề
xuất của Gallegen và những người khác, dựa trên biểu đồ giải mã.
Giống như lần đầu tiên được đưa ra và mô tả bởi Berrou. Mã Turbo gồm
hai thành phần chính: phần mã hóa song song có các phần liên quan mật thiết tới
nhau và được lặp đi lặp lại, và phần giải mã của mã Turbo. Một bộ mã hóa song
song, nối với bộ giải mã được thể hiện ở hình 8.14. Nó bao gồm hai bộ song
song & được ghép xoắn lại với nhau, ngăn cách bởi một bộ chặn.
Ở đâu vào, m bit dữ liệu cùng với các bit birity là các bit X1 & X2: khi
các bít thông tin được truyền đi giống như 1 phần của từ mã => gọi là mã Turbo
trong hệ thống.
Bộ lặp, hoặc bộ giải mã khai thác các cư sở của mã Turbo bằng cách kết
hợp bộ giải mã thành phần với nhau. Cụ thể, một bộ giải mã thực hiện giải mã
hóa mềm giữa đầu vào và đầu ra giống như hình 8.15 và bộ giải mã ở hình 8.14.
Trong bộ giải mã này, cứ p.m1 thì nhận được m.X1 sự ước lượng khác nhau.
Các biện pháp sử dụng xác suất được tạo ra vởi 1 hoặc nhiều MAP bằng
thuật toán xác suất được tạo ra bằng cách.
\


×