báo cáo mã hóa kênh
Đại học Công Nghệ - Đại học Quốc gia Hà Nội 1 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Hà Mạnh Hùng MÃ HÓA KÊNH KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Hệ thống viễn thông Cán bộ hướng dẫn: Đinh Thị Thái Mai ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Hà Mạnh Hùng MÃ HÓA KÊNH KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Điện tử - Viễn thông HÀ NỘI - 2015 Đại học Công Nghệ - Đại học Quốc gia Hà Nội 2 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Hà Mạnh Hùng MÃ HÓA KÊNH KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Điện tử - Viễn thông. Cán bộ hướng dẫn: Đinh Thị Thái Mai. HÀ NỘI – 2015 Đại học Công Nghệ - Đại học Quốc gia Hà Nội LỜI CẢM ƠN Sau quá trình học tập và nghiên cứu, em đã hoàn thành khóa luận của mình về “Mã Hóa Kênh” dưới sự hướng dẫn và chỉ bảo tận tình của Thạc sỹ Đinh Thị Thái Mai. Với tình cảm trân trọng, em xin chân thành cảm ơn Thạc sỹ Đinh Thị Thái Mai đã hướng dẫn, chỉ bảo em hoàn thành khóa luận . Cùng với đó, em xin gửi lời cảm ơn sâu sắc tới các thầy, cô trong khoa Điện tử - Viễn thông cùng toàn thể các thầy cô trong trường Đại Học Công Nghệ đã dạy dỗ em trong suốt bốn năm học vừa qua. Sự tiến bộ trong học tập và nghiên cứu của em cũng có phần rất lớn từ sự giúp đỡ và động viên của các bạn cùng lớp và người thân. Em xin cảm ơn những tình cảm quý báu đó. Vì thời gian làm Khóa luận không nhiều nên bài Khóa luận của em không thể tránh khỏi sai sót, do đó, em rất mong nhận được ý kiến đóng góp của thầy cô và các bạn. Em xin chân thành cảm ơn! Hà nội, ngày 21 tháng 05 năm 2015 3 Đại học Công Nghệ - Đại học Quốc gia Hà Nội TÓM TẮT Tác động của kênh truyền lên tín hiệu có thể chia thành hai loại: Thứ nhất là loại xác định như suy giảm, méo tuyến tính hoặc phi tuyến. Thứ hai là loại không xác định như ồn cộng tính, suy giảm đa đường… Các tác động này gây ra lỗi tín hiệu với một xác suất nào đó, và có thể làm giảm xác suất lỗi này bằng cách biến đổi trước bản tin được truyền bằng cách đặt thêm vào bản tin một số bit nào đó, sau đó tạo mối quan hệ giữa các bit được thêm vào và các bit gốc, từ đó làm tăng độ tin cậy của việc truyền tin qua kênh. Quá trình trên gọi là MÃ HÓA KÊNH. Hiện nay, nhu cầu việc truyền tin tin cậy ngày càng cao, và cũng ngày càng có nhiều phương pháp mã hóa kênh ra đời để đáp ứng yêu cầu đó. Khóa luận sẽ đề cập đến ba phương pháp mã hóa kênh chính là mã Hamming, mã Xoắn và mã Turbo, quá trình tạo và giải mã của từng phương pháp cũng như mô phỏng một cách tổng quan hoạt động của ba mã đó. Ngoài ra, khóa luận cũng đề cập đến các kiến thức cơ bản liên quan đến các loại mã như Khoảng cách Hamming, Sơ đồ lưới, Giải thuật MAP… 4 Đại học Công Nghệ - Đại học Quốc gia Hà Nội CÁC TỪ VIẾT TẮT ASCII: American Standard Code for Information Interchange: Chuẩn mã trao đổi thông tin Hoa Kì. AWGN: Additive White Gaussian Noise: Nhiễu Gauss trắng. APP : A Posterior Probability: Xác suất Posterior. BCH: Là mã có tên viết tắt của ba người sáng lập ra là Bose, Chaudhuri và Hocquenghem. BER: Bit Error Rate: Tỉ lệ lỗi bit BPSK: Binary Phase Shift Keying: Điều chế pha nhị phân. FER: Frame Error Rate: Tỉ lệ lỗi khung. Inter: Interleaver: Bộ chèn. IIR: Infinite Impulse Response: Bộ lọc số có đáp ứng xung chiều dài vô hạn. LLR: Log likelihodd Ratio: Tỉ số tin cậy. LSB: Least Significiant Bit - Bit có trọng số thấp nhất. MAP: Maximum A Posteriori: Là xác suất lớn nhất của 1 bit nào đó được truyền dựa trên tín hiệu nhận được. ML: Maximum Likelihood: Khả năng xảy ra lớn nhất. PCCC: Parallel Concatenated Convolutional Code: Mã tích chập kết nối song song. RSC: Recursive Systemtic Convolutional Code: Mã tích chập hệ thống đệ quy. SOVA: Soft VA: thuật toán Viterbi quyết định mềm. SNR: Signal to Noise Ratio: Tỉ số tín hiệu / nhiễu. 5 Đại học Công Nghệ - Đại học Quốc gia Hà Nội MỤC LỤC Hà Mạnh Hùng 1 HÀ NỘI - 2015 1 Hà Mạnh Hùng 1 Hà Mạnh Hùng 2 HÀ NỘI – 2015 2 LỜI CẢM ƠN 3 TÓM TẮT 4 CÁC TỪ VIẾT TẮT 5 MỤC LỤC 6 Chương 1: Tổng quan về mã hóa kênh 8 1.1: Giới thiệu chung: 8 Chương 2: Mã Hamming 10 2.1: Giới thiệu chung: 10 2.2: Mã Hamming: 10 2.3: Kết luận 17 Chương 3: Mã Xoắn 17 3.1: Giới thiệu chung: 17 3.2: Mã Xoắn: 18 3.4: Kết luận 29 Chương 4: Mã Turbo 30 4.1: Giới thiệu chung: 30 4.3: Giải mã mã Turbo: 42 5.2: Xây dựng hệ thống sử dụng khối mã xoắn: 56 5.3: Xây dựng hệ thống sử dụng mã Turbo: 59 6 Đại học Công Nghệ - Đại học Quốc gia Hà Nội 5.4: So sánh tỉ lệ SNR và BER giữa các mã: 59 5.5: Kết luận: 60 Phụ lục 61 Tài liệu tham khảo 67 7 Đại học Công Nghệ - Đại học Quốc gia Hà Nội Chương 1: Tổng quan về mã hóa kênh 1.1: Giới thiệu chung: Trong thông tin vệ tinh, tín hiệu luôn bị ảnh hưởng lớn bởi nhiễu do nhiễu vô tuyến từ các thiên hà hoặc quá trình phát xạ từ mặt trời. Còn trên mặt đất, tín hiệu của một thiết bị phát luôn bị ảnh hưởng bởi nhiễu do môi trường, do phản xạ Sự có mặt của nhiễu gây nên lỗi dữ liệu hay sai lệch giữa lối vào và ra trong hệ truyền tin. Do đó, nhu cầu đặt ra là phải tách tín hiệu cần thiết ra khỏi nhiễu. Để thực hiện điều đó, người ta đã dùng giải pháp mã hóa kênh các tín hiệu, tức là thêm vào thông tin gốc các bit dư để bảo vệ trước khi chúng được phát qua kênh truyền có nhiễu. Ý tưởng cơ bản của phương pháp mã hóa kênh là nếu như một trong số các ký hiệu phát qua kênh bị méo do nhiễu thì những ký hiệu đó sẽ bị ảnh hưởng bởi nhiễu ít hơn, do đó giúp giải mã các bit thông tin thực tế với độ tin cậy cao hơn. Nguyên tắc chung của mã kênh là đưa thêm các bit dư vào dữ liệu để dựa vào đó, bộ giải mã bên thu có thể khôi phục lại dữ liệu ít sai lệch hơn so với khi không dùng mã kênh. Hình 1.1: Sử dụng mã hóa kênh trong truyền tin Bằng cách mã hóa kênh như vậy, các bit thông tin có thể được biểu diễn không chỉ biểu diễn bằng một góc dịch pha (nếu sử dụng điều chế khóa pha M-PSK) mà còn có thể 8 Đại học Công Nghệ - Đại học Quốc gia Hà Nội được biểu diễn bằng 4, 8 hoặc nhiều hơn nữa các ký hiệu. Với hệ thống dùng mã hóa kênh, ở phía thu chúng ta không tách các bit thông tin thực tế mà thay vào đó là các ký hiệu mã hóa để từ các ký hiệu đó chúng ta có thể khôi phục lại các bit thông tin gốc… Có hai loại mã hóa kênh chính là mã khối (block code) và mã chập (convolutional code). Mã khối tiến hành trên từng khối bản tin k bit, cho thêm (n - k) bit dư tạo nên từ mã n bit có tốc độ bit R 0 = (n/k)R s R s : Tốc độ nguồn thông tin. R 0 : Tốc độ dữ liệu kênh. R = k/n : Tốc độ mã. Có nhiều loại mã khối, như: • Mã tuần hoàn (Cyclic codes) (Mã Hamming là một bộ phận nhỏ của mã tuần hoàn) • Mã lặp (Repetition codes) • Mã chẵn lẻ (Parity codes) • Mã Reed-Solomon (Reed Solomon codes) • Mã BCH (BCH code) • Mã Reed-Muller Mã Xoắn (Convolutional code) có thể coi là chập giữa dãy lối vào và đáp ứng xung của bộ mã. Độ dài của đáp ứng xung bằng bộ nhớ của bộ mã. Mộ mã dùng cửa sổ trượt trên dãy bản tin đến, độ rộng cửa sổ bằng độ dài bộ nhớ. Như vậy khác với mã khối, mã Xoắn nhận bản tin như dãy liên tục và cho bit mã ra cũng liên tục với tốc độ cao hơn. Mã Turbo được phát triển dựa trên mã Xoắn, gồm hai mã Xoắn đệ quy hệ thống RSC kết nối song song, phân biệt nhờ bộ xáo trộn giả ngẫu nhiên và thuật toán giải mã lặp với chất lượng tiến tới tiệm cận Shannon. Trong khuôn khổ của luận án, tôi chỉ trình bày về một số mã điển hình là mã Hamming, mã Convolutional và mã Turbo. 9 Đại học Công Nghệ - Đại học Quốc gia Hà Nội Chương 2: Mã Hamming 2.1: Giới thiệu chung: Trong những năm của thập niên kỷ 1940, Hamming làm việc tại Bell Labs trên máy tính Bell Model V và một máy điện cơ (electromechanical) dùng rơ-le với tốc độ rất chậm, mấy giây đồng hồ một chu kỳ máy. Nhập liệu được cho vào máy bằng những cái thẻ đục lỗ (punch cards), và hầu như máy luôn luôn gây lỗi trong khi đọc. Trong những ngày làm việc trong tuần, những mã đặc biệt được dùng để tìm ra lỗi và mỗi khi tìm được, nó nhấp nháy đèn báo hiệu, báo cho người điều khiển biết để họ sửa, điều chỉnh máy lại. Trong thời gian ngoài giờ làm việc hoặc trong những ngày cuối tuần, khi người điều khiển máy không có mặt, mỗi khi có lỗi xảy ra, máy tính tự động bỏ qua chương trình đương chạy và chuyển sang công việc khác. Hamming thường làm việc trong những ngày cuối tuần và ông càng ngày càng trở nên bực tức mỗi khi ông phải khởi động lại các chương trình ứng dụng từ đầu, do chất lượng kém, không đáng tin cậy của bộ máy đọc các thẻ đục lỗ. Mấy năm tiếp theo, ông dồn tâm lực vào việc xây dựng hằng loạt các thuật toán có hiệu quả cao để giải quyết vấn đề sửa lỗi. Năm 1950, ông đã công bố một phương pháp mà hiện nay được biết là Mã Hamming. 2.2: Mã Hamming: 2.2.1: Khoảng cách Hamming: Khoảng cách Hamming được sử dụng trong kỹ thuật viễn thông để tính số lượng các bit trong một từ nhị phân (binary word) bị đổi ngược, như một hình thức để ước tính số lỗi xảy ra trong quá trình truyền thông, và vì thế, đôi khi nó còn được gọi là khoảng cách tín hiệu (signal distance). Việc phân tích trọng số Hamming của các bit còn được sử dụng trong một số ngành, bao gồm lý thuyết tin học, lý thuyết mã hóa, và 10 [...]... về mã chập hệ thống đệ quy (Recursive Systematic Convelutional Code_RSC), là cơ sở của việc tao ra mã TC • Chi tiết cấu trúc bộ mã hóa PCCC 4.1.2 Sự kết nối mã và ra đời của mã turbo (TURBO CODE): Forney đã sử dụng một bộ mã khối ngắn hoặc một bộ mã tích chập với giải thuật giải mã Viterbi xác suất lớn nhất làm bộ mã trong và một bộ mã Reed-Salomon dài không nhị phân tốc độ cao với thuật toán giải mã. .. trưng cho mã PCCC r = 1/2 Một mã PCCC r =1/2 được lấy bằng cách kết hơp 2 chuỗi ngõ ra của mã PCCC r = 1/3 thành một chuỗi ngõ ra của mã PCCC r = 1/2 Tuy nhiên, bằng cách kết hợp 2 chuỗi ngõ ra được mã hóa này, có thể một bit thông tin sẽ không có các bit mã hóa của nó ( hoặc cả hai bit mã hóa kết hợp lại cho ra sửa sai cho cùng một bit tin) Cũng có thể một bit tin có một hay cả hai bít được mã hóa của... học Quốc gia Hà Nội Trong mã xoắn, tỉ lệ R = bit thông tin / bit truyền gọi là tỷ lệ mã hóa (code rate), tỷ lệ này nhỏ hơn 1 Còn số bit thông tin xảy ra mã xoắn là độ dài giới hạn k (contraint length) Ví dụ, ta sẽ mã hóa một bản tin sử dụng mã xoắn, với tỷ lệ mã hóa là R = 0.5 thì với mỗi 1 bit thông tin sẽ có 2 bit được truyền đi và sử dụng độ dài giới hạn k=3 Khi đó, bộ mã hóa xoắn sẽ gửi ra ngoài... các bộ giải mã ngày nay đều sử dụng thuật toán Viterbi Mã xoắn được sử dụng phổ biến vì có hệ số mã cao và giảm nhiều tỷ lệ lỗi, hiệu quả mà chúng đạt được thì không thua kém gì những loại mã kênh khác Hiệu quả tốt của mã xoắn một phần nhờ vào kỹ thuật 29 Đại học Công Nghệ - Đại học Quốc gia Hà Nội giải mã quyết định mềm Chương 4: Mã Turbo 4.1: Giới thiệu chung: 4.1.1 Giới thiệu mã turbo: Mã Turbo được... nhiều bộ mã riêng biệt để tạo ra một mã tốt hơn và cũng lớn hơn Mô hình ghép nối mã đầu tiên được Forney nghiên cứu để tạo ra một loại mã có xác suất lỗi giảm theo hàm mũ tại tốc độ nhỏ hơn dung lượng kênh trong khi độ phức tạp giải mã chỉ tăng theo hàm đại số Mô hình này bao gồm sự kết nối nối tiếp một bộ mã trong và một bộ mã ngoài Phần này trình bày: • Sự kết nối các mã và sự ra đời của mã Turbo... nói, lịch sử phát triển của mã sửa lỗi được bắt đầu bằng sự ra đời của mã Hamming và định lý Shannon Việc ra đời mã Hamming là cơ sở cho việc phát triển thêm nhiều loại mã hóa mới, có độ tin cậy cao hơn sau này Mã Hamming có tầm quan trọng cơ bản trong lý thuyết mã hóa và được sử dụng thực tế trong thiết kế máy tính Ưu điểm của mã này là đơn giản, số bit kiểm tra ít, ngoài ra, mã này hoạt động tốt trong... là bộ mã ngoài, còn bộ mã hoá 2 là bộ mã trong Đối với mã kết nối nối tiếp, tốc độ mã hoá: Rnt=k1k2/n1n2 Đối với mã song song, tốc độ mã hoá tổng: Bộ mã hoá 1 r = k/n1 Ngõ vào Bộ mã hoá r = k/n2 Rss=k/(n1+n2) Bộ ghép (Multiplexer) Ngõ ra Hình 4.2: Mã kết nối song song Trên chỉ là các mô hình kết nối lý thuyết.Thực tế các mô hình này cần phải sử dụng thêm các bộ chèn giữa các bộ mã hoá nhằm cải tiến khả... 0, 0, 0, 0, 1, 0, 1, 0} cũng chính là đầu vào của bộ mã hóa thứ hai Sơ đồ lưới của đầu vào của cả hai bộ mã hóa này được biểu diễn như hình dưới đây: 34 Đại học Công Nghệ - Đại học Quốc gia Hà Nội Hình 4.4: Sơ đồ lưới của hai bộ mã hóa Khi đó, đầu ra của bộ mã hóa thứ nhất sẽ là: {0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0} Đầu ra của bộ mã hóa thứ hai sẽ là: {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,... độ dài giới hạn k=3) Hình3.15: Mã xoắn với tốc độ mã R=0.5 và k=9 Ta có thể thấy là với phương pháp mã hóa này thì mỗi bít thông tin đầu vào sẽ ảnh hưởng tới 6 bít đầu ra 3.2: Mã Xoắn: 3.2.1: Ví dụ về mã xoắn: Để làm rõ hơn phương thức hoạt động của mã xoắn, ta xét một bộ mã xoắn có tốc độ mã k=0.5 18 Đại học Công Nghệ - Đại học Quốc gia Hà Nội Hình 3.2: Sơ đồ khối của mã xoắn Với k=0.5 thì với mỗi... có tương ứng 3 bit ngõ ra mã hoá thì ta cho ngõ ra mã hoá chỉ còn 2 bit Như ở hình 4.3, bộ Puncturing sẽ lấy lần lượt, xen kẽ các bít ở cả hai chuỗi vr1 và vr2 Sau đó, các đầu ra này sẽ được ghép kênh và truyền trên kênh, kết thúc quá trình mã hóa Hình 4.4: Mã hóa Turbo 33 Đại học Công Nghệ - Đại học Quốc gia Hà Nội Bây giờ chúng ta sẽ xét đến các đa thức chứa trong khối mã xoắn h0(D) và h1(D) cùng . phương pháp mã hóa kênh chính là mã Hamming, mã Xoắn và mã Turbo, quá trình tạo và giải mã của từng phương pháp cũng như mô phỏng một cách tổng quan hoạt động của ba mã đó. Ngoài ra, khóa luận. dựa vào đó, bộ giải mã bên thu có thể khôi phục lại dữ liệu ít sai lệch hơn so với khi không dùng mã kênh. Hình 1.1: Sử dụng mã hóa kênh trong truyền tin Bằng cách mã hóa kênh như vậy, các bit. qua kênh. Quá trình trên gọi là MÃ HÓA KÊNH. Hiện nay, nhu cầu việc truyền tin tin cậy ngày càng cao, và cũng ngày càng có nhiều phương pháp mã hóa kênh ra đời để đáp ứng yêu cầu đó. Khóa