Đang tải... (xem toàn văn)
Thực hiện bộ giải mã VITERBI trên FPGA
<< BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ - VIỄN THÔNG ĐỒ ÁN TỐT NGHIỆP NGÀNH: CÔNG NGHỆ ĐIỆN TỬ VIỄN THÔNG Đề tài: THỰC HIỆN BỘ GIẢI MÃ VITERBI TRÊN FPGA GVHD: ThS. Lê Minh Thành KS. Đặng Phước Hải Trang SVTH: Huỳnh Minh Khả MSSV: 06117029 SVTH: Lê Duy MSSV: 06117010 Thành phố Hồ Chí Minh, tháng 1 năm 2011 Thực hiện bộ giải mã Viterbi trên FPGA Trang i LỜI CẢM ƠN Phần A: Giới thiệu C u ố n đ ồ á n t ố t n g h i ệ p đ ã h o à n t h à n h đ ú n g t h ờ i g i a n q u y đ ị n h v à đ ạ t đ ư ợ c k ế t q u ả n h ư m o n g đ ợ i . Đ ể đ ạ t đ ư ợ c k ế t q u ả đ ó , t r ư ớ c h ế t n h ó m t h ự c h i ệ n m u ố n g ử i l ờ i b i ế t ơ n đ ế n c á c b ậ c c h a m ẹ đ ã k h ổ c ô n g s i n h t h à n h d ư ỡ n g d ụ c đ ể t ạ o n ê n n h ữ n g t h à n h v i ê n c ủ a n h ó m n g à y h ô m n a y . B ê n c ạ n h đ ó , k h ô n g t h ể k h ô n g k ể đ ế n s ự t ậ n t ì n h g i ú p đ ỡ c ủ a c á c t h ầ y c ô t r o n g b ộ m ô n Đ i ệ n t ử - V i ễ n t h ô n g c ũ n g n h ư c á c t h ầ y c ô t r o n g k h o a Đ i ệ n - Đ i ệ n t ử , c á c t h ầ y c ô đ ã h ế t m ự c g i ú p đ ỡ n h ó m t r o n g s u ố t q u á t r ì n h h ọ c t ậ p t ạ i t r ư ờ n g , k h ô n g c h ỉ g i á o d ụ c n h ó m v ề k i ế n t h ứ c m à c ò n c h ỉ b ả o n h ữ n g k ỹ n ă n g s ố n g c ầ n t h i ế t đ ể n h ó m c ó t h ể đ ứ n g v ữ n g t r o n g c u ộ c s ố n g t ự l ậ p s a u k h i r a t r ư ờ n g . Đ ặ c b i ệ t , n h ó m t h ự c h i ệ n đ ề t à i x i n c h â n t h à n h c ả m ơ n t h ầ y L ê M i n h T h à n h v à t h ầ y Đ ặ n g P h ư ớ c H ả i T r a n g l à n h ữ n g g i ả n g v i ê n đ ã t r ự c t i ế p h ư ớ n g d ẫ n n h ó m t r o n g q u á t r ì n h t h ự c h i ệ n đ ề t à i . C á c t h ầ y đ ã t ậ n t ì n h g i ú p đ ỡ n h ó m t r o n g q u á t r ì n h h ọ c t ậ p t ạ i t r ư ờ n g v à t h ể h i ệ n s ự q u a n t â m v ớ i v i ệ c đ ả m n h ậ n h ư ớ n g d ẫ n n h ó m t h ự c h i ệ n đ ề t à i t ố t n g h i ệ p . M ộ t l ầ n n ữ a n h ó m t h ự c h i ệ n x i n c h â n t h à n h b i ế t ơ n c á c b ậ c c h a m ẹ v à c h â n t h à n h c ả m ơ n q u ý t h ầ y c ô đ ã t ậ n t ì n h g i ú p đ ỡ n h ó m t r o n g q u á t r ì n h h ọ c t ậ p t ạ i t r ư ờ n g . T P H C M . N g à y 1 t h á n g 1 n ă m 2 0 1 1 N h ó m t h ự c h i ệ n đ ề t à i Thực hiện bộ giải mã Viterbi trên FPGA Trang ii QUYẾT ĐỊNH GIAO ĐỀ TÀI Họ và tên sinh viên: Huỳnh Minh Khả MSSV: 06117029 Lê Duy MSSV: 06117010 Ngành: Công Nghệ Điện tử - Viễn thông Tên đề tài: Thực hiện bộ giải mã Viterbi trên FPGA 1) Cơ sở ban đầu: Từ thực tiễn của việc thông tin di động và viễn thông ngày càng bùng nổ, cùng với sự đam mê trong lĩnh vực điện tử và viễn thông, nhóm thực hiện đề tài đã quyết định chọn nội dung đồ án tốt nghiệp là mô tả một thuật giải mã kênh truyền phổ biến là thuật giải Viterbi cho mã xoắn. Đây có thể xem là một sự kết hợp tốt giữa kiến thức viễn thông và chuyên ngành điện tử. 2) Nội dung các phần thuyết minh và tính toán: o Tổng quan về hệ thống thông tin số. o Mã hóa chập và thuật toán giải mã Viterbi. o Mô phỏng thuật toán giải mã Viterbi trên Matlab. o Xây dựng thuật toán giải mã Viterbi trên KIT DE2. 3) Các bản vẽ: 4) Giáo viên hướng dẫn: ThS. Lê Minh Thành KS. Đặng Phước Hải Trang 5) Ngày giao nhiệm vụ: / /2010 6) Ngày hoàn thành nhiệm vụ: / /2011 Phần A: Giới thiệu Giáo viên hướng dẫn Ngày tháng năm 20…. Chủ nhiệm bộ môn 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 CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc Thực hiện bộ giải mã Viterbi trên FPGA Trang iii NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… …………………………………………… TP Hồ Chí Minh, ngày tháng năm 2011 Giáo viên hướng dẫn Phần A: Giới thiệu Thực hiện bộ giải mã Viterbi trên FPGA Trang iv NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN ………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… ……………………………………………………………… …………………………………………… TP Hồ Chí Minh, ngày tháng năm 2011 Giáo viên phản biện Phần A: Giới thiệu Thực hiện bộ giải mã Viterbi trên FPGA Trang v LỜI NÓI ĐẦU Cùng với sự phát triển của khoa học và công nghệ phục vụ cho cuộc sống của con người, công nghệ viễn thông trong những năm qua đã có những bước phát triển mạnh mẽ cung cấp ngày càng nhiều tiện ích cho con người. Thế kỷ 21 chứng kiến sự bùng nổ thông tin, trong đó thông tin di động đóng một vai trò rất quan trọng. Nhu cầu trao đổi thông tin ngày càng tăng cả về số lượng, chất lượng và các loại hình dịch vụ kèm theo, điều này đòi hỏi phải tìm ra phương thức trao đổi thông tin mới ngày càng ưu việt và mang lại hiệu quả cao hơn. Các công nghệ di động và viễn thông ngày một phát triển nhanh chóng để hướng tới mục đích tăng tốc độ cũng như chất lượng của các dịch vụ nhằm đáp ứng nhu cầu ngày càng cao của con người về các thiết bị không dây bỏ túi. Một trong những khâu quan trọng nhất của việc thông tin không dây đó là việc truyền và nhận tín hiệu. Điều này cần thiết phải có một loại mã hóa dành riêng cho kênh truyền có khả năng sửa chữa sai sót của tín hiệu truyền đi do các tác động của môi trường. Các hình thức được sử dụng để mã hóa kênh truyền trước đó đều có những khuyết điểm nhất định trong việc khôi phục dữ liệu bị sai sót trên đường truyền, thường chỉ có khả năng phát hiện lỗi và báo về bên phát để thực hiện truyền lại tin tức bị sai đó. Điều này làm chậm quá trình truyền tin tức. Bộ mã hóa dùng mã chập và thuật giải mã Viterbi là một chuẩn đang được ứng dụng rất rộng rãi trên toàn thế giới với nhiều ưu điểm vượt trội so với các hình thức trước đó, ngoài khả năng phát hiện lỗi tốt nhờ sự kiểm soát chặt chẽ tin tức truyền đi, nó còn có khả năng tự khôi phục các tin tức bị sai trong quá trình truyền trên kênh truyền. Điều này giúp giảm thiểu tối đa thời gian truyền nhận tin tức, do đó tốc độ dữ liệu ngày một được nâng cao. Tuy vẫn còn một số hạn chế nhất định trong việc khôi phục các đoạn tin tức sai hàng loạt, nhưng thuật toán Viterbi vẫn là sự lựa chọn ưu tiên và là nền tảng cho việc phát triển các hình thức mã hóa và giải mã tốt hơn nữa hiện tại và sau này. Vì những ưu điểm nổi bật và tính ứng dụng cao của thuật toán này trong hiện tại và tương lai của ngành viễn thông, nhóm thực hiện quyết định chọn đề tài là “Thực hiện bộ giải mã Viterbi trên FPGA”. Trong phạm vi của cuốn đồ án này, nhóm thực hiện đề tài sẽ giới thiệu khái quát về hai hình thức mã hóa và giải mã này và tiến hành mô phỏng thuật toán mã hóa và giải mã đó trên Matlab cũng như mô tả phần cứng trên kit DE2 của Altera. Nội dung của đồ án sẽ bao gồm các vấn đề sau: • Chương 1: Tổng quan về hệ thống thông tin số Phần A: Giới thiệu Thực hiện bộ giải mã Viterbi trên FPGA Trang vi Giới thiệu về vị trí vai trò của mã hóa kênh truyền trong hệ thống thông tin số, so sánh hai hình thức mã hóa là mã khối và mã trellis. • Chương 2: Thuật toán Viterbi Khái niệm và phân tích mã chập, cách thức mã hóa sử dụng mã chập, cũng như cấu trúc của bộ mã hóa chập. Giới thiêu thuật toán giải mã Viterbi, nguyên lý thực hiện giải mã và phân loại một số phương pháp giải mã. • Chương 3: Xây dựng thuật giải Viterbi dùng Matlab Tiến hành đi mô phỏng thuật toán mã hóa mã chập và thuật toán giải mã Viterbi. Phân tích thuật toán • Chương 4: Xây dựng thuật giải Viterbi trên kit DE2 Mô phỏng thuật toán thực tế hơn trên kit DE2 với các led hiển thị dữ liệu từ đó thấy được hiệu quả của thuật toán Viterbi, ứng dụng ngôn ngữ thiết kế phần cứng VHDL • Chương 5: Kết luận Đánh giá kết quả thực hiện của đồ án và đưa ra phương hướng phát triển của đề tài trong tương lai. TP HCM. Ngày … tháng … năm 2011 Nhóm thực hiện đề tài Phần A: Giới thiệu Thực hiện bộ giải mã Viterbi trên FPGA Trang vii MỤC LỤC Trang TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM 1 LỜI CẢM ƠN i QUYẾT ĐỊNH GIAO ĐỀ TÀI ii NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN iii LỜI NÓI ĐẦU v MỤC LỤC vii LIỆT KÊ HÌNH x LIỆT KÊ BẢNG xii PHẦN B 13 CHƯƠNG 1 14 1.1 Vị trí của mã hóa kênh trong hệ thống thông tin số 14 1.2 Khái niệm mã hóa kênh và phân loại 15 1.2.1 Khái niệm 15 1.2.2 Phân loại mã hóa kênh 16 1.3 Khái quát về mã khối và mã trellis 16 1.3.1 Mã khối 16 1.3.2 Mã trellis 17 CHƯƠNG 2 19 2.1 Khái niệm mã chập 19 2.2 Phân tích mã hóa dùng mã chập 19 2.3 Cấu trúc mã chập 23 2.4 Biểu diễn mã chập 27 2.5 Ưu nhược điểm của mã chập 30 2.5.1 Ưu điểm 30 2.5.2 Nhược điểm 30 2.6 Định nghĩa thuật toán Viterbi 30 2.7 Phân tích thuật giải Viterbi 31 2.8 Giải mã quyết định cứng và giải mã quyết định mềm 43 Phần A: Giới thiệu Thực hiện bộ giải mã Viterbi trên FPGA Trang viii 2.8.1 Thuật toán Viterbi quyết định cứng 43 2.8.2 Thuật toán Viterbi quyết định mềm 49 2.8.2.1 Thuật toán Viterbi quyết định mềm (phương pháp 1) 49 2.8.2.2 Thuật toán Viterbi quyết định mềm (phương pháp 2) 50 2.8.3 Ưu điểm của giải mã quyết định mềm so với giải mã quyết định cứng 52 2.9 Xác suất lỗi 55 2.10 Ưu nhược điểm của thuật toán giải mã Viterbi 56 2.10.1 Ưu điểm 56 2.10.2 Nhược điểm 56 CHƯƠNG 3 57 3.1 Giới thiệu 57 3.2 Sơ đồ khối hệ thống 57 3.3 Lưu đồ mô phỏng 58 3.3.1 Khối tạo bit ngõ vào 58 3.3.2 Khối mã hóa 59 3.3.3 Khối cộng nhiễu Gausse trắng 59 3.3.4 Khối giải mã 59 3.3.5 Tính toán và vẽ BER 60 3.4 Hình ảnh về chương trình mô phỏng 60 CHƯƠNG 4 66 4.1 Giới thiệu sơ lược KIT DE2 và phần mềm Quartus 66 4.1.1 KIT DE2 của Altera 66 4.1.1.1 Tổng quan kit DE2 66 4.1.1.2 Sử dụng nút nhấn và Switch 68 4.1.1.3 Sử dụng LCD 69 4.1.2 Phần mềm lập trình Quatus II 69 4.2 Giải quyết vấn đề 70 4.2.1 Giải mã viterbi quyết định cứng 70 4.2.2 Giải mã viterbi quyết định mềm 74 4.3 Lưu dồ thuật toán lập trình 76 4.4 Kết quả 83 Phần A: Giới thiệu Thực hiện bộ giải mã Viterbi trên FPGA Trang ix CHƯƠNG 5: KẾT LUẬN 89 5.1 Tổng kết nhận xét 89 5.2 Tồn tại và hướng phát triển của đề tài 89 PHẦN C 91 I. Phụ lục 92 1. Hướng dẫn sử dụng kit DE2 để mô phỏng 92 2. Tài nguyên sử dụng trên Kit DE2 92 3. Mã nguồn Matlab 95 4. Mã nguồn VHDL 106 II. Tài liệu tham khảo 130 Phần A: Giới thiệu [...]... 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 giải mã tuần tự so với Viterbi là nó có thể hoạt động tốt với các mã chập có chiều dài ràng buộc lớn, nhưng nó lại có thời gian giải mã biến đổi Chương 2: Thuật giải mã Viterbi Thực hiện bộ giải mã Viterbi trên FPGA Trang 31 Còn ưu điểm của thuật toán giải mã. .. gốc Việc thực hiện mã hóa dùng mã chập tương đối đơn giản hơn các loại mã sửa sai khác mà chất lượng mã hóa lại tốt Việc thực hiện mã hóa dùng mã chập có thể được thực hiện bằng phần cứng và phần mềm Dựa trên hình thức mã hóa mã chập cùng thuật giải Viterbi cho nó, các bộ mã hóa sau này đều kế thừa những đặc tính ưu việt của nó 2.5.2 Nhược điểm Việc mã hóa và giải mã liên quan đến mã chập chỉ giải quyết.. .Thực hiện bộ giải mã Viterbi trên FPGA LIỆT KÊ HÌNH Hình 1.1: Vị trí của mã hóa kênh truyền trong hệ thống thông tin số Hình 1.2: Sự phân chia mã hóa kênh thành hai nhánh riêng biệt Hình 2.1: Bộ mã hóa cho mã chập tốc độ R = 1 / 2 Hình 2.2: Bộ mã hóa hệ thống với R = 1 / 2 Hình 2.3: Bộ mã hóa hệ thống Hình 2.4: Sơ đồ bộ mã hóa hệ thống R = 2 / 3 có phần cứng đơn giản Hình 2.5: Sơ đồ tổng quát bộ mã. .. dụ minh hoạ sau đây: Ví dụ 2.3.1: Xét mã (3,2,2) Bộ mã hoá được chỉ trong hình 2.6 Bây giờ mã được định nghĩa thông qua 2 ma trận: Bộ mã hoá là hệ thống, ma trận sinh được tạo ra: Chương 2: Thuật giải mã Viterbi Thực hiện bộ giải mã Viterbi trên FPGA Trang 26 Chuỗi thông tin u = ( 11011011…) được mã hóa thành chuỗi mã x = (111010100110…) Hình 2.6: Bộ mã chập (3,2,2) Một cách tương tự ta cũng có thể... hình 2.8).Với hướng lên là hướng của bit 0 đi vào bộ mã, nhánh đi xuống biểu hiện cho bit 1 được dịch vào Từ sơ đồ hình cây ta có thể thực hiện mã hoá bằng cách dựa vào các bit đầu vào và thực hiện lần theo các nhánh của cây, ta sẽ nhận được tuyến mã, từ đó ta nhận được dãy các chuỗi đầu ra Chương 2: Thuật giải mã Viterbi Thực hiện bộ giải mã Viterbi trên FPGA Trang 28 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1... dựa trên thuật toán Viterbi cũng như những ưu khuyết điểm của chúng Đồng thời ta tiến hành mô phỏng thuật toán trên Matlab và trên Kit FPGA để kiểm chứng thực tế hơn Còn đối với các mã trellis còn lại thì ta sẽ không phân tích trong phạm vi cuốn đồ án này Chương 1: Tổng quan về hệ thống thông tin số Thực hiện bộ giải mã Viterbi trên FPGA Trang 19 CHƯƠNG 2 THUẬT GIẢI MÃ VITERBI 2.1 Khái niệm mã chập Mã. .. G(x) có thể thu được một ma trận đơn vị) Ví dụ 2.2.2: Cho mã hệ thống tốc độ R = 2 có ma trận truyền sau: 3 Sơ đồ thể hiện của mã này cho trên hình 2.3: Chương 2: Thuật giải mã Viterbi Thực hiện bộ giải mã Viterbi trên FPGA Trang 23 Hình 2.3: Bộ mã hóa hệ thống Một sơ đồ mã hóa khác có hiệu quả hơn được mô tả ở hình 2.4: Hình 2.4: Sơ đồ bộ mã hóa hệ thống R = 2 có phần cứng đơn giản 3 Giả sử: m(x)... được xây dựng các thuật toán giải mã quyết định mềm hiệu quả Mã khối từ các khối k dấu (hay ký hiệu) tạo ra các khối n dấu Với các mã chập (thường được xem là các mã dòng), bộ mã hóa hoạt động trên dòng liên tục Chương 2: Thuật giải mã Viterbi Thực hiện bộ giải mã Viterbi trên FPGA Trang 20 các bit vào không được phân thành các khối tin rời rạc Tuy nhiên tốc độ mã n k được hiểu là cứ có k ngõ vào... Thực hiện bộ giải mã Viterbi trên FPGA Trang 16 khi máy nhận chỉ dời chỗ vài phân Anh Một lần nữa, người ta hiện đã có một loại mã hóa trên kênh truyền được thiết kế để đối đầu với tình trạng suy sóng 1.2.2 Phân loại mã hóa kênh Lý thuyết mã hóa đại số được chia ra làm 2 loại mã chính 1 Mã khối 2 Mã trellis Chúng phân tích ba đặc tính sau của mã (nói chung) là: • Chiều dài của mã • Tổng số các từ mã. .. mã chập được biểu diễn như sau: Chương 2: Thuật giải mã Viterbi Thực hiện bộ giải mã Viterbi trên FPGA Trang 27 Hình 2.7: Sơ đồ bộ mã chập với N=3, k=1, n=3 2.4 Biểu diễn mã chập Có ba phương pháp để biểu diễn mã chập đó là: sơ đồ lưới, sơ đồ trạng thái, và sơ đồ hình cây Để làm rõ phương pháp này ta tập trung phân tích dựa trên ví dụ hình 2.1 với bộ mã (2,1,3), đa thức sinh (7,5) * Sơ đồ hình cây: . thông tin số Thực hiện bộ giải mã Viterbi trên FPGA Trang 19 CHƯƠNG 2 THUẬT GIẢI MÃ VITERBI 2.1 Khái niệm mã chập Mã chập là một kỹ thuật mã hóa sửa sai. Mã chập thuộc họ mã lưới (mã hóa theo. 4.20: Mô phỏng trên Matlab Hình 4.21: Hình thực tế bộ kit 1 Hình 4.22: Hình thực tế bộ kit 2 Hình 4.23: Hình thực tế bộ kit 3 Phần A: Giới thiệu Thực hiện bộ giải mã Viterbi trên FPGA Trang xii LIỆT. nghĩa thuật toán Viterbi 30 2.7 Phân tích thuật giải Viterbi 31 2.8 Giải mã quyết định cứng và giải mã quyết định mềm 43 Phần A: Giới thiệu Thực hiện bộ giải mã Viterbi trên FPGA Trang viii 2.8.1