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

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

Đ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

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.

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 truyền thông có hiệu quả hơn. Chúng ta chứng kiến thói quen này hằng ngày trên Internet, nhất là trong cách dùng "zip" nén dữ liệu để giảm lượng dữ liệu phải truyền, giảm nhẹ gánh nặng cho mạng lưới truyền thông, đồng thời thu nhỏ cỡ tập tin. Cái thứ hai là mã hóa trên kênh truyền. Bằng việc cộng thêm những bit mới vào trong dữ liệu được truyền, còn gọi là bit chẵn lẻ (parity bits), kỹ thuật này giúp cho việc truyền thông tín hiệu chính xác hơn trong môi trường nhiễu loạn của kênh truyền thông. Có nhiều chương trình ứng dụng, mà người dùng trung bình không để ý đến, sử dụng mã hóa trên kênh truyền. Kỹ thuật Reed-Solomon được dùng để nhằm sửa lỗi do những vết xước và bụi trên bề mặt đĩa âm nhạc CD thông thường. Trong ứng dụng này, kênh truyền thông lại chính là bản thân cái đĩa CD. Điện thoại di động "Cell phones" cũng dùng kỹ thuật mã hóa có hiệu ứng cao (powerful coding technique) để sửa các lỗi trong việc truyền sóng radiô ở tần số cao bị yếu mờ và bị nhiễu. Modem xử lý số liệu, việc truyền thông qua đường điện thoại, và đương nhiên ngay cả chính NASA, tất cả đều sử dụng kỹ thuật mã hóa trên kênh truyền hiệu ứng để truyền những bit số liệu qua đường dây. 1. Mã hóa dung nguồn: Mục đích của mã hóa dùng nguồn là lấy dữ liệu nguồn và thu nhỏ chúng lại. Nguyên lý: Entrôpi của nguồn là một đo đạc về tin tức. Căn bản mà nói, mã của nguồn được dùng để loại bỏ những phần thừa, không cần thiết còn tồn tại trong nguồn, để lại phần nguồn với số lượng bit ít hơn, nhưng với nhiều tin tức hơn. Mỗi loại mã hóa nguồn sử dụng một kỹ thuật khác nhau hòng đạt được giới hạn entrôpi của nguồn. , trong đó H(x) là entrôpi của nguồn (tần số bit), và C(x) là tần số bit sau khi số liệu đã được nén. Cụ thể là, không có phương pháp mã hóa nguồn nào có thể tốt hơn giới hạn entrôpi của ký hiệu (the entropy limit of the symbol). 2. Mã hóa kênh truyền: Mục đích của lý thuyết Mã hóa trên kênh truyền (channel encoding theory) là tìm những mã có thể truyền thông nhanh chóng, chứa đựng nhiều mã ký (code 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. Từ "Lý thuyết mã hóa đại số" ám chỉ để một chi nhánh của lý thuyết mã hóa trên kênh truyền, trong đó đặc tính của mã được biểu hiện bằng các đại số và dựa vào đó mà nghiên cứu sâu hơn. Lý thuyết mã hóa đại số được chia ra làm 2 loại mã chính: a) Mã khối tuyến tính (Linear block codes) Mã khối tuyến tính mang tính năng tuyến tính (linearity), chẳng hạn tổng của hai mã ký nào đấy lại chính là một mã ký; và chúng được ứng dụng vào các bit của nguồn trên từng khối một; cái tên mã khối tuyến tính là vì vậy (linear block codes). Có những khối mã bất tuyến tính, song khó mà chứng minh được rằng một mã nào đó là một mã tốt nếu mã ấy không có đặc tính này. Có nhiều loại mã khối tuyến tính, như:  Mã tuần hoàn (Cyclic codes) (Mã Hamming là một bộ phận nhỏ (subset) của mã tuần hoàn)  Mã tái diễn (Repetition codes)  Mã chẵn lẻ (Parity codes)  Mã Reed-solomon (Reed Solomon codes)  Mã BCH (BCH code)  Mã Reed-muller  Mã hoàn hảo (Perfect codes) b) Mã kết hợp (Convolutional codes) Mã kết hợp (Convolutional codes) được sử dụng trong các modem dải tần âm (voiceband modems) (V.32, V.17, V.34) và trong các điện thoại di động GSM, cũng như trong các thiết bị truyền thông của quân đội vũ trang và trong các thiết bị truyền thông với vệ tinh. II. Mã chẵn lẻ. - Có nhiều phương pháp mã hóa dữ liệu để phát hiện lỗi và sửa lỗi khi truyền dữ liệu tử nơi này sang nơi khác. Phương pháp đơn giản nhất là thêm một bit vào dữ liệu được truyền đi sao cho số chữ số 1 trong dữ liệu luôn là chẵn hoặc lẻ. Bit thêm vào đó được gọi là bit chẵn/lẻ. Để thực hiện được việc truyền dữ liệu theo kiểu đưa thêm bit chẵn, lẻ vào dữ liệu chúng ta phải: -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òn bên nhận mạch kiểm parity dùng 4 cổng XOR để dò sai, nếu dữ liệu truyền đúng thì ra Q = 0, nếu truyền sai thì ra Q = 1. Khi này, mạch nhận có thể truyền về tín hiệu báo truyền sai cho máy gửi để nó truyền lại khối dữ liệu bị lỗi này. Nhận thấy rằng nếu khối dữ liệu truyền bị sai đến 2 bit (xác suất này là rất rất nhỏ) hay bit parity truyền sai thì mạch parity mất tác dụng. - Các mạch xử lý điều khiển hay truyền dữ liệu thường có sẵn khối tạo kiểm và thậm chí có thể sửa lỗi luôn. Còn khi dùng mạch rời thì IC 74180 và họ của nó luôn là thông dụng nhất. - Ứng dụng: • Do đặc tính đơn giản của nó, bit chẵn lẻ được dùng trong rất nhiều ứng dụng phần cứng, những nơi mà việc tái diễn các thao tác khi có trục trặc xảy ra là một việc có thể thực hiện được, hoặc những nơi mà việc phát hiện lỗi đơn thuần là một việc có lợi. Lấy ví dụ, mạch nối SCSI (SCSI bus) dùng bit chẵn lẻ để phát hiện lỗi trong truyền thông, và rất nhiều các phần lưu trữ trong bộ nhớ các lệnh vi xử lý (microprocessor instruction cache) cũng dùng bit chẵn lẻ để bảo trợ hoạt động của nó nữa. Do các dữ liệu trong I-cache chỉ là một bản sao của bộ nhớ chính (main memory), nội dung của nó có thể được xóa đi, nạp lại nếu dữ liệu ở trong chẳng may bị thoái hóa (corrupted). • Trong truyền thông dữ liệu nối tiếp (serial data transmission), dạng thức dữ liệu được dùng phổ thông nhất là dạng thức 7 bit, với một bit chẵn lẻ dùng quy luật số chẵn, một Start bit và một hoặc hai Stop bit để đánh dấu/đồng bộ điểm bắt đầu cũng như kết thúc một byte dữ liệu trong chuỗi bit trên đường truyền. Dạng thức này thích ứng hầu hết các dạng thức 7-bit ký tự ASCII dưới hình thức byte 8-bit. Một byte dữ liệu trên đường truyền nối tiếp sẽ gồm 01 Start bit (bắt đầu), 7 bit dữ liệu, một parity bit và 01 Stop bit (kết thúc). Byte là một hình thức tiện lợi để biểu đạt dữ liệu. Những dạng thức khác 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 Else: st = 1 & st End If Text2.Text = st x = True End Sub Private Sub Command2_Click() ' tao ma le 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 = 1 & st Else: st = 0 & st End If Text2.Text = st x = False End Sub . 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. truyền đúng thì ra Q = 0, nếu truyền sai thì ra Q = 1. Khi này, mạch nhận có thể truyền về tín hiệu báo truyền sai cho máy gửi để nó truyền lại khối dữ liệu bị lỗi này. Nhận thấy rằng nếu khối dữ. 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

Ngày đăng: 03/11/2014, 14:55

Từ khóa liên quan

Mục lục

  • SVTH: Vũ Đức Nghiêm

Tài liệu cùng người dùng

Tài liệu liên quan