Đồ án Thực hiện bộ giải mã VITERBI trên FPGA

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ố

Thực hiện bộ giải mã Viterbi trên FPGA Trang vi

Phần A: Giới thiệu

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 n gô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.

pdf124 trang | Chia sẻ: oanh_nt | Lượt xem: 1043 | Lượt tải: 0download
Bạn đang xem trước 20 trang nội dung tài liệu Đồ án Thực hiện bộ giải mã VITERBI trên FPGA, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
<< 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 Phần A: Giới thiệu LỜI CẢM ƠN Cuốn đồ án tốt nghiệp đã hoàn thành đúng thời gian quy định và đạt được kết quả như mong đợi. Để đạt được kết quả đó, trước hết nhóm thực hiện muốn gửi lời biết ơn đến các bậc cha mẹ đã khổ công sinh thành dưỡng dục để tạo nên những thành viên của nhóm ngày hôm nay. Bên cạnh đó, không thể không kể đến sự tận tình giúp đỡ của các thầy cô trong bộ môn Điện tử -Viễn thông cũng như các thầy cô trong khoa Điện- Điện tử, các thầy cô đã hết mực giúp đỡ nhóm trong suốt quá trình học tập tại trường, không chỉ giáo dục nhóm về kiến thức mà còn chỉ bảo những kỹ năng sống cần thiết để nhóm có thể đứng vững trong cuộc sống tự lập sau khi ra trường. Đặc biệt, nhóm thực hiện đề tài xin chân thành cảm ơn thầy Lê Minh Thành và thầy Đặng Phước Hải Trang là những giảng viên đã trực tiếp hướng dẫn nhóm trong quá trình thực hiện đề tài. Các thầy đã tận tình giúp đỡ nhóm trong quá trình học tập tại trường và thể hiện sự quan tâm với việc đảm nhận hướng dẫn nhóm thực hiện đề tài tốt nghiệp. Một lần nữa nhóm thực hiện xin chân thành biết ơn các bậc cha mẹ và chân thành cảm ơn quý thầy cô đã tận tình giúp đỡ nhóm trong quá trình học tập tại trường. TP HCM. Ngày 1 tháng 1 năm 2011 Nhóm thực hiện đề tài Thực hiện bộ giải mã Viterbi trên FPGA Trang ii Phần A: Giới thiệu  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 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 Phần A: Giới thiệu 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 Thực hiện bộ giải mã Viterbi trên FPGA Trang iv Phần A: Giới thiệu 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 Thực hiện bộ giải mã Viterbi trên FPGA Trang v Phần A: Giới thiệu 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ố Thực hiện bộ giải mã Viterbi trên FPGA Trang vi Phần A: Giới thiệu 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 Thực hiện bộ giải mã Viterbi trên FPGA Trang vii Phần A: Giới thiệu MỤC LỤC Trang TRANG BÌA ........................................................................................................ 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 NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN ................................................. iv 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: NỘI DUNG ...................................................................................... 13 CHƢƠNG 1: TỔNG QUAN HỆ THỐNG THÔNG TIN SỐ ........................ 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 ..................................................... 14 1.2.1 Khái niệm ....................................................................................... 14 1.2.2 Phân loại mã hóa kênh .................................................................... 15 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: THUẬT TOÁN GIẢI MÃ VITERBI....................................... 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 Thực hiện bộ giải mã Viterbi trên FPGA Trang viii Phần A: Giới thiệu 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 ................................................ 48 2.8.2.1 Thuật toán Viterbi quyết định mềm (phương pháp 1) .............. 48 2.8.2.2 Thuật toán Viterbi quyết định mềm (phương pháp 2) .............. 49 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 ................................................................................................................. 51 2.9 Xác suất lỗi .......................................................................................... 54 2.10 Ưu nhược điểm của thuật toán giải mã Viterbi .................................... 54 2.10.1 Ưu điểm ....................................................................................... 54 2.10.2 Nhược điểm .................................................................................. 55 CHƢƠNG 3: MÔ PHỎNG THUẬT TOÁN VITERBI TRÊN MATLAB ... 56 3.1 Giới thiệu ............................................................................................. 56 3.2 Sơ đồ khối hệ thống ............................................................................... 56 3.3 Lưu đồ mô phỏng .................................................................................. 57 3.3.1 Khối tạo bit ngõ vào ....................................................................... 57 3.3.2 Khối mã hóa ................................................................................... 58 3.3.3 Khối cộng nhiễu Gausse trắng ........................................................ 58 3.3.4 Khối giải mã ................................................................................... 58 3.3.5 Tính toán và vẽ BER ...................................................................... 59 3.4 Hình ảnh về chương trình mô phỏng ...................................................... 59 CHƢƠNG 4: XÂY DỰNG THUẬT TOÁN VITERBI TRÊN KIT DE2 ...... 65 4.1 Giới thiệu sơ lược KIT DE2 và phần mềm Quartus ............................... 65 4.1.1 KIT DE2 của Altera ........................................................................ 65 4.1.1.1 Tổng quan kit DE2 ................................................................... 65 4.1.1.2 Sử dụng nút nhấn và Switch .................................................... 67 4.1.1.3 Sử dụng LCD ........................................................................... 68 4.1.2 Phần mềm lập trình Quatus II ........................................................ 68 4.2 Giải quyết vấn đề .................................................................................. 69 4.2.1 Giải mã viterbi quyết định cứng ...................................................... 69 4.2.2 Giải mã viterbi quyết định mềm ...................................................... 73 4.3 Lưu dồ thuật toán lập trình ..................................................................... 75 4.4 Kết quả ................................................................................................. 82 Thực hiện bộ giải mã Viterbi trên FPGA Trang ix Phần A: Giới thiệu CHƢƠNG 5: KẾT LUẬN ............................................................................... 88 5.1 Tổng kết nhận xét ................................................................................... 88 5.2 Tồn tại và hướng phát triển của đề tài ..................................................... 88 PHẦN C: PHỤ LỤC VÀ TÀI LIỆU THAM KHẢO ........................................ 90 I. Phụ lục ..................................................................................................... 91 1. Hướng dẫn sử dụng kit DE2 để mô phỏng ............................................ 91 2. Tài nguyên sử dụng trên Kit DE2 ......................................................... 91 3. Mã nguồn Matlab ............................................................................... 93 4. Mã nguồn VHDL .............................................................................. 105 II. Tài liệu tham khảo ................................................................................ 123 Thực hiện bộ giải mã Viterbi trên FPGA Trang x Phần A: Giới thiệu 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 độ 1/ 2R  Hình 2.2: Bộ mã hóa hệ thống với 1/ 2R  Hình 2.3: Bộ mã hóa hệ thống Hình 2.4: Sơ đồ bộ mã hóa hệ thống 2 / 3R  có phần cứng đơn giản Hình 2.5: Sơ đồ tổng quát bộ mã chập Hình 2.6: Bộ mã chập (3,2,2) Hình 2.7: Sơ đồ bộ mã chập với N=3, k=1, n=3 Hình 2.8: Sơ đồ hình cây bộ mã (2,1,3) Hình 2.9: Sơ đồ hình lưới bộ mã chập (2,1,3). Hình 2.10: Sơ đồ trạng thái của bộ mã chập (2,1,3). Hình 2.11: Bộ mã chập tốc độ ½ Hình 2.12: Đồ hình trạng thái của mã chập ½ Hình 2.13: Các nhánh trong bộ mã hóa Hình 2.14: Đường đi hoàn chỉnh khôi phục chính xác tín hiệu tại ngõ ra Hình 2.15: Tín hiệu nhận có 2 bit sai tại t =2 và t = 11 Hình 2.16: Tại thời điểm t = 1 Hình 2.17: Tại thời điểm t = 2 Hình 2.18: Tại thời điểm t = 3 Hình 2.19: Tại thời điểm t = 4 Hình 2.20: Tại thời điểm t = 5 Hình 2.21: Tất cả dữ liệu đã được giải mã và sửa sai chính xác Hình 2.22: Bộ mã tốc độ 1/3 và K= (7,7,5) Hình 2.23: Giải mã quyết định cứng và mềm Hình 2.24: Hệ thống mã tích chập Hình 2.25: Kiểu kênh hệ thống nhị phân, trong đó p là xác suất chéo Hình 2.26: Biểu diễn Viterbi theo ví dụ Hình 2.27: Mô tả giải mã quyết định cứng với bộ mã parity Hình 2.28: Mô tả giải mã quyết định mềm với bộ mã parity Hình 3.1: Sơ đồ khối hệ thống Hình 3.2: Lưu đồ mô phỏng Hình 3.3: Giao diện khởi đầu chương trình mô phỏng Hình 3.4: Giao diện chương trình mô phỏng 1 Hình 3.5: Giao diện chương trình mô phỏng 2 Hình 3.6: Nhập bit ngẫu nhiên – Quyết định mềm Hình 3.7: BER của quyết định mềm Thực hiện bộ giải mã Viterbi trên FPGA Trang xi Phần A: Giới thiệu Hình 3.8: Nhập bit ngẫu nhiên – Quyết định cứng Hình 3.9: BER của quyết định cứng Hình 3.10: So sánh BER của cả quyết định cứng và mềm Hình 3.11: Tự nhập bit vào – Quyết định mềm Hình 4.1: KIT DE2 của Altera Hình 4.2: Sơ đồ khối KIT DE2 Hình 4.3: Chống dội phím nhấn Hình 4.4: Tính toán metric nhánh và metric đường cho bộ giải mã Viterbi Hình 4.5: Lưu đồ giải thuật chính của chương trình Hình 4.6: Lưu đồ giải thuật bộ giải mã Hình 4.7: Lưu đồ chi tiết giải thuật giải mã viterbi tren Kit DE2 Hình 4.8: Lưu đồ tính khoảng cách Hamming Hình 4.9: Lưu đồ giải thuật tính khoảng cách Euclidean Hình 4.10: Lưu đồ khối tính khoảng cách nhánh Hình 4.11: Lưu đồ khối ACS Hình 4.12: Lưu đồ khối truy hồi Hình 4.13: Lưu đồ khối giải mã Hình 4.14: Kết quả mô phỏng 1 Hình 4.15: Kết quả mô phỏng 2 Hình 4.16: Kết quả mô phỏng 3 Hình 4.17: Kết quả mô phỏng 4 Hình 4.18: Kết quả mô phỏng 5 Hình 4.19: Kết quả mô phỏng 6 Hình 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 Thực hiện bộ giải mã Viterbi trên FPGA Trang xii Phần A: Giới thiệu LIỆT KÊ BẢNG Bảng 2.1: Trạng thái ngõ vào và ngõ ra của bộ mã hóa tốc độ ½ Bảng 2.2: Bảng ma trận tích lũy của cả 8 bit của bản tin Bảng 2.3: Bảng lịch sử trạng thái (state history table) Bảng 2.4: Bảng các trạng thái được lựa chọn khi truy hồi Bảng 2.5: Bảng trạng thái kế tiếp (next state table) Bảng 2.6: Bảng chứa các dữ liệu của bản tin gốc đã được khôi phục Bảng 2.7: Ví dụ về punctured code Bảng 2.8: Các giá trị metric bit thông thường Bảng 2.9: Các giá trị metric bit cách 2 Bảng 2.10: Ví dụ với bộ mã parity Bảng 2.11: Tính toán khoảng cách Hamming cho quyết định cứng Bảng 2.12: Tính toán khoảng cách Euclidean cho quyết định mềm Bảng 4.1: Thứ tự kết nối phím nhấn với các chân của FPGA Bảng 4.2: Gán chân FPGA cho màn hình LCD Bảng 4.3: Trạng thái hiện tại và trạng thái trước của nó Bảng 4.4: Bảng trạng thái tiếp theo PHẦN B NỘI DUNG Thực hiện bộ giải mã Viterbi trên FPGA Trang 14 Chương 1: Tổng quan về hệ thống thông tin số CHƢƠNG 1 TỔNG QUAN VỀ HỆ THỐNG THÔNG TIN SỐ 1.1 Vị trí của mã hóa kênh trong hệ thống thông tin số Mã hóa kênh là một khâu rất quan trọng trong hệ thống thông tin số không dây cùng với mã hóa nguồn, ghép kênh, điều chế,… để tạo ra một tín hiệu phù hợp cho việc truyền dẫn vô tuyến và tín hiệu đó có khả năng điều khiển được sự sai bit và sửa các lỗi xảy ra nếu có để có thể khôi phục lại gần như nguyên dạng tín hiệu tin tức mà mình truyền đi. Hình 1.1: Vị trí của mã hóa kênh truyền trong hệ thống thông tin số Mã hoá kênh: mục đích là làm giảm xác suất sai thông tin khi truyền qua kênh truyền. Việc giảm thiểu xác suất sai dựa việc phát hiện sai và sửa sai có thể dẫn đến việc giảm tỉ số tín hiệu trên nhiễu (SNR) cần thiết nhờ đó giảm được công suất, tiết kiệm năng lượng. Việc sửa sai hữu hiệu cho tín hiệu SNR nhỏ sẽ thuận lợi cho việc bảo mật, trải phổ và tăng độ chính xác của thông tin nhận- mục đích quan trọng nhất của truyền thông. 1.2 Khái niệm mã hóa kênh và phân loại 1.2.1 Khái niệm Mã hóa kênh là việc đưa thêm các bit dư vào tín hiệu số theo một quy luật nào đấy, nhằm giúp cho bên thu có thể phát hiện và thậm chí sửa được cả lỗi xảy ra trên kênh truyền. Thực hiện bộ giải mã Viterbi trên FPGA Trang 15 Chương 1: Tổng quan về hệ thống thông tin số Một số hệ thống có thể khắc phục lỗi bằng cách gởi một yêu cầu cho bên phát gửi lại tín hiệu nếu phát hiện lỗi, đó là chế độ ARQ. Nhưng việc này chỉ thích hợp cho các hệ thống truyền dẫn hữu tuyến và một số hệ thống vô tuyến không yêu cầu vể thời gian trễ. Thay vào đó, với các hệ thống thông tin không dây ngày nay, người ta hay sử dụng một loại mã có thể phát hiện và khắc phục lỗi một cách tự động. Việc này giảm thiểu thời gian trể so với các hệ thống yêu cầu truyền lại. Bộ mã này thường được gọi là mã điều khiển lỗi (ECC), hay chính xác hơn là FEC. Mục đích của lý thuyết Mã hóa trên kênh truyền là tìm những mã có thể truyền thông nhanh chóng, chứa đựng nhiều từ mã tự hợp lệ và có thể sửa lỗi hoặc ít nhất phát hiện các lỗi xảy ra. 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 khác biệt ở đâ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ụ bị giới hạn bởi nhiễu nhiệt 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 tạp âm tiếp diễn. Điện thoại di động 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, ngay cả 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. Thực hiện bộ giải mã Viterbi trên FPGA Trang 16 Chương 1: Tổng quan về hệ thống thông tin số 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ã hợp lệ.  Khoảng cách Hamming tối thiểu giữa hai từ mã hợp lệ. Hình 1.2: Sự phân chia mã hóa kênh thành hai nhánh riêng biệt Trong mỗi loại mã lại được phân tách thành 2 nhánh nữa đó là mã tuyến tính và mã không tuyến tính. Thường thì các mã không tuyến tính không được ứng dụng trong thực tế vì các nhược điểm của nó, nên ở đây chúng ta chỉ đề cập đến các mã tuyến tính. Trong phần tiếp theo chúng ta sẽ khái quát sơ lược về mã khối và mã trellis. 1.3 Khái quát về mã khối và mã trellis 1.3.1 Mã khối Mã khối tuyến tính mang tính năng tuyến tính, chẳng hạn tổng của hai từ mã nào đấy lại chính là một từ mã; 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. 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. Bất cứ mã khối tuyến tính nào cũng được đại diện là (n,m,dmin), trong đó 1. n, là chiều dài của từ mã, trong ký hiệu, 2. m, là số ký h

Các file đính kèm theo tài liệu này:

  • pdfthuc_hien_bo_giai_ma_viterbi_tren_fpga_5725.pdf