THIẾT kế MẠCH mã hóa và GIẢI mã CHẬP TRONG FPGA ............... THIẾT kế MẠCH mã hóa và GIẢI mã CHẬP TRONG FPGA ............... THIẾT kế MẠCH mã hóa và GIẢI mã CHẬP TRONG FPGA ............... THIẾT kế MẠCH mã hóa và GIẢI mã CHẬP TRONG FPGA ...............
Trang 2MỤC LỤC
Trang 4DANH MỤC CÁC TỪ VIẾT TẮT
Trang 5CHƯƠNG 1: BỘ MÃ HÓA, BỘ GIẢI MÃ, MÃ CHẬP VÀ FPGA
1 BỘ MÃ HÓA
1.1 Định nghĩa
Bộ mã hóa là một thuật toán hoặc một người mà khi chuyển đổi thông tin từ một định dạng hoặc một loại mã cho thiết bị khác với các tiêu chuẩn hóa, tốc độ, nén…
1.2 Ví dụ
t máy nén mã hóa dữ liệu 8b / 10b mã hóa sử dụng cho tốc độ nhanh trong hệ thống thông tin liên lạc
m biến Một bộ mã hóa tuyến tính tương tự như chuyển đổi vị trí tuyến tính với một tín hiệu điện tử
t thiết bị dùng để thay đổi một tín hiệu hoặc dữ liệu vào một mã số
Trang 6ĐỒ ÁN 3
Trang 6 / 14
2 BỘ GIẢI MÃ
2.1 Định Nghĩa
Là một thiết bị có khả năng chuyển đổi tín hiệu âm thanh hoặc video vào một dạng khác
2.2 Ví dụ
• Giải mã Âm thanh chuyển đổi âm thanh analog sang dạng kỹ thuật số
• Bộ giải mã nhị phân
• Giải nén chuyển đổi dữ liệu nén sang không nén
• Video encoder , chuyển đổi video base-band analog sang dạng số
3 MÃ CHẬP
3.1 Định Nghĩa
Mã chập (tiếng Anh: convolutional code) là một loại mã sửa lỗi trong đó
mỗi symbol m bit (chuỗi m bit) được mã hóa thành một symbol n bit, với m/n là tỉ lệ
mã hóa (code rate) (n ≥ m) hàm truyền đạt là một hàm của k symbol thông tin, với k là constraint length
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 Trellis) và được xây dựng dựa trên một đa thức sinh hoặc một sơ đồ chuyển trạng thái (trellis mã) đặc trưng Quá trình giải mã của mã chập phải dựa vào trellis mã thông qua các giải thuật khác nhau, trong đó nổi tiếng nhất là giải thuật Viterbi
3.2 Ứng dụng
Mã xoắn được dùng để nâng cao chất lượng của hệ thống vô tuyến số, điện thoại di động, thông tin vệ tinh và Bluetooth
Mã hóa chập và thuật toán giải mã Viterbi được sử dụng trong khoảng hơn một tỉ điện thoại, có thể là lớn nhất trong các loại thuật toán được ứng dụng Ngày nay, chúng còn được sử dụng trong các thiết bị bluetooth
THIẾT KẾ MẠCH MÃ HÓA VÀ GIẢI MÃ CHẬP TRONG FPGA
Trang 73.3 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
Mã chập là mã tuyến tính có ma trận sinh có cấu trúc sao cho phép mã hóa có thể xem như một phép lọc (hoặc lấy tổng chập) Mã chập được sử dụng rộng rãi trong thực
tế Bởi mã hóa được xem như một tập hợp các bộ lọc số tuyến tính với dãy mã là các đầu ra của bộ lọc được ghép xen kẽ Các mã chập là các mã đầu tiên đượ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 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ã được hiểu là cứ có k ngõ vào ở mỗi bước thời gian sẽ tạo ra n ngõ ra Các phép tính số học sử dụng trong hình thức mã hóa này có thể được thực hiện trên một trường tùy ý nhưng thông thường vẫn là trên GF(2)
Ta biểu thị các dãy và các hàm truyền đạt như các chuỗi lũy thừa của biến x (đôi khi còn dùng ký hiệu D thay cho x) Dãy {…,m-2, m-1, m0, m1, m2, …} (với các phần tử
mi thuộc trường F) được xem như một chuỗi Laurent:
Tập tất cả các chuỗi Laurent trên F là một trường, ta ký hiệu trường này là
Như vậy
Đối với dòng nhiều bit vào ta dùng ký hiệu m(1)(x) biểu thị dòng đầu vào đầu tiên, m(2)(x) biểu thị dòng đầu vào thứ hai Tập các dòng vào xem như một vectơ:
Bộ mã hóa cho mã chập thường được coi là một tập các bộ lọc số
Trang 8ĐỒ ÁN 3
Trang 8 / 14
Hình 1-1: Bộ mã hóa cho mã chập.
(các ô D biểu thị các ô nhớ một bít – các trigger D) Dòng vào mk đi qua hai bộ lọc dùng chung các phần tử nhớ tạo ra hai dòng ra
Hai dòng ra này được đưa ra xen kẽ để tạo ra dòng được mã hóa Ck Như vậy cứ mỗi bít vào lại có hai bít mã hóa được đưa ra, kết quả là ta có một mã có tốc độ R = 1/2
Thông thường ta coi trạng thái ban đầu của các phần tử nhớ là 0 Như vậy, với dòng vào m = {1, 1, 0, 0, 1, 0, 1} các đầu ra sẽ là:
C(1)= {1, 0, 0, 1, 1, 1, 0, 1, 1}
và C(2)= {1, 1, 1, 1, 1, 0, 0, 0, 1}
Dòng ra: C = {11, 01, 01, 11, 11, 10, 00, 10, 11}
Ở đây dấu phẩy phân cách các cặp bít ra ứng với mỗi bít vào
Ta có thể biểu thị hàm truyền từ đầu vào m(x) từ đầu ra C(1)(x) như sau:
Tương tự ta có
Dòng vào m = {1, 1, 0, 0, 1, 0, 1} có thể biểu thị như sau:
Các đầu ra sẽ là:
THIẾT KẾ MẠCH MÃ HÓA VÀ GIẢI MÃ CHẬP TRONG FPGA
Trang 9Với mỗi mã chập tốc độ có một hàm truyền ma trận k × n (x) (còn được gọi
là ma trận truyền) Với mã tốc độ ở ví dụ trên ta có:
3.4 Ưu nhược điểm của mã chập
Ưu điểm
Mã chập cho phép sửa lại dữ liệu đã bị sai lệch khi truyền qua kênh truyền để khôi phục chính xác tín hiệu 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
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 được các lỗi một bit Kênh truyền ở đây phải là kênh truyền ít nhiễu, vì nếu kênh truyền nhiễu quá lớn,
mã hóa chập sẽ không còn tốt nữa Khi đó ta phải cần tới trải phổ tín hiệu để đưa tín hiệu xuống dưới mức nhiễu để giảm thiểu ảnh hưởng
4. FPGA
4.1 Định nghĩa
Field-programmable gate array (FPGA) là một loại mạch tích hợp cỡ lớn dùng cấu trúc mảng phần tử logic mà người dùng có thể lập trình được Vi mạch FPGA được cấu thành từ các bộ phận:
• Các khối logic cơ bản (logic block)
• Hệ thống mạch liên kết lập trình được
Trang 10ĐỒ ÁN 3
Trang 10 / 14
• Khối vào/ra (IO Pads)
• Phần tử thiết kế sẵn khác như DSP slice, RAM, ROM, nhân vi xử lý
4.2Ứng dụng
Ứng dụng của FPGA bao gồm: xử lý tín hiệu số DSP, các hệ thống hàng không, vũ trụ, quốc phòng, tiền thiết kế mẫu ASIC (ASIC prototyping), các hệ thống điều khiển trực quan, phân tích nhận dạng ảnh, nhận dạng tiếng nói, mật mã học, mô hình phần cứng máy tính, máy đánh cờ
Do tính linh động cao trong quá trình thiết kế cho phép FPGA giải quyết lớp những bài toán phức tạp mà trước kia chỉ thực hiện nhờ phần mềm máy tính, ngoài ra nhờ mật
độ cổng logic lớn FPGA được ứng dụng cho những bài toán đòi hỏi khối lượng tính toán lớn và dùng trong các hệ thống làm việc theo thời gian thực
THIẾT KẾ MẠCH MÃ HÓA VÀ GIẢI MÃ CHẬP TRONG FPGA
Trang 114.3 Cấu trúc
Hình 1-2: Cấu trúc FPGA.
Phần tử chính của FPGA là các khối logic (logic block) Khối logic được cấu thành
từ LUT và một phần tử nhớ đồng bộ flip-flop, LUT (Look up table) là khối logic có thể thực hiện bất kì hàm logic nào từ 4 đầu vào, kết quả của hàm này tùy vào mục đích mà gửi ra ngoài khối logic trực tiếp hay thông qua phần tử nhớ flip-flop
Trang 12ĐỒ ÁN 3
Trang 12 / 14
Hình 1-3: Cấu trúc slide.
1 Slice tạo thành từ gồm 2 khối logic, số lượng các Slices thay đổi từ vài nghìn đến vài chục nghìn tùy theo loại FPGA 4 slices tạo thành một Configurable Logic Blocks (CLBs) CLBs là phần tử cơ bản cấu thành FPGA, là nguồn tài nguyên logic chính tạo nên các mạch logic đồng bộ lẫn không đồng bộ
4.4 Thuật toán Viterbi
Thuật toán Viterbi là một giải pháp được sử dụng để giải mã chuỗi bit được mã hóa bởi bộ mã hóa tích chập
Thuật toán Viterbi được khởi xướng bởi Andrew Viterbi năm 1967, là một thuật toán giải mã cho mã chập qua các tuyến thông tin số có nhiễu
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ự
THIẾT KẾ MẠCH MÃ HÓA VÀ GIẢI MÃ CHẬP TRONG FPGA
Trang 13CHƯƠNG 2: MÔ PHỎNG
1. SƠ ĐỒ KHỐI
Hình 2 1: Sơ đồ khối bộ mã hóa và giải mã chập.
2. GIẢI THUẬT
3.
Hình 2 2: Lưu đồ giải thuật.
Trang 14ĐỒ ÁN 3
Trang 14 / 14
1. Kết quả mô phỏng
THIẾT KẾ MẠCH MÃ HÓA VÀ GIẢI MÃ CHẬP TRONG FPGA
Reset lại
Vẽ Ber
Chạy CT Nhập bit vào
Giải mã bit
Mã hóa bit Bit đầu vào Chọn quyết định
Trang 15CHƯƠNG 3: NHẬN XÉT VÀ KẾT LUẬN
1. NHẬN XÉT
Cùng một số lượng bit vào như nhau thì giải mã quyết định cứng sẽ giải mã với số bit sai nhiều hơn so với giải mã quyết định mềm Giải mã quyết định mềm sử dụng lượng tử hóa nhiều bit => tạo độ tin cậy khi giải mã cao hơn so với giải mã quyết định mềm chỉ sử dụng lượng tử 1 bit
Tỷ số tín hiệu/nhiễu SNR cao => nghĩa kênh truyền ít nhiễu => giải mã quyết định cứng và mềm sẽ cho kết quả giải mã là gần như nhau
2. KẾT LUẬN
Trong quá trình thực hiện thiết kế mạch em đã ứng dụng những nội dung đã được học cộng thêm những tư liệu tham khảo sau quá trình tìm tòi với mục đích hoàn thành nhiệm vụ được giao Hy vọng thong qua đề tài này, thầy cô và các bạn có thêm tài liệu
để nghiên cứu
Trang 16ĐỒ ÁN 3
Trang 16 / 14
TÀI LIỆU THAM KHẢO
THIẾT KẾ MẠCH MÃ HÓA VÀ GIẢI MÃ CHẬP TRONG FPGA
Trang 17PHỤ LỤC