Tổng quátCác thiết bị mã hóa và giải mã có hai loại : Loại thiết bị giải mã đơn giản chỉ phát hiện sai, mà không tự sửađược sai, khi đó nó sẽ yêu cầu bên phát phát lại ARQ Loại thiết
Trang 3Tổng quát
Bảo vệ chống sai trong truyền số liệu nhằm
Bảo vệ thông tin phát đi để chống sai do đường dây gây nên Đểgiải quyết ta đặt giữa nguồn phát và thu một thiết bị mã hóa và giảimã
Bảo mật: ta dùng những mã khóa đặc biệt mà chỉ có bên cần thubiết khóa mã mới giải mã và thu được thông tin
Trang 4Tổng quát
Các thiết bị mã hóa và giải mã có hai loại :
Loại thiết bị giải mã đơn giản chỉ phát hiện sai, mà không tự sửađược sai, khi đó nó sẽ yêu cầu bên phát phát lại (ARQ)
Loại thiết bị giải mã phát hiện sai và tự sửa sai một hoặc hai lỗi sai:như mã khối tuyến tính, mã Hamming, mã vòng,…
Trang 5Lỗi
Trang 6Quá trình phát hiện sai
Trang 7Parity dò 1 bit sai
Trang 9Parity dò 2 bit sai
Để dò ra 2 bit sai => thực hiện đồng thời phép kiểm tra parity tại bítchẳn và bit lẽ
Trang 10Parity dò một chuỗi bit sai
Trang 11Kiểm tra khối – BSC (Block Sum Check)
Sử dụng parity hàng và cột
B 1 B 2 B 3 B 4 B 5 B 6 B 7
Parity (even)
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 Không dò được lỗi sai một số chẵn bit xảy ra đồng thời trên cả hàng và cột.
Trang 12Kiểm tra dư thừa theo chu kỳ - CRC Cyclic 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 13Xác định mã CRC dùng thuật toán Mod-2
Goi T = (k+n) bit là khung thông tin của dũ liệu phát, với n < k
M = k bit dữ liệu, k bit đầu tiên của T
F = n bit cua khung FCS, n bit cuối của T
P = (n+1) bit, số chia trong phép toán
Số T được tạo ra bằng cách dời số M sang trái n bit rồi cộng với
số F : T = 2nM + F
Chia số 2nM cho P ta được :
Phép chia số nhị phân nên số dư luôn nhỏ hơn số chia 1 bit nênlấy số dư này thay cho F: T = 2nM + R
Trang 14CRC
Trang 15Ví dụ 2 – tìm mã CRC
Cho
M = 1010001101 (10 bit)
P = 110101 (6 bit)
Trang 16Dùng phép biễu diễn đa thức
Trang 17Dùng phép biễu diễn đa thức
Trang 18Phát hiện lỗi mã CRC
Dài hơn 1 bit so với FCS mong muốn
Được chọn tùy thuộc vào loại lỗi mong muốn phát hiện
Yêu cầu tối thiểu: msb và lsb phải là 1
Biểu diễn lỗi
Error=nghịch đảo bit Tr = T + E
T: frame được truyền
Tr: frame nhận được
E: error pattern với 1 tại những vị trí lỗi xảy ra
Error không bị phát hiện if Tr chia hết cho P
Các lỗi được phát hiện
Tất cả các lỗi bit đơn
Tất cả các lỗi kép nếu P có ít nhất 3 toán hạng
Một số lẻ lỗi bất kỳ nếu P chứa 1 thừa số (X+1)
Bất kỳ lỗi chùm nào mà chiều dài của chùm nhỏ hơn chiều dài FCS
Hầu hết các lỗi chùm lớn hơn
Trang 19Một số đa thức sinh thông dung
Trang 20Mạch tạo mã CRC
FCS1+
C D
E +
P = 111011
Trang 21Kiểm tra lổi trên mạch thiết kế
D E
+
+ 1010001101
x 2 1
Trang 22Bộ tạo CHECKSUM
Bên phát thực hiện các bước như sau
Bộ tạo checksum sẽ chia dữ liệu thành k phần, mỗi phần n bit (8, 16)
Các phân đoạn này được cộng lại
Lấy bù 1 của kết quả cộng Giá trị này được gắn vào đuôi của
dữ liệu gốc và được gọi là trường checksum
Checksum được truyền cùng với dữ liệu
Trang 23Bộ tạo CHECKSUM
Trang 24Máy thu thực hiện các bước như sau
Bộ kiểm tra checksum sẽ chia các đơn vị dữ liệu thành k phần mỗi phần n bit
Cộng các phần trên, được tổng (Sum)
Lấy bù 1 của tổng
Nếu kết qủa lấy bù là zêrô thì dữ liệu thu không bị sai, nguợc lại
dữ liệu bị sai
Trang 25Bộ tạo CHECKSUM
Trang 27 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 28Quá trình sửa sai
Trang 29 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 30Sửa lỗi – Mã Hamming
Trang 31Hãy xác định mã hamming của DL sau 1010
Trang 32Nén dữ liệu – mã Huffman
Dựa vào xác suất xuất hiện của ký tự
Cách thành lập mã Huffman
B1: xác định trọng lượng của cây, xếp theo chiều tăng dần
B2: chọn 2 cây nhẹ nhất ghép lại thành cây mới có tổng trọng lượng bằng 2 cây cộng lại (nếu nhiều hơn 2 cây nhẹ thì chọn ngẫu nhiên)
B3: lập lại B1 đến khi còn 1 cây duy nhất
Đọc mã: đánh số 0 cho nhánh trái, 1 cho nhánh phải (hoặc ngược lại), đọc
mã từ góc đến ngọn
Tính chiều dài từ mã trung bình Lavg = li x pi
li : chiều dài nguồn tin Xi
pi : xác suất xuất nguồn tin Xi
Trang 33GV: Th.s Lương Hoài Thương 33
Trang 34 Sắp xếp các nguồn tin theo thứ tự giảm dần về xác suất
Chia các nguồn tin thành hai phần có xác suất xấp xỉ nhau và gán 0 cho phần trên, gán 1 cho phần dưới
Lặp lại bước trên cho mỗi phần cho đến khi chỉ còn một nguồn tin
Ghi ra các từ mã
Trang 35Ví dụ
Các nguồn tin và xác suất xuất hiện của các nguồn tin tương ứng
X1 (30%), X2 (20%), X3 (10%), X4 (10%), X5 (20%), X6 (5%), X7 (3%), X8 (2%)
Trang 36Nén dữ liệu Run-length encoding
Thay thế chuỗi bit 0 hoặc 1 bằng số nhị phân
Chỉ hiệu quả khi chuỗi DL chứa nhiều bit 0 (1)
Ví dụ: mã run-length thay thế cho chuỗi số 0
Trang 37Nén dữ liệu Run-length encoding
Kết luận
1 bit 1 giữa các bit 0 thì không đươc mã
2 bít 1 liên tiếp thì xem như 1 chuỗi bit 0
Nếu số 0 nhiều hơn 15 thì: 20=15+5; 30=15+15+0
Nếu chuỗi bắt đầu bằng bit 1 thì máy phát sẽ gữi chuỗi 4 bit 0
Cuối bản tin có tín hiệu kết thúc
Trang 38Nén dữ liệu
Mã vi phân - Differential encoding (tương đối)
Chỉ truyền sự sai khác giữa 2 khung dữ liệu liên tiếp
Chỉ hiệu quả khi sai khác 2 khung không đáng kể
Vd: mã tín hiệu hình ảnh trong video
Trang 39GV: Th.s Lương Hoài Thương 39