Phân biệt hệ thống FEC và hệ thống ARQ:Hệ thống ARQ Automatic Repeat Request Phát hiện lỗi và yêu cầu truyền lại, không thực hiện việc tự sửa lỗi.. Phân biệt hệ thống FEC và hệ thống
Trang 23.1 Giới thiệu tổng quan
Format encodeSource
Format decodeSource
Channelencode
Pulsemodulate
Bandpassmodulate
Channeldecode
Demod
SampleDetect
Trang 3Nguyên lý cơ bản DSL
Scrambler Interleaver
Modulator Shaping
Channel Input bit
Output bit
Receiver Transmitter
01001010111010101
01101 0 11010010
Forward error correction encoder
Reducing bit error
Forward error correction encoder
interleave
Trang 4MÃ HÓA KÊNH
source
data reduction/
compression
data protection
Trang 5Kiểm tra bít và xác định lỗi
Calculate
check bits
Channel
Recalculate check bits
Compare
Sent check bits
Information accepted if check bits match
Received check bits
k bits
n – k bits
Trang 6Định lý về mã kênh của Shannon
ĐỊNH NGHĨA :
Tỷ lệ mã R=k/n<1
k bít tin tức, ( n-k) bít kiểm tra
Định lý về mã kênh của Shannon: Nếu khả năng phát nguồn
nhỏ hơn khả năng thông qua của kênh thì luôn luôn xây dựng
phương pháp mã đảm bảo truyền tin không sai:
R ≤ Capacity
an encoding methods exist with decoding error probability 0
Trang 7Phân loại lỗi
Trang 9Burst Error
2 or more bits in the data unit have changed
Burst error does not necessarily mean that the errors occur in consecutive bits
Most likely to happen in a serial transmission
Number of bits affected depends on the data rate and duration of noise
If the data is sent at 1 kbps, a noise of 1/100 s can affect 10 bits
If the data is sent at 1 Mbps, a noise of 1/100 s can affect 10000 bits
Trang 10Ví dụ
– Consider the code C = { 000, 111 }
– A burst error of length 3 can not be corrected.
– Let us use a block interleaver 3X3
Trang 113.1.1 Phân loại mã hóa kênh
Mã hóa kênh biến đổi tín hiệu để cải thiện hiệu năng của
chống lại nhiễu ( Noice) , suy giảm, can nhiễu
(interference) …
Có 2 loại:
1 Mã hóa dạng sóng : mã hóa tín hiệu để giảm error khi tách sóng: đối xứng (antipodal), trực giao (orthogonal), song trực giao (biorthogonal),
mã lưới , mã tín hiệu đa mức
2 Mã chuỗi có cấu trúc : thêm các bit để giúp phát hiện và sửa lỗi Mã khối ( mã không nhớ),Mã chập ( mã có nhớ), mã liên kết
Trang 12(tt)
Trang 133.1.2 Các phương pháp điều khiển lỗi
• Automatic Repeat reQuest (ARQ)
– Kết nối song hướng, xác định lỗi – Phía nhận gửi phản hồi thông báo với bên phát Nếu bản tin lỗi NACK, bản tin nhận đúng là
– Bên nhận truyền lại các bản tin lỗi nếu nhận được NACK.
• Sửa lỗi hướng đi Forward Error Correction (FEC)
– Kết nối đơn hướng , sửa lỗi – Bên nhận sửa được 1 số lỗi
• Hybrid ARQ (ARQ+FEC)
– Kết nối song hướng, xác định lỗi và sửa lỗi
Trang 14Phân biệt hệ thống FEC và hệ thống ARQ:
Hệ thống ARQ (Automatic Repeat Request )
Phát hiện lỗi và yêu cầu truyền lại, không thực hiện việc tự sửa lỗi
Hệ thống ARQ yêu cầu phải có đường truyền ngược và cần ít bit kiểm tra
Áp dụng: * Mạng máy tính
* Các hệ thống không yêu cầu độ trễ nhỏ
Các mã sử dụng: mã lặp, mã kiểm tra chẵn lẻ, mã CRC, vv…
Trang 15Phân biệt hệ thống FEC và hệ thống ARQ:
Hệ thống ARQ có ba dạng cơ bản:
Cơ chế ARQ dừng và chờ (Stop and Wait ARQ)
Cơ chế ARQ quay ngược N từ mã (Go back N ARQ)
Cơ chế ARQ lựa chọn việc lặp lại (Selective repeat ARQ)
Hệ thống FEC (Forward Error Correction)
Phát hiện lỗi và thực hiện việc tự sửa lỗi, không yêu cầu truyền lại
Áp dụng: * Hệ thống đơn công
* Hệ thống truyền khoảng cách xa và độ trễ là vấn đề quan trọng
Các loại mã : mã Hamming, mã tích chập, mã Turbo,vv…
Trang 17Chương 3 MÃ HÓA KÊNH
3.1.3 Một số khái niệm cơ bản về mã hóa:
Trọng số Hamming của một từ mã [w(X)]: số thành phần khác zero trong từ
mã
Ví dụ: Từ mã X = 101 w(X) = 2
Khoảng cách Hamming giữa hai từ mã X, Y [d(X,Y)]: số vị trí các phần tử
khác nhau giữa hai từ mã
Ví dụ: X = 1010; Y = 1110 d(X,Y) = 1
Khoảng cách cực tiểu của một tập mã [d min ]: khoảng cách Hamming nhỏ
nhất giữa hai từ mã bất kỳ thuộc tập mã
Trang 18Chương 3 MÃ HÓA KÊNH
3.2 Một số mã phát hiện lỗi và sửa lỗi đơn giản:
Xét một khối n bit, giả sử lỗi xảy ra ngẫu nhiên, độc lập thống kê Khi xác suất sai một bit là α thì xác suất sai i bit trong n bit là:
• Xác suất không phát hiện được lỗi: P(3,3) = α3
Với hệ thống FEC: giả sử dùng luật đa số để sửa lỗi (VD: 0010; 1011)
• Khi thu được từ mã khác 111 hay 000 phát hiện lỗi xảy ra sửa lỗi.
• Xác suất giải mã sai: P(2,3) + P(3,3) = 3α2 - 2α3
( , ) n i i(1 )n i
P i n = C α − α −
Trang 19Chương 3 MÃ HÓA KÊNH
Một số mã phát hiện lỗi và sửa lỗi đơn giản (tt):
3.2.2 Mã kiểm tra chẵn lẻ ( Parity Check Code):
Từ mã n bit gồm (n-1) bit tin tức và 1 bit kiểm tra
Bit kiểm tra được chọn tùy vào kiểm tra chẵn hay kiểm tra lẻ
• Mã kiểm tra chẵn: chèn bit sao cho (Σ bit 1) là chẵn
• Mã kiểm tra lẻ: chèn bit sao cho (Σ bit 1) là lẻ
Chỉ phát hiện lỗi, không sửa được lỗi
Khi số bit lỗi là chẳn không phát hiện được
Xác suất không phát hiện được lỗi là:
Đơn giản, thích lợp trong môi trường ít nhiễu
2
( 1) (2, ) (4, ) (6, )
2
we
n n
P = P n +P n +P n + ≈ − α
Trang 20Mã hóa và giải mã kiểm tra chẵn lẻ
Trang 21Example 1
Suppose the sender wants to send the word world In
ASCII the five characters are coded as
1110111 1101111 1110010 1101100 1100100
The following shows the actual bits sent
Trang 22Kiểm tra chẵn lẻ theo hàng và cột (BCC)
Trang 23Kiểm tra chẵn lẻ theo hàng và cột (BCC)
Trang 24Kiểm tra chẵn lẻ theo hàng và cột (BCC)
Trang 25Block Sum Check
Trang 26The sender follows these steps:
1 The unit is divided into k sections, each
4 The checksum is sent with the data.
The receiver follows these steps:
1 The unit is divided into k sections,
each of n bits.
2 All sections are added using one’s
complement to get the sum.
3 The sum is complemented.
4 If the result is zero, the data are
accepted: otherwise, rejected
Trang 30Cyclic Redundancy Check
Nguyên lý
k-bit message
Bên phát tạo ra chuỗi n bit FCS (Frame Check Sequence) sao cho frame gởi đi (k+n bit) chia hết cho 1 số xác định trước
Bên thu chia frame nhận được cho cùng 1 số và nếu không có phần
dư thì có khả năng không có lỗi
Trang 31Cyclic Redundancy Check
T: frame được truyền (k+n bit)
M: message dữ liệu cần truyền (k bit đầu của T)
F: FCS (n bit sau của T)
P: số chia được xác định trước (n+1 bit)
RQP
M
n2
+
=
FM
n2
R
F =
RM
n2
QP
RP
RQP
RM
n2P
T
=++
=+
=
Trang 32Cyclic Redundancy Check
Trang 33Cyclic Redundancy Check
1 1 1 1 0 1
1 1 0 1 1 1 1 1 0 1 0 0
0
M P
111101 011
T
Trang 34Cyclic Redundancy Check
Trang 35Dữ liệu nhị phân được chia thành từng khối k bit.
Bộ mã hóa khối sẽ ánh xạ khối k bit tin tức thành khối n bit (từ mã mã hóa X)
Tập hợp 2k từ mã khác nhau có chiều dài n tạo lập nên bộ mã khối (n,k)
Tỷ lệ mã :
k R
n
=
3.3 Mã khối tuyến tính (Linear Block Code):
Trang 36Chương 3 MÃ HÓA KÊNH
Mã khối tuyến tính (Linear Block Code):
a Quá trình mã hóa:
Giả sử vector M chứa k bit tin tức: M = [m1,m2,m3,…,mk]
và vector C chứa q = n – k bit kiểm tra: C = [c1,c2,c3,…,cq]
Vector từ mã của mã khối tuyến tính (n,k) là:
X = [M | C] = [m1,m2,…,mk|c1,c2,…,cq]
Quy luật tạo từ mã mã hóa X:
trong đó: G là ma trận sinh có cấu trúc như sau:
k
q q
p p
p
p p
p
p p
p P
2 22
21
1 12
11
Trang 37Chương 3 MÃ HÓA KÊNH
Trang 38Chương 3 MÃ HÓA KÊNH
Quá trình mã hóa (tt):
Sơ đồ mạch mã hóa:
Mỗi khối các bit tin tức đưa vào khối phát cũng được tải vào thanh ghi dịch
Các giá trị trong thanh ghi dịch này được kết nối đến các cổng EX-OR để tạo các bit kiểm tra
Sau khi các bit tin được đưa ra ngoài, khóa K chuyển, đưa các bit kiểm tra ra
Một bộ đệm ngõ vào sẽ giữ
khối các bit tin tức kế tiếp trong
khi các bit kiểm tra được dịch
ra ngoài
Quá trình này tiếp tục
được lặp lại cho khối các
bit tin tức kế tiếp
Trang 39Chương 3 MÃ HÓA KÊNH
1
c
4 3
2
4 2
Trang 40Chương 3 MÃ HÓA KÊNH
b Quá trình giải mã:
Sử dụng phương pháp giải mã syndrome
Gọi Y là vector từ mã thu được khi vector từ mã phát đi là X
Lúc đó: Y = X + E, với E = [e1,e2,e3,…,en]: vector lỗi
Quá trình phát hiện lỗi:
Định nghĩa Hqxn là ma trận kiểm tra: H = [PT|Iqxq]
Lúc đó: XHT = [0,0,…,0]
Tính giá trị syndrome S1xq: S = YH T ( Véc tơ sửa sai)
Sử dụng tính chất: XHT = [0,0,…,0] Suy ra:
• Nếu S = [0,0,…,0]: máy thu không phát hiện được lỗi (không có lỗi xảy ra
hay lỗi xảy ra mà không phát hiện được)
• Nếu S ≠ [0,0,…,0]: máy thu phát hiện được lỗi
Bộ giải mã trong hệ thống ARQ ( chỉ phát hiện lỗi ) chỉ là bộ tính toán giá trị
syndrome.
Trang 41Chương 3 MÃ HÓA KÊNH
Quá trình giải mã (tt):
Quá trình phát hiện lỗi và sửa lỗi:
Tính giá trị syndrome: S = YHT = (E+X)HT = EHT + XHT = EHT
Giá trị syndrome chỉ phụ thuộc vào các vector mẫu lỗi E mà không phụ thuộc vào vector từ mã phát đi X
Vì E có kích thước 1xn có 2n vector mẫu lỗi khác nhau
S có kích thước 1xq có 2q giá trị syndrome khác nhau
Chọn 2q-1 mẫu lỗi thường xảy ra nhất Lập bảng quan hệ giữa E và S
Từ đó, ta có quá trình giải mã như sau:
• Phía thu xây dựng ma trận kiểm tra H dựa trên ma trận P đã biết.
• Lập bảng quan hệ giữa S và E.
•Dựa vào giá trị của S, tra bảng quan hệ S – E, tìm được vector E.
Trang 42Chương 3 MÃ HÓA KÊNH
Quá trình giải mã (tt):
Sơ đồ mạch giải mã syndrome:
Đánh giá khả năng sửa lỗi:
Với từ mã n bit:
Cn1 : mẫu lỗi đơn
Cn2 : mẫu lỗi kép
……
Cnt : mẫu lỗi t bit
Muốn mạch giải mã có khả năng
sửa mẫu lỗi sai đến t bit thì phải chọn n và q thỏa điều kiện sau:
Ví dụ: muốn sửa lỗi đơn thì phải chọn n và q thỏa: 2q-1≥n
Trang 43Chương 3 MÃ HÓA KÊNH
Quá trình giải mã (tt):
Giải mã syndrome cho mã Hamming (7,4):
Với mã Hamming: n = 2q -1 mã Hamming chỉ sửa được các mẫu lỗi đơn
Xây dựng quan hệ S – E:
• Giả sử lỗi xảy ra ở bit thứ j trong từ mã vector mẫu lỗi E có ej=1; ei ≠ j= 0
• Mặc khác, ta có: S = EHT = (HT)j giá trị của S giống với hàng thứ j của HT
• Suy ra cách xây dựng bảng quan hệ S – E
Ví dụ: (giải mã, dữ liệu cần truyền đi: M = 0111)
Quá trình mã hóa với mã Hamming (7,4) Cho ma trận:
Trang 44Chương 3 MÃ HÓA KÊNH
Quá trình giải mã (tt):
Lời giải:
Mã Hamming(7,4): n = 7; k = 4; q = 3
a Từ ma trận P, ta xây dựng ma trận HT:
Giá trị của S giống với hàng thứ j của
ma trận HT khi lỗi xảy ra ở vị trí j
q q
P H
Trang 45Chương 3 MÃ HÓA KÊNH
Trang 46Chương 3 MÃ HÓA KÊNH
Với Y = 01 0 1010: (có lỗi đơn xảy ra)
chuỗi bit thu được 0111: chính xác, đã sửa được lỗi đơn
Với Y = 011 01 10: (có lỗi kép xảy ra)
Trang 47Dùng mã hamming để phát hiện lỗi chùm
– Mã Hamming chỉ sửa được lỗi đơn và xác định lỗi kép
– Tuy nhiên dùng ghép xen có thể phát hiện được lỗi chùm (tách lỗi kép
thành các lỗi đơn!)
Khi burst có kích thước 4 lỗi trong1 frame, chỉ có 1 bit trong mỗi từ mã là bị lỗi –
Trang 48Chương 3 MÃ HÓA KÊNH
3.3 Mã tích chập (Convolutional Code):
Thực hiện việc mã hóa dòng dữ liệu một cách liên tục chứ không chia thành
khối như mã khối tuyến tính
Giá trị các bit ngõ ra là sự kết hợp tuyến tính của bit vào hiện tại và các bit vào trước đó đã được lưu trong thanh ghi hệ có nhớ
Trong đó: k: số ngõ vào; n: số ngõ ra
L: số phần tử nhớ trong thanh ghi dịch;
Kc = L+1: chiều dài giới hạn của mã tích chập
Tốc độ mã:
Ký hiệu mã tích chập: (n,k,L) ví dụ: mã tích chập (3,2,1), (2,1,2),vv…
(R,Kc) ví dụ: mã tích chập (2/3, 2), (1/2,3),vv…
k R
n
=
Mã tích chập (n,k,L)
Dữ liệu vào
m 1 ,m 2 ,m 3 ,…
Dữ liệu mã hóa
x 1 ,x 2 ,x 3 ,…
Trang 49Ứng dụng mã chập
Trong viễn thông, mã xoắn là một loại mã sửa lỗi, trong đó k-bit mang tin tức được
mã hóa thành từ mã n-bit Mã xoắn được sử dụng rộng rãi trong rất nhiều các ứng dụng để đạt được truyền dữ liệu đáng tin cậy, bao gồm cả video kỹ thuật số, radio, thông tin di động, và thông tin liên lạc vệ tinh
Các mã này thường được thực hiện kết hợp với một mã quyết định cứng, đặc biệt
là Reed Solomon.
Trang 50Chương 3 MÃ HÓA KÊNH
Mã tích chập (tt):
3.3.1 Quá trình mã hóa:
a Sơ đồ mạch mã hóa tích chập:
Sơ đồ tạo các bit mã hóa trong mã tích chập:
Giá trị bit ngõ ra:
trong đó: g = (g0,g1,…,gL): đa thức sinh
Nhận xét:
• x j : phụ thuộc vào giá trị bit
ngõ vào hiện tại mj và L bit trước đó đã lưu trong thanh ghi.
• Mỗi bit tin tức sẽ ảnh hưởng đến (L+1) bit ngõ ra khi nó được dịch trong
thanh ghi
j j j j L L
x = m g ⊕ m g− ⊕ ⊕ m g−
Trang 51Chương 3 MÃ HÓA KÊNH
Trang 52Chương 3 MÃ HÓA KÊNH
b Các dạng biểu diễn của mã tích chập:
Có 3 dạng biểu diễn thông dụng: sơ đồ cây mã,
sơ đồ lưới mã, giản đồ trạng thái
Xét mã tích chập (2,1,2)
g(1) = (1,1,1); g(2) = (1,0,1)
Sơ đồ cây mã (Tree Code):
Trang 53Chương 3 MÃ HÓA KÊNH
b Các dạng biểu diễn của mã tích chập (tt):
Sơ đồ lưới mã (Code Trellis) và giản đồ trạng thái (State Diagram):
a/00 c/10 a/11 c/01
b/11 d/01 b/00 d/10
Giá trị ngõ vào
Giá trị ngõ ra
Trạng thái kế
Trạng thái hiện tại
Trang 54Chương 3 MÃ HÓA KÊNH
Quá trình mã hóa (tt):
c Thực hiện việc mã hóa:
Xét mã tích chập (2,1,2) Giả sử chuỗi dữ liệu vào: 001101 Xác định chuỗi dữ liệu ngõ ra ?
Trang 55Chương 3 MÃ HÓA KÊNH
c Quá trình giải mã:
Sử dụng phương pháp giải mã Viterbi
Phương pháp giải mã Viterbi:
• Xác định dữ liệu dựa trên xác định đường mã tối ưu.
• Xác định đường mã được chọn = đường mã có chỉ số đo nhỏ nhất.
• Chỉ số đo của đường mã = tổng chỉ số đo của các nhánh thuộc đường mã.
• Chỉ số đo của mỗi nhánh = khoảng cách Hamming giữa ngõ ra trong sơ đồ
lưới mã với dữ liệu thu tương ứng.
Xét quá trình giải mã Viterbi cho mã tích chập (2,1,2)
• Phía phát cần truyền bản tin gồm 12 bits
• Chuỗi dữ liệu thu được ở phía thu gồm 24 bits như sau:
Y = 110111000110001111101100
Quá trình thực hiện như sau:
Trang 56Chương 3 MÃ HÓA KÊNH
Quá trình giải mã (tt):
Xây dựng lưới mã theo thời gian như sau:
Bắt đầu từ trạng thái a (có giá trị chạy (running metric) bằng 0), lần lượt tính
chỉ số đo (metric) của các nhánh có thể có dựa vào dữ liệu thu và sơ đồ lưới mã
Trang 57Chương 3 MÃ HÓA KÊNH
Quá trình giải mã (tt):
Tính chỉ số đo của từng nhánh dựa vào khoảng cách Hamming
Tính giá trị chạy tại mỗi node bằng cách cộng giá trị chạy của node trước đó với chỉ số đo của nhánh chuyển trạng trạng thái giữa hai node này
Trang 58Chương 3 MÃ HÓA KÊNH
Quá trình giải mã (tt):
Lặp lại quá trình tính toán cho tất cả các chuyển trạng thái có thể có tại các
node
Trang 59Chương 3 MÃ HÓA KÊNH
Quá trình giải mã (tt):
Lặp lại quá trình tính toán như phần trước
Khi có nhánh đến cùng một node, nhánh nào tạo ra giá trị chạy tại node đó lớn hơn sẽ bị loại bỏ
Trang 60Chương 3 MÃ HÓA KÊNH
Quá trình giải mã (tt):
Quá trình được lặp lại cho đến khi hết dữ liệu
Từ trạng thái cuối cùng (trạng thái a), đi ngược lại (từ phải sang trái) để xác
định đường mã còn tồn tại đây là đường mã tối ưu
Từ đường mã tối ưu, ta xác định được dữ liệu thu
Ta thu được sơ đồ đầy đủ như sau:
Chuỗi dữ liệu thu được: 110111001000
Trang 613.4 Mã ghép (Concatenated codes)
• Mã ghép dùng 2 lần mã hóa, gọi là mã hóa trong và mã hóa
ngoài (có tốc độ cao hơn) - an inner code and an outer code
(higher rate).
– Thông thường 1 mã ghép dùng mã chập và giải mã Viterbi ở phần mã
hóa trong, mã Reed-Solomon ở phần mã hóa ngoài
• Mã ghép giảm sự phức tạp, tăng hiệu quả sửa lỗi.
Interleaver Modulate
Deinterleaver
Inner encoder
Inner decoder Demodulate
Outer decoder
Input
data
Output
data
Trang 62Mã Turbo (Turbo codes)
• Mã Turbo là mã ghép nhưng có thêm giải thuật lặp (iterative algorithm)
• Dùng soft-decision lặp nhiều lần để có giá
trị tin cậy hơn.
Trang 633.5 Đan xen (Interleaving)
• Mã chập (Convolutional codes) thích hợp cho kênh
truyền không nhớ (memoryless channels) vì các lỗi là
ngẫu nhiên (random error events).
• Trên thực tế, có loại lỗi chùm (bursty errors) vì kênh
truyền có nhớ (channel with memory)
– Ví dụ: lỗi trong kênh multipath fading, lỗi do nhiễu …
• Đan xen (Interleaving) giúp cho kênh truyền trở
thành như kênh truyền không nhớ (memoryless
channel) ở bộ giải mã.