Bài tập lớn môn KĨ THUẬT TRUYỀN SỐ LIỆU CÁC LOẠI MÃ CHẴN LẺ - Pdf 23

BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA ĐIỆN TỬ
KĨ THUẬT TRUYỀN SỐ LIỆU
ĐỀ TÀI: CÁC LOẠI MÃ CHẴN LẺ
GVHD: Phạm Thị Quỳnh Trang.
SVTH: Vũ Đức Nghiêm
Lê Văn Quân
Phạm Tiến Bách
Lớp: Điện tử 3-K3
Lời nói đầu
Kỹ thuật truyền số liệu là mảng kiến thức cơ sở trong ngành điện tử viễn
thông và công nghệ thông tin, cung cấp cho sinh viên những kiến thức căn
bản và thiết thực nhất về những phương pháp truyền thông tin cũng như xử
lý số tín hiệu khi truyền. Sau khi được học môn Kỹ thuật truyền số liệu
chúng em xin nghiên cứu về đề tài : Các loại mã chẵn lẻ.
Nội dung báo cáo:
 Giới thiệu về lý thuyết mã hóa.
 Tìm hiểu mã chẵn lẻ.
 Mô phỏng.
I. Mã hóa.
- Mã hóa là một ngành của toán học và khoa học điện toán nhằm giải quyết tình
trạng lỗi dễ xảy ra trong quá trình truyền thông số liệu trên các kênh truyền có
độ nhiễu cao, dùng các phương pháp phát hiện và sửa lỗi tinh xảo khiến phần
lớn các lỗi xảy ra có thể được chỉnh sửa. Nó còn xử lý những đặc tính của mã
và do vậy phù hợp với những ứng dụng cụ thể.
Có hai loại mã hóa:
1. Mã hóa nguồn ( mã hóa entropi).
2. Mã hóa kênh truyền ( sửa lỗi ở phía trước).
Cái đầu tiên chúng ta nói đến là mã hóa dùng nguồn. Ý định của phương pháp
này là nén dữ liệu từ chính nguồn của nó, trước khi truyền đi, giúp cho việc

word) hợp lệ và có thể sửa lỗi (error correction) hoặc ít nhất phát hiện các lỗi
xảy ra (error detection). Các mục đích trên không phụ thuộc vào nhau, và mỗi
loại mã có công dụng tối ưu cho một ứng dụng riêng biệt. Những đặc tính mà
mỗi loại mã này cần còn tuỳ thuộc nhiều vào xác suất lỗi xảy ra trong quá trình
truyền thông. Đối với một đĩa CD thông thường, lỗi trong âm thanh xảy ra chủ
yếu là do bụi và những vết xước trên mặt đĩa. Vì thế, các mã được lồng vào với
nhau. Dữ liệu được phân bổ trên toàn bộ mặt đĩa. Tuy không được tốt cho lắm,
song một mã tái diễn đơn giản có thể được dùng làm một ví dụ dễ hiểu. Chẳng
hạn, chúng ta lấy một khối số liệu bit (đại diện cho âm thanh) và truyền gửi
chúng ba lần liền. Bên máy thu, chúng ta kiểm tra cả ba phần lặp lại ở trên, từng
bit từng bit một, rồi lấy cái nào có số bầu cao nhất. Điểm trái khoáy ở đây là,
chúng ta không chỉ truyền gửi các bit theo thứ tự. Chúng ta lồng nó vào với
nhau. Khối dữ liệu này, trước tiên, được chia ra làm 4 khối nhỏ. Sau đó chúng
ta gửi một bit ở khối đầu tiên, tiếp theo một bit ở khối thứ hai v.v tuần tự qua
các khối. Việc này được lặp đi lặp lại ba lần để phân bổ số liệu ra trên bề mặt
đĩa. Trong ngữ cảnh của mã tái diễn đơn giản ở trên, việc làm này hình như
không được hiệu quả cho lắm. Song hiện nay có những mã có hiệu ứng cao, rất
phù hợp với việc sửa lỗi xảy ra đột ngột do một vết xước hay một vết bụi, khi
dùng kỹ thuật lồng số liệu nói trên.
Mỗi mã thường chỉ thích hợp cho một ứng dụng nhất định. Viễn thông trong vũ
trụ (deep space) bị giới hạn bởi nhiễu nhiệt (thermal noise) trong thiết bị thu.
Hiện trạng này không xảy ra một cách đột phát bất thường, song xảy ra theo
một chu trình tiếp diễn. Tương tự như vậy, modem với dải tần hẹp bị hạn chế vì
nhiễu âm tồn tại trong mạng lưới điện thoại. Những nhiễu âm này có thể được
biểu hiện rõ hơn bằng một mô hình âm tạp tiếp diễn. Điện thoại di động "Cell
phones" hay có vấn đề do sự suy sóng nhanh chóng xảy ra. Tần số cao được
dùng có thể gây ra sự suy sóng tín hiệu một cách nhanh chóng (rapid fading),
ngay cả khi máy nhận chỉ dời chỗ vài phân Anh (inches). Một lần nữa, người ta
hiện đã có một loại thuộc hạng Mã hóa trên kênh truyền được thiết kế để đối
đầu với tình trạng suy sóng.

-Xây dựng sơ đồ tạo được bit chẵn, lẻ để thêm vào n bit dữ liệu.
-Xây dựng sơ đồ kiểm tra hệ xem đó là hệ chẵn hay lẻ với (n+1) bit ở
đầu vào (n bit dữ liệu, 1 bit chẵn, lẻ).
- Dữ liệu dạng số khi được lưu trữ, xử lý hay truyền từ máy này qua máy
khác có thể bị lỗi. Như khi truyền dữ liệu đi xa qua môi trường điện thoại,
dây cáp, không gian có thể bị ảnh hưởng của nhiệt độ, nhiễu đường dây,
điện từ… hay do lâu ngày các bộ xử lý, bộ chuyển đổi có một sai sót nhỏ sẽ
làm thay đổi dữ liệu.
• Ví dụ : trong một khối dữ liệu có chữ A mã ASCII là 1000001 sẽ bị
sai thành 1000000, bit sai có thể là bất cứ 1 bit nào khác. Mặc dù
xác suất làm sai chỉ 1 bit trong cả khối dữ liệu là rất nhỏ (trung bình
khoảng 100000 bit mới có một bit sai) nhưng trong nhiều trường
hợp đòi hỏi phải thật chính xác hay giảm hết mức những sai sót nhỏ
này. Có nhiều mạch có thể phát hiện sai và sửa lỗi, ở đây xin nói tới
mạch tạo kiểm parity.
- Có 2 dạng mạch chính là parity chẵn và lẻ. Cả hai đều được sử dụng.
Với parity chẵn : dữ liệu trước khi truyền đi được đếm tổng số bit
Nếu tổng chẵn, bit parity 0 được thêm vào trước mỗi khối dữ liệu truyền.
Nếu tổng lẻ thì bit parity 1 được thêm vào (để nó chẵn).
Ở đầu nhận dữ liệu, mạch sẽ kiểm tra từng khối dữ liệu nhận được xem có
tổng số bit là chẵn hay không. Nếu không thì tức là đã có 1 bit nào đó trong
khối dữ liệu bị sai, ngược lại là mạch truyền đúng.
Với parity lẻ thì ngược lại khối dữ liệu phải được làm lẻ trước khi truyền.
• Ví dụ : truyền 1 khối dữ liệu 4 bit 0101 có sử dụng mạch tạo kiểm
parity để dò sai được minh họa như hình dưới đây:
Mạch tạo kiểm parity.
Giả sử mạch parity chẵn được dùng. Nhận thấy rằng tổng số bit truyền là 3
(lẻ) nên bit parity 1 được thêm vào cho chẵn. Như vậy, dữ liệu truyền đi sẽ
có 5 bit là 11101
Mạch tạo parity trên sử dụng 3 cổng XOR để kiểm tra số bit chẵn hay lẻ,

cũng có thể thực hiện được, như dạng thức 8 bit dữ liệu cộng với
một bit chẵn lẻ có thể dùng để chuyên chở tất cả các giá trị byte 8-
bit.
• Trong ngữ cảnh của truyền thông nối tiếp (serial communication),
bit chẵn lẻ thường được phát sinh và kiểm tra bởi phần cứng giao
thức - chẳng hạn như UART - và khi thu nhận, CPU có thể sử dụng
kết quả nhận được (và hệ điều hành nữa) thông qua bit báo tình hình
(status bit) trong thanh ghi của phần cứng giao thức. Việc khôi phục
lại sau khi tình trạng lỗi xảy ra thường được thi hành bằng cách tái
truyền dữ liệu, và chi tiết của việc này thường là do phần mềm phụ
trách (ví dụ dùng các thường trình nhập/xuất (I/O routine) của hệ
điều hành).
III.Mô phỏng Vb:
Phần giao diện Vb:
Code:
Dim x As Boolean
Dim cd2, cd1, i, d As Integer
Dim st As String
Private Sub Command1_Click() ' tao ma chan
Text3.Text = " "
st = Text1.Text
cd1 = Len(st)
d = 0
For i = 1 To cd1
If Mid(st, i, 1) = "1" Then
d = d + 1
End If
Next
If d Mod 2 = 0 Then
st = 0 & st

st = Text2.Text
Text3.Text = st
End Sub
Private Sub Command5_Click() 'kiem tra
cd2 = Len(st)
d = 0
For i = 1 To cd2
If Mid(st, i, 1) = "1" Then
d = d + 1
End If
Next
If x = True Then 'true ma chan
If d Mod 2 = 0 Then
MsgBox "Truyen Dung", vbOKOnly, "Ket Qua"
Else: MsgBox "Truyen Sai", vbOKOnly, "Thong Bao"
End If
Else 'false ma le
If d Mod 2 = 0 Then
MsgBox "Truyen Sai", vbOKOnly, "Ket Qua"
Else: MsgBox "Truyen Dung", vbOKOnly, "Thong Bao"
End If
End If
End Sub
Private Sub Command6_Click()
End
End Sub


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status