Professional Documents
Culture Documents
3.3. Mã hóa
5
Mã hóa kênh: thực hiện mã hóa điều khiển lỗi cho
luồng bit cần truyền đi.
Có hai phương pháp thực hiện mã hóa kênh:
Phương thức mã hóa khối
Phương thức mã hóa xoắn
Giải mã kênh: khôi phục các bit mang thông tin từ
luồng bit nhị phân đã mã hóa điều khiển lỗi.
Bộ điều chế: biến đổi luồng bit đầu vào thành dạng
sóng điện để có thể truyền dẫn qua kênh truyền vô
tuyến
Bộ giải điều chế: thực hiện biến đổi ngược với Bộ
điều chế.
3.2. Ngẫu nhiên hóa và giải
ngẫu nhiên hóa
Lý do:
Tăng thêm các chuyển đổi mức ở luồng số để dễ
dàng khôi phục lại đồng hồ từ tín hiệu thu. Điều
này hết sức cần thiết để tái sinh lại luồng số thu
Làm cho phổ của tín hiệu vô tuyến sau điều chế
tập trung đồng đều ở một vùng, tránh tình trạng
phổ vạch dẫn đến khóa pha nhầm ở đầu thu
Trong một số trường hợp ngẫu nhiên hóa các
kênh vô tuyến khác nhau sẽ giảm nhiễu giữa các
kênh này khi chúng làm việc ở tần số gần nhau
Nguyên tắc ngẫu nhiên hóa
và giải ngẫu nhiên hóa
Luồng số cần phát được cộng modul-2 với
luồng số cơ số 2 giả ngẫu nhiên (PRBS:
Pseudo Random Binary Sequence) được tạo
ra từ một bộ tạo mã giả ngẫu nhiên
Luồng số thu được được cộng modul-2 với
luồng số cơ số 2 giả ngẫu nhiên được sử dụng
ở phía phát
Bộ tạo mã giả ngẫu nhiên được xác định bởi đa thức tạo mã sau:
Trong đó gi = 0 hoặc 1 xác định vị trí khóa trên hình mở hoặc đóng.
Có 2 sơ đồ ngẫu nhiên hóa
Tự đồng bộ
Đồng bộ
Ngẫu nhiên hóa tự đồng bộ: cả luồng số phát và thu đều
tham gia vào quá trình tạo chuỗi giả ngẫu nhiên
Nhược điểm: Số liệu không được truyền thông trong suốt vì phải có mốc đồng bộ
Ưu điểm: tránh sự suy thoái của chuỗi nhị phân giải ngẫu nhiên vào chuỗi toàn
không và không xảy ra nhân lỗi.
3.3. Mã hóa
14
GIỚI THIỆU
Trong các hệ thống truyền tin, nguồn nhận thường tập hợp các tin mà bên
phát dùng để lập nên các bản tin.
• Các tin thường sẽ được ánh xạ (mã hóa) thành một dạng biểu diễn khác
thuận tiện hơn để phát đi.
• Ví dụ: Xét một nguồn tin A={a,b,c,d} chúng ta có thể thiết lặp các cặp
ánh xạ như sau từ A vào tập các chuỗi {0,1}
a → 00 c → 10
b → 01 d → 11
Vậy để phát đi bản tin cbab, ta phải phát đi tập tin 10010001. Khi nguồn
nhận nhận được chuỗi này, thì sẽ xác định được bản tin là cbab.
15
MÃ HIỆU VÀ NHỮNG THÔNG SỐ CƠ BẢN
Mã hiệu (code): Mã hiệu là tập hợp hữu hạn các ký hiệu và phép ánh xạ các
tin/bản tin của nguồn tin thành các dãy ký hiệu tương ứng. Tập các ký hiệu và
phép ánh xạ này thường sẽ đáp ứng các yêu cầu mà hệ thống truyền tin đặt ra.
• Cơ số mã: Tập các ký hiệu mã dùng để biểu diễn gọi là bảng ký hiệu mã, còn số
các ký hiệu thì gọi là cơ số mã (m). Mã nhị phân m=2, mã tam phân m=3…
Mã hóa (Encoding): Mã hóa là quá trình dùng các ký hiệu mã để biểu diễn các tin
của nguồn.
• Biến đổi nguồi tin thành mã hiệu, biến đổi tập tin này thành tập tin khác có đặc
tính thống kê theo yêu cầu.
• Quá trình ngược lại của mã hóa được gọi là giải mã (Decoding).
16
MÃ HIỆU VÀ NHỮNG THÔNG SỐ CƠ BẢN
Từ mã (code wod), bộ mã: Từ mã là chuỗi kí hiệu mã biểu diễn cho tin
của nguồn. Tập tất cả các từ mã tương ứng với các tin của nguồn được
gọi là bộ mã.
• Vì vậy có thể nói mã hóa là một phép biến đổi một – một giữa một
tin của nguồn và một từ mã của bộ mã.
• Trong một số trường hợp người ta không mã hóa mỗi tin của nguồn
mà mã hóa một bản tin hay khối tin. Lúc này chúng ta có khái niệm
mã khối.
• Các từ mã thường được ký hiệu: u,v,w.
Chiều dài từ mã là số ký hiệu trong một từ mã (l).
17
MÃ HIỆU VÀ NHỮNG THÔNG SỐ CƠ BẢN
n
18
ĐIỀU KIỆN PHÂN TÁCH MÃ
Ví dụ:
• Xét bộ mã X1= {0,10,11} mã hóa cho nguồn A = {a,b,c}.
• Giả sử bên phát phát đi bản tin x = abaac, lúc đó chuỗi
từ mã tương ứng được phát đi là y = 0100011.
• Vấn đề: bên nhận nhận được y, làm sao tìm x?
• Để làm được quá trình này, bên nhận phải thực hiện một
quá trình gọi là tách mã. Với chuỗi ký hiệu y trên, bên
nhận chỉ có 1 khả năng tách mã: 0 | 10 | 0 | 0 | 11.
19
ĐIỀU KIỆN PHÂN TÁCH MÃ (TT)
• Xét bộ mã X2= {0,10,01} mã hóa cho nguồn A trên.
• Giả sử bên nhận nhận được chuỗi y = 01010.
• Với chuỗi ký hiệu y trên, bên nhận có thể có 3 khả năng tách
mã: 0 | 10 | 10; 01 | 0 | 10; 01 | 01 | 0. Vì vậy, bên nhận không
biết chính xác bên phát đã phát mẫu tin abb, hay cab, hay cca.
• Một mã như vậy không phù hợp cho việc tách mã và được gọi
là mã không tách được (uniquely undecodable code).
• Vì vậy, điều kiện để một mã được gọi là mã phân tách được
(uniquely decodable code) là không tồn tại dãy từ mã này
trùng với dãy từ mã khác của cùng bộ mã.
20
ĐIỀU KIỆN PHÂN TÁCH MÃ (TT)
• Xét bộ mã X3= {010,0101,10100} mã hóa cho nguồn A trên.
• Giả sử bên nhận nhận được chuỗi y = 01010100101.
• Với chuỗi ký hiệu y trên, bên nhận chỉ có 1 khả năng tách
mã: 0101 | 010 | 0101. Nhưng việc giải khó khăn hơn so với
bộ mã X1.
• Để nhận biết một bộ mã có phân tích được không, người
thường dùng một công cụ được gọi là bảng thử mã.
21
BẢNG THỬ MÃ
• Bản chất của bảng thử mã là phân tích những từ mã dài thành những từ mã ngắn
đi đầu.
• Từ mã dài u1 có thể phân tích thành v11v12…v1kw11 trong đó v11, …v1k là các từ mã
ngắn, còn w11 là phần còn lại của u1.
• Nếu w11 cũng là một từ mã thì bộ mã này là không phân tách được vì chuỗi
v11v12…v1kw11 có ít nhất hai cách phân tách thành các từ mã, đó là đó là u1 và
v11,v12,…,v1k,w11 .
• Còn nếu ngược lại, w11 không là từ mã thì chúng ta dùng nó để xét tiếp. Trong lần
xét tiếp chúng ta xét xem mỗi w11này có là tiếp đầu ngữ của các từ mã hay không,
nếu đúng với một từ mã nào đó, giả sử là u2, thì từ mã này sẽ có dạng
w11v21…v2lw22 trong đó v21…v2l là các từ mã ngắn (l có thể bằng 0) còn w22 là
tiếp vị ngữ còn lại.
22
BẢNG THỬ MÃ (TT)
• Lúc đó tồn tại dãy kí hiệu sau:
v11v12..v1kw11v21..v2lw22..w(i-1)(i-1)vi1..vimwiiv(i+1)1..v(i+1)n
Và có thể phân tách thành hai dãy từ mã khác nhau.
• Cách 1:
v11 | v12 | .. | v1k | w11v21..v2lw22 | .. | w(i-1)(i-1)vi1..vimwii | v(i+1)1 | ..
| v(i+1)n
• Cách 2:
v11 v12 .. v1k w11 | v21 | .. | v2l | w22 ..w(i-1)(i-1) | vi1 |..vim | wiiv(i+1)1
.. v(i+1)n
23
CÁCH XÂY DỰNG BẢNG THỬ MÃ
• B1. Sắp xếp các từ mã vào cột đầu tiên của bảng (cột 1).
• B2. So sánh các từ mã ngắn với các từ mã dài hơn trong cột 1,
nếu từ mã ngắn giống phần đầu từ mã dài thì ghi phần còn lại
trong từ mã dài sang cột 2.
• B3. Đối chiếu các tổ hợp mã trong cột 2 với các từ mã trong cột
1 lấy phần còn lại ghi vào cột tiếp theo (cột 3).
• B4. Đối chiếu các tổ hợp mã trong cột 3 với các từ mã trong cột
1… Thực hiện giống như trên cho đến khi không thể điền thêm,
hoặc cột mới thêm vào trùng với một cột trước đó, hoặc có một
chuỗi trong cột mới trùng với một từ mã. 24
BẢNG THỬ MÃ (VÍ DỤ)
• Lập bảng thử mã cho bộ mã
A = {00, 01, 011, 1100, 00010}
1 2 3 4 5
Mã là không phân tách được
00 010 0 0 0
trên chuỗi 000101100 vì có hai
01 1 100 1 1
cách phân tách khác nhau
011 11 11
00 | 01 | 011 | 00
1100 0010 0010
00010 100
00010 | 1100
00
.
25
BẢNG THỬ MÃ (VÍ DỤ)
Lập bảng thử mã cho bộ mã
A = {010, 0001, 0110, 1100, 00011, 00110, 11110, 101011 }
Gợi ý:
Cột 2 ={1}
Cột 3 ={100, 1110, 01011}
Cột 4 ={11}
Cột 5 ={00, 110}
Cột 6 ={01, 0, 011, 110}
Cột 7 ={0, 10, 001, 110, 0011, 0110}
Cột 7 chứa từ mã 0110 nên bảng mã này không phải là bảng mã tách được.
26
BẢNG THỬ MÃ (VÍ DỤ)
Lập bảng thử mã cho bộ mã
A = {00, 01, 100, 1010, 1011}
B = {10, 100, 01, 011}
Điều kiện cần và đủ để một bộ mã phân tách được là
không có phần tử nào trong các cột khác cột 1 trùng với
một phần tử trong cột 1.
27
Mã hóa Shanon
• Cho nguồn tin X = {a1,…,ak} với các xác suất tương ứng
p1,…,pk .
• Thuật toán mã hóa theo Shannon như sau:
• Sắp xếp các xác suất theo thứ tự giảm dần.
i 1
• Định nghĩa q1=0, qi p
j 1
j ,i=1,2,3,..,k.
Ở bước này theo
giả thiết p1 ≥… ≥ pk .
• Đổi qi sang cơ số 2, sẽ được một chuỗi nhị phân.
• Từ mã được gán cho ai là li ký hiệu lấy từ vị trí sau dấu phẩy của
chuỗi nhị phân tương ứng với qi.
• Trong đó li log 2 pi
28
Ví dụ về Đổi số thập phân sang
nhị phân
Mã hóa Ví
Shannon
dụ
• Hãy mã hóa nguồn S = {a1,a2,a3,a4,a5,a6} với các xác suất
tương ứng 0.3 ; 0.25 ; 0.2 ; 0.12 ; 0.08 ; 0.05.
30
Mã hóa Shannon
Nhận xét
• Việc sắp xếp các xác suất theo thứ tự giảm dần nhằm
mục đích dẫn tới độ dài trung bình của bộ mã là nhỏ.
• Phương pháp Shanno cho kết quả là một mã prefix
(một bộ mã không có từ mã nào là phần đầu của từ
mã khác).
• Phương pháp Shanno có thể mở rộng cho trường
hợp m>2.
• H
32
Mã hóa Fano
Mã hóa Fano
• Cho nguồn tin X = {a1,…,ak} với các xác suất tương ứng p1,…,pk .
• Thuật toán mã hóa theo Fano như sau:
• Sắp xếp các xác suất theo thứ tự giảm dần.
• Chia các tin làm hai nhóm có xác suất xấp xỉ bằng nhau.
• Nhóm đầu lấy trị 0, nhóm sau lấy trị 1.
• Lặp lại bước 2 cho đến khi tất cả các nhóm chỉ còn lại một tin thì
kết thúc.
• Từ mã ứng với mỗi tin là chuỗi bao gồm các kí hiệu theo thứ tự lần
lượt được gán cho các nhóm có chứa xác suất tương ứng của tin.
33
Mã hóa Fano
Ví dụ
• Hãy mã hóa nguồn S = {a1,a2,a3,a4,a5,a6} với các xác
suất tương ứng 0.3 ; 0.25 ; 0.2 ; 0.12 ; 0.08 ; 0.05.
a1 0.3 0 0 00
a2 0.25 0 1 01
a3 0.2 1 0 10
a4 0.12 1 1 0 110
a5 0.08 1 1 1 0 1110
a6 0.05 1 1 1 1 1111
34
Mã hóa Fano
Ví
• Hãy mã hóa nguồn S = {a1,a dụ
2,a3,a4,a5,a6,a7,a8} với các xác suất tương ứng
0.23 ; 0.2 ; 0.14 ; 0.12 ; 0.1 ; 0.09 ; 0.06 ; 0.06.
ai pi 1 2 3 4 wi ai pi 1 2 3 4 wi
a1 0.23 0 0 00 a1 0.23 0 0 00
a2 0.2 0 1 01 a2 0.2 0 1 0 010
35
Nhận xét
• Chú ý: Trong nhiều trường hợp có nhiều hơn một cách chia
thành các nhóm có tổng xác suất gần bằng nhau, ứng với
mỗi cách chia có thể sẽ cho ra các bộ mã có chiều dài trung
bình khác nhau.
• Nhận xét: Phương pháp Fano thường cho kết quả tốt hơn
phương pháp Shanno.
36
Phương pháp mã hóa tối ưu Huffman
• Bổ đề: Cho nguồn tin S = {a1,…,ak} với các xác suất tương ứng p1,…,pk . Gọi
l1,…,lk là chiều dài các từ mã tương ứng với bộ mã tối ưu cho S. Nếu pi > pj thì
li ≤ lj.
• Định lý 1: Trong một bộ mã tối ưu (m=2) cho một nguồn tin, thì hai từ mã
tương ứng với hai tin có xác suất nhỏ nhất phải có chiều dài bằng nhau và có
thể làm cho chúng chỉ khác nhau duy nhất ở bit cuối.
• Định lý 2: Xét nguồn mới S’ = {a’1,…,a’k-1} với các xác suất tương ứng
p’1,…,p’k-1 . Trong đó p’i = pi với 1 ≤ i ≤ k-2 còn p’k-1 = pk-1 + pk. Nếu
{w’1,…,w’k-1 } làm một mã tối ưu cho S’ thì mã nhận được theo qui tắc sau là
mã tối ưu cho S.
wi = w’i 1 ≤ i ≤ k-2
wk-1 = w’(k-1) +”0”
wk = w’(k-1)1+”1”
37
Phương pháp mã hóa tối ưu Huffman
38
Giải thuật mã hóa tối ưu Huffman
• B1: Sắp xếp các xác suất theo thứ tự giảm dần p1 ≥…≥ pk.
• B2: Gán 0 tới bit cuối của wk -1và 1 tới bit cuối của wk hoặc ngược
lại. Quy ước theo chiều thứ nhất.
• B3: Kết hợp pk và pk-1 để tạo thành một tập xác suất mới p1,…, pk-
2, pk-1 + pk.
• B4: Lặp lại các bước trên cho tập tin mới này.
39
Ví dụ
• Hãy mã hóa nguồn S = {a1,a2,a3,a4,a5,a6} với các xác suất
tương ứng 0.3 ; 0.25 ; 0.2 ; 0.12 ; 0.08 ; 0.05.
ai pi Lần 1 Lần 2 Lần 3 Lần 4 Wi
0 1
a3 0.2 0.2 0.25 0.25 11
1
a4 0.12 0.13 0 0.2 101
a6 0.05 1 1001
• H
40
Nhận xét
• Trong trường hợp nếu xác suất pk-1 + pk bằng với một xác
suất pi nào đó thì chúng ta có thể đặt pk-1 + pk nằm dưới
hoặc nằm trên xác suất pi thì kết quả chiều dài trung bình
vẫn không thay đổi cho dù các từ mã kết quả có thể khác
nhau.
• So sánh với phương pháp Fano ta thấy trong trường hợp
trên thì cả hai phương pháp cho hiệu suất như nhau.
• Tuy nhiên, trong trường hợp tổng quát, phương pháp Fano
không phải là phương pháp mã hóa tối ưu.
41