CH ƯƠ NG 5: MÃ HÓA KÊNHðặng Lê Khoa Email: dlkhoa@fetel.hcmuns.edu.vn Facuty of Electronics & Telecommunications, HCMUS 1 N ộ i dung trình bày: Mã hóa kênh Channel coding Mã hóa khối
Trang 1CH ƯƠ NG 5: MÃ HÓA KÊNH
ðặng Lê Khoa Email: dlkhoa@fetel.hcmuns.edu.vn
Facuty of Electronics & Telecommunications, HCMUS
1
N ộ i dung trình bày:
Mã hóa kênh ( Channel coding )
Mã hóa khối (Block codes) + Mã lập (Repetition Code) + Hamming codes
+ Cyclic codes
* Reed-Solomon codes
Mã hóa chập (Convolutional codes) + Encode
+ Decode
ðiều chế mã lưới (Trellis Coded Modulation)
2
S ơ ñồ kh ố i DCS
Format
Source
encode
Format
Source
decode
Channel encode
Pulse modulate
Bandpass modulate
Channel decode
Demod.
Sample Detect
Digital modulation
Digital demodulation
3
Channel coding là gì?
• Tín hi ệ u truy ề n qua kênh truy ề n s ẽ b ị ả nh h ưở ng b ở i nhi ễ u, can nhi ễ u, fading… là tín hi ệ u ñầ u thu b ị sai.
• Mã hóa kênh: dùng ñể b ả o v ệ d ữ ệ u không b ị sai
b ng cách thêm vào các bit d ư th ừ a (redundancy)
• Ý t ưở ng mã hóa kênh là g ở i m ộ t chu ỗ i bit có kh ả
n ng s ử a l ỗ i
• Mã hóa kênh không làm gi ả m l ỗ i bit truy ề n mà ch ỉ làm
gi ả m l ỗ i bit d ữ ệ u (b ả ng tin)
• Có hai lo ạ i mã hóa kênh c ơ b ả n là: Block codes và Convolutional codes
4
Các lo ạ i mã hóa s ử a sai
Mã lập (Repetition Code)
Mã khối tuyến tính (Linear Block Code), e.g
Hamming
Mã vòng (Cyclic Code), e.g CRC
Mã chập (Convolutional Code)
Truy ề n th ố ng, gi ả i mã Viterbi
Mã Turbo
TCM
Mã l ậ p
Recovered state
Trang 2Ki ể m tra ch ẵ n l ẻ (Parity Check)
Thêm 1 bit ñể xor các bit có kết quả là 0
D ữ ệ u truy ề n, s ử a l ỗ i, không th ể s ử a l ỗ i
Ki ể m tra hàng và c ộ t
Ứng dụng: ASCII, truyền dữ liệu qua cổng nối
tiế
7
Mã kh ố i tuy ế n tính (Linear block codes)
Chuỗi bit thông tin ñược chia thành từng khối k bit
Mỗi khối ñược encode thành từng khối lớn hơn có
n bit
Các bit ñược mã hóa và gửi trên kênh truyền
Quá trình giải mã ñược thực hiện ở phía thu
encoder Codeword
rate Code
bits Redundant
n
k R n-k
c=
8
Linear block codes – cont’d
Khoảng cách Hamming giữa hai vector U và V, là
số các phần tử khác nhau
Khoảng các tối thiểu của mã hóa khối là
Ví dụ: Tính khoảng cách Hamming của C1: 101101
và C2:001100
=> Ta có thể giải mã ñể sửa sai bằng cách chọn
codewords có dmin
) ( ) (U, V =wU⊕V
d
) ( min ) , ( min
i j i
100001 001100
101101 ⊕ =
9
Linear block codes – cont’d
Khả năng phát hiện lỗi ñược cho bởi:
Khả năng sửa lỗi t của mã hóa ñược ñịnh nghĩa là số lỗi tối ña có thể sửa ñược trên 1 từ
mã (codeword)
=
2
1
min
d t
1
min −
e
10
Linear block codes – cont’d
Encoding trong bộ mã hóa khối (n,k)
Các hàng c ủ a G thì ñộ c l ậ p tuy ế n tính.
mG
k n
k
k n
m m
m u u
u
m m m u u
u
V V
V
V V V
⋅ + +
⋅ +
⋅
=
⋅
=
2 2 2 1 1 2
1
2 1
2 1 2
1
) ,
,
,
(
) , , , ( ) ,
,
,
(
…
…
⋮
…
…
Linear block codes – cont’d
Example: Block code (6,3)
=
=
1 0 0
0 1 0
0 0 1
1 1 0
0 1 1
1 0 1
3 2 1
V V V G
1
1 1
1 1
0 0
0 0
1 0
1 1
1 1
1 1 0
1 1 0
0 0 1
1 0 1
1 1 1
1 0 0
0 1
1 1 1 0
0 0 1
1 0 1
0 0 0
1 0 0
0 1 0
1 0 0
1 1 0
0 1
0 0 0 0
1 0 0
0 1 0
Message vector Codeword
Trang 3Linear block codes – cont’d
Mã hóa khối (n,k)
k ph ầ n t ử ñầ u tiên (ho ặ c cu ố i cùng) trong t ừ mã là các
bit thông tin.
matrix ) (
matrix identity
] [
k n k
k k
k
k
k
−
×
=
×
=
=
P
I
I P G
) , , , , , , , ( ) , ,
,
(
bits message 2 1 bits parity 2 1 2
1 u u n p p pn k mm m k
=
U
13
Linear block codes – cont’d
ðối với bất kỳ mã hóa khối tuyến tính, chúng
ta có một ma trận Các hàng của
ma trận này trực giao với ma trận :
H ñược gọi là ma trận kiểm tra parity và các hàng của chúng ñộc lập tuyến tính
ðối với mã hóa khối truyến tính:
n k
n− ) ×
(
H
G 0
]
k
I
14
Linear block codes – cont’d
Kiểm tra ñặc trưng:
S là ñặ c tr ư ng c ủa r, tư ng ứ ng v ới error pattern e.
Format Channel
encoding Modulation
Channel decoding Format Demodulation
Detection Data source
Data sink
U
r m
mˆ
channel
or vector pattern error
)
, ,
,
(
or vector codeword received
)
, ,
,
(
2
1
2
1
n
n
e
e
e
r
r
r
=
=
e
r
e U
T T
eH rH
15
Linear block codes – cont’d
Mảng tiêu chuẩ
Hàng ñượ c t ạ o thành b ằ ng cách c ộ ng U
v ớ i pattern
k k k
k
k k
2 2 2
2 2
2 2 2
2 2
2 2
1
U e U
e e
U e U
e e
U U
U
⊕
⊕
⊕
⊕
−
−
⋮
⋱
⋯
⋮
⋯
⋯ zero
codeword
coset
coset leaders
k n
i= 2 , 3 , , 2−
i
e
16
Linear block codes – cont’d
Mảng tiêu chuẩn và ñặc trưng bảng giải mã
2 Tìm coset chính , t ư ng ứ ng v ớ i .
3 Tính và t ư ng ứ ng v ớ i
Chú ý:
• N ế u , error ñượ c s ử a.
• N ế u , b ộ gi ả i mã không th ể phát hi ệ n l ỗ i.
T
rH
i
e
e r
) ˆ
( ˆ
ˆ r e U e) e U (e e
e
e=
ˆ
e
e≠
ˆ
Linear block codes – cont’d
Ví dụ: Mảng chuẩn cho mã (6,3)
010110 100101
010001 010100 100000 100100 010000 111100 001000
000110 110111 011010 101101 101010 011100 110011 000100
000101 110001 011111 101011 101100 011000 110111 000010
000110 110010 011100 101000 101111 011011 110101 000001
000111 110011 011101 101001 101110 011010 110100 000000
⋯
⋯
⋮
⋮
⋮
⋮
Coset leaders
coset
codewords
Trang 4Linear block codes – cont’d
111
010001
100
100000
010
010000
001
001000
110
000100
011
000010
101
000001
000
000000
(101110) (100000)
(001110) ˆ
ˆ
estimated is vector corrected The (100000) ˆ
is syndrome this to ing correspond pattern Error
(100) (001110)
: computed is of syndrome The
received.
is (001110)
ted.
transmit (101110)
= +
= +
=
=
=
=
=
=
=
e r U e
H rH
S
r r
U
T T
Error pattern Syndrome
19
Là tr ườ ng h ợ p riêng c ủ a linear block codes
Di ễ n t ả theo hàm c ủ a m ộ t s ố nguyên
Hamming codes
2
≥
m
t m n-k m k
n
m m
1 : capability correction Error
: bits parity of Number
1 2 : bits
n informatio of Number
1 2 : length Code
=
=
−
−
=
−
=
20
Hamming codes
] [
1 0 1 1 1
0
0
1 1 0 1 0
1
0
1 1 1 0 0
0
1
3
T
P I
=
] [
1 0 0 0
1
1
1
0 1 0 0
0
1
1
0 0 1 0
1
0
1
0 0 0 1
1
1
0
4
4 ×
=
G
21
Mã hóa Hamming
Mã hóa: H(7,4) Nhiều phép kiểm tra tổng Message=[a b c d]
r= (a+b+d) mod 2 s= (a+b+c) mod 2 t= (b+c+d) mod 2
Code=[r s a t b c d]
Tốc ñộ mã: 4/7
Càng nh ỏ , nhi ề u redundance bit, ñượ c b ả o v ệ t ố t h ơ n.
Khác bi ệ t gi ữ a phát hi ệ n và s ử a l ỗ i
Message=[1 0 1 0]
r=(1+0+0) mod 2 =1 s=(1+0+1) mod 2 =0 t=(0+1+0) mod 2 =1
Code=[ 1 0 1 1 0 1 0 ]
22
Hamming codes
] [
1 0 1 1 1
0
0
1 1 0 1 0
1
0
1 1 1 0 0
0
1
3
T
P I
=
] [
1 0 0 0
1
1
1
0 1 0 0
0
1
1
0 0 1 0
1
0
1
0 0 0 1
1
1
0
4
4 ×
=
G
H(7,4)
Ma trận sinh G: ñầu tiên là ma trận ñơn vị 4x4
Dữ ệu truyền là vector p
Vector truyền x (G=[I/P])
Vector nhận r và vector lỗi e
Trang 5S ử a l ỗ i
Nếu không có lỗi, vector ñặc trưng (syndrome) z=zeros
Nếu có 1 lỗi ở vị trí thứ 2
Vector ñặc trưng z là
tương với cột thứ 2 của H Vậy, lỗi ñuợc phát hiện ở vị trí
thứ 2 và có thể sửa lại cho ñúng
25
ðộ l ợ i mã hóa (Coding Gain)
Tốc ñộ mã R=k/n, k: số symbol dữ liệu, n tổng symbol
SNR từ và SNR của bit
V i một sơñồ mã hóa, ñộ lợi mã hóa tại mộ
sắc xuất lỗi bit ñược ñịnh nghĩa là sự khác biệ
giữa năng lượng cần thiết cho 1 bit thông tin ñã
mã hóa ñểñạt ñược sắc xuất lỗi cho trước và truyền dẫn không mã hóa
26
Ví d ụ ñộ l ợ i mã hóa
27
Example of the block codes
8PSK
QPSK
[dB]
/N0
E b
B P
28
Cyclic code
Cyclic codesñược quan tâm và quan trọng vì
D ự a trên c ấ u trúc ñạ i s ố và có th ể ứ ng d ụ ng r ộ ng
rãi.
D ễ dàng th ự c hi ệ n b ằ ng thanh ghi d ịch (shift register)
ðượ c ứ ng d ụ ng r ộ ng rãi trong th ự c nghi ệ m
Trong thực nghiệm, cyclic codes ñược sử dụng
ñể phát hiện lỗi (Cyclic redundancy check, CRC)
ðượ c s ử d ụ ng trong m ạ ng chuy ể n m ạ ch gói
Khi có 1 l ỗ i ñượ c phát hi ệ n ở b ộ nh ậ n, chúng s ẽ
ñượ c yêu c ầ u truy ề n l ạ i
ARQ (Automatic Repeat-reQuest)
Cyclic block codes
Một mã tuyến tính (n,k) ñược gọi là Cyclic code nếu khi dịch vòng 1codeword thì ñó cũng
là codeword
Ví d ụ :
) , , , , , , , ,
(
) , , , , (
1 2
1 0 1 1 )
1 2 1 0
−
− +
−
−
=
=
i n n
i n i n i
n
u u u u u u
u
u u u u
U
U “i” cyclic shifts of U
U U
U U
U
U
=
=
=
=
=
=
) 1101 ( ) 1011 ( ) 0111 ( ) 1110 ( ) 1101 (
) 4 ( )
3 ( )
2 ( )
1 (
Trang 6Cyclic block codes
Cấu trúc ñại số của Cyclic codes, suy ra
codewords ñược sinh ra từ
Mối quan hệ giữa codeword và thanh ghi
dịch:
V ậ y:
) 1 ( degree
)
1 2
2 1
n-u
n
−
− + + + +
=
U
) 1 ( ) (
, )
(
1 ) 1 (
) 1 ( 1 1 )
1 2 2 1 0 1
1 1 2 2 1 0
1 )
+ +
=
+ + + + + +
=
+ +
+
=
−
+
−
−
−
−
−
−
−
−
−
n n
X u n n n X
n n n
n n n n
X u X
u X u X u X u X u u
X u X u X u X u
X
X
n n
U
U
U
) 1 ( modulo ) ( ) (
i
X X
X
U
By extension
) 1 ( modulo ) ( ) (
) 1 ( = n+
X X X
X U U
31
Cyclic block codes
Thuật toán mã hóa Cyclic code (n,k):
1 Nhân thông tin v ớ i chu ỗ i b ằ ng
2 Chia k ế t qu ả b ướ c 1 v ớ i ñ a th ứ c sinh
L y là ph ầ n d ư
3 Thêm vào ñể t o thành codeword
)
( X
)
( X
g
)
( X
p
)
( X
p X n k ( X)
m
−
)
( X
U
32
Cyclic block codes
Example: For the systematic (7,4) Cyclic
code with generator polynomial
1 Find the codeword for the message
) 1
1
1
(
1 ) ( )
(
)
(
: polynomial codeword
the
Form
1 ) 1 ( 1
( : (
by ) (
Divide
) 1 ( ) ( )
(
1 ) ( )
1011
(
3
,
4
,
7
bits message
bits
parity
6 5 3 3
) remainder generator 3 quotient
3 2 6
5
3
6 5 3 3 2 3 3
3 2
=
+ + +
= +
=
+ + + + + +
=
+
+
+ +
= + +
=
=
+ +
=
⇒
=
=
−
=
=
−
−
U
m p
U
g m
m m
m
m
p g q
X X X X X
X
X
X X X X X X
X
X
X) X
X
X X X X X X X X
X
X
X X X k n
k
n
X (X) (X)
k
n
k
n
) 1011 (
=
m
3
1 ) (X = +X+X
g
33
Cyclic block codes
Find the generator and parity check matrices, G and H,
respectively.
=
=
⇒
⋅ +
⋅ +
⋅ +
=
1 0 1 1 0 0 0
0 1 0 1 1 0 0
0 0 1 0 1 1 0
0 0 0 1 0 1 1
) 1101 ( ) , , , ( 1 0 1 1 )
G
Not in systematic form.
We do the following:
row(4) row(4) row(2) row(1)
row(3) row(3) row(1)
→ + +
→ +
=
1 0 0 0 1 0 1
0 1 0 0 1 1 1
0 0 1 0 1 1 0
0 0 0 1 0 1 1
G
=
1 1 1 0 1 0 0
0 1 1 1 0 1 0
1 1 0 1 0 0 1
H
4
×
T
P P
34
Cyclic block codes
Giải mã Cyclic code:
T ừ mã ở b ộ thu ñượ c cho b ở i
ðặ c tr ư ng ở ph ầ n d ư có ñượ c b ằ ng cách chia chu ỗ i nh ậ n
cho ñ a th ứ c sinh:
V i ñặ c tr ư ng và m ả ng tiêu chu ẩ n, l ỗ i s ẽ ñượ c ướ c
l ượ ng.
) ( ) ( ) (X UX e X
Received
codewor
d
Error pattern
) ( ) ( ) ( ) (X qX gX SX
Ví d ụ CRC
Trang 7Checking for errors
37
Một lỗi E(X) không thể phát hiện khi chúng chia
h t cho G(x) Ngược lại, thì có thể phát hiện lỗi
Có khả năng mạnh mẽ trong phát hiện lỗi
38
BCH Code
Có kh ả n ă ng s ử a ñượ c nhi ề u l ỗ i
D ễ dàng th ự c hi ệ n mã hóa và gi ả i mã
Các chuẩn trong công nghiệ
- (511, 493) mã hóa BCH trong ITU-T Chuẩn
H.261- một chuẩn mã hóa video ñược sử dụng
cho video conferencing và video phone
(40, 32) mã hóa BCH trong ATM (Asynchronous
Transfer Mode)
39
BCH Performance
40
Reed-Solomon Codes
Một trường hợp riêng của non-binary BCH
ðược ứng dụng rộng rãi
Storage devices (tape, CD, DVD…)
Wireless or mobile communication
Satellite communication
Digital television/Digital Video Broadcast(DVB)
High-speed modems (ADSL, xDSL…)