Upload
anh-vu
View
151
Download
0
Embed Size (px)
Citation preview
5/16/2018 so do sua loi - slidepdf.com
http://slidepdf.com/reader/full/so-do-sua-loi 1/20
BÀI TẬP LỚ N MÔN KỸ THUẬT THÔNG TIN SỐ
Sinh viên: Nguyễn Văn Vũ 1
CHƢƠNG1: TỔNG QUAN VỀ MÃ HÓA KÊNH
1.1.Phân tích mã kênh
1.1.1Vị trí của mã hóa kênh trong hệ thống thông tin số
Mã hóa kênh là một khâu rất quan trọng trong hệ thống thông tin số không dây
cùng với mã hóa nguồn, ghép kênh, điều chế,… để tạo ra một tín hiệu phù hợp cho
việc truyền dẫn vô tuyến và tín hiệu đó có khả năng điều khiển được sự sai
bit và sửa các lỗi xảy ra nếu có để có thể khôi phục lại gần như nguyên
dạng tín hiệu tin tức mà mình truyền đi. Hình 1.1: Vị trí của mã hóa kênh truyền
trong hệ thống thông tin số. Mã hoá kênh: mục đích là làm giảm xác suất sai thông tin
khi truyền qua kênh truyền. Việc giảm thiểu xác suất sai dựa vào việc phát hiện sai vàsửa sai có thể dẫn đến việc giảm tỉ số tín hiệu trên nhiễu (SNR) cần thiết nhờ đó giảm
được công suất, tiết kiệm năng lượng. Việc sửa sai hữu hiệu cho tín hiệu SNR
nhỏ sẽ thuận lợi cho việc bảo mật, trải phổ và tăng độ chính xác của thông tin
nhận- mục đích quan trọng nhất của truyền thông.
Hình 1.1: V ị trí củ a mã hóa kênh trong hệ thố ng thông tin số
1.1.2. Khái niệm và phân loại mã hóa kênh
Khái niệm: Mã hóa kênh là việc đưa thêm các bit dư vào tín hiệu số theo một
quy luật nào đó nhằm giúp cho bên thu có thể phát hiện và thậm chí sửa đượ c
lỗi xảy ra trên kênh truyền.
5/16/2018 so do sua loi - slidepdf.com
http://slidepdf.com/reader/full/so-do-sua-loi 2/20
BÀI TẬP LỚ N MÔN KỸ THUẬT THÔNG TIN SỐ
Sinh viên: Nguyễn Văn Vũ 2
Trong các hệ thống truyền số liệu thì có 2 cơ chế sửa lỗi:
+ Cơ chế ARQ: Cơ chế yêu cầu phát lại số liệu một cách tự động( khi phát hiện sai)
cơ chế này có 3 dạng cơ bản như sau:
Cơ chế ARQ dừng và chờ (stop and wait ARQ)
Có chế ARQ quay ngượ c N vector (N go back ARQ)
Cơ chế ARQ chọn lựa việt lặp
+Cơ chế FEC (Forward Error Control): phát hiện và tự sửa sai sử dụng các loại mã
sửa lỗi.
Khi có sai đơn (sai 1 lỗi) người ta thườ ng dùng các loại mã như mã khối tuyên
tính, mã hamming, mã vòng...
Khi có sai chùm (sai trên 2 lỗi) ngườ i ta thườ ng dùng các loại mã như: mã
BCH, mã tích chập, mã Trellis, mã Tubor, mã Tubor Block, mã tổng hợ p GC...
Một hệ thống có thể khắc phục lỗi bằng cách gửi một yêu cầu cho bên phát gửi
lại tín hiệu nếu phát lỗi, đó là chế độ ARQ. Nhưng việc này chỉ thích hợ p cho các hệ
thống truyền dẫn hữu tuyến và một số hệ thống vô tuyến không yêu cầu về thờ i gian
trễ. Thay vào đó, vớ i các hệ thống thông tin không dây ngày nay, ngườ i ta hay sử
dụng một loại mã có thể phát hiện và khắc phục lỗi một cách tự động. Việc này sẽ làm
giảm thiểu thờ i gian trễ so vớ i các hệ thống yêu cầu truyền lại. Bộ mã này thườ ng
đượ c gọi là mã điều khiển lỗi(EEC), hay mã hóa kênh truyền
Phân loại mã hóa kênh
Lý thuyết mã hóa đại số đượ c chia ra làm 2 loại mã chính:
mã khối
mã xoắn
Trong mỗi loại mã lại đượ c phân chia thành 2 nhánh nữa đó là mã tuyến tính
(Linear codes) và mã không tuyến tính( Nonlinear codes). Trong thực tế,các loại mã
không tuyến tinh không đượ c ứng dụng nhiều.
5/16/2018 so do sua loi - slidepdf.com
http://slidepdf.com/reader/full/so-do-sua-loi 3/20
BÀI TẬP LỚ N MÔN KỸ THUẬT THÔNG TIN SỐ
Sinh viên: Nguyễn Văn Vũ 3
1.1.3. Khái quát về mã khối và mã xoắn
a. Mã khối
Mã khối là loại mã có các bit thông tin tạo thành dãy thông tin có chiều dài cố
định. Dãy bit tin có chiều dài cố định này đượ c gọi là message, mỗi message đượ c kí
hiệu là u gồm k bit thông tin. Như vậy sẽ có tổng cộng 2 k message khác nhau và
chúng có thể đượ c hiểu là các bộ vector k thành phần, trong đó mỗi thành phần vector
là “0” hoặc “1”. Bộ mã hóa sẽ ánh xạ theo một quy luật nào đó từ một message U
thành một vector V có n thành phần( n>k). V đượ c gọi là từ mã của message U. Ứ ng
vớ i 2 k message U thì sẽ có 2 k từ mã V khác nhau. Tập 2 k từ mã này đượ c gọi là một
mã khối. Để mã khối hữu hiệu thì 2 k từ mã khối hữu hiệu thì 2 k từ mã luôn là các từ
mã phân biệt. Mỗi từ mã có n bit nên sẽ có tối đa 2 n từ mã khác nhau, tuy nhiên mã
khối đượ c tạo ra để sử dụng 2 k trong tổng số 2 n từ mã có thể này vì thế sẽ có 2 n -2 k
từ mã và chúng đượ c gọi là các từ mã cấm.
Hình 1.2: Mã khố i hệ thố ng (n,k)
Phân loại mã khối:
Mã khối tuyến tính (linear block code) còn đượ c gọi là mã nhóm (group code) :
có các từ mã tương ứng 1-1 vớ i các phần tử thuộc nhóm toan học. Mã tuyến
tính có chứa từ mã gồm toàn số 0 và có tính chất đóng, chẳng hạn đối vớ i mã
tuyến tính nhị phân, vớ i cả hai từ mã Ci và Cj bất k ỳ, ta luôn có Ci+Cj=Ck cũng
là một từ mã. Việc chứa toàn số 0 và có tính chất đónglàm cho việc tính toán
đối vớ i mã tuyến tính đặc biệt dễ dàng.
Mã vòng (cyclic code) là một lớ p con của mã khối tuyến tính không có các từ
mã gồm toàn số 0. Mã khối tuyến tính đượ c gọi là mã vòng nếu sau một lần
dịch vòng một từ mã thì cũng đượ c một từ mã thuộc cùng một bộ mã.
5/16/2018 so do sua loi - slidepdf.com
http://slidepdf.com/reader/full/so-do-sua-loi 4/20
BÀI TẬP LỚ N MÔN KỸ THUẬT THÔNG TIN SỐ
Sinh viên: Nguyễn Văn Vũ 4
Mã Golay là một loại mã vòng sửa đượ c sai nhiều lỗi. Mã Golay (23, 12) có
khả năng sửa đượ c 3 lỗi cho từ mã dài 23 bit. Mã Golay đượ c phát minh vào
năm 1949 và đượ c nhiều chuyên gia quan tâm nghiên cứu tớ i cấu trúc và cơ chế
giải mã. Thực tế, đang có 2 phương pháp giải mã đó là phương pháp Kasami và
giải mã tìm kiếm hệ thống (systematic search decoding). Mã Golay (23, 12)
đượ c sử dụng khá phổ biến trong một số hệ thống thông tin.
Mã BCH nhị phân ( Binary BCH code) là một loại mã vòng đượ c
Hocquenghem tìm ra năm 1959 sau đó đượ c Bose và Chaudhuri tìm ra một
cách độc lập vào năm 1960. Mã BCH có thể sửa đượ c t lỗi trong từ mã dài n
bit, vớ i n=2 m -1, n-k<=mt.
Mã RS đượ c Reed và Solomon giớ i thiệu lần đầu tiên vào năm 1960. Theo lý
thuyết mã, có thể xem mã RS là mã BCH nhị phân. Mã RS đượ c tổ chức theo
ký tự, mã này tạo thành n ký tự vớ i mỗi ký tự dài m bit tùy thuộc vào ứng dụng
cụ thể. Một đặc điểm quan trọng của mã RS là khả năng sửa lỗi chùm. Mã RS
sử dụng rộng rãi trong các đầu CD và trong bộ nhớ máy tính.
Mã hamming là một trườ ng hợp riêng đơn giản nhất của mã BCH nhị phân. Mã
này được R.W.Hamming đưa ra và đượ c sử dụng trong một số hê thống thông
tin, mã này có khả năng sửa đượ c 1 lỗi.
b. Mã xoắn( mã chập)
Mã xoắn ( convolution code) là một loại mã sửa lỗi đượ c miêu tả bở i 3 số
nguyên (n,m,k). Trong đó k là số bit đượ c dịch vào trong thanh ghi dịch tại mỗi
thời điểm, n là tổng số bit trong một từ mã ở lối ra của bộ lập mã, m là độ dài
hạn chế (constraint length), tham số này mô tả số tầng của thanh ghi dịch.
Trong mã xoắn, mỗi dãy k bit thông tin đượ c ánh xạ thành một dãy lối vào kênh
có độ dài n, song lối vào kênh không chỉ phụ thuộc vào k bit thông tin mà còn
phụ thuộc vào cả (M-1)k bit lối vào cuối cùng của mã. Vì vậy, có thể xem mã
chập là mã có nhớ, đó là điểm khác biệt cơ bản của mã chập so vớ i mã khối.
Mã chập được Elias đề xuất lần đầu tiên vào năm 1955. Sau đó, Wozencraft
đưa ra một thuật toán giải mã tương đối hiệu quả. Năm 1963,Massey đưa ra
5/16/2018 so do sua loi - slidepdf.com
http://slidepdf.com/reader/full/so-do-sua-loi 5/20
BÀI TẬP LỚ N MÔN KỸ THUẬT THÔNG TIN SỐ
Sinh viên: Nguyễn Văn Vũ 5
cách giải mã ít hiệu quả hơn nhưng lại dễ thực hiện hơn. Năm 1967, Viterbi đã
đưa ra thuật toán giải mã tối ưu đượ c gọi là thuật toán Viterbi. Từ đây, mã chập
đượ c ứng dụng rộng rãi trong ngành viễn thông.
1.2. Phân tích mã khối tuyến tính
1.2.1Giớ i thiệu:
`Trướ c khi tìm hiểu về cơ sở và phương pháp biểu diễn của mã khối tuyến tính,
hãy xem xét thế nào là mã khối.Giả sử rằng đầu ra của tin là dãy các bit nhị phân “0”
và “1”. Trong trườ ng hợ p mã khối, dãy thông tin nhị phân đượ c chia thành dãy các
thông tin có chiều dài cố định, thường đượ c gọi là message .Mỗi message, kí hiệu là u
gồm có k bit thông tin .Vậy tổng cộng có 2k
message khác nhau và chúng có thể đượ c
thể hiện là các bộ vector k thành phần vector là “0” hoặc “1”. Bộ phận mã hóa theo
một quy luật nào đó sẽ ánh xạ message u thành một vector n thành phần (n-tuples) v
(n>k). v đượ c gọi là từ mã(hay vector mã) của message u. Ứ ng vớ i 2k message sẽ có 2
k
từ mã khác nhau.Tập 2k
từ mã này đượ c gọi là một mã khối. Để mã khối hữu hiệu ,2k
từ mã luôn là từ mã phân biệt. Do đó sẽ có một ánh xạ 1:1 giữa một message u và một
từ mã v.
Đối vớ i một mã khối có 2k
từ mã và mỗi từ mã có chiều dài n, việc lưu lại bảng
mã để phục vụ cho việc giải mã để phục vụ cho việc giải mã khó khăn đặc biệt khi 2k
lớ n. Do đó có một loại mã có cơ chế hoạt động dễ dàng hơn, có thể áp dụng vào thực
tế, đó là mã khối tuyến tính. Vớ i cấu trúc của mã khối tuyến tính, sự phức tạp của quá
trình mã hóa và giải mã giảm đi rất nhiều
Định nghĩa mã khố i tuyế n tính:Một mã khối có chiều dài n gồm 2k từ mã
đượ c gọi là mã tuyến tính C(n, k) nếu và chỉ nếu 2k từ mã hình thành một không gian
vectơ con k chiều của không gian vectơ n chiều gồm tất cả các vectơ n thành phần trên
trườ ng GF(2).
Trường GF(2) (Galois Field (2)) là trườ ng nhị phân đồng thờ i phép cộng là
phép cộng modul 2 (kí hiệu là⊕), còn phép nhân là phép và (AND). Cụ thể
0⊕ 0=0 0⊕ 1=1 1⊕ 0=0 1⊕ 1=0
0.0=0 0.1=0 1.0=0 1.1=1
5/16/2018 so do sua loi - slidepdf.com
http://slidepdf.com/reader/full/so-do-sua-loi 6/20
BÀI TẬP LỚ N MÔN KỸ THUẬT THÔNG TIN SỐ
Sinh viên: Nguyễn Văn Vũ 6
Mã tuyến tính C (n, k) có mục đích mã hoá những khối tin (hay thông báo) k bit
thành những từ mã n bit. Hay nói cách khác trong n bit của từ mã có chứa k bit thông
tin. Các phần tiếp theo sau sẽ trình bày cách biểu diễn mã, cách mã hoá các thông báo
thành từ mã, cách giải mã từ từ mã thành thông báo, cách phát hiện sai và sửa sai.
Qui ƣớ c: Để đơn giản sau này chúng ta sẽ viết dấu + thay cho dấu⊕ và dấu +
sẽ đượ c hiểu theo ngữ cảnh.
Mã khối tuyến tính là tuyến tính khi và chỉ khi k ết quả cộng modul-2 của 2 từ
mã cũng là một từ mã
1.2.2.Ma trận sinh
Mã tuyến tính C (n, k) là một không gian con k chiều của một không gian vectơ n thành phần. Do vậy có thể tìm đượ c k từ mã độc lập tuyến tính trong C chẳng hạn
(g0, g1 ,...., gk – 1) trong C. Mỗi từ mã trong C là một tổ hợ p tuyến tính của k từ mã độc
lập tuyến tính này:
v = u0g0 + u1g1 + …. + uk-1gk-1
vớ i uo = 0 hoặc bằng 1 và 0 i <k
Đặt k từ mã độc lập tuyến tính này thành những hàng của ma trận cấp k x n như
sau:
00 01 0.( 1)0
10 11 1( 1)1
( 1)0 ( 1).1 ( 1)( 1)1
n
n
k k k nk
g g gg
g g ggG
g g gg
Vớ i gi = (gi0, gi1, ….., gi(n-1)) vớ i 0 i <k
Nếu u = (u0, u1, ….., uk-1) là thông tin cần đượ c mã hóa, các từ mã đượ c tạo ra
là v đượ c tính toán theo công thức:
0
1
0 1 k-1
1
u x G=(u , u ,....., u )
k
g
gv
g
(2)
5/16/2018 so do sua loi - slidepdf.com
http://slidepdf.com/reader/full/so-do-sua-loi 7/20
BÀI TẬP LỚ N MÔN KỸ THUẬT THÔNG TIN SỐ
Sinh viên: Nguyễn Văn Vũ 7
Rõ ràng các hàng của G tạo ra từ mã V. Vì lý do này G đượ c gọi là ma trận sinh
(generating matrix) của C.
Chú ý rằng bất kì từ mã độc lập tuyến tính nào cũng có thể dùng làm ma trận
sinh cho từ mã.Từ công thức trên ta thấy rằng một mã tuyến tính (n,k) hoàn toàn đượ c
xác định bởi k hàng độc lập tuyến tính của G. Vì vậy bộ tạo mã chỉ chứa k hàng của G
và tạo thành một tổ hợ p tuyến tính của k hàng cơ bản này trên hàng thông tin nhập vào
u= 0 1 k-1(u , u ,....., u )
.
Ví dụ:
0
1
1
1 1 0 1 0 0 0
0 1 1 0 1 0 0G=
1 1 1 0 0 1 0
1 0 1 0 0 0 1k
g
g
g
Nếu (1 1 0 1) là thông tin sẽ đượ c mã hóa , từ mã tương đương của nó theo
công thức (2) sẽ là:
v= 1.g0 + 1.g1 + 0g2 + 1g3
= (1 1 0 1 0 0 0) + (0 1 1 0 1 0 0) + (1 0 1 0 0 0 1)
= (0 0 0 1 1 0 1)
Cấu trúc của từ mã khối tuyến tính hệ thống:
Phần kiểm tra dư thừa Phần thông tin
n-k con số k con số
Một từ mã đượ c chia làm 2 thành phần là phần thông tin (message) và phần
kiểm tra dư thừa (ređunant checking). Phần thông tin gồm có k bit thông tin nằm ở bên
phải và kiểm tra dư thừa gồm n-k kiểm tra thêm nằm ở bên trái. Mã khối tuyến tính có
5/16/2018 so do sua loi - slidepdf.com
http://slidepdf.com/reader/full/so-do-sua-loi 8/20
BÀI TẬP LỚ N MÔN KỸ THUẬT THÔNG TIN SỐ
Sinh viên: Nguyễn Văn Vũ 8
cấu trúc như vậy gọi là mã khối tuyến tính hệ thống (linear systematic block code-hình
trên). Một mã khối tuyến tính (n, k) đượ c biểu diễn bở i ma trận G (n,k) như sau:
00 01 0( 1)0
10 11 1( 1)1
( 1)0 ( 1)1 ( 1)( 1)1
x
100...0
010...0
000...1
n
n
k k k nk
k k P
p p pg
p p pgG
p p pg
Vớ i Pij=0 hoặc bằng 1. Gọi Ik là kí hiệu của ma trận đơn vị k x k xác định. Khi
đó:
G=[P | Ik ]
Cho u= 0 1 k-1(u , u ,....., u ) là thông tin được mã hóa tương tự là:
v= (v0, v1,…….., vk-1)
v= 0 1 k-1(u , u ,....., u ) .G
Từ 2 công thưc trên ta có:
Vn-k+1=ui, 0 i<k
Và v j =u0p0j + u1p1j + ……+uk-1p (k-1)j
Trong công thức trên k con số bên phải của từ mã v chính là các bit thông tin
0 1 k-1(u , u ,....., u ) cần đượ c mã hóa, n-k con số thừa bên trái là tổng tuyến tính của vùng
thông tin. Công thức trên đượ c gọi là công thức kiểm tra chẵn lẻ.
1.2.3.Ma trận kiểm tra chẵn lẻ
Cho bất kì ma trận G(k x n) với k hàng độc lập tuyến tính luôn tồn tại ma trận
H((n-k) x n) vớ i n-k hàng độc lập tuyến tính.
Nếu ma trận sinh có mã tuyến tính (n, k) thì ma trận kiểm tra chẵn lẻ có dạng
như sau:
5/16/2018 so do sua loi - slidepdf.com
http://slidepdf.com/reader/full/so-do-sua-loi 9/20
BÀI TẬP LỚ N MÔN KỸ THUẬT THÔNG TIN SỐ
Sinh viên: Nguyễn Văn Vũ 9
00 01 0( 1)
10 11 1( 1)
( 1)0 ( 1)1 ( 1)( 1)
100...0
010...0
000...1
n
nT n k
k k k n
kxk P
p p p
p p p H I P
p p p
PT
là ma trận chuyển vị của ma trận P. Gọi h j là hàng thứ j của ma trận H.
Chúng ta có thể dễ dàng kiểm tra k ết quả bên trong hàng thứ i của ma trận G và kiểm
tra hàng thứ j của H là gi.hj = pij + pij = 0 vớ i 0 j<k-1
Như vậy G.HT =0 Hơn nữa hàng của h là độc lập tuyến tính, vì vậy ma trận
kiểm tra chẵn lẻ trong công thức(4.7) của ma trận tuyến tính (n, k) đượ c sinh bở i ma
trận G trong công thức 4.4. Công thức kiểm tra chẵn lẻ 4.6b cũng nhận đượ c từ ma
trận H cho u= 0 1 k-1(u , u ,....., u ) là thông tin đượ c mã hóa dạng hệ thông của từ mã tương
ứng là v=(v0, v1,…….., vk-1, 0 1 k-1(u , u ,....., u ) Vớ i v.H
T =0 thu đượ c
Và v j =u0p0j + u1p1j + ……+uk-1p (k-1)j
Biểu diễn lại công thức 4.7 nhận đươc công thức kiểm tra chẵn lẻ tương đương
vớ i công thức 4.6b Vì vậy mã tuyến tính (n, k) hoàn toàn được xác định bở i ma trận
kiểm tra chẵn lẻ.
1.2.4. Cách phát hiện và sử a sai
Ứ ng dụng k ết quả trên vào vấn đề phat hiện sai, chúng ta thấy rằng:
Nếu v là một từ mã đượ c sinh ra từ ma trận sinh G có ma trận trực giao tương ứng là H
thì do v là một tổ hợ p tuyến tính của các vecto hang của G nên
0t
v h 0t
v h
Và ngượ c lại nếu 0t v h thì v phải là một tổ hợ p tuyến tính của các vecto hàng của
G do đó v là một từ mã
Syndrome-vecto sửa sai(corector): T v H
T v H thường đượ c gọi là syndrome hay vecto sửa sai của v và ký hiệu là s(v). Vậy
chúng ta có là từ mã khi và chỉ khi s(v) = 0
5/16/2018 so do sua loi - slidepdf.com
http://slidepdf.com/reader/full/so-do-sua-loi 10/20
BÀI TẬP LỚ N MÔN KỸ THUẬT THÔNG TIN SỐ
Sinh viên: Nguyễn Văn Vũ 10
Vớ i tính chất này chúng ta thấy H có thể được dùng để kiểm tra một tổ hợ p có
phải là từ mã không hay nói cách khác H có thể được dùng để phát hiện sai. Vì lý do
này mà ma trận H còn gọi là ma trận kiểm tra.
Ma trận kiểm tra của một bộ mã có ma trận sinh k nG là ma trận h có kích thướ c
(n-k) n sao cho: 0T G H
Ví dụ: Tìm ma trận kiểm tra tương ứng ma trận sinh
1 1 0 1 0 0 0
1 0 1 1 1 0 0
0 1 0 0 0 1 1
1 0 1 0 0 0 1
G
Chúng ta thấy ma trận kiểm tra cần tìm phải có kích thướ c 3 7. Gọi h= (
1, 2, 3 4 5 6, , ,a a a a a a ) là một hàng bất k ỳ của H. Vì h trực giao vớ i mọi vecto hàng của G
nên chúng ta có hệ bốn phương trình sau tương ứng vớ i 4 hàng của G
0 1 3
0 2 3 4
1 5 6
3 4 5 6
6
0 1 2
0 2 6
0
0
0
, , ,
,
, ,
0
a a a
a a a a
a a a
a a a a
a a
a a a
a a a
Vấn đề là bây giờ chúng ta làm sao tìm được 3 vecto hàng độc lập tuyến tính là
nghiệm của hệ phương trình trên. Chú ý, hệ phương trình trên có thể cho phép chúng
ta giải bốn biến theo 3 biến còn lại. Chẳng hạn chúng ta giải 3 4 5 6, , ,a a a a theo 0 1 2, ,a a a
như sau:
3 0 1
4 1 2
5 0 1 2
6 0 2
a a a
a a a
a a a a
a a a
`Chú ý phép cộng,+, ở đây chính là phép cộng, ,trong GF(2) như đã quy ướ c trong
GF(2) phép trừ - hoàn toàn giống phép cộng.
5/16/2018 so do sua loi - slidepdf.com
http://slidepdf.com/reader/full/so-do-sua-loi 11/20
BÀI TẬP LỚ N MÔN KỸ THUẬT THÔNG TIN SỐ
Sinh viên: Nguyễn Văn Vũ 11
Bây giờ chúng ta cho (0 1 2, ,a a a ) lần lượ t các giá trị (1,0,0),(0,1,0),(0,0,1) thì
chúng ta sẽ xác định đượ c( 3 4 5 6, , ,a a a a ) lần lượt như sau(1,0,1,1), (1,1,1,0), (0,1,1,1).
Vậy chúng ta có ma trận H như sau
3 7
1 0 0 1 0 1 1
0 1 0 1 1 1 0
0 0 1 0 1 1 1
H
Chú ý: Các ma trận kiểm tra khác nhau của cùng một bộ mã đều có khả năng kiểm tra
như nhau tức là đều có thể giúp chúng ta phát hiện một tổ hợ p có phải là từ mã hay
không.Đối vớ i ma trận sinh hệ thống thì việc xác định ma trận kiểm tra dễ hơn nhiều,
dựa trên bồ đề sau:
Bồ đề :
Nều ma trận sinh hệ thống của một mã tuyến tính hệ thống có dạng:
|k n kk k n k
G I P
Thì: |T
k n n k n k H P I n k n k
là một ma trận kiểm tra của mã .
Tương tự nếu ma trận sinh có dạng :
|k n kk k n k G P I
Thì ma trận kiểm tra có dạng
|
T
k n n k n k H I n k n k P
Trong đó I n k n k là ma trận dơn vị kích thướ c n k n k , còn
T
k n k P là ma trận chuyền vị của ma trận k n k P
5/16/2018 so do sua loi - slidepdf.com
http://slidepdf.com/reader/full/so-do-sua-loi 12/20
BÀI TẬP LỚ N MÔN KỸ THUẬT THÔNG TIN SỐ
Sinh viên: Nguyễn Văn Vũ 12
CHƢƠNG 2 :QUÁ TRÌNH LẬP MÃ & GIẢI MÃ KHỐI TUYẾN TÍNH
2.1. Lập mã
Sơ đồ khối mạch tạo mã khối tuyến tính (7,4):
Nguyên lý hoạt động của mạch tạo mã khối: Các bít tin mã hóa đượ c chuyển
vào thanh ghi thông tin và đồng thời được đưa ra kênh truyền. Sau khi toàn bộ thông
tin đượ c nhập vào thanh ghi thông tin, các bit kiểm tra đượ c hình thành tại đầu ra của
bộ cộng modul-2 các bit kiểm tra đượ c chuỗi hóa và chuyển vào kênh.Ta có thể nhận
thấy rằng sự phức tạp của mạch lập mã tỉ lệ tuyến tính vớ i chiều dài của mã.
Ta viết lại quan hệ giữa các bit tin và bit kiểm tra ở trên như sau:
P1 = 1I1 0I2
1I3 1I4
P2= 1I1 1I2 0I3 1I4
P3= 1I1 1I2 1I3 0I4
Ta có ma trận :
5/16/2018 so do sua loi - slidepdf.com
http://slidepdf.com/reader/full/so-do-sua-loi 13/20
BÀI TẬP LỚ N MÔN KỸ THUẬT THÔNG TIN SỐ
Sinh viên: Nguyễn Văn Vũ 13
P =
1
2
3
P
P
P
=
1011
1101
1110
Từ các phương trình này ta rút ra đượ c ma trận kiểm tra H:
H =
1111000
01101000001
1010010
1100001
Trong đó:
3 cột đầu của ma trận H là ma trận đơn vị I(3,3)
4 cột cuối là hệ số của các bit tử I1 đến I4
Từ ma trận kiểm tra H ta sẽ lập đượ c ma trận sinh G bằn cách k ết hợ p ma trận đơn
vị 4x4 vớ i ma trận hoán vị của P như sau:
G =
1111000
0110100
1100001
Nhờ ma trận sinh G ta sẽ tính toán đượ c các từ mã v bằng cách nhân các vector
hàng u biểu diễn các dãy bit vớ i ma trận sinh G ( v=u.G). Theo bài ra ta có dãy bit từ
đầu vào là: 0001011010011101 và ta cần lập mã khối (7,4) vì thế ta sẽ chia vectơ này
thành 4 vector hàng lần lượ t là: 0001;0110;1001;1101.
Vớ i dãy bit là 0001 thì từ mã đượ c tạo ra là:
v=
1111000
01101000001
1010010
1100001
=110001
Lần lượ t vớ i các dãy bit tin ta lập đượ c các từ mã tương ứng:
Vớ i dãy bit tin 0110 ta lập đượ c từ mã 1100110
Vớ i dãy bit tin 1001 ta lập đượ c từ mã 0011001
5/16/2018 so do sua loi - slidepdf.com
http://slidepdf.com/reader/full/so-do-sua-loi 14/20
BÀI TẬP LỚ N MÔN KỸ THUẬT THÔNG TIN SỐ
Sinh viên: Nguyễn Văn Vũ 14
Vớ i dãy bit tin 1101 ta lập đượ c từ mã 0001101
Nhận xét: Ta nhận thấy rằng k ết quả của u.G chính là vector biểu diễn cho từ mã (7,4)
gồm 7 bít trong đó:
3 bit đầu là 3 bit kiểm tra P1 P2 P3
4 bit cuối là 4 bit tin I1 I2 I3 I4
Dạng tín hiệu chuỗi bit đầu vào 1011010011101 như sau :
Sau khi chuỗi bit đã đượ c mã hoá ta có dạng tín hiệu như sau :
5/16/2018 so do sua loi - slidepdf.com
http://slidepdf.com/reader/full/so-do-sua-loi 15/20
BÀI TẬP LỚ N MÔN KỸ THUẬT THÔNG TIN SỐ
Sinh viên: Nguyễn Văn Vũ 15
Code tạ o mã bằ ng matlab:
n=7,k=4;
msg=[0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1];
genmat = [1 1 1 1 0 0 0;0 1 1 0 1 0 0; 1 0 1 0 0 1 0;1 1 0 0 0 0 1]; code=encode(msg,n,k,'linear',genmat);
disp('msg')
disp(msg)
disp('genmat')
disp(genmat)
disp('code')
disp(code)
2.2.Phần giải mã
Ta có số cột phụ thuộc tuyến tính của ma trận H là 3 vì vậy bộ giải mã tương
ứng sẽ có khoảng cách hamming là d=3 do đó mã có thể phát hiện sai tối đa là 2 bit và
sửa sai đượ c tối da là 1 bit. Công việc giải mã đượ c tiến hành gồm các bước như sau :
Bướ c 1: Tính syndrome S= e.HT
của r
Bướ c 2: Dò tìm coset learder eI co syndrome vớ i s
Bướ c 3:Giải mã vectơ nhận đượ c r thành từ mã ban đầu Vi = ei + r
Quá trình giải mã đượ c thực hiện như sau: Gọi r=(r1 r2 r3 r4 r5 r6 r7 ) là vectơ thu đượ c từ kênh truyền.
S=r.HT
= (r1 r2 r3 r4 r5 r6 r7 ) .
1 0 0
0 1 0
0 0 1
1 1 1
0 1 1
1 0 1
1 1 0
= 1 2 3S S S
Trong đó :1 1 4 6 7
2 2 4 5 7
3 3 4 5 6
S r r r r
S r r r r
S r r r r
5/16/2018 so do sua loi - slidepdf.com
http://slidepdf.com/reader/full/so-do-sua-loi 16/20
BÀI TẬP LỚ N MÔN KỸ THUẬT THÔNG TIN SỐ
Sinh viên: Nguyễn Văn Vũ 16
Sơ đồ sử a l ỗi như sau:
5/16/2018 so do sua loi - slidepdf.com
http://slidepdf.com/reader/full/so-do-sua-loi 17/20
BÀI TẬP LỚ N MÔN KỸ THUẬT THÔNG TIN SỐ
Sinh viên: Nguyễn Văn Vũ 17
Từ bảng này ta sẽ xác định được các syndrome tương ứng vớ i các từ mã nhận
đượ c từ đó sẽ xác định đượ c các từ mã đúng. Cụ thể nếu từ mã nhận đượ c là:
r=0100001 thì tra bảng trên ta sẽ thấy syndrome tương ứng vớ i r là 001, sai ở bit thứ
nhất. Khi đó từ mã đúng sẽ là:
V*=0100001+1000000=1100001
Tương tự như vậy ứng vớ i các từ mã nhận đượ c ở các cột số 4,5,6,7 của bảng
coset thì ta sẽ tìm được các syndrome tương ứng và tìm đượ c từ mã đúng.
Code matlab mo phong cong viec giai ma:
%giai ma
m = 3; n = 2^m-1; k = n-m;
genmat=[1 1 1 1 0 0 0;0 1 1 0 1 0 0;1 0 1 0 0 1 0;1 1 0 0 0 0 1];
disp('genmat')
disp(genmat)
parmat = gen2par(genmat); % tao ma tran kiem tra
disp('parmat')
disp(parmat)
trt = syndtable(parmat); % bang giai ma
disp('trt')
disp(trt)
recd = [0 0 1 1 1 0 1] % vector nhan
syndrome = rem(recd * parmat',2);
5/16/2018 so do sua loi - slidepdf.com
http://slidepdf.com/reader/full/so-do-sua-loi 18/20
BÀI TẬP LỚ N MÔN KỸ THUẬT THÔNG TIN SỐ
Sinh viên: Nguyễn Văn Vũ 18
syndrome_de = bi2de(syndrome,'left-msb'); % Convert to decimal.
corrvect = trt(1+syndrome_de,:)%vector loi
%vector giai ma
correctedcode = rem(corrvect+recd,2)
% kha nang sua loi cua ma khoi tuyen tinh
k = input('so bit tin dau vao, k = ');
r = input('so bit thua, n-k = ');
n = k+r;
t = 0;
test = 0;while test ~= 1
S = 0;
for i=0:t
S = S + nchoosek(n,i);
end
if 2^(n-k) >= S
t = t+1;
else
t=t-1;
test = 1;
end
end
fprintf('so bit loi toi da sua duoc t = %d\n',t);
5/16/2018 so do sua loi - slidepdf.com
http://slidepdf.com/reader/full/so-do-sua-loi 19/20
BÀI TẬP LỚ N MÔN KỸ THUẬT THÔNG TIN SỐ
Sinh viên: Nguyễn Văn Vũ 19
KẾT LUẬNTrong bài tập lớn này chúng em đã trình bày một cách tổng quan về mã hóa
kênh và đi sâu vào nghiên cứu, phân tích, mô phỏng mã khối tuyến tính. Qua đó đã
giúp chúng em có cái tổng quát hơn về hệ thống thông tin số và các loại mã hóa kênh
truyền. Mặc dù đã rất cố gắng, tuy nhiên do thờ i gian và kiến thức còn hạn chế nên
bài tập lớ n này chắc hẳn còn nhiều thiếu sót. Chúng em rất mong thày có những nhận
xét và góp ý để bài viết sẽ đạt k ết quả tốt hơn. Em xin chân thành cảm ơn.
5/16/2018 so do sua loi - slidepdf.com
http://slidepdf.com/reader/full/so-do-sua-loi 20/20
BÀI TẬP LỚ N MÔN KỸ THUẬT THÔNG TIN SỐ
Sinh viên: Nguyễn Văn Vũ 20
Tài liệu tham khảo:
[1]. Bài giảng k ỹ thuật thông tin sô- Phạm Việt Hưng
[2].Các hệ thống thông tin số hiện nay- Proakis J.G và Salehim
[3]. Kỹ thuật truyền dẫn số- nhà xuất bản quân đội
[4].contemporary comumnication systems using matlab