1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu và đánh giá một số loại mã điều khiển lỗi thường dùng trong kỹ thuật truyền số liệu, đề tài nckh sinh viên

94 4 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nghiên cứu và đánh giá một số loại mã điều khiển lỗi thường dùng trong kỹ thuật truyền số liệu
Người hướng dẫn TS. Võ Xuân Tựu, ThS. Võ Trường Sơn
Trường học Trường Đại Học Công Nghệ Thông Tin & Truyền Thông - [https://www.uit.edu.vn](https://www.uit.edu.vn)
Chuyên ngành Kỹ thuật truyền số liệu
Thể loại Đề tài nghiên cứu sinh viên
Định dạng
Số trang 94
Dung lượng 1,07 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Đó là cách thức truyền trong đó các kí tự dữ liệu mã hóa thông tin được truyền đi tại những thời điểm khác nhau, mà khoảng thời gian nối tiếp giữa hai kí tự không cần thiết phải là một g

Trang 1

I Các khái niệm cơ bản về truyền số liệu

Khi truyền số liệu giữa hai thiết bị, có thể dùng 1 trong 3 chế độ thông tin sau: + Đơn công: được dùng khi dữ liệu được truyền chỉ theo 1 hướng

+ Bán song công: được dùng khi hai thiết bị kết nối với nhau muốn trao đổi thông tin một cách luân phiên

+ Song công hoàn toàn: được dùng khi số liệu được trao đổi giữa 2 thiết

bị theo cả hai hướng một cách đồng thời

Các chế độ truyền:

1 Truyền bất đồng bộ:

a Đó là cách thức truyền trong đó các kí tự dữ liệu mã hóa thông tin được truyền đi tại những thời điểm khác nhau, mà khoảng thời gian nối tiếp giữa hai

kí tự không cần thiết phải là một giá trị thời gian nối tiếp giữa hai kí tự không cần thiết phải là một giá trị cố định Ở chế độ truyền này, hiểu theo bản chất truyền tín hiệu số thì máy phát và máy thu độc lập trong việc sử dụng đồng hồ, đồng hồ chính là bộ phát xung clock cho việc dịch bit dữ liệu và như vậy không cần kênh truyền tín hiệu đồng bộ giữ hai đầu phát và đầu thu

b Đặc điểm:

- Dữ liệu được truyền theo ký tự (5  8 bits)

+ Chỉ cần giữ đồng bộ trong một ký tự

+ Tái đồng bộ cho mỗi ký tự mới

- Hành vi:

+ Đối với dòng dữ liệu đều, khoảng cách giữa các ký tự là đồng nhất (chiều dài của phần tử stop)

+Ở trạng thái rảnh, bộ thu phát hiện sự chuyển 1  0

+ Lấy mẫu 7 khoảng kế tiếp (chiều dài ký tự)

+ Đợi việc chuyển 1 ≠ 0 cho ký tự kế tiếp

Trang 2

- Hiệu suất: + Đơn giản

+ Phí tổn 2 hoặc 3 bit cho một ký tự (~20%)

+ Thích hợp cho dữ liệu với khoảng trống giữa các ký tự lớn (dữ liệu nhập từ bàn phím)

Trang 3

2 Truyền đồng bộ:

a Đó cách thức truyền trong đó khoảng thời gian cho mỗi bit là như nhau, và trong hệ thống truyền kí tự khoảng thời gian từ bit cuối của kí tự này đến bit đầu của kí tự kế tiếp bằng 0 hoặc bằng bội số tổng thời gian cần thiết truyền hoàn chỉnh một kí tự

b Đặc điểm:

- Truyền không cần start/stop

- Phải có tín hiệu đồng bộ

3 Kiểm soát lỗi: trong quá trình truyền luồng bit giữa 2 DTE (Data Terminal Equipment – Thiết bị đầu cuối dữ liệu), rất thường xảy ra sai lạc thông tin, có

nghĩa là mức tín hiệu tương ứng với bit 0 bị thay đổi làm cho máy thu dịch ra là

bit 1 và ngược lại, đặc biệt khi có khoảng cách vật lý truyền khá xa, ví dụ như dùng mạng PSTN để truyền Vì thế, khí truyền số liệu giữa 2 thiết bị, cần có phương tiện phát lỗi có thể xảy ra lỗi nên có phương tiện sửa chữa chúng

4 Điều khiển luồng dữ liệu: Đây là việc hết sức quan trọng khi hai thiết bị đang truyền thông tin qua mạng số liệu

5 Giao thức liên kết số liệu:

+ Khuôn dạng của mẫu số liệu đang trao đổi, nghĩa là số bit trên một phân tử thông tin và dạng lược đồ đã mã hóa đang được dùng

Trang 4

+ Dạng và thứ tự các thông điệp được trao đổi để đạt được độ tin cậy giữa hai đối tác truyền

6 Mã truyền: mỗi tổ hợp bit nhị phân mang ý nghĩa của một kí tự nào đó theo quy định của từng bộ mã Số lượng bit nhị phân trong một tổ hợp bit nói lên quy mô của một bộ mã hay số kí tự chứa trong bộ mã Nếu gọi n là số bit trong một tổ hợp bit thì kí tự có thể mã hóa là 2n

7 Các đơn vị dữ liệu: Theo đơn vị đo lường dung lượng thông tin thì đơn vị cơ bản là byte

8 Giao thức truyền: là tập hợp các quy định liên quan đến các yếu tố kĩ thuật truyền số liệu

9 Đường nối: là đường kết nối thực tế xuyên qua môi trường truyền, vì vậy nó là đối tượng truyền dẫn mang tính vật lí

10 Thông tin nối tiếp đồng bộ: Việc thêm các Start bit và nhiều Stop bit vào

mỗi kí tự hay byte trong thông tin nối tiếp bất đồng bộ làm cho hiệu suất truyền giảm xuống, đặc biệt là khi truyền một thông điệp gồm một khối kí tự Mặt khác, phương pháp đồng bộ bit được dùng ở đây trở nên thiếu tin cậy khi gia tăng tốc độ truyền Vì lí do này, người ta đưa ra phương pháp mới gọi là truyền đồng bộ, truyền đồng bộ khắc phục những nhược điểm như trên

Trang 5

Nguyên tắc đồng bộ bit: Trong truyền bất đồng bộ, đồng hồ thu chạy một

cách bất đồng bộ với tín hiệu thu Để xử lí thu hiệu quả, cần phải có kế hoạch dùng đồng hồ thu lấy mẫu tín hiệu đến, ngay điểm giao thời của dữ liệu

II Tổng quan về phát hiện lỗi và sửa sai

Điều khiển lỗi:

- Môi trường truyền dẫn bị nhiễu (điện, từ, …)  dữ liệu nhận có lỗi

- 2 cách khắc phục khi phát hiện có lỗi:

+ Forward error control: thông tin sửa sai được thêm vào các ký tự hoặc các frame truyền đi, để bên nhận có thể phát hiện khi nào có lỗi và lỗi nằm ở đâu để sửa (có khả năng sửa lỗi)

Trang 6

+ Feedback (backward) error control: thông tin sửa sai được thêm vào các ký tự hoặc các frame truyền đi chỉ đủ để phát hiện khi nào có lỗi (không có khả năng sửa lỗi) Cơ chế yêu cầu truyền lại ký tự/frame sai được dùng trong trường hợp này

- Cơ chế phát hiện lỗi:

+ BER: xác suất 1 bit đơn bị lỗi trong một thời khoảng nhất định + Phân loại lỗi:

Single-bit error – nhiễu trắng Burst error: chuỗi các bit liên tiếp bị lỗi – nhiễu xung, suy giảm (khi truyền vô tuyến)

Khi dữ liệu được truyền giữa 2 DTE, các tín hiệu điện đại diện luồng bit truyền rất dễ bị thay đổi sai số do nhiều nguyên nhân: đường dây truyền, lưu lượng truyền, loại mã dùng, loại điều chế, loại theiest bị phát thu Đặc biệt là do sự

Trang 7

thâm nhập điện từ cảm ứng lên các đường dây từ các thiết bị điện gần đó Để chống sai khi truyền số liệu thường có 2 cách:

+ Dùng bộ giải mã có khái niệm tự sửa sai

+ Truyền lại 1 bộ phận của dữ liệu để thực hiện việc sửa sai, cách này thường gọi là ARQ – Automatic Repeat reQuest

- Phương pháp thông dụng nhất được dùng để phát hiện lỗi của bit trong truyền không đồng bộ và truyền đồng bộ hướng kí tự là phương pháp parity bit Ngoài ra còn có phương pháp kiểm tra theo ma trận và kiểm tra bằng mã vòng

Hình 1: Những khả năng phát hiện và sửa sai

III Các mã sửa lỗi thường dùng trong truyền số liệu

1 Kiểm tra chẵn lẻ theo kí tự:

- Ta đã biết mã ASCII của mỗi kí tự gồm 7 bit & 1 bit kiểm tra Với kiểm tra chẵn, giá trị của bit kiểm tra la 0 nếu số lượng các bit có giá trị 1 trong

7 bit là chẵn và có giá trị trong trường hợp ngược lại Kiểm tra lẻ thì ngưới lại

Ví dụ: 1001001 1 Kiểm tra chẵn

Trang 8

1001001 0 Kiểm tra lẻ

Vấn đề là trong khi dùng bit kiểm tra, thông thường, nhiều xung kéo dài không phải chỉ có độ dài 1 bit mà là nhiều bit, nhất là khi tốc độ đường truyền tăng cao Với cách kiểm tra trên, nếu số bit sai là chẵn (2, 4, 6) ta không thể phát hiện được

Trang 9

- Để giảm bớt sai số, người ta dùng mã kiểm tra khối BCC

2 Kiểm tra khối

- Quá trình bảo vệ kí tự có thể giảm thiểu sai nếu như người ta dùng cách kierm tra theo chiều ngang (VRC), đồng thời theo chiều dọc (LRC) Khi ta truyền một khối thông tin, người ta gọi là kiểm tra khối nếu như một sai sót nào đó sinh ra tại một bit bất kì, dựa vào các bit kiểm tra ngang và dọc

Trang 10

ta có thể xác định được tọa độ của nó và đương nhiên như vậy ta có thể tìm

ra và sửa nó

- Một frame coi như là một khối kí tự sắp xếp có hai chiều Mỗi kí tự có bit kiểm tra chẵn lẻ Nếu ta sắp xếp các bit của các kí tự đúng vị trí tương ứng từ trên xuống thì ta có một khối các kí tự

Nếu tính theo chiều ngang: R j =b1jb2j⊕ ⊕ b nj

Với Rj: Bit kiểm tra thứ j

bij: Bit thứ I của kí tự thứ j

n: Số lượng bit trong một kí tự

Nếu tính theo chiều dọc ta có:

1 2

C = ⊕b b ⊕ ⊕b

Với: Ci: Bit kiểm tra cột thứ i

m: Số lượng kí tự trong frame

Trang 11

Character 2 b12 b22 … b11 R2

Trang 12

- Đặc điểm: + Không sửa được sai, chỉ sửa được sai khi số bit sai trong

dữ liệu là 1

+ Dò tìm được tất cả các lỗi sai một số lẻ bit và hầu hết các lỗi sai một số chẵn bit

Trang 13

+ Không dò được một số chẵn bit xảy ra đồng thời trên cả hàng và cột

Với H = P I T n k− 

và gọi ma trận kiểm tra chẳn lẻ của mã

Ví dụ: Cho mã tuyến tính (7,4) của ma trận sinh

Trang 14

Ta có thể thiết lập tính chất sau:

Tính chất 1: Một véctơ x là một từ mã khi và chỉ khi nó hội chứng

với 0

xCS x( )=0

b Khoảng cách tối thiểu giữa những từ mã: là một thông số phụ thuộc vào dung lượng đúng của mã Tính chất sau cho phép ta nhận biết khoảng cách tối thiểu đó

Tính chất 2: khoảng cách tối thiểu giữa một từ mã của một mã

tuyến tính bằng trọng lượng tối thiểu của những từ mã

Tính chất 3: Trong một mã tuyến tính, khoảng cách tối thiểu m

tòn tại ít nhất m dòng của ma trận H mà tổng bằng 0 Một cách khác, mỗi một tập con của ít nhất m dòng của H có tổng bằng 0 Từ đó, nếu

Trang 15

c là một từ mã, trọng lượng minimum là m, thì c H T =0, m dòng của

H cũng sẽ có tổng bằng 0

c Sự sửa và tìm sai: Giả thiết C là một từ mã truyền trên kên truyền trực tiếp Bộ giải mã nhận được giá trị:

x= +c e với e=( , ,e1 e n)và gọi là véctơ sai số Nhiệm vụ của bộ giải mã là đánh giá e với khả năng chính xác lớn nhất và trả cho bộ phận thu véctơ n:

c= +x e

Để xác định e, bộ giải mã sắp xếp các véctơ nhận được x và ma trận H cho phép ta tính ra hội chứng S(x) của x x x( ,1 2, ,x n) Hai trường hợp giới thiệu sau đây với triệu chứng bằng 0 hoặc khác 0

- Nếu S(x) = 0, x là từ mã và cũng là véctơ sai số Thông thường khả năng sai P trên các bit là nhỏ, sai số là độc lập và trên truyền là đối xứng nhị phân

Prob (poids e=0) > Prob (poids e ≠ 0)

và vì vậy bộ giải mã quyết định e=0 và hoàn trả bộ thu giá trị x

- Nếu S(x) khác 0, thật sự có sinh ra sai số Dựa vào chiến lược chấp nhận, người ta có thể cho một cảnh báo hoặc cho truyền lại hoặc là có thể tạo quá trình sửa sai trực tiếp Trong trường hợp cuối cùng người ta chọn cho véctơ sai một véctơ hội chứng S(x) với trọng lượng bé nhất Có nhiều cách cho phép giải mã của một mã tuyến tính Một trong các ví dụ chúng ta thử từng phần đơn giản nhất giữa chúng

Trang 16

d Dung lượng sửa sai mật mã: Dung lượng sửa sai mật mã có thể quyết

định bởi tính chất sau:

Tính chất 4: Trên một cây nhị phân tuyến tính và sai số độc lập,

mật mã tuyến tính (n,k) cho phép phát hiện và sửa sai với trọng lượng e≤ khi

và chỉ khi trọng lượng của tất cả các từ mã là tốt nhất với 1 e+

4 Mã CRC (Cyclic Redundancy Check)

Việc nghiên cứu mã tuyến tính ở trên nhằm mục đích sao cho có thể tìm được một họ mã có đủ tính chất sau:

• Mã hóa và giải mã đơn giản

• Khả năng tìm và sửa chữa độc lập theo các mã đã truyền

Sửa lỗi:

- Sửa các lỗi được phát hiện thông thường yêu cầu truyền lại khối dữ liệu

- Không thích hợp cho các ứng dụng trao đổi dữ liệu không dây:

+ BER cao: Truyền lại nhiều

+ Thời gian trễ truyền lớn hơn nhiều so với thời gian truyền dữ liệu (vd truyền vệ tinh): Khối dữ liệu được truyền lại bị lỗi và nhiều khối dữ liệu khác tiếp theo

- Cần thiết phải sửa lỗi dựa vào các dữ liệu nhận được

Trang 17

Quá trình sửa sai:

- Mỗi khối dữ liệu k bit được ánh xạ vào khối n bit (n>k)

+ Từ mã – Codeword

+Forward error correction (FEC) encoder

- Codeword được truyền đi

- Chuỗi bit nhận được tương tự như chuỗi được truyền đi, nhưng có chứa lỗi:

+ Codeword được gởi tới bộ giải mã FEC

+ Nếu không có lỗi, trích xuất khối dữ liệu ban đầu

+ Một vài mẫu lỗi có thể được phát hiện và sửa lỗi

+ Một vài mẫu lỗi có thể được phát hiện nhưng không sửa được

+ Một vài mẫu lỗi có thể không được phát hiện (ít xảy ra) + FEC trích xuất khối dữ liệu sai

Trang 18

Ở phần trên ta đã thấy việc kiểm tra theo VRC và LRC còn những sai sót mà ta khó tránh khỏi, mới mã VRC nếu sai số theo chiều V là số chẵn bit thì bit kiểm tra cũng không có gì thay đổi Tương tự, nếu ta có bit sai là 2n, ta cũng không thể phát hiện gì được Mã vòng với kiểm tra CRC có nhiều hiệu quả hơn trong việc thông báo lỗi

Định nghĩa: Mã vòng (n,k) là một mã tuyến tính (n,k) với sự hoán vị vòng của một từ mã:

Số chia) = Số bị chia

Đa thức sinh Kích thước cố định (Nhỏ hơn số chia)

Trang 19

* Ta lấy ví dụ: dãy bit là 11100101, dãy đa thức sinh x 4 + x 3 + 1

Tại đầu thu, ta lấy đa thức sinh chia cho phần thông tin thu được, nếu trùng CRC thì thong tin đó có thể đúng, còn như khác thì chắc chắn sai

• Đa thức sinh chuẩn Quốc tế:

o CRC-16 = x16 + x12 + x5 + x

o CRC-CCITT = x16 + x12 + x5 + 1

o CRC-32 = x32 + x26 + x16 + x12 + x11 + x10 + x5 + x4 + x2 + x + 1 Với cách dùng mã CRC để kiểm tra thì độ tin cậy cao, cụ thể như sau

+ Lỗi 1 bit: 100%

+ Lỗi 2 bit: 100%

+ Lỗi lẻ bit 100%

+ Lỗi cụm bit <16bit: 100%

+ Lỗi cụm bit: 99,9984%

Trang 20

• Ngoài ra còn có cách khác để tạo CRC:

- Phương pháp tạo CRC bao gồm việc dịch thông báo sang trái và chia cho một hàm cho trước với modul 2 Kết quả dư lại của phép chia chính là CRC và được truyền theo thông báo Bên thu sau khi nhận được thông báo, người ta cũng đem chia cho hàn biết trước như bên phát Nếu kết quả bằng 0 thì phép truyền không có sai số

- Trong thực tế, nếu dùng cách kiểm tra CRC kết hợp với ARQ thì hiệu quả rất cao

- Cách tính CRC gồm 4 bước:

+ Bước 1: Chuyển thông báo nhị phân thành đa thức: M(x)

Chọn hàm G(x) = xc + 1 (thường G(x) cho trc tùy ý giá trị c) + Bước 2:

Trang 21

G(x) = x 4 + x 3 +1 Bước 2:

x88 x77 x64 x5 x4

+ + + ++ +

x66 x55 2

++ +

Trang 22

• Thu và kiểm tra CRC

Để kiểm tra sai số khi truyền, bộ phận thu đen khối thông tin thu được

chia cho G(x) theo modul 2 Nếu phần dư còn lại là 0, mã nhận được là

đúng, nếu phần dư khác 0 thì kết quả nhận không đúng

x88 x77 x64 x5 x4 x2

+ + + + ++ +

x66 x55 x22

+ ++ +

0

7 5 4 2

x + + +x x x

Trang 23

5 Mã sửa sai – Mã Hamming

* Các mã trước thời kỳ của Hamming

Nhiều mã phát hiện lỗi đơn giản đã được sử dụng trước khi có mã Hamming, nhưng không có mã nào hiệu quả bằng mã Hamming với một tổng phí tương đương

- Mã chẵn lẻ: Mã chẵn lẻ thêm một bit vào trong dữ liệu, và bit cho thêm này cho biết số lượng bit có giá trị 1 của đoạn dữ liệu nằm trước là một số chẵn hay một số lẻ Nếu một bit bị thay đổi trong quá trình truyền dữ liệu, giá trị chẵn lẻ trong thông điệp sẽ thay đổi và do đó có thể phát hiện được lỗi (Chú ý rằng bit bị thay đổi có thể lại chính là bit kiểm tra) Theo quy ước chung, bit kiểm tra có giá trị bằng 1 nếu số lượng bit có giá trị 1 trong dữ liệu là một số lẻ, và giá trị của bit kiểm tra bằng 0 nếu số lượng bit có giá trị 1 trong dữ liệu là một số chẵn Nói cách khác, nếu đoạn dữ liệu và bit kiểm tra được gộp lại cùng với nhau, số lượng bit có giá trị bằng 1 luôn luôn là một số chẵn

Việc kiểm tra dùng mã chẵn lẻ là một việc không được chắc chắn cho lắm, vì nếu số bit bị thay đổi là một số chẵn (2, 4, 6 - cả hai, bốn hoặc sáu bit đều bị hoán vị) thì mã này không phát hiện được lỗi Hơn nữa, mã chẵn lẻ không biết được bit nào là bit bị lỗi, kể cả khi nó phát hiện là có lỗi xảy

ra Toàn bộ dữ liệu đã nhận được phải bỏ đi, và phải truyền lại từ đầu Trên một kênh truyền bị nhiễu, việc truyền nhận thành công có thể mất rất nhiều thời gian, nhiều khi còn không truyền được nữa Mặc dù việc kiểm tra bằng mã chẵn lẻ không được tốt cho lắm, song vì nó chỉ dùng 1 bit để kiểm tra cho nên nó có số tổng phí (overhead) thấp nhất, đồng thời, nó cho

Trang 24

phép phục hồi bit bị thất lạc nếu người ta biết được vị trí của bit bị thất lạc nằm ở đâu

- Mã Hai trong Năm: Trong những năm của thập niên kỷ 1940, Bell có sử dụng một mã hiệu phức tạp hơn một chút, gọi là mã hai-trong-năm (two-out-of-five code) Mã này đảm bảo mỗi một khối 5 bit (còn được gọi là khối-5) có chính xác hai bit có giá trị bằng 1 Máy tính có thể nhận ra là dữ liệu nhập vào có lỗi nếu trong một khối 5 bit không 2 bit có giá trị bằng 1 Tuy thế, mã hai-trong-năm cũng chỉ có thể phát hiện được một đơn vị bit mà thôi; nếu trong cùng một khối, một bit bị lộn ngược thành giá trị 1, và một bit khác bị lộn ngược thành giá trị 0, quy luật hai-trong-năm vẫn cho một giá trị đúng (remained true), và do đó nó không phát hiện là có lỗi xảy

ra

- Tái diễn dữ liệu: Một mã nữa được dùng trong thời gian này là mã hoạt động bằng cách nhắc đi nhắc lại bit dữ liệu vài lần (tái diễn bit được truyền) để đảm bảo bit dữ liệu được truyền, truyền đến nơi nhận trọn vẹn Chẳng hạn, nếu bit dữ liệu cần được truyền có giá trị bằng 1, một mã tái diễn n=3 sẽ cho truyền gửi giá trị "111" Nếu ba bit nhận được không giống nhau, thì hiện trạng này báo cho ta biết rằng, lỗi trong truyền thông đã xảy ra Nếu kênh truyền không bị nhiễu, tương đối đảm bảo, thì với hầu hết các lần truyền, trong nhóm ba bit được gửi, chỉ có một bit là bị thay đổi

Do đó các nhóm 001, 010, và 100 đều tương đương cho một bit có giá trị 0, và các nhóm 110, 101, và 011 đều tương đương cho một bit có giá trị 1 (lưu

ý số lượng bit có giá trị 0 trong các nhóm được coi là có giá trị 0, là đa số

so với tổng số bit trong nhóm, hay 2 trong 3 bit, tương đương như vậy, các nhóm được coi là giá trị 1 có số lượng bit bằng 1 nhiều hơn là các bit có giá

Trang 25

trị 0 trong nhóm) chẳng khác gì việc các nhóm bit được đối xử như là "các phiếu bầu" cho bit dữ liệu gốc vậy Một mã có khả năng tái dựng lại thông điệp gốc trong một môi trường nhiễu lỗi được gọi là mã "sửa lỗi" (error-correcting code)

Tuy nhiên, những mã này không thể sửa tất cả các lỗi một cách đúng đắn hoàn toàn Chẳng hạn chúng ta có một ví dụ sau: nếu một kênh truyền đảo ngược hai bit và do đó máy nhận thu được giá trị "001", hệ thống máy sẽ phát hiện là có lỗi xảy ra, song lại kết luận rằng bit dữ liệu gốc là bit có giá trị bằng 0 Đây là một kết luận sai lầm Nếu chúng ta tăng số lần các bit được nhắc lại lên 4 lần, chúng ta có thể phát hiện tất cả các trường hợp khi 2 bit bị lỗi, song chúng ta không thể sửa chữa chúng được (số phiếu bầu "hòa"); với số lần nhắc lại là 5 lần, chúng ta có thể sửa chữa tất cả các trường hợp 2 bit bị lỗi, song không thể phát hiện ra các trường hợp 3 bit bị lỗi

Nói chung, mã tái diễn là một mã hết sức không hiệu quả, giảm công suất xuống 3 lần so với trường hợp đầu tiên trong ví dụ trên của chúng ta, và công suất làm việc giảm xuống một cách nhanh tróng nếu chúng ta tăng số lần các bit được nhắc lại với mục đích để sửa nhiều lỗi hơn

Vấn đề là nếu khi mã hóa kí tự ta sử dụng n bit thì với n bit ta có được 2n kí tự Nhưng nếu như vậy thì vấn đề tìm sai và sửa sai không thể thực hiện được

Trang 26

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 ) thực ra là vị trí 2 0 , 2 1 , 2 2

Trang 27

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 ( 3

2 =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

- Nếu ta thêm 1 bit để kiểm tra thì có thể tìm được những sai sốt đơn giản (nhu VRX, LRC)

Trang 28

- Ngài Hamming của phòng thí nghiệm Bell đã đưa ra một đề án về mã

khoảng cách Theo Hamming, khoảng cách Hamming giữa hai từ mã bằng số lượng bit khác nhau giữa chúng

Ví dụ: B = 1000010

Khoảng cách là 1

Điều đó cho ta khảng năng ở bộ thu sau khi kiểm tra có thể sửa sai trong một giới hạn nào đó bit sai

- Hamming đã phát triển thành mã Hamming, để có thể thấy được rõ ràng tác dụng đó, ta có thể lấy ví dụ cho hệ 16 (O16 – F16) Thông thường để biểu thị từ 0 đến F ta chỉ cần 4 bit Nếu dùng 6 bit để biểu thị, ở bộ thu ta có thể phát hiện được 2 bit sai và có thể sửa từng bit

- 7 mã của từ mã bao gồm: 4 bit biểu thị thông báo m3m2m1m0 và 3 bit kiểm tra c2c1c0

- Mỗi từ mã có dạng: m 3 m 2 m 1 c 2 m 0 c 1 c 0

Các giá trị của c2c1c0 được tính như sau”

Trang 29

- Khi bộ phận thu thu được một từ mã, có thể tính lại 3 giá trị kiểm tra P0, P1, P2 như sau

hai-trong-3

Trang 30

Hamming còn phát hiện ra vấn đề 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

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:

1 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 hay nói cách khác 20, 21,

22, 23, 24, 25, 26 )

Trang 31

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, )

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)

* 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ị 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ị 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ị 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ị 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ị 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à tiếp tục như trên…

Nói cách khác, bit chẵn lẻ tại vị trí 2k kiểm các bit ở các vị trí bit k có giá trị bằng 1(2) (the bit is set) Ngược lại, lấy ví dụ bit 13 chẳng hạn 1101(2), được kiểm bởi các bit 1000(2) = 8(10), 0100(2)=4(10) và 0001(2) = 1(10)

Ví dụ dùng (11,7) mã Hamming:

Trang 32

Có một từ dữ liệu dài 7 bit với giá trị là 0110101 Để chứng minh phương pháp các mã Hamming được tính toán và được sử dụng để kiểm tra lỗi, xin xem

bảng liệt kê dưới đây Chữ d (data) được dùng để biểu thị các bit dữ liệu và chữ p

(parity) để biểu thị các bit chẵn lẻ (parity bits)

Đầu tiên, các bit của dữ liệu được đặt vào vị trí tương thích của chúng, sau đó các bit chẵn lẻ cho mỗi trường hợp được tính toán dùng quy luật bit chẵn lẻ số chẵn

Thứ tự bit 1 2 3 4 5 6 7 8 9 10 11

Vị trí bit chẵn lẻ và các

bit dữ liệu p 1 p 2 d 1 p 3 d 2 d 3 d 4 p 4 d 5 d 6 d 7 Nhóm dữ liệu

(không có bit chẵn lẻ) 0 1 1 0 1 0 1

(với bit chẵn lẻ) 1 0 0 0 1 1 0 0 1 0 1

Cách tính các bit chẵn lẻ trong mã Hamming (từ trái sang phải)

Thứ tự bit 1 2 3 4 5 6 7 8 9 10 11

Vị trí bit chẵn lẻ và các

bit dữ liệu p 1 p 2 d 1 p 3 d 2 d 3 d 4 p 4 d 5 d 6 d 7 Kiểm tra chẵn lẻ Bit chẵn lẻ Nhóm dữ liệu

(không có bit chẵn lẻ) 1 0 1 0 1 0 1

Trang 33

Bước cuối cùng là định giá trị của các bit chẵn lẻ (nên nhớ bit nằm dưới cùng được viết về bên phải - viết ngược lại từ dưới lên trên) Giá trị số nguyên của các bit chẵn lẻ là 11(10), và như vậy có nghĩa là bit thứ 11 trong nhóm dữ liệu (data word) - bao gồm cả các bit chẵn lẻ - là bit có giá trị không đúng, và bit này cần phải đổi ngược lại

10001100101

Trang 34

Bằng việc bỏ đi phần mã Hamming, chúng ta lấy được phần dữ liệu gốc với giá trị là

0110101 Cuối cùng, giả sử có hai bit biến đổi, tại vị trí x và y Nếu x và y có cùng một bit tại vị trí 2 k trong đại diện nhị phân của chúng, thì bit chẵn lẻ tương ứng với vị trí đấy kiểm tra cả hai bit, và do đó sẽ giữ nguyên giá trị, không thay đổi Song một số bit chẵn lẻ nào đấy nhất định phải bị thay đổi, vì x ≠ y, và vì thế hai bit tương ứng nào đó có giá trị x và y khác nhau Do vậy, mã Hamming phát hiện tất cả các lỗi do hai bit bị thay đổi - song nó không phân biệt được chúng với các lỗi do 1 bit bị thay đổi

Hiện nay, khi nói đến mã Hamming người ta thực ra muốn nói đến mã (7,4) mà Hamming công bố năm 1950 Với mỗi nhóm 4 bit dữ liệu, mã Hamming thêm 3 bit kiểm tra Thuật toán (7,4) của Hamming có thể sửa chữa bất cứ một bit lỗi nào, và phát hiện tất cả lỗi của 1 bit, và các lỗi của 2 bit gây

ra Điều này có nghĩa là đối với tất cả các phương tiện truyền thông không có chùm lỗi đột phát (burst errors) xảy ra, mã (7,4) của Hamming rất có hiệu quả (trừ phi phương tiện truyền thông có độ nhiễu rất cao thì nó mới có thể gây cho

2 bit trong số 7 bit truyền bị đảo lộn)

Ví dụ về cách dùng các ma trận thông qua GF(2)

Nguyên lý của mã Hamming bắt nguồn từ việc khai triển và mở rộng quan điểm chẵn lẻ Việc khai triển này bắt đầu bằng việc nhân các ma trận, được gọi là Ma trận Hamming (Hamming matrices), với nhau Đối với mã Hamming (7,4), chúng

ta sử dụng hai mã trận có liên quan gần gũi, và đặt tên cho chúng là:

Trang 35

Ta dùng một nhóm 4 bit dữ liệu (số 4 trong cái tên của mã là vì vậy) chủ chốt, và cộng thêm vào đó 3 bit dữ liệu thừa (vì 4 3 7 + = nên mới có số 7 trong cái tên của mã) Để truyền gửi dữ liệu, chúng ta hãy nhóm các bit dữ liệu mà

mình muốn gửi thành một vectơ Lấy ví dụ, nếu dữ liệu là 1011 thì vectơ của nó

là:

1011

Trang 36

Giả sử, chúng ta muốn truyền gửi dữ liệu trên Chúng ta tìm tích của H e và p, với

các giá trị module 2

01

10

11

Máy thu sẽ nhân H d với r, để kiểm tra xem có lỗi xảy ra hay không Thi hành tính

nhân này, máy thu được (một lần nữa, các giá trị đồng dư module 2):

10

xảy ra trong khi truyền thông, r sẽ nằm nguyên trong hạch của H d và phép nhân sẽ cho kết quả một vectơ toàn số 0

Trang 37

Trong một trường hợp khác, nếu chúng ta giả sử là lỗi một bit đã xảy ra Trong toán học, chúng ta có thể viết:

i

r + e

Module 2, trong đó e i là vectơ đơn vị đứng thứ i, có nghĩa là một vectơ số 0 có một giá trị 1 trong vị trí i Biểu thức trên nói cho chúng ta biết rằng có một bit bị lỗi tại vị trí i

Nếu ta nhân H d với cả hai vectơ này:

Giả sử ta có:

2

1111010

Trang 38

Nếu thi hành phép nhân:

11

Tích của phép nhân cho chúng ta một kết quả tương đương với cột thứ 2 (010

tương đương với giá trị 2 trong số thập phân), và do đó, chúng ta biết rằng lỗi đã xảy ra ở vị trí thứ 2 trong hàng dữ liệu, và vì vậy có thể sửa được lỗi

Chúng ta có thể dễ dàng thấy rằng, việc sửa lỗi do 1 bit bị đảo lộn gây ra, dùng phương pháp trên là một việc thực hiện được Bên cạnh đó, mã Hamming còn có thể phát hiện lỗi do 1 bit hoặc 2 bit bị đảo lộn gây ra, dùng tích của H d khi tích này không cho một vectơ số không Tuy thế, song mã Hamming không thể hoàn thành cả hai việc

6 Mã BCH nhị phân (Bose Chaudhuri Hocquenghem)

- Đây là mã vòng có khả năng sửa được nhiều lỗi Sau đây chúng ta sẽ đưa

ra được quy trình để xây dựng mã BCH nhị phân có khả năng sửa được nhiều lỗi

- Đối với các số nguyên dương m và t bất kì chúng ta sẽ xây dựng một mã BCH nhị phân có các thông số sau:

+ Độ dài từ mã: n=2m −1

+ Số bit kiểm tra: n− ≤k mt

+ Khoảng cách Hamming: dmin ≥2t+1

Trang 39

Trước hết chúng ta chứng minh định lí sau:

Cho a là một phần tử của trường GF(2 m ) có đa thức tối thiểu là một đa thức căn bản bậc m Thì mã có ma trận sau làm ma trận kiểm tra là một mã

vòng có khoảng cách Hamming 2 1≥ t+ , trong đó mỗi phần tử trong ma trận bên dưới được thay thế bằng véctơ m thành phần tương ứng của nó

Hơn nữa đa thức sinh g(x) của bộ mã là đa thức bội số chung nhỏ nhất của các

đa thức tối thiểu của các phần tử a, a3, a5,…, a2t-1

Ví dụ: cho m = 4, t = 2 chúng ta sẽ xây dựng một mã vòng có chiều dài từ mã là 4

2 − =1 15 và có khoảng cách Hamming d ≥ Chúng ta sẽ xây dựng bằng 5

cách dựa vào trường GF(2 4 ) Cho a là phần tử có đa thức tối thiểu là đa thức căn bản có bậc 4 sau:

4

1( ) 1

f x = + + x x Trường này chính là trường GF(2 4 ) ,a có chu kì _

2 1 15m

n= = .Chúng ta có ma trận kiểm tra của bộ mã như sau

Trang 40

Thay mỗi phần tử a i bằng véctơ (m= 4 thành phần) tương ứng ta được

Và đa thức sinh g(x) là bội số của hai đa thức tối thiểu tương ứng với phần tử a và

a 3 Ta có đa thức tối thiểu của a 3 là 2 3 4

3 ( ) 1

f x = + +x x +x +x Suy ra: g x( )= f x1( ) *f x3( ) 4 2 3 4

a Khái niệm: mã LDPC lã mã kiểm tra chẵn lẻ mật độ thấp hay còn gọi

là mã Gallager, được đề xuất bởi Gallager năm 1962 Ngày nay, người ta đã chứng minh được các mã LDPC không đều có độ dài khối lớn có thể tiệm cận giới hạn Shannon Về cơ bản đây là một loại mã khối tuyến tính có đặc điểm là các ma trận kiểm tra chẵn lẻ (H) là các ma trận thưa, tức là có hâu hết các phân tử là 0, chỉ một số ít là 1 Theo định nghĩa của Gallager, ma trận kiểm tra chẵn lẻ của mã LDPC còn có đặc điểm là mỗi hàng chứa đúng i phần tử 1 và mỗi cột chứa đúng j phần tử 1 Một mã LDPC như vậy sẽ được gọi là một mã là LDPC

Ngày đăng: 31/05/2023, 09:02

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Kĩù thuật truyền số liệu (Phạm Ngọc Đỉnh) Sách, tạp chí
Tiêu đề: Kĩù thuật truyền số liệu
Tác giả: Phạm Ngọc Đỉnh
2. Error control coding: Fundamentals and applications (Shu Lin &amp; Daniel J. Costello, Jr.) Sách, tạp chí
Tiêu đề: Error control coding: Fundamentals and applications
Tác giả: Shu Lin, Daniel J. Costello, Jr
3. Kĩ thuật truyền số liệu (Nguyễn Văn Thưởng) Sách, tạp chí
Tiêu đề: Kĩ thuật truyền số liệu
Tác giả: Nguyễn Văn Thưởng
4. Lí thuyeát thoâng tin (Hoà Vaên Quaân) Sách, tạp chí
Tiêu đề: Lí thuyeát thoâng tin
Tác giả: Hoà Vaên Quaân
5. Truyền số liệu (Đại Học Bách khoa Thành phố Hồ Chí Minh) Khác

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w