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

Mô phỏng mã hóa và giải mã chập

41 1.6K 8

Đ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

Mô phỏng mã hóa và giải mã chập

Lời nói đầu Trong lĩnh vực truyền thông, các quá trình mã hóa và giải mã được sử dụng nhiều với các chức năng khác nhau nhằm đảm bảo tính bảo mật, độ tin cậy cao khi truyền tin. Do đó, việc xây dựng các phương pháp mã hóa, giải mã, việc chọn lựa các tham số cho bộ tạo mã (encoder) và các bộ giải mã (decoder) là rất quan trọng trong truyền tin an toàn. Cho đến nay, thông thường các phương pháp mã hóa và giải mã chỉ được phân tích trên cơ sở phương pháp xử lý tín hiệu truyền thống, biểu diễn theo thời gian, tần số hay không gian. Tuy vậy, dù được phân tích trên cơ sở nào, thì việc thiết lập các bộ tạo mã hay giải mã đều được thực hiện dựa vào các mô hình khối ở bước ban đầu. Hay nói cách khác, việc thiết lập các bộ tạo mã hay giải mã chính là việc xây dựng một mô hình hệ thống với đầu vào là tin tức, đầu ra là các từ mã và các biến trạng thái có trong hệ thống. Vì vậy, việc nhìn nhận mã hóa và giải mã trên quan điểm lý thuyết hệ thống là có cơ sở thực hiện. Đặc biệt, việc nghiên cứumã sửa sai trên quan điểm lý thuyết hệ thống có tầm quan trọng đối với việc tìm các mã có khả năng sửa sai tốt, cần ít bit dư thừa, hay tìm ra các mã mạnh kết hợp với khả năng quan sát, điều khiển đồng thời để tối ưu hóa quá trình mã hóa và giải mã. Trong khuôn khổ của môn học, mã chập được sử dụng để phân tích và làm rõ thêm về việc biểu diễn mã trong không gian trạng thái. Ngoài ra, project còn biểu diễn một bộ tạo mã và giải mã chập sử dụng phần mềm Matlab2010 nhằm có cái nhìn rõ hơn về quá trình tạo mã và giải mã. Do hạn chế về thời gian tìm hiểu nên để tài còn nhiều thiếu sót và kính mong cô chỉ bảo để đề tại được bổ sung trong thời gian tới. Page 1 Mục Lục Chương 1.Lý thuyết về mã chập............................................................................................ 3 1.1. Bộ tạo mã chập ................................................................................................. 3 1.2. Bộ giải mã chập................................................................................................. 5 Chương 2: Mô phỏng bộ mã hóa và giải mã mã chập ............................................................. 8 2.1. Mô hình của bộ mã hóa ..................................................................................... 8 2.2. Kết quả mô phỏng ........................................................................................... 10 Kết luận ............................................................................................................................. 12 Tài liệu tham khảo ............................................................................................................. 13 Page 2 Chương 1.Lý thuyết về mã chập 1.1. Bộ tạo mã chập Mã chập là một loại mã sửa sai được sử dụng trong mã hóa kênh với từ mã được tạo ra nhờ việc cộng các bit thông tin và các bit có trong các thanh ghi dịch. Để tạo ra mã chập, ta dùng bộ lập mã chập có nguyên tắc hoạt động dựa vào việc “chập” dòng bit thông tin đầu vào với đáp ứng xung của bộ tạo mã. Do đó, một dãy thông tin nhị phân u được chia thành kí tự dk=(dk(0),…..,dk(k-1)). Các kí tự này được ánh xạ thông qua bộ tạo mã gồm n bit. Hai tham số quan trọng của một từ mã chập là tốc độ mã R = k/n và độ dài ràng buộc Kc = M+1 với M là số lượng các thanh ghi dịch có trong bộ mã (độ dài ràng buộc là thời gian trải rộng của các bit mà mỗi bít đầu vào ảnh hưởng lên). Hình 1 mô tả một bộ giải mã có tốc độ là ½, độ dài ràng buộc Kc = 3. Hình 1. Sơ đồ khối và sơ đồ chuyển trạng thái của bộ tạo mã chập Hình 1 cũng chỉ ra sơ đồ chuyển trạng thái tương ứng với các thanh ghi dịch phía bên trái.Với các mã chập, việc mô tả bộ tạo mã bằng sơ đồ trạng thái sẽ thuận lợi hơn. Nếu bộ lập mã có M thanh ghi dịch thì sẽ có 2M trạng thái S(m) với m = 0,…,2M-1. Mỗi trạng thái được biểu diễn bởi một nút và sử chuyển đổi các trạng thái được biểu diễn bằng các mũi tên. Trên các mũi tên mô tả bit đầu vào dk tương ứng với các kí tự đầu ra xk được viết là dk/xk(0)x(1)k. Biểu đồ mắt cáo (trellis diagram) trong hình 2 mô tả sự chuyển đổi các trạng thái theo thời gian. Với mỗi đầu vào dk, biểu đồ mắt cáo sẽ có tất cả các khả năng dịch chuyển trạng thái có thể xảy ra. Page 3 Hình 2. Biểu đồ mắt cáo thể hiện quá trình chuyển trạng thái theo thời gian Giả sử trạng thái ban đầu của bộ tạo mã là trạng thái S(0). Biểu đồ mắt cáo có thể được chia thành 3 pha: Với một bản tin có chiều dài là L, sau pha khởi tạo của M bit được mã hóa dk, sẽ có L – M segment giống hệ nhau. Sau khi bản tin có chiều dài L được mã hóa hết, thì bộ tạo mã sẽ chuyển về trạng thái ban đầu bằng cách thêm vào M kí tự. Do đó, chiều dài của từ mã được tăng lên LT = L + M. Kĩ thuật thêm M kí tự này sẽ làm cải thiện khả năng bị lỗi tại điểm cuối của bản tin được mã hóa. Để hiểu rõ hơn về biểu đồ mắt cáo, ta xem xét hình 3. Hình 3 biểu diễn quá trình tạo từ mã sử dụng biểu đồ mắt cáo với bản tin có độ dài 12 bit với nội dung d= (0,1,0,1,1,0,0,1,1,1,0,0) và được 24 bit từ mã đầu ra xk Hình 3. Ví dụ về sử dụng biểu đồ mắt cáo với đầu vào cho trước Page 4 1.2. Bộ giải mã chập Có nhiều phương pháp giải mã chập. Tuy nhiên, trong project này, chúng ta sẽ đề cập đến thuật toán giải mã chập Viterbi. Lý thuyết chung của thuật toán này là nhằm tìm ra đường ngắn nhất có trong biểu đồ mắt cáo , đường dẫn đến một trạng thái S(k) phải là đường ngắn nhất có thể. Thuật toán này có thể được chia thành hai bước: 1) tính toán giá nhánh (branch metric), giá đường (path metric) và các bit quyết định. 2) traceback. Trong pha 1, sự sai khác giữa kí tự nhận yk và tất cả các kí tự khác mà có khả năng nhận được được tính toán. Trong trường hợp hard decision mà các kí tự chỉ là bit 0 hoặc 1, thì khoảng cách Hamming đươc sử dụng để tính brach metric. Khoảng cách Hamming sẽ tính số bit sai khác trong kí tự nhận được với số bit trong các kí tự có khả năng nhận được. Trong ví dụ ở phần 1, khoảng cách Hamming có thể là 0, 1, 2. Kết quả sẽ được lưu trong path metric.Với mỗi bước k, khoảng cách Hamming cho mỗi trạng thái Sk được tính toán và được cộng vào path metric của các trạng thái trước đó (k-1). Trong pha thứ 2, thuật toán Viterbi sẽ dò ngược lại để xác định ra chuỗi kí tự gần nhất. Trạng thái ban đầu trong pha dò ngược là trạng thái có path metric thấp nhất. Để hiểu rõ hơn về thuật toán Viterbi. Chúng ta tiếp tục xét ví dụ trong phần 1 với từ mã cuối cùng nhận được yk bị sai khác so với từ mã sau bộ lập mã xk do quá trình truyền dữ liệu. (Hình 4) Hình 4. Ví dụ về thuật toán Virterbi Page 5 Sau quá trình truyền, yk bị sai khác so với xk tại những bit được tô màu đỏ như trên hình 4. Bước đầu để giải mã kí tự thu là tạo ra bảng tra LUT mô tả sơ đồ chuyển trạng thái. Bảng tra này được dùng để tính toán khoảng cách Hamming. Hình 5. Ma trận chuyển trạng thái Như trong hình 4, S(0) sẽ chuyển đến 1 trong hai trạng thái là S(0) hoặc S(2) sau khi nhận kí tự truyền đầu tiên. Do kí tự nhận được y1 = 00, nên kí tự này sẽ được so sánh với hai kí tự tại hai trạng thái chuyển có thể có là S(0) và S(2). Nếu S(0)-> S(0) thì khoảng cách Hamming là 0 và nếu chuyển tới S(2) thì khoảng cách Hamming là 2. Giá trị này sẽ được lưu lại tại các nút tương ứng bên trong mắt cáo.Giá trị này sẽ được tiếp tục tính toán tại các mắt khác nhau sau mỗi lẫn chuyển trạng thái và được cộng dồn cả giá trị của trạng thái trước. Tại mỗi trạng thái, sẽ có những giá trị path metric của các trạng thái trước đó được cộng dồn , những giá trị này được so sánh với nhau và giá trị nhỏ hơn sẽ được trọn là path metric tại thời điểm đó. Nối tất cả các mắt cáo có path metric nhỏ nhất tại từng thời điểm, ta sẽ có sơ đồ chuyển trạng thái tối ưu nhất. (đường màu đỏ trên Hình 6). Hình 6. Kết quả thực hiện pha 1 của thuật toán Virterbi Page 6 Sau khi kết thúc pha 1, pha 2 sẽ thực hiện việc traceback dựa theo sơ đồ chuyển trạng thái đã có của pha 1. Để khởi tạo traceback, trạng thái có path metric nhỏ nhất sẽ được đưa vào một thanh ghi dịch 2 bit, trong ví dụ này là 00. Giá trị này chính là con trỏ để chọn các bit lựa chọn. Quá trình traceback được mô tả trong hình 7. Hình 7. Quá trình Traceback Tổ hợp các bit được đẩy ra khỏi thanh ghi dịch 2 bit tạo thành bản tin ban đầu (các bit màu vàng). Từ đó ta kết thúc quá trình giải mã mã chập. Page 7 Chương 2: Mô phỏng bộ mã hóa và giải mã mã chập Trong chương này, một bộ tạo mã chập và giải mã được xây dựng và mô phỏng sử dụng công cụ Simulink của Matlab 2010.Đầu tiên, mô hình của bộ mã hóa được đưa ra.Sau đó; chúng ta thiết lập sơ đồ khối sử dụng các khối trong Simulink để thực hiện việc mã hóa và giải mã mã chập.Cuối cùng, kết quả mô phỏng sẽ được đưa ra để kiểm chứng. 2.1. Mô hình của bộ mã hóa Bộ mã hóa mã chập được mô tả trong hình 8 như sau: Hình 8. Mô hình bộ mã hóa mã chập Mô hình trên biểu diễn bộ tạo mã có tốc độ code rate = 1/2 (1 đầu vào, 2 đầu ra), có độ dài ràng buộc là Kc = 7 (6 thanh ghi dịch + 1 đầu vào). Về mặt toán học, bộ mã chập trên được hình thành bởi ma trận đa thức có dạng: Từsơđồ mô hình bộ mã hóa mã chập trên, chúng ta sử dụng công cụ Simulink của Matlab nhằm xây dựng một bộ mã hóa và giải mã mã chập với mô hình như trong hình 8 như sau: Page 8 Hình 9.Mô hình mã hóa và giải mã mã chập Trong mô hình trên, quá trình mã hóa và giải mã mã chập được mô tả thông qua 4 khối.Đầu tiên, tín hiệu bản tin bất kì được tạo ra một cách ngẫu nhiên thôn qua bộ tạo mã nhị phân Bernoulli. Sau đó, chuỗi bit nhị phân này được đưa lần lượt vào bộ mã hóa mã chập rồi đưa quá kênh truyền nhị phân với một xác suất lỗi kênh truyền nhất định và cuối cùng được giải mã qua bộ giải mã sử dụng thuật toán Virterbi. Bộ mã hóa mã chập được xây dựng bằng việc khai báo các thông số cho biểu đồ chuyển trạng thái (Trellis structure) được có trong bộ mã hóa mã chập. Cách khai báo như sau: Trellis = poly2trellis ([chiều dài ràng buộc], [ hệ số trong đa thức sinh dưới dạng bát phân]) Hàm Poly2trellis có nhiệm vụ chuyển đổi dạng đa thức sang sơ đồ chuyển trạng thái của bộ mã hóa. Cấu trúc Trellis bao gồm các trường sau (hình 10). Field in trellis Structure Dimensions Meaning numInputSymbols Scalar Number of input symbols to the encoder: 2k numOutputSymbols Scalar Number of output symbols from the encoder: 2n numStates Scalar Number of states in the encoder nextStates numStates-by-2 matrix Next states for all combinations of current state and curr outputs numStates-by-2 matrix Outputs (in octal) for all combinations of current state an k k Hình 10. Các trường trong cấu trúc Trellis Page 9 Trong các trường trên thì chiều dài ràng buộc của mã chập sẽ quy định số đầu vào mã chập. Nếu số chiều dài ràng buộc là 2 thì số đầu vào mã chập sẽ là 2 và số kí tự đầu vào sẽ là 4…Ngoài ra các hệ số trong đa thức sinh dưới dạng nhị phân sẽ được biểu diễn dưới dạng bát phân trong cấu trúc Trellis. Vi dụ, với bộ lập mã trong hình 8 có hai đa thức sinh với các hệ số lập thành dạng nhị phân là (1 1 1 1 0 0 1) ứng với đầu ra của bit thứ nhất và (1 0 1 1 0 1 1), trong khai báo Trellis, dạng nhị phân này sẽ được đổi sang dạng bát phân là hai số 171 và 133. Với bộ mã hóa như trên, cấu trúc trellis sẽ có 27 trạng thái trong bộ mã hóa. Để hiểu rõ hơn về quá trình mã hóa và giải mã mã chập, kết quả mô phỏng của bộ mã hóa này sẽ được đưa ra trong phần sau. 2.2. Kết quả mô phỏng Với mô hình được cho trong hình 9, chúng ta thiết lập các thông số cho từng khối như sau: Khối tạo chuỗi bit nhị phân: - Proballity of a zero: 0.5 - Initial seed: dùng hàm randseed - Sample time: 0.5 Khối tạo mã chập: thiết lập Trellis poly2trellis ( 7, [171 133]) Khối kênh truyền đối xứng: xét xác suất lỗi: 0.02 Khối giải mã sử dụng thuật toán Virterbi: thiết lấp tương tự khối mã chập Chọn thời gian mô phỏng từ 0 đến 100 s. Sau khi đã thiết lập các khối, ta tiến hành mô phỏng và thu đươc kết quả như trên hình 11 Page 10 Bit thông tin đầu vào Hai chuỗi bit đầu ra bộ mã chập Tín hiệu sau khi đi qua kênh truyền Chuỗi bit thông tin sau giải mã Hình 11. Kết quả mô phỏng Từ kết quả mô phỏng, ta thấy rằng quá trình mã hóa và giải mã một chuỗi bit thông tin bất kì đã thành công. Với xác suất lỗi kênh truyền là 2% thì bit thông tin sau khi giải mã bằng thuật toán Virterbi giữ nguyên được nội dung tin truyền. Page 11 Kết luận Như vậy, quá trình mô phỏng việc mã hóa và giải mã mã chập đã được thực hiện.Việc thiết lập mã và giải mã đều dựa vào biểu đồ mắt cáo và thuật toán giải mã Virterbi.Sự tiện lợi của công cụ Simulink trong phần mềm Matlab cho phép chúng ta có thể xây dựng được bất kì bộ tạo mã chập chỉ bằng cách thay đổi các tham số trong sơ đồ khối của bộ tạo mã. Tuy nhiên, project còn nhiều thiếu sót. Đó là chưa nêu ra được vai trò làm giảm thiểu lỗi kênh truyền của mã chập bằng cách thiết lập mối quan hệ đồ thị giữa tỉ số tín hiệu trên nhiễu SNR và tỉ lệ lỗi bit BER. Ngoài ra, việc xây dựng bộ tạo mã chập theo quan điểm lý thuyết hệ thống chưa được thực hiện. Đây là những hướng cần khắc phục trong thời gian tới của project. Page 12 Tài liệu tham khảo [1] Eric V. York (1997), Algebraic Description and Construction of Error Correcting Codes: A Linear Systems point of view, Dissertation for the degree of Philosophy Doctor of the University of Notre Dame, Notre Dame Indiana, USA. [2] Brian M. Allen, (1999). Linear systems analysis and decoding of convolutional codes. [3] www.mathwork.com Page 13 PHỤ LỤC CODE /* This code was developed as part of graduate coursework at EmbryRiddle Aeronautical University * under the guidance of Dr. Pat Anderson and Dr. Hever Moncayo. * * Author: Robert F. Hartley * Assistant Developers: Francois Hugon, Brian DeRosa, and Christopher Carvalho * Support: apm2.simulink@gmail.com * * Oct. 25, 2012 * Version 1.0 * */ /* * File: Arduino_IMU_sfcn.c * * * * --- THIS FILE GENERATED BY S-FUNCTION BUILDER: 3.0 --* * This file is an S-function produced by the S-Function * Builder which only recognizes certain fields. Changes made * outside these fields will be lost the next time the block is * used to load, edit, and resave this file. This file will be overwritten * by the S-function Builder block. If you want to edit this file by hand, * you must change it only in the area defined as: * * %%%-SFUNWIZ_defines_Changes_BEGIN * #define NAME 'replacement text' Page 14 * %%% SFUNWIZ_defines_Changes_END * * DO NOT change NAME--Change the 'replacement text' only. * * For better compatibility with the Simulink Coder, the * "wrapper" S-function technique is used. This is discussed * in the Simulink Coder's Manual in the Chapter titled, * "Wrapper S-functions". * * ------------------------------------------------------------------------* | See matlabroot/simulink/src/sfuntmpl_doc.c for a more detailed template | * ------------------------------------------------------------------------* Created: Thu Aug 9 02:31:58 2012 * * */ #define S_FUNCTION_LEVEL 2 #define S_FUNCTION_NAME Arduino_IMU_sfcn /*[...]... truyền Page 11 Kết luận Như vậy, quá trình mô phỏng việc mã hóa và giải mã mã chập đã được thực hiện.Việc thiết lập mã và giải mã đều dựa vào biểu đồ mắt cáo và thuật toán giải mã Virterbi.Sự tiện lợi của công cụ Simulink trong phần mềm Matlab cho phép chúng ta có thể xây dựng được bất kì bộ tạo mã chập chỉ bằng cách thay đổi các tham số trong sơ đồ khối của bộ tạo mã Tuy nhiên, project còn nhiều thiếu...Bit thông tin đầu vào Hai chuỗi bit đầu ra bộ mã chập Tín hiệu sau khi đi qua kênh truyền Chuỗi bit thông tin sau giải mã Hình 11 Kết quả mô phỏng Từ kết quả mô phỏng, ta thấy rằng quá trình mã hóa và giải mã một chuỗi bit thông tin bất kì đã thành công Với xác suất lỗi kênh truyền là 2% thì bit thông tin sau khi giải mã bằng thuật toán Virterbi giữ nguyên được nội dung... trong sơ đồ khối của bộ tạo mã Tuy nhiên, project còn nhiều thiếu sót Đó là chưa nêu ra được vai trò làm giảm thiểu lỗi kênh truyền của mã chập bằng cách thiết lập mối quan hệ đồ thị giữa tỉ số tín hiệu trên nhiễu SNR và tỉ lệ lỗi bit BER Ngoài ra, việc xây dựng bộ tạo mã chập theo quan điểm lý thuyết hệ thống chưa được thực hiện Đây là những hướng cần khắc phục trong thời gian tới của project Page 12

Ngày đăng: 29/09/2015, 21:51

Xem thêm: Mô phỏng mã hóa và giải mã chập

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w