Thiết kế và thực hiện bộ mã chập trên TMS320C6414 DSK (Phần 1)
Bạn đang xem tài liệu "Thiết kế và thực hiện bộ mã chập trên TMS320C6414 DSK (Phần 1)", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
thiet_ke_va_thuc_hien_bo_ma_chap_tren_tms320c6414_dsk_phan_1.pdf
Nội dung text: Thiết kế và thực hiện bộ mã chập trên TMS320C6414 DSK (Phần 1)
- BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH BÁO CÁO TỔNG KẾT ĐỀ TÀI KH&CN CẤP TRƯỜNG THIẾT KẾ VÀ THỰC HIỆN BỘ MÃ CHẬP TRÊN TMS320C6414 DSK S K C 0 0 0 2 8 1 MÃ SỐ: T2011 - 17 S K C 0 0 3 3 9 7 THÀNH PHỐ HỒ CHÍ MINH, 2011
- BÔ ̣ GIÁ O DUC̣ VÀ ĐÀ O TAỌ TRƯỜ NG ĐAỊ HOC̣ SƯ PHAṂ KỸ THUÂṬ THÀNH PHỐHÔ ̀ CHÍ MINH BÁO CÁO TỔNG KẾT ĐỀ TÀI KH&CN CẤ P TRƯỜ NG THIẾT KẾ VÀ THỰC HIỆN BỘ MÃ CHẬP TRÊN TMS320C6414 DSK MÃ SỐ : T2011 – 17 Chủ nhiệm đề tài : ĐẶNG PHƯỚC HẢI TRANG THÀNH PHỐ HỒ CHÍ MINH - 2011
- Thiết kế và thực hiện bộ mã chập trên TMS320C6416 DSK CHƢƠNG 1 MỞ ĐẦU 1.1 Cơ sở khoa học và thực tiễn của đề tài Tín hiệu truyền trong môi trường luôn luôn chịu tác động của nhiễu, hệ thống nào thực hiện được công việc tách tín hiệu ra khỏi nhiễu một cách hoàn hảo thì hệ thống đó càng tối ưu. Người ta thực hiện việc tách nhiễu ra khỏi tín hiệu bằng cách thêm vào tín hiệu các bit dư, công việc đó chính là quá trình mã hóa kênh. Nếu ngay khi nhận được tín hiệu, ta tiến hành giải mã ngay thì hiệu quả giải mã không cao. Thay vào đó, chúng ta nên đánh giá độ tin cậy khi giải mã bit 0 bit 1 dựa trên tín hiệu thu được. Những thông tin thể hiện độ tin cậy đó sẽ so sánh với những bit thông tin lân cận, từ đó sẽ giải mã được thông tin gốc. Thế nhưng công việc này sẽ rất phức tạp, đặc biệt là khi độ dài các thanh ghi dịch của bộ tạo mã tăng lên. Thuật toán Viterbi làm giảm độ phức tạp đó thông qua việc kết hợp các quyết định mềm để quyết định xem chuỗi thông tin nào giống với chuỗi thông tin phát đi nhất. Thuật toán này đã được chứng minh là cho kết quả giống với kết quả của phương pháp giải mã tối ưu với độ phức tạp cao. 1.2 Mục đích của đề tài Thuật toán Viterbi được sử dụng hầu hết trong các hệ thống thông tin di động tế bào, thông tin trên tàu vũ trụ hay các tên lửa dẫn đường. Sau này, các hệ thống thông tin quân sự cũng như các mạng thông tin số như các tuyến truyền dẫn viba hay hệ thống thông tin di động GSM, CDMA đều dùng thuật toán này để giải mã mã xoắn. Nhằm mục đích tìm hiểu và thực hiện bộ mã chập trên DSK, đồng thời khai thác kit này cho các môn thực tập, người thực hiện đã chọn đề tài này làm đề tài nghiên cứu khoa học. 1.3 Nhiệm vụ và giới hạn của đề tài Đề tài này không đi sâu vào các ứng dụng của thuật toán Viterbi mà chỉ tập trung vào việc nghiên cứu thuật toán Viterbi thiết kế và thực hiện bộ mã chập trên DSK. Nội dung chính của đề tài gồm: - 1 -
- Thiết kế và thực hiện bộ mã chập trên TMS320C6416 DSK Tìm hiểu cơ sở lý thuyết về thuật toán Viterbi. Mô phỏng giải mã Viterbi trên Matlab. Thiết kế bộ giải mã Viterbi bằng ngôn ngữ C. Cài đặt thiết kế lên kit. Kết quả đề tài có thể được ứng dụng trong thông tin vệ tinh, Wimax, CDMA 1.4 Phƣơng pháp nghiên cứu Mô phỏng bằng phần mềm Matlab. Thiết kế giải mã Viterbi bằng C. Thực hiện trên kit DSK. - 2 -
- Thiết kế và thực hiện bộ mã chập trên TMS320C6416 DSK CHƢƠNG 2 CƠ SỞ LÝ THUYẾT 2.1 Lý thuyết thuật toán Viterbi 2.1.1. Mã hóa kênh trong hệ thống thông tin Hình 2.1: Sơ đồ khối tổng quát của một hệ thống thông tin số. Mã hóa gồm mã hóa nguồn và mã hóa kênh. Mã hóa nguồn nhằm mục đích đơn giản hóa nguồn tin, tức là loại bỏ những thông tin cần thiết. Mã hóa kênh nhằm mục đích giảm thiểu xác suất sai khi thông tin truyền qua kênh truyền. Việc giảm xác suất sai dựa vào việc phát hiện sai và sửa sai có thể dẫn đến việc tăng tỷ số SNR, nhờ đó giảm công suất và tiết kiệm được năng lượng, thuận lợi hơn cho việc bảo mật, trãi phổ và tăng độ chính xác của thông tin nhận. Lý thuyết mã hóa đại số được chia ra làm 2 loại mã chính: Mã khối. Mã Trellis. Mã Trellis hay còn gọi là mã chập (kết hợp) được sử dụng trong các modem dải tần âm (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. - 3 -
- Thiết kế và thực hiện bộ mã chập trên TMS320C6416 DSK Thuật toán Viterbi là một thuật toán tối ưu nhất được dùng để giải mã các mã chập. 2.1.2. Cấu trúc của bộ mã chập Một bộ mã tích chập đưa các bit kiểm tra vào chùm bit dữ liệu thông qua việc sử dụng các thanh ghi dịch như hình sau: Hình 2.2 : Bộ mã tích chập có các bit ngõ vào xi và các bit được mã hóa ở ngõ ra ci Các bit được đưa vào thanh ghi dịch và các bit ngõ ra được tính bằng cách cộng modulo 2 của các bit vào với nội dung của thanh ghi dịch. Gọi k là số bit thông tin ngõ vào song song và n là số bit mã hóa ngõ ra song song tại cùng thời điểm, thì tốc độ mã hóa r của bộ mã chập được định nghĩa là: r = k/n Chiều dài bắt buộc K đối với mã chập là K = m+1, với m là số ô nhớ lớn nhất trong bất cứ bộ thanh ghi dịch nào. Tương ứng với mỗi tốc độ mã hóa (các bộ mã đơn giản), người ta cũng đã thử nghiệm và chọn ra chỉ một số đa thức sinh cho hiệu quả mã hóa cao để sử dụng. Giá trị chuỗi đầu ra kênh không chỉ phụ thuộc vào k bit thông tin đầu vào hiện tại mà còn phụ thuộc vào (m-1)k bit trước đó, và được gọi là mã chập (n,k,m). Trong hình sau, một mã có tốc độ mã hóa r=2/3, kích cỡ bộ nhớ lớn nhất m=3, chiều dài bắt buộc K=4. - 4 -
- Thiết kế và thực hiện bộ mã chập trên TMS320C6416 DSK Hình 2.3 : Bộ mã hóa tích chập có k=1, n=2, r=1/2, m=2, K=3 Sơ đồ trạng thái: Hình 2.4: Biểu diễn bằng sơ đồ trạng thái. Sơ đồ hình lƣới: - 5 -
- Thiết kế và thực hiện bộ mã chập trên TMS320C6416 DSK Sơ đồ hình cây: 00 00 00 00 11 10 00 00 10 01 11 10 0 01 11 00 11 00 10 1 01 00 10 11 10 01 01 01 11 10 11 Hình 2.6 : Sơ đồ hình cây của bộ mã (2,1,2) . 2.2 Giải mã mã tích chập Viterbi Thuật toán giải mã Viterbi là một trong hai loại thuật toán giải mã được sử dụng với bộ mã hóa mã chập- một loại khác đó là giải mã tuần tự. Ưu điểm của thuật toán giải mã Viterbi là nó có thời gian giải mã ổn định. Điều đó rất tốt cho việc thực thi bộ giải mã bằng phần cứng. Nhưng yêu cầu về sự tính toán của nó tăng theo hàm mũ như là một hàm của chiều dài ràng buộc, vì vậy, trong thực tế, người ta thường giới hạn chiều dài ràng buộc của nó K = 9 hoặc nhỏ hơn. Người ta sử dụng 2 loại giải mã mã tích chập: giải mã quyết định mềm và giải mã quyết định cứng. Giải mã quyết định cứng sử dụng lượng tử hóa 1 bit trên các giá trị kênh nhận được. Giải mã quyết định mềm sử dụng lượng tử hóa nhiều bit trên các giá trị kênh nhận được. Giải mã quyết định mềm lý tưởng thì các giá trị kênh nhận được được sử dụng trực tiếp trong bộ giải mã kênh và lượng tử hóa không xác định. - 6 -
- Thiết kế và thực hiện bộ mã chập trên TMS320C6416 DSK Hình 2.7: Giải mã quyết định cứng và quyết định mềm. 2.2.1. Thuật toán Viterbi quyết định cứng Trong mã tích chập, chuỗi ngõ vào bị xoắn lại thành chuỗi mã hóa c. Chuỗi c sẽ được phát qua kênh nhiễu và chuỗi nhận được là chuỗi r. Thuật toán Viterbi sẽ ước đoán khả năng xãy ra lớn nhất cho ra chuỗi y từ chuỗi nhận được r, sao cho xác suất p(r/y) là lớn nhất. Chuỗi y phải là một trong những chuỗi mã hóa cho phép chứ không phải là chuỗi tùy ý. Cho một mã tích chập có tốc độ r, các ngõ vào của bộ mã hóa k bit song song và các ngõ ra n bit song song tại mỗi thời điểm. Chuỗi ngõ ra là: 1 2 k 1 k 1 k x = [ xo , xo , , xo , x1 , , x1 , , xL+m+1 , , xL+m+1 ] (2.1) và chuỗi mã hóa là: 1 2 n 1 n 1 n c = [ co , co , , co , c1 , , c1 , , cL+m+1 , , cL+m+1 ] (2.2) Trong đó, L là chiều dài của chuỗi tin ngõ vào, m là chiều dài lớn nhất của bộ thanh ghi dịch. Ta phải thêm vào đuôi của chuỗi tin gõ vào m bit 0 để cho bộ mã hóa tích chập trở về trạng thái tất cả zero. Bộ mã hóa phải bắt đầu và kết thúc tại trạng thái tất cả zero. Chỉ số bên dưới là chỉ số thời gian, chỉ số bên trên là số ngõ vào hoặc số ngõ ra song song tại 1 thời điểm. Các chuỗi nhận được r và chuỗi ước đoán y được mô tả như sau: 1 2 n 1 n 1 n r = [ ro , ro , , ro , r1 , , r1 , , rL+m+1 , , rL+m+1 ] (2.3) - 7 -



