Tải bản đầy đủ (.doc) (11 trang)

ĐỀ tài mã KHỐI TUYÊN TÍNH

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 (217.25 KB, 11 trang )

TRƯỜNG CAO ĐẲNG KỸ THUẬT LÝ TỰ TRỌNG
KHOA ĐIỆN -ĐIỆN TỬ

TRUYỀN SỐ LIỆU
ĐỀ TÀI: MÃ KHỐI TUYÊN TÍNH

Nhóm : 2
Đặng Qúy
Nguyễn Hoàng Vỹ
Đoàn Thanh Phong

1


Bài 7 MÃ KHỐI TUYỀN TÍNH
1.Định nghĩa :
Ta có vector thông tin i gồm k bist :
i =(i1 i2,...,ik) với ii € { 0,1}

ta tạo ra từ mã có độ dài là n :
C=(i1,i2,...,ik, ck+1 , ck+2 ,...,cn) với ci €{ 0,1}
Ck+1 ,..., cn Được gọi là bit kiểm tra.
K bits tin (n -k ) bits kiểm tra

* gọi G là mã trận sinh (mã trận tạo mã ) dạng chính tắc :
G(k,n)=[ IK -P]
Khi đó từ mã được tạo ra bằng cách :
C=i.G
Gọi H là ma trận kiểm tra với H =[PT,In-k ]:
H.G=0
Từ mã được tạo ra bằng cách : C.H =0



2


*không gian vectơMột mã tuyến tính với độ dài n và
hạng/số chiều k là một không gian con C với số chiều k của
trong đó là trường hữu hạn với q phần tử. Mã như
vậy gọi là mã q-phân. Nếu q = 2 hay q = 3, thì mã đó được
gọi tương ứng là mã nhị phân, và mã tam phân. Các vectơ
trong C được gọi là các mã tự. Kích thước của một mã là số
mã tự, và đúng bằng qk.
*Trọng lượng của một mã tự là số lượng phần tử khác
không của nó và khoảng cách giữa hai mã tự là khoảng
cách Hamming giữa chúng, nghĩa là số phần tử khác nhau
giữa hai mã tự. Khoảng cách d của một mã là trọng lượng
nhỏ nhất trong các mã tự khác không, hoặc một cách tương
đương, khoảng cách nhỏ nhất giữa hai mã tự khác nhau. Mã
tuyến tính độ dài n, số chiều k, và khoảng cách d được kí
hiệu là mã [n,k,d].
*Ghi chú: Ta sử dụng cơ sở thông thường cho vì mỗi tọa
độ ứng với một kí hiệu được truyền trên "kênh nhiễu". Chỉ
khi sử dụng cơ sở này thì khoảng cách Hamming mới
tương ứng với số lỗi sai trong quá trình truyền.

3


2.Tính chất
A.hội chứng (syndrome) ;S
*Người ta dùng S để phát hiện dữ liệu thu được có sai hay

không .
*Gọi vector thu được là X=(X1,X2,...,Xn),X€{0,1}
S(x)=x.HT=(SK+1,SK+2,...,Sn)
*Nếu S(x)=0 thì vector thu được hoặc là đúng :x=C hoặc
trùng với một trong các từ mã phat đi (đây là sai không
phát hiện được )
*Nếu S(x)≠0 thì các vector thu sai thương được chọn là
vector S(x) với trọng lượng bé nhỏ

4


B.khoảng cách tối thiểu giữa những từ mã :
*Trong số Haming (W):số bít một trong một tù mã .
Ví dụ :
C1=0110011 →w1(C)=4
*Khoảng cách Hamming giữa hai từ mã (d) là số vị trí khác
nhau giữa từng cặp bits của hai từ mã
C1=0110011
+
→d(c1,c2)=3
C2=1010111
C3=1100100 →W(c1 + c2 )=3=d(c1,c2)
*Nếu c là từ mã ,trọng lượng tối thiểu là m thì do C.H=0
nên m dòng của H cũng sẻ có tổng bằng 0 (m=dmin)
*Để phát hiện t sai thì d≥t+1
*Để phát hiện và sửa được t sai thì d≥2t+1

*Vì là một không gian con của , toàn bộ mã C (có kích
thước lớn) có thể được biểu diễn chỉ bằng một hệ sinh gồm

ít nhất mã tự (gọi là cơ sở trong đại số tuyến tính). Nếu
ghép các mã tự này làm các hàng của ma trận G thì ma trận
đó gọi là ma trận sinh của mã C. Khi G có dạng khối
, trong đó là ma trận đơn vị
và A là một
ma trận
, thì ta nói G nằm ở dạng chuẩn.
*Ma trận H biểu diễn biến đổi tuyến tính

hạt nhân là C được gọi là ma trận kiểm tra của C (còn
được gọi là ma trận kiểm tra tính chẵn lẻ). Nếu C là mã với
ma trận sinh G ở dạng chuẩn, G = (Ik | A), thì H = (−At | In −
k) là ma trận kiểm tra của C. Mã sinh bởi H được gọi là mã
đối ngẫu của C.
5


*Tính chất tuyến tính đảm bảo khoảng cách Hamming nhỏ
nhất d giữa mã tự c0 và bất kì mã tự c ≠ c0 nào là độc lập
với c0. Điều này được suy ra từ tính chất hiệu c − c0 của hai
mã tự trong C cũng là một mã tự (nghĩa là một phần tử của
không gian C), và tính chất d(c, c0) = d(c − c0, 0). Theo các
tính chất này,

*Nói cách khác, để xác định khoảng cách nhỏ nhất giữa các
mã tự của một mã tuyến tính, chỉ cần xét khoảng cách giữa
các mã tự khác không và mã tự không. Mã tự khác không
có trọng lượng nhỏ nhất chính là mã tự gần mã tự không
nhất và trọng số đó chính là khoảng cách nhỏ nhất.
*Khoảng cách d của một mã tuyến tính C cũng bằng số nhỏ

nhất các cột phụ thuộc tuyến tính của ma trận kiểm tra H.
*Chứng minh: Xét c là mã tự có trọng số nhỏ nhất. Theo
định nghĩa,
nên các cột
với
phụ thuộc
tuyến tính. Vì vậy số cột nhỏ nhất phụ thuộc tuyến tính là
nhỏ hơn hoặc bằng d.
*Mặt khác xét một tập hợp nhỏ nhất các cột phụ thuộc
tuyến tính
trong đó là tập hợp các chỉ số các
cột này.
. Xét vectơ
sao cho
nếu
. Ta nhận thấy

. Do đó ta có
, chính là số nhỏ nhất các cột phụ
thuộc tuyến tính của .
*Như vậy, ta thu được kết quả cần chứng minh.
6


Ví dụ: Sau đây là ma trận sinh và ma trận sửa lỗi của mã
Hamming
.

:
3.Mã Hamming


Mô hình của một mã 7-bit, bao gồm 4 bit dữ liệu (3,5,6,7)
và 3 bit chẵn lẻ (1,2,4). Sự liên quan của các bit dữ liệu với
bit chẵn lẻ được biểu hiện bằng các phần của hình tròn gối
lên nhau. Bit thứ 1 kiểm tra bit thứ (3, 5, 7), trong khi bit 2
kiểm tra bit (3, 6, 7). Lưu ý, các vị trị (1,2,4 v.v.) thực ra là
vị trí 20, 21, 22 v.v.

7


*Các bit dữ liệu và bit chẵn lẻ trong mối quan hệ chồng gối
với nhau. Các bit chẵn lẻ được tính dùng quy luật "số
chẵn". Giá trị của nhóm dữ liệu là 1100110 - các bit chẵn lẻ
được in đậm, và đọc từ phải sang trái.
*Càng nhiều bit sửa lỗi thêm vào trong thông điệp, và các
bit ấy được bố trí theo một cách là mỗi bỗ trí của nhóm các
bit bị lỗi tạo nên một hình thái lỗi riêng biệt, thì chúng ta có
thể xác định được những bit bị sai. Trong một thông điệp
dài 7-bit, chúng ta có 7 khả năng một bit có thể bị lỗi, như
vậy, chỉ cần 3 bit kiểm tra (23 = 8) là chúng ta có thể, không
những chỉ xác định được là lỗi trong truyền thông có xảy ra
hay không, mà còn có thể xác định được bit nào là bit bị
lỗi.
*Hamming nghiên cứu các kế hoạch mã hóa hiện có, bao
gồm cả mã hai-trong-năm, rồi tổng quát hóa khái niệm của
chúng. Khởi đầu, ông xây dựng một danh mục
(nomenclature) để diễn tả hệ thống máy, bao gồm cả số
lượng bit dùng cho dữ liệu và các bit sửa lỗi trong một
khối. Chẳng hạn, bit chẵn lẻ phải thêm 1 bit vào trong mỗi

8


từ dữ liệu (data word). Hamming diễn tả phương pháp này
là mã (8,7). Nó có nghĩa là một từ dữ liệu có tổng số bit là
8 bit, trong đó chỉ có 7 bit là các bit của dữ liệu mà thôi.
Theo phương pháp suy nghĩ này, mã tái diễn (nhắc lại) ở
trên phải được gọi là mã (3,1). Tỷ lệ thông tin là tỷ lệ được
tính bằng việc lấy con số thứ hai chia cho con số thứ nhất.
Như vậy với mã tái diễn (3,1) ở trên, tỷ lệ thông tin của nó
là .
*Hamming còn phát hiện ra nan đề với việc đảo giá trị của
hai hoặc hơn hai bit nữa, và miêu tả nó là "khoảng cách"
(distance) (hiện nay nó được gọi là khoảng cách Hamming
(Hamming distance) - theo cái tên của ông). Mã chẵn lẻ có
khoảng cách bằng 2, vì nếu có 2 bit bị đảo ngược thì lỗi
trong truyền thông trở nên vô hình, không phát hiện được.
Mã tái diễn (3,1) có khoảng cách là 3, vì 3 bit, trong cùng
một bộ ba, phải bị đổi ngược trước khi chúng ta được một
từ mã khác. Mã tái diễn (4,1) (mỗi bit được nhắc lại 4 lần)
có khoảng cách bằng 4, nên nếu 2 bit trong cùng một nhóm
bị đảo ngược thì lỗi đảo ngược này sẽ đi thoát mà không bị
phát hiện.
*Cùng một lúc, Hamming quan tâm đến hai vấn đề; tăng
khoảng cách và đồng thời tăng tỷ lệ thông tin lên, càng
nhiều càng tốt. Trong những năm thuộc niên kỷ 1940, ông
đã xây dựng môt số kế hoạch mã hóa. Những kế hoạch này
đều dựa trên những mã hiện tồn tại song được nâng cấp và
tiến bộ một cách sâu sắc. Bí quyết chìa khóa cho tất cả các
hệ thống của ông là việc cho các bit chẵn lẻ gối lên nhau

(overlap), sao cho chúng có khả năng tự kiểm tra lẫn nhau
trong khi cùng kiểm tra được dữ liệu nữa.
9


*Thuật toán cho việc sử dụng bit chẵn lẻ trong 'mã
Hamming' thông thường cũng tương đối đơn giản:
Tất cả các bit ở vị trí là các số mũ của 2 (powers of
two) được dùng làm bit chẵn lẻ. (các vị trí như 1, 2, 4, 8,
16, 32, 64 v.v. hay nói cách khác 20, 21, 22, 23, 24, 25, 26
v.v.)
2 Tất cả các vị trí bit khác được dùng cho dữ liệu sẽ
được mã hóa. (các vị trí 3, 5, 6, 7, 9, 10, 11, 12, 13, 14,
15, 17, etc.)
3 Mỗi bit chẵn lẻ tính giá trị chẵn lẻ cho một số bit trong
từ mã (code word). Vị trí của bit chẵn lẻ quyết định
chuỗi các bit mà nó luân phiên kiểm tra và bỏ qua
(skips).
o Vị trí 1 (n=1): bỏ qua 0 bit(n-1), kiểm 1 bit(n), bỏ
qua 1 bit(n), kiểm 1 bit(n), bỏ qua 1 bit(n), v.v.
o Vị trí 2(n=2): bỏ qua 1 bit(n-1), kiểm 2 bit(n), bỏ
qua 2 bit(n), kiểm 2 bit(n), bỏ qua 2 bit(n), v.v.
o Vị trí 4(n=4): bỏ qua 3 bit(n-1), kiểm 4 bit(n), bỏ
qua 4 bit(n), kiểm 4 bit(n), bỏ qua 4 bit(n), v.v.
o Vị trí 8(n=8): bỏ qua 7 bit(n-1), kiểm 8 bit(n), bỏ
qua 8 bit(n), kiểm 8 bit(n), bỏ qua 8 bit(n), v.v.
o Vị trí 16(n=16): bỏ qua 15 bit(n-1), kiểm 16
bit(n), bỏ qua 16 bit(n), kiểm 16 bit(n), bỏ qua 16
bit(n), v.v.
o Vị trí 32(n=32): bỏ qua 31 bit(n-1), kiểm 32

bit(n), bỏ qua 32 bit(n), kiểm 32 bit(n), bỏ qua 32
bit(n), v.v.
o và tiếp tục như trên.
1

Nói cách khác, bit chẵn lẻ tại vị trí 2k kiểm các bit ở các bit

10


ở vị trí t có giá trị logic của phép toán AND giữa k và t là
khác 0

11



×