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 những công nghệ mới áp dụng cho các hệ thống thông tin
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
DƯƠNG VĂN LỢI
Mã turbo và ứng dụng trong các hệ thống thông tin thế hệ tiếp theo
Chuyên ngành : Điện tử viễn thông
LUẬN VĂN THẠC SĨ KHOA HỌC
…
Chuyên ngành Điện tử viễn thông
NGƯỜI HƯỚNG DẪN KHOA HỌC :
1 Ts Nguyễn Hữu Trung
2 Ts.Nguyễn Thúy Anh
Hà Nội – Năm 2010
Trang 2Cùng với sự phát triển của Khoa Học và Công Nghệ, công nghệ viễn thông trong những năm qua cũng đã có những bước phát triển mạnh mẽ ngày càng đáp được nhu cầu của con người
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 những công nghệ mới áp dụng cho các hệ thống thông tin, để đáp ứng nhu cầu này công nghệ mã hóa sử dụng mã turbo đã ra đời và được khuyến cáo dùng trong rất nhiều hệ thống thông tin Để hiểu rõ nguyên lý hoạt động cũng như những ưu, nhược điểm, ứng dụng của công nghệ này em đã chọn đề tài : ”Ứng dụng mã Turbo trong hệ thống thông tin thế hệ tiếp theo”
Nội dung đồ án gồm 4 chương :
• Chương 1: Tổng quan: Giới thiệu chung về hệ thống thông tin số, sự kết nối các bộ mã tích chập hệ thống đệ quy để tạo nên mã Turbo và đưa ra các thành phần và kỹ thuật chung của bộ mã hoá Turbo kết nối song song
• Chương 2: Tìm hiểu về bộ giải mã, và thuật toán giải mã là MAP, log-MAP, Log-MAP và SOVA, htuaatj toán giả mã turbo lặp sử dụng MAP và SOVA
Mã-• Chương 3: Trình bày những ứng dụng của mã Turbo:Ứng dụng trong truyền thông không dây và truyền thông đa phương tiện đi vào một số cấu trúc mã được ứng dụng trong hệ thống thông tin thế hệ tiếp
• Chương 4: Chương trình mô phỏng bộ mã Turbo
Trong quá trình làm đồ án tốt nghiệp, mặc dù đã cố gắng nhiều nhưng vẫn không tránh những sai sót, em mong được sự phê bình, chỉ bảo và giúp đỡ của thầy
cô và bạn bè
Trang 3Hà Nội tháng 10 năm 2010
Trang 4Mục Lục Danh mục hình vẽ 3 Chương 1: Tổng quan 4
1.1 Giới thiệu chung 4
1.1.1 Cấu trúc hệ thống thông tin số _ 4 1.1.2 Các giới hạn cơ bản _ 6
1.2 Sự kết nối mã và ra đời của mã turbo (TURBO CODE) _ 7
1.3 Bộ mã hóa tích chập hệ thống đệ quy RSC 9
1.3.1 Mã tích chập hệ thống và không hệ thống 9 1.3.2 Mã tích chập đệ quy và không đệ quy 10 1.3.3 Bộ mã tích chập hệ thống đệ quy 10 1.3.4 Kết thúc TRELLIS _ 11
1.4 Quyết định cứng và quyết định mềm 12 1.5 Mã hóa mã turbo PCCC (parallel concatenated convolutional code 13
1.5.1 Bộ mã hóa _ 13 1.5.2 Kỷ thuật xóa (punture) 15 1.5.3 Bộ chèn (interleaver) 16 1.5.3.1 Ảnh hưởng của kich thước bộ chèn đến chất lượng mã _ 17 1.5.3.2 Ảnh hưởng của cấu trúc bộ chèn đến chất lượng mã _ 19 1.5.3.3 Bộ chèn kiểu khối 20 1.5.3.3.1 Bộ chèn khối 20 1.5.3.3.2 Bộ chèn khối chẵn lẻ _ 21 1.5.3.3.3 Bộ chèn khối Helical Simile 23 1.5.3.4 Bộ chèn kiểu xoắn (Convolutional) _ 24 1.5.3.4.1 Bộ chèn xoắn _ 24 1.5.3.4.2 Bộ chèn dịch vòng _ 25
Bộ chèn dịch vòng _ 25 1.5.3.5 Bộ chèn kiểu ngẫu nhiên _ 26 1.5.3.5.1 Bộ chèn ngẫu nhiên 26 1.5.3.5.2 Bộ chèn không đồng đều ( non-uniform 27 1.5.3.5.3 Bộ chèn ngẫu nhiên S ( S-randoom _ 28 1.5.3.6 kết luận : 29
Chương 2 Giải mã mã turbo _ 30
2.1 Giới thiệu chương 30 2.2 Mô hình hệ thống _ 30 2.3 Tiêu chuẩn tối ưu hóa _ 32 2.4 Giải thuật Viterbi _ 33 2.5 Thuật toán Viterbi hai chiều đầu ra mềm (SOVA) _ 37 2.6 Thuật toán MAP 40
2.6.1 Định nghĩa của α β và γ 43 2.6.2 Nguồn gốc của α 44 2.6.3 Nguồn gốc của β _ 44 2.6.4 Nguồn gốc của γ 45
2.7 Thuật toán Max-log-MAP 48
Trang 52.8 Tuật toán Log-Map 48 2.9 So sánh độ phức tạp của các thuật toán giải mã _ 49 2.10 Giải mã lặp dựa trên thuật toán MAP 50 2.11 Giải mã lặp dựa trên thuật toán SOVA _ 51
Chương 3: ứng dụng mã turbo trong hệ thông tin thế hệ sau 53
3.1 Giới thiệu chương 53 3.2 Các ứng dụng truyền thông đa phương tiện 53
3.2.1 Các hạn chế khi ứng dụng TC vào hệ thống truyền thông đa phương tiện: 53 3.2.1.1 Tính thời gian thực 53 3.2.1.2 Khối lượng dữ liệu lớn _ 54 3.2.1.3 Băng thông giới hạn _ 54 3.2.1.4 Tìm hiểu các đặc tính của kênh truyền 54 3.2.2 Các đề xuất khi ứng dụng TC vào truyền thông đa phương tiện _ 55 3.2.2.1.Kích thước khung lớn 55 3.2.2.2.Cải tiến quá trình giải mã _ 55 3.2.2.2.1 Giải mã động _ 55 3.2.2.2.2 Giải mã ưu tiên: _ 56 3.2.2.2.3 Cấu trúc giải mã Pipeline _ 57
3.3 Các ứng dụng truyền thông không dây: 58
3.3.1 Các hạn chế khi ứng dụng TC trong truyền thông không dây: 58 3.3.1.1.Kênh truyền: _ 58 3.3.1.2 Hạn chế về thời gian: 59 3.3.1.3 Kích thước khung nhỏ: 59 3.3.1.4 Băng thông giới hạn: 60 3.4. Mã turbo ứng dụng trong thông tin vũ trụ 60
3.5 Ứng dụng mã turbo trong CDMA 2000 62 3.6 Ứng dụng mã turbo trong UMTS 63 3.7 Ứng dụng trong thông tin thông tin vệ tinh _ 65
Chương 4 Chương trình mô phỏng _ 66
4.1 Cấu trúc chương trình _ 66 4.2 Chương trình chính _ 66 4.3 kết quả mô phỏng _ 68 4.4 Kết luận chương 76
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI _ 77 TÀI LIỆU THAM KHẢO _ 78 CÁC TỪ VIẾT TẮT _ 79 PHẦN PHỤ LỤC _ 80
Trang 6Danh mục hình vẽ
Hình 1.1 Mô hình hệ thống truyền thông số 4
Hình 1.2b: Mã kết nối song song 8
hình 1.3 Bộ mã hóa tích chập hệ thống 9
Hình 1.4 Bộ mã tích chập không hệ thống 10
Hình 1.5 bộ mã tích chập đệ quy 10
Hình 1.6 Bộ mã hoá RSC với R = 1/2 K=2 11
Hình 1.7 Cách thức kết thúc trellis ở bộ mã RSC 12
Hình 1.8 Bộ mã hoá PCCC tổng quát 14
Hình 1.9 Mã PCCC tốc độ 1/3 gồm 2 bộ mã hoá chập hệ thống đệ quy 15
Hình 1.10 minh họa bộ chèn 16
Hình 1.11 mô tả ánh xạ của bộ chèn 17
Hình 1.12 minh họa khoảng cách phổ ứng với giá trị N khác nhau 18
Hình 1.13 Đường giới hạn trên sác xuất lỗi bít với các kích thước khác nhau của bộ chèn .19
Hình 1.14 bộ chèn khối 20
Hình 1.15 Các mẫu vuông trọng số 4 21
Hình 1.16 Bộ chèn xoán và giải chèn xoắn 24
Hình 1.17 Bộ chèn giả ngẫu nhiên 27
Hình 2.1 Mô hình hệ thống 30
Hình 2.2 Bộ mã xoắn và minh họa của nó 36
Hình 2.3 Branch metric của bộ mã trong ví dụ trên 36
Hình 2.4 Đường survivor và path metric của chúng 37
Hình 2.5 bộ mã RSC tốc độ 1/2 với kích thước bộ nhớ bằng 2 41
Hình 2.6 Sơ đồ chuyển trạng thái của má RSC (2,1,2) 42
Hình 2.8 forward recurcision của thuật toán MAP 46
Hình 2.9 backward recurcision của thuật toán MAP 47
Hình 2.10: Bộ giải mã lặp MAP 50
Hình 2.11 Bộ giải mã lặp SOVA 51
Hình 3.1 Sơ đồ bộ giải mã lặp 57
Hình 3.2 Sơ đồ bộ giải mã pipeline 57
Hình 3.3 Sơ đồ bộ mã hóa dùng trong thông tin vũ trụ 61
Hình 3.4 Mã turbo cho đường xuống trong CDMA2000 62
Hình 3.5 Mã turbo cho 3GPP 64
Hình 3.6 chuỗi mã xoắn cho 3GPP 64
Hình 4.3: Chương trình mô phỏng chính 67
Hình 4.4: Kết quả lần 1 72
Hình 4.5: Kết quả lần 2 73
Hình 4.6: Kết quả lần 3 73
Hình 4.7: Kết quả lần 4 74
Hình 4.8: Kết quả lần 5 74
Hình 4.9: Kết quả lần 6 75
Hình 4.10: Kết quả lần 7 75
Trang 7Chương 1: Tổng quan
1.1 Giới thiệu chung
1.1.1 Cấu trúc hệ thống thông tin số
Để hiểu vai trò của mã sửa sai, chúng ta xem xét một mô hình tổng quát của hệ thống thông tin số như hình 1.1
Hình 1.1 Mô hình hệ thống truyền thông số
Bộ truyền dẫn có vai trò chuyển thông tin được sinh ra từ nguồn tin thành dạng có khả năng chống chịu với ảnh hưởng của nhiễu ở mức trung bình
Nguồn tin sinh ra bản tin mang thông tin cần được truyền đi Bản tin có thể
là từ, ký tự,… Đầu ra của nguồn tin được chuyển thành một chuỗi ký tự từ những chữa cái có sẵn, hầu hết các ký tự được truyền đi là dạng nhị phân
Đầu ra của nguồn tin về cơ bản là không phù hợp cho việc truyền tin, vì nó
có quá nhiều thông tin dư thừa Vì lý do hiệu quả, bộ mã hóa nguồn được thiết kế để làm giảm chuyển đổi nguồn tin thành dạng bit nhị phân với tối thiểu dư thừa Nếu
bộ mã hóa nguồn tạo ra r b bit mỗi giây thì r b gọi là tốc độ dữ liệu
Kênh truyền làm suy yếu và tạo ra lỗi đối với tín hiệu nhận được, bộ mã hóa kênh được đưa vào hệ thống nhằm thêm vào chuỗi thông tin một số bit thông tin dư thừa, sự dư thừa này sẽ được sử dụng để tối thiểu lỗi truyền Bộ mã hóa kênh được
thiết kế để mỗi k bit đầu vào sẽ sinh ra từ mã với chiều dài n bit, bộ mã tốt là bộ mã
Giải điều chế
Giải mã kênh
Giải mã nguồn
Lưu dữ
liệu
Kênh truyền
Trang 8sinh ra các từ mã khác nhau nhiều Điều này giúp các hệ thống thông tin ít bị tổn
hao, ảnh hưởng bởi lỗi kênh Mỗi mã được đặc trưng bởi R=k/n < 1 gọi là tỉ lệ mã (tốc độ mã), tốc độ mã ở đầu ra của bộ mã hóa kênh là r c =r b /R bps Mục đích đầu
tiên của mã sửa sai là tối đa hóa độ tin cậy của quá trình truyền tin với một mức công suất tín hiệu, băng thông hệ thống và độ phức tạp mạch hệ thống nhất định Điều này đạt được nhờ đưa vào cấu trúc dư thừa, thêm vào tín hiệu truyền đi Việc này làm cho tốc độ truyền của dữ liệu giảm xuống hoặc tăng băng thông của hệ thống
Tín hiệu ra của bộ mã hóa kênh thường không phù hợp cho việc truyền dẫn,
bộ điều chế cho phép tín hiệu có thể truyền trên kênh truyền,mục đích chính của bộ điều chế là phối hợp tín hiệu với kênh truyền, cho phép truyền đồng thời một số tín hiệu trên cùng một kênh truyền vật lysvaf tăng tốc độ truyền tin
Bộ điều chế ánh xạ chuỗi số đã được mã hóa vào một chuỗi ngắn sóng tương
tự phù hợp với suy hao của kênh truyền, ánh xạ l bits từ chuỗi sau mã hóa kênh
thành 1 trong M dạng sóng có thể có, trong đó M = 2l với chu kỳ của dạng sóng tín
hiệu là T khi đó r s = 1/T được gọi là tốc độ ký tự (symbol rate) Băng thông tối thiểu
của tín hiệu bằng với r s Hz trong đó r s có thể biểu diễn bởi r s = r b / (Rl) Quá trình
điều chế có thể được thực hiện bằng cách thay đổi biên độ, pha hoặc tần số của sóng mang có dạng hình sin
Kênh truyền là phương tiện truyền dẫn dùng để mang hoặc lưu thông tin, kênh truyền ví dụ là dây cáp, sóng radio, kênh truyền cáp quang, …thường thuật ngữ kênh truyền liên quan tới một dải tần số được ấn định cho một dịch vụ cụ thể như kênh TV, kênh thoại Hai giới hạn cơ bản của kênh truyền thực đó là nhiễu nhiệt và băng thông xác định Thêm vào đó nếu là kênh vô tuyến cho mobile còn bị ảnh hưởng bởi suy hao đa đường, kênh cáp quang bị ảnh hưởng bởi tín hiệu bị tán sắc…
Ở đầu thu, bộ giải điều chế cơ bản sẽ tạo ra bit nhị phân hoặc tín hiệu tương
tự ở đầu ra theo ước lượng tốt nhất có thể có về từ mã đã được truyền hoặc chuỗi đã được diều chế tương ứng Bộ giải mã kênh đưa ra ước lượng về bản tin được truyền
Trang 9thực sự Bộ giải mã này hoạt động dựa trên quy tắc mã hóa và đặc tính của kênh truyền Mục đích của bộ giải mã nhằm tối thiểu ảnh hưởng của nhiễu kênh truyền Trên cơ sở quy luật mã hóa của bộ mã hóa nguồn, bộ giải mã nguồn chuyển chuỗi ở đầu vào của nó theo ước lượng của nguồn và đưa tới người dùng
Bằng cách thiết kế hệ thống truyền nhận hợp lý, ta có thể loại bỏ hoặc làm giảm ảnh hưởng của các suy hao, biến dạng, và tối thiểu ảnh hưởng của nhiễu Tác động của nhiễu không thể bị loại bỏ hoàn toàn nếu chúng ta không biết đầy đủ thông tin về nhiễu
Nếu bộ giải điều chế đưa ra quyết định cứng, đầu ra của nó là các bit nhị phân, và theo đó bộ giải mã kênh sẽ hoạt động theo quyết định giải mã cứng Nếu đầu ra của bộ giải điều chế cho ra các ký tự trong 1 vòng lặp chỉ phụ thuộc vào các tín hiệu truyền trong vong lặp đó mà không phụ thuộc vào quá trình truyền trước đó thì ta nói đó là kênh truyền không nhớ, một đại diện là kênh nhị phân đối xứng (binary symmetric channel) Quyết định cứng trong bộ giải điều chế đôi khi sinh ra mất thông tin Một sự thay đổi đó là lượng tử hóa đầu ra của bộ giải điều chế nhiều hơn hai mức hoặc đưa lấy mẫu của tín hiệu nhận được băng cơ sở và đưa nó tới bộ
bộ giải mã kênh, quá trình giải mã kênh tiếp theo đó được gọi là giải mã quyết định mềm
Hai loại mã chính được sử dụng là mã khối và mã xoắn (mã tích chập) Sự khác nhau cơ bản giữa chúng là bộ nhớ của bộ mã hóa Với mã khối, bộ mã hóa hoạt động phụ thuộc vào bản tin đầu vào ở thời điểm hiện tại chứ không phụ thuộc vào trước đó, do đó bộ mã hóa không nhớ Ngược lại với mã xoắn, đầu ra không chỉ phụ thuộc vào bản tin đầu vào hiện tại mà còn phụ thuộc vào một số bản tin trước đó
1.1.2 Các giới hạn cơ bản
Băng thông của tín hiệu là thước đo tốc độ của tín hiệu Tín hiệu thay đổi nhanh theo thời gian sẽ có băng thông rộng Mặt khác bất kỳ hệ thông thông tin nào cũng đều có giới hạn về băng thông nhất định Băng thông B của hệ thống giới hạn
tốc độ thay đổi của tín hiệu được mô tả qua hiệu xuất phổ η = r b / B bit/sec/Hz hay
Trang 10η = Rlr s / B Trong đó r s là tốc độ ký tự Bưng thông đòi hỏi tối thiểu cho tín hiệu đã
được điều chế là r s Hz nên hiệu xuất phổ lớn nhất là: ηmax = lR
Thông số khác được dùng để tính toán độ tin cậy của thông tin truyền đi trong
hệ thống thông tin số là sác xuất lỗi bit (BER) Hiệu quả công xuất được đánh giởi tỉ
lệ năng lượng bit trên công xuất nhiễu một phía, Eb /N0 Tỉ lệ tín hiệu trên tạp âm (SNR) mô tả bằng S/N liên hệ với Eb /N0 :
S/N =lR.E b /N0
Với một kênh truyền cho trước, có một giới hạn trên của tốc độ truyền dữ liệu liên quan tới SNR và băng thông của hệ thống Shannon đã đưa ra khái niệm dung
lượng kênh truyền C như là tốc độ tối đa mà thông tin có thể truyền trên kênh có
nhiễu.với kênh nhiễu trắng Gaussian (AWGN) :
C = B log2 ( 1+ S/N) bit/sec
Lý thuyết về mã hóa kênh của Shannon đã chứng minh tồn tại mã có thể có sác xuất
lỗi nhỏ tùy ý nếu dữ liệu được truyền đi với tốc độ r b < C và ngược lại, không thể thiết kế mã có sác xuất lỗi nhỏ tùy ý nếu r b > C , điều này cho thấy nhiễu tạo nên
giới hạn trên tốc độ dữ liệu nhưng không giới hạn trên sác xuất lỗi, lý thuyết của Shannon đã không chỉ ra cách thiết kế bộ mã để đạt được tốc độ tối đa dữ liệu ở sác xuất lỗi nhỏ tùy ý, nó thúc đẩy việc nghiên cứu phát triển một số công nghệ mã sửa sai Lý thuyết cũng chỉ ra là nếu Băng thông của hệ thống có thể mở rộng đến vô
hạn, thì ta có thể truyền tin với tốc đọ tối đa bằng dung lượng kênh C với E b /N0 nhỏ nhất là -1.59 dB khi hiệu suất phổ tiến đến 0 Mã tubo với thuật toán giải mã lặp hầu như tiếp cận được với giới hạn này, nó có thể đạt tỉ lệ lỗi bit 10-5 ở Eb /N0 = 0.7
dB với hiệu suất phổ 0.5 bits/sec/Hz.
1.2 Sự kết nối mã và ra đời của mã turbo (TURBO CODE)
Mã Turbo là sự kết nối gồm hai hay 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
Trang 11Phần tiếp theo sẽ trình bày:
• Sự kết nối các mã và sự ra đời của mã Turbo( TC)
• Gới thiệu 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
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ã sửa lỗi đại số làm bộ
mã ngoài
Mục đích lúc đầu chỉ là nghiên cứu một lý thuyết mới nhưng sau này mô hình ghép nối mã đã trở thành tiêu chuẩn cho các ứng dụng cần độ lợi mã lớn Có hai
kiểu kết nối cơ bản là kết nối nối tiếp (hình 1.2a) và kết nối song song ( hình 1.2b)
Hình 1.2a Mã kết nối nối tiếp
Hình 1.1b: Mã kết nối song song
Bộ mã hoá 1 được gọi 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: Rss=k/(n1+n2)
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ả năng sửa sai
Bộ mã hoá 1
r = k1/n1
Bộ mã hoá 2
r = k2/n2Ngõ vào
Trang 12Năm 1993, Claude Berrou, Alain Glavieux, Puja Thitimajshima đã cùng viết
tác phẩm “Near Shannon limit error correcting coding and decoding: TURBO CODE” đánh dấu một bước tiến vượt bậc trong nghiên cứu mã sửa sai Loại mã mà
họ giới thiệu thực hiện trong khoảng 0.7dB so với giới hạn của Shannon cho kênh AWGN Loại mã mà họ giới thiệu được gọi là mã Turbo, thực chất là sự kết nối song song các bộ mã tích chập đặc biệt cùng với các bộ chèn Cấu hình này gọi là:
“Kết nối song song các mã tích chập” ( Parallel Concatenated Convolutional Code-
PCCC)
Ngoài ra cũng có “Kết nối nối tiếp các mã tích chập”(Serial Concatenated
Convolutional Code_SCCC) và dạng “Kết nối hổn hợp các bộ mã tích chập” ( Hybrid Concatenated Convolutional Code_HCCC)
những ngõ ra của bộ mã Sơ đồ của bộ mã tích chập hệ thống như hình 1.3
hình 1.3 Bộ mã hóa tích chập hệ thống
Đối với mã chập hệ thống thì ta có thể dễ dàng xác định từ mã ở ngõ ra hơn so với mã chập không hệ thống Do cấu trúc như vậy nên yêu cầu của bộ mã hóa và giải mã ít phức tạp hơn so với mã không hệ thống
C 1
C 2
Đầu vào
Trang 13Mã chập không hệ thống có từ mã ngõ ra không phản ánh được dãy tin ở đầu vào, tức là đầu ra của bộ mã không nối trực tiếp đến dãy tin đầu vào Sơ đồ của bộ
mã chập không hệ thống như hình 1.4
Hình 1.4 Bộ mã tích chập không hệ thống 1.3.2 Mã tích chập đệ quy và không đệ quy
Mã tích chập đệ quy có từ mã ở ngõ ra được đưa hồi tiếp trở lại dãy tin đầu vào
Sơ đồ như hình 1.5
Hình 1.5 bộ mã tích chập đệ quy
Mã tích chập không đệ quy có từ mã ở ngõ ra của bộ mã không được đưa hồi
tiếp trở lại đầu vào Sơ đồ như hình 1.4
Trang 14Để mô tả bộ mã hóa mã chập người ta đưa ra các thông số của bộ mã hóa như sau : (n, k, K) trong đó:
k : số đầu vào
n : số đầu ra
K: số ngăn lớn nhất trên thanh ghi
Trong đó k < n để ta có thể thêm độ dư vào luồng dữ liệu để thực hiện phát hiện sai và sửa sai
Một bộ mã tích chập thông thường được biểu diễn qua các chuỗi g1= [1 1 1] và
g2 = [ 1 0 1] và có thể được viết là G = [ g1,g2] Bộ mã hoá RSC tương ứng bộ mã hoá tích chập thông thường đó được biểu diễn là G = [ 1, g2/g1 ] trong đó ngõ ra đầu tiên (biểu diễn bởi g 1 ) được hồi tiếp về ngõ vào, g 1 là ngõ ra hệ thống, g 2 là ngõ ra
feedforward Hình 1.6 trình bày bộ mã hoá RSC
Một bộ mã hoá tích chập đệ quy có khuynh hướng cho ra các từ mã có trọng số tăng so với bộ mã hoá không đệ quy, nghĩa là bộ mã tích chập đệ quy cho ra ít từ
mã có trọng số thấp và cũng dẫn đến việc thực hiện sửa sai tốt hơn
Đối với mã Turbo, mục đích của việc thực hiện các bộ mã hoá RSC là tận dụng bản chất đệ quy của các bộ mã hoá và tận dụng tính hệ thống của bộ mã
1.3.4 Kết thúc TRELLIS
D +
+ x
Trang 15Đối với bộ mã tích chập thông thường, Trellis được kết thúc bằng (m= K -1)
các bit zero thêm vào sau chuỗi ngõ vào Các bit thêm vào này lái bộ mã tích chập thông thường đến trạng thái tất cả zero (là trạng thái kết thúc trellis) Nhưng cách này không thể áp dụng cho bộ mã hoá RSC do có quá trình hồi tiếp Các bit thêm vào để kết thúc cho bộ mã hoá RSC phụ thuộc vào trạng thái của bộ mã hoá và rất khó dự đoán Ngay cả khi tìm được các bit kết thúc cho một trong các bộ mã hoá thành phần thì các bộ mã hoá thành phần khác có thể không được lái đến trạng thái tất cả zero với cùng các bit kết thúc, do có sự hiện diện của bộ chèn giữa các bộ mã
Chuỗi tin sau khi truyền qua kênh truyền và được giải điều chế (demodulate) thì
sẽ được đưa đến bộ giải mã Tín hiệu tại ngõ ra của bộ giải điều chế và ngõ vào của
bộ giải mã sẽ quyết định quá trình giải mã là “cứng” hay “mềm”
Nếu tín hiệu đến của bộ giải điều chế và được bộ điều chế ra quyết định từng bít
là bít 0 hay 1 thì gọi là quyết định cứng Ví dụ một hệ thống sử dụng tín hiệu đường dây là bipolar NRZ với biên độ là ± 1V Nếu giá trị nhận được là 0,8V hoặc 0,03V thì đều được quyết định là bit 1 Còn nếu giá trị nhận được là -0,7V hoặc -0,02 thì
Trang 16đều được quyết định lá bít 0 như vậy ta thấy được sai sót của quyết định cứng là dù 0,8V hay 0,03V thì bộ giải mã cũng nhận được bít 1 dù giá trị 0,8V có xác suất đúng là bit 1 cao hơn nhiều so với 0,03V Như vậy, bộ giải mã không có thông tin nào về độ chính xác của quyết định từ bộ giải điều chế Việc này sẽ làm cho chất lượng của bộ giải mã không chỉ phụ thuộc vào bộ giải mã mà còn phụ thuộc vào bộ giải điều chế và do đó chất lượng không cao Tuy nhiên quyết định cứng dễ dàng hơn cho việc giải mã
Nếu bộ giải điều chế không tự quyết định xem giá trị lấy mẫu nhận được là bit 0 hay bit 1 mà đưa thẳng cho bộ giải mã để bộ giải có đầy đủ thông tin về bit sau khi
đã qua kênh truyền thì với cấu trúc phù hợp bộ giải mã sẽ cho các quyết định chính xác hơn, tức là chất lượng cao hơn Bộ giải mã sẽ tính toán các giá trị để xét độ tin cậy của từng giá trị và cuối cùng mới quyết định Điều này sẽ làm giảm khả năng có thể xẩy ra lỗi và độ lợi mã tổng cộng có thể tăng 2,5 dB so với giải mã cứng đối với môi trường có SRN thấp Tuy nhiên, để đạt được độ lợi mã này thì bộ giải mã mềm
sẽ có độ phức tạp cao hơn rất nhiều so với bộ giải mã cứng
Với khả năng tính toán của các chíp vi xử lý hay các chíp DSP cùng với khối lượng bộ nhớ ngày nay thì sự phức tạp của bộ giải mã mềm không còn lá vấn đề lớn Vì thế xu hướng hiện nay trên thế giới là sử dụng bộ giải mã mềm, thậm chí có thể giải mã lại cho các loại mã khối và mã tích chập truyền thống bằng phương
Mỗi bộ mã hoá RSCi được gọi là các bộ mã thành phần (constituent code) Các
bộ mã thành phần có thể khác nhau, tốc độ mã khác nhau nhưng có cùng cỡ khối bit ngõ vào là k, các chuỗi mã hoá ngõ ra bao gồm một chuỗi hệ thống (chuỗi bit vào)
Trang 17Ở các bộ mã hoá thứ hai trở đi, chuỗi bit nhận vào để mã hoá trướchết phải qua một
bộ chèn (interleaver) Tất cả các chuỗi mã hoá ngõ ra sẽ được hợp lại thành một chuỗi n bit duy nhất trước khi truyền
Hình 1.8 Bộ mã hoá PCCC tổng quát
Tốc độ mã hoá (code rate) của bộ mã hoá PCCC là: r = k/n
Mỗi bit thông tin ngõ vào sẽ trở thành một phần của từ mã ngõ ra (tính hệ thống)
và sẽ được kèm theo bằng ( 1/r - 1) bit (gọi là bit parity) để sửa lỗi nếu có Nếu r càng nhỏ tức số bit parity đi kèm sẽ lớn và dẫn đến khả năng sửa lỗi cao hơn rất nhiều nhưng tốc độ truyền giảm đi, số bit truyền nhiều hơn có nghĩa là băng thông lớn hơn và độ trễ tăng lên Theo khuyến cáo của các tổ chức định chuẩn thì giá trị r
c 0
Bộ mã hoá RSC1
Bộ mã hoá RSC2
Bộ chèn n-1
c n+1,i
Chuyển đổi song song sang nối tiếp hoặc puncture c
Trang 18Hình 1.9 Mã PCCC tốc độ 1/3 gồm 2 bộ mã hoá chập hệ thống đệ quy
Bộ mã hoá Turbo cơ bản được thiết kế bằng cách kết nối song song hai bộ
mã hoá hệ thống đệ quy tích chập lại với nhau, hai bộ mã hoá thành phần được phân cách nhau bởi một bộ chèn (interleaver) Chỉ có một trong ba đầu ra của hai bộ RSC trên là đầu vào của hệ thống, đầu ra của hệ thống có được bằng cách thay đổi thứ tự
vị trí của bit đầu vào Tốc độ mã hoá của bộ mã này là r =1/3, bộ mã hoá RSC đầu tiên cho ra chuỗi hệ thống c1 và chuỗi chập đệ quy c2, trong khi bộ mã hoá RSC thứ hai thì bỏ qua chuỗi hệ thống của nó và chỉ cho ra chuỗi chập đệ quy c3
1.5.2 Kỷ thuật xóa (punture)
Kỹ thuật xoá là kỷ thuật dùng để tăng tốc độ mã của một bộ mã hoá mà không làm thay đổi cấu trúc của bộ mã hoá Tốc độ mã càng thấp thì chất lượng càng cao nhưng băng thông tăng Ví dụ bộ mã tốc độ 1/3 có thể trở thành bộ mã hoá tốc độ 1/2 bằng cách thay vì 1 bit ngõ vào sẽ có tương ứng 3 bit ngõ ra mã hoá thì ta cho ngõ ra mã hoá chỉ còn 2 bit Bản chất của kỷ thuật puncture là làm giảm n theo một qui luật nào đó để tốc độ mã hoá r tăng lên
Ví dụ: bộ mã trong hình 1.9, nếu chuỗi hệ thống c1 vẫn giữ nguyên và các chuỗi c2 và c3 sẽ được lấy xen kẽ Chuỗi c2 sẽ lấy các bit lẻ và lấy các bit chẵn của chuỗi c3 thì bộ mã sẽ có tốc độ 1/2 Khi bộ giải mã nhận được chuỗi bit đến thì nó
sẽ thêm vào chuỗi này các bit 0 tại những chỗ đã bị xoá bớt Như vậy có thể làm sai lệch bit parity nên giảm chất lượng
c3
Bộ mã hoá RSC 1
Bộ mã hoá RSC 2
Bộ chèn
x
c2
c1
Trang 191.5.3 Bộ chèn (interleaver)
Interleaving (chèn) là quá trình sắp xếp lại thứ tự của một chuối bit thông tin theo 1 định dạng nhất định Ngược lại của quá trình chèn (cài xen) này, quá trình giải chèn (deinterleaver) sẽ sắp xếp các bít theo đúng thứ tự ban đầu của chúng
1 bộ chèn với kich thước N được mô tả trên hình1.10 Để đơn giản chúng ta giả xử chuỗi đầu vào của bộ chèn I là chuỗi nhị phân cho bởi :
C = ( c1 , c2 , c3… , cN) trong đó ci ∈ { 0,1}; 1 ≤ i ≤ N;
Bộ chèn hoán vị chuỗi C thành chuỗi nhị phân
C’ = ( c’1 , c’2 , c’3… , c’N ) Trong đó c’j ∈ { 0,1}; 1 ≤ j ≤ N
Chuỗi C’ có tất cả các phần tử cua C nhưng được sắp xếp theo 1 thứ tự khác Nếu ta xem chuỗi C và C’ là tập N bít nhị phân thì có 1 quan hệ 1- 1 ci Æ c’j giữa
các phần tử của C và C’ chúng ta định nghĩa một bộ A như sau
A = {1,2,3, N} lúc này bọ chèn có thể được xác định bằng hàm ánh xạ chỉ số
π (AÆA) : j = π (i), i, j ∈ A trong đó i,j là chỉ số của các phần tử trong chuôi gốc
C và chuỗi đã qua bộ chen C’ Hàm ánh xạ có thể được biểu diễn lại bởi vector
chèn : π (N) = (π (1), π (2), π (3), π (N))
Hình 1.10 minh họa bộ chèn
Ví dụ chúng ta xem xét 1 bộ chèn giả ngẫu nhiên có kích thước N = 8 với
chuỗi bit tin đầu vào cho bởi : C = (c1 , c2 , c3 , c4 , c5 , c6 , c7 , c8)
Và chuỗi bit tin sau bộ chèn là C’ = (c’1 , c’2 , c’3 , c’4 , c’5 , c’6 , c’7 , c’8)
= (c2 , c4 , c1 , c6 , c3 , c8 , c5 , c7) Hàm ánh xạ được mô tả trên Hình 1.11
Trang 20Trong mã turbo, kỹ thuật chèn được sử dụng trước khi thông tin được mã hóa bởi bộ mã thành phần thứ hai Về cơ bản kích thước N của bộ chèn lớn hơn bộ nhớ
mã và vector chèn được lựa chọn ngẫu nhiên
Vai trò cơ bản của bộ chèn là tạo nên 1 khối mã dài từ bộ nhớ bé của mã xoắn để mã tạo ra có thể tiếp cận với giới hạn của Shannon Thứ hai là nó trải lỗi cụm ra Bộ chèn cung cấp cho bộ mã hóa và giải mã thứ hai chuỗi thông tin đã được xáo trộn nhờ đó có thể áp dụng 1 vong lặp giải mã kém hiệu quả trên cơ sở thông tin không tương quan giưa hai bộ giải mã Ví dụ như sau khi giải mã và sử dược một số lỗi ở bộ giải mã thứ nhất, một số lỗi còn lại có thể được trải ra bởi bộ chèn và chúng trở thành có thể sử sai được ở bộ giải mã thứ hai Bằng cách tăng số vòng lặp của quá trình giải mã, sác xuất lỗi bít có thể tiếp cận tới dụng lượng kênh Vai trò cuối cùng của bộ chèn là phá vỡ tính trọng số thấp ở đầu vào và do đó giảm khoảng cách Hamming tự do hay giảm số từ mã với khoảng cách nhỏ trong khoảng cách phổ của
mã do đó cải thiện chất lượng bộ mã
1.5.3.1 Ảnh hưởng của kich thước bộ chèn đến chất lượng mã
Chất lượng sửa sai của mã turbo được quyết định bởi khoảng cách phổ của
mã Bộ giải mã của mã turbo có thể là giảm hệ số lỗi của từ mã trọng số thấp qua
C’
C
Trang 21một quá trình gọi là “spectral thinning” Khoảng cách phổ này là kết quả của việc làm giảm đi 1/N sác xuất lỗi bit (mà được gọi là độ lợi chèn, interleaving gain) Chất lượng của mã turbo ở mức SNR thấp được kiểm soát bởi kích thước bộ chèn Khoảng cách phổ của mã turbo minh họa có ma trận sinh [1, 1 2 2
1
D
D D
+ + + ] được mổ tả
trong hình 1.12
Hình 1.12 minh họa khoảng cách phổ ứng với giá trị N khác nhau
Với các kích thước của bộ chèn là 128, 256, 512 Ta có thể thấy dạng của các dường phổ khoảng cách với các kích cỡ khác nhau của bộ chèn là khá tương tự nhau Mặc dù vậy ta có thể thấy tỉ lệ lỗi của mã giảm đi khi tăng kích thước bộ chèn Hình 1.13 cho thấy độ lơi chèn tăng lên theo kích thước của bộ chèn
Trang 22Hình 1.13 Đường giới hạn trên sác xuất lỗi bít với các kích thước khác nhau của
bộ chèn
1.5.3.2 Ảnh hưởng của cấu trúc bộ chèn đến chất lượng mã
Chất lượng của mã turbo ở SNR cao được quyết định bởi đường khoảng cách phổ tương quan của mã mà được tạo ra bởi chuỗi đầu vào trọng số thấp Cấu trúc của bộ chèn ảnh hưởng tới việc ánh xạ chuỗi bit trọng số thấp từ đầu vào đến đầu ra,
và do đó thay đổi đường khoảng cách phổ tương quan nên nó có vai trò quan trọng trong việc quyết định chất lượng mã ở SNR cao
Lấy ví dụ ta xét một chuỗi đầu vào mà tạo ra ở bộ mã thành phần thứ nhất chuỗi bit kiểm tra (parity) có trọng số thấp Chúng ta mong muốn là bộ chèn có thể phá vỡ cấu đầu vào, đưa vào bộ giải mã thành phần thứ hai 1 chuỗi không giống với
bộ giải mã 1 trong trường hợp này, chuỗi vào của bộ giải mã thứ hai sẽ hầu như cho ra chuỗi bit kiểm tra có trọng số cao, và do đó sẽ làm tăng trọng lượng của từ
mã sinh ra Nếu bộ chèn được thiết kế để thay đổi chuỗi đầu vào có trọng số thấp, tạo ra mã turbo có khoảng cách tự do tối thiểu lớn thì tỉ lệ lỗi ở SNR cao cũng sẽ được cải thiện Việc sử dụng bộ chèn giả ngẫu nhiên có vai trò quan trọng trong
Trang 23chiến lược mã hóa turbo Cấu trúc giả ngẫu nhiên là cản trở chính trong việc phân tích đánh giá hiệu năng của mã turbo, do đó việc sử dụng 1 bộ chèn uniform trên cơ
sở phân tích tính thống kê của tất cả các bộ chèn tỏ ra khá hiệu quả Trong thực tế một bộ chèn cụ thể có thể tốt hơn bộ chen uniform, phần tiếp theo chúng ta sẽ xem xét một số kỹ thuật chèn cụ thể
1.5.3.3 Bộ chèn kiểu khối
1.5.3.3.1 Bộ chèn khối
Chuỗi thông tin đầu vào của bộ chèn khối sẽ được đưa vào 1 ma trận có kích thước m x n Chuỗi đầu vào sẽ được viết vào theo hàng và đọc ra theo cột như mô tả trên hình 1.14
Hình 1.14 bộ chèn khối
Bộ giải chèn sẽ thực hiện lưu giữ liệu vào 1 ma trận có cấu trúc tương tự, dữ liệu sẽ được đọc ra và đưa tới bộ giải mã theo từng hàng Hàm chèn của mã khối có thể mô tả bằng biểu thức:
Với |x| là phần nguyên của x Độ trễ của bộ giải mã từ đầu vào chèn đến giải chèn
là 2mn kích thước bộ nhớ yêu cầu cho cả bộ chèn và giải chèn là mn Số hàng của
ma trận chèn còn được gọi là độ chèn hay độ sâu, và số cột của ma trận chèn còn được gọi là nhịp chèn Mặc dù bộ chèn khối có thể không phá vớ cấu trúc của một
số mẫu đầu vào như đầu vào với trọng số 4, 6, 9 được đưa vào theo mẫu vuông hoặc chữ nhật ví dụ với mẫu cho trong hình 1.15 : Bộ chèn khố có hiệu quả với các
0 1 … … 1 0
0 0 … … 1 0
…
…
1 1 … … 0 0
0 0 … … 1 1
Đọc ra
Viết vào
Trang 24mẫu lỗi được giới hạn trong 1 dòng Nếu các mẫu lỗi giới hạn trong vài dòng liên tiếp thì bộ chèn cần phải thay đổi ví dụ như n cột của ma trận cần được đọc ra theo
1 thứ tự đặc biệt để trải mẫu lỗi ra càng nhiều càng tốt
Hình 1.15 Các mẫu vuông trọng số 4 1.5.3.3.2 Bộ chèn khối chẵn lẻ
Bộ chèn khối chẵn lẻ là kiểu bộ chèn riêng mà hàn ánh xạ của bộ chèn sẽ ánh
xạ các phần tử ở vị trí lẻ tới vị trí lẻ và chẵn tới vị trí chẵn Có thể mô tả bằng hàm :
Với mã turbo sử dụng kỹ thuật xóa có tỉ lệ 1/2, bộ chèn khối chẵn lẻ có thể cho
ra khả năng bảo vệ đồng đều với các bit thông tin
Ví dụ ta xem xét chuỗi nhị phân : C = (c1 , c2 , c3 , , c15)
Chuỗi đữ liệu được mã hóa bởi mã turbo có tỉ lệ 1/3, tốc độ 1/2 cos thể đạt được nhờ dùng kỹ thuật xóa với bít parity chẵn của bộ mã thành phần thứ nhất và bit parity lẻ của bộ mã thành phần thứ hai
Bit thông tin lẻ Ci i=1, 3, 5 sinh ra các mã sửa sai tương ứng là vi,1 ở đầu
ra của bộ giải mã thành phần thứ nhất:
Đầu tiên chúng ta giả sử chuỗi bit được chèn (cài xen) bởi bộ chèn giả ngẫu nhiên và cho kết quả
Trang 25Bộ giải mã thành phần thứ hai sinh ra các bit sửa sai ở vị trí chẵn vi,2 được cho bởi
Tổng hợp 2 bảng ta có bit kiểm tra của chuỗi :
Như vậy rõ ràng là mỗi bít thông tin ở vị trí lẻ có bit parity đi kèm với nó Mặc
dù vậy các bit sửa sai ở vị trí chẵn vi,2 được cho bởi boojmax hóa thành phần thứ hai
có thể được sinh ra từ từ các bit tin đầu vào chẵn hoặc lẻ, điều đó có nghĩa là 1 số bit thông tin ở vị trí lẻ sẽ có thể có nhiều hơn 1 bit parity ví dụ v5,1 và v5,2 nhưng 1
số bit tin ở vị trí chẵn lại không có bit parity đi kèm ( c2) do đó khả năng sửa lỗi không được phân phối đều, nếu bit tin mà không có parity bit đi kèm bị lỗi thì sẽ không sửa được Bộ chèn khối chẵn lẻ có thể khắc phục được lỗi này Trong trường hợp này số hàng và số cột của ma trận chèn phải là lẻ ví dụ ma trận như sau:
Chuỗi dữ liệu sau khi chèn:
Dữ liệu đã được chèn dược mã hóa bởi bộ mã thành phần thứ hai, sẽ sinh ra các bit parity ở vị trí chẵn như sau
C’ =
C’=
Trang 26Như vậy mỗi bit thông tin chẵn hay lẻ lúc này đều có bit parity tương ứng Chuỗi
mã nhận được bằng cách kết hợp lại được thể hiện như sau:
Với chuỗi như vậy khả năng bảo vệ bitd thông tin được phân phối đều tạo nên khả năng giải mã tốt hơn so với cách không dùng bộ chèn chẵn lẻ
1.5.3.3.3 Bộ chèn khối Helical Simile
Bộ chèn khối Helical Simile dựa trêncơ sở bộ chèn khối thông thường Điểm chủ yếu khác biệt là bộ chèn này đọc dữ liệu ra theo đường chéo thay vì theo cột với giới hạn nhất định về số lượng cột trong ma trận chèn Kết quả là bộ chèn kết thúc
cả hai bộ mã thành phần ở trạng thái all-zero Điều này đạt được bằng cách treo K bit đuôi ở cuối chuỗi tin trong đó K là số ngăn nhớ của bộ mã thành phần Do đó so với việc dungfbooj chèn giả ngẫu nhiên chỉ cho phép 1 bộ mã thành phần kết thúc ở trạng thái all-zero thì bộ chèn này tốt hơn
Để có bộ chèn này, số lượng cột của ma trận sinh phải là nguyên lần của (K+1) Thông tin được viết vào ma trận theo hàng và đọc ra theo đường chéo từ trái sang phải và từ dưới lên trên để tránh 2 bit dữ liệu được viết liền kề theo hàng hoặc theo cột lại tiếp tục liền nhau sau khi chen Cấu trúc của bộ mã này có thể tránh được 2 bit liền kề đầu ra là từ cùng hang hoặc cột đầu vào 1 ví dụ về bộ chèn này với kích thước bộ nhớ là 15 cho mã turbo có bộ nhớ =2 được cho bởi ma trận:
Trang 27Chuỗi tin sau khi qua bộ chèn được cho bởi:
Rõ ràng bộ chèn này không xử lý chèn chẵn lẻ 1điều kiện cần thiết để có bộ chèn chẵn lẻ simile là phải chọn số cột là chẵn và là nguyên lần của (K+1) Và số cột, hàng phải có mối quan hệ trước
1.5.3.4 Bộ chèn kiểu xoắn (Convolutional)
1.5.3.4.1 Bộ chèn xoắn
Bộ chèn xoắn được đưa ra bởi Ramsey và Forney Cấu trúc của bộ chèn theo Forney được mô tả như hình 1.16
Hình 1.16 Bộ chèn xoán và giải chèn xoắn
Cả bộ chèn và bộ giải chèn đều có 1 chuyển mạch ở đầu vào, 1 chuyển mạch ở đầu
ra và 1 bộ thanh ghi dịch L Thông tin được sắp xếp trong khối L bit để chèn Chuyển mạch đầu vào sẽ chèn đều đặn mỗi khối L bit vào thanh ghi Bit thứ i trong mỗi khối sẽ bị làm trễ bởi i lần dịch và độ trễ của thanh ghi dịch là (i-1)B Chuyển mạch đầu ra lấu mẫu theo chu kì của L thanh ghi theo thứ tự giống như đầu vào
C’=
Trang 28Bộ giải chèn thực hiện quá trình ngược lại đó là bit thứ i trong mỗi khối bị làm trễ bởi i lần ghi dịch trong đó trễ của thanh ghi dịch là (L-i)B
Hàm chèn xoắn , sau khi trạng thái bắt đầu của thanh ghi dịch bị xóa có thể
mô tả :
Bộ chèn này còn được gọi là bộ chèn LB x L Trễ của bộ chèn là (L-1)LB và bộ nhớ yêu cầu đối với bộ chèn và bộ giải chèn đề là (L-1)LB/2 do đó giảm 1/2 so với bộ chèn khối để có cùng mức độ xáo trộn của bộ chèn
Ví dụ bộ chèn với L=3, B=2 kích thước của bộ chèn là 21 và chuỗi chèn được cho:
đó chuỗi đầu ra được mở rộng (L-1)LB ký tự liên hệ với chuỗi vào 1 cách để khắc phục là không xét đến các số 0 được thêm bởi trangjthais của thanh ghi dịch Nhưng
nó cũng làm thay đổi hàm chèn và giảm chất lượng chèn
1.5.3.4.2 Bộ chèn dịch vòng
Một cách thay đổi để sinh ra bộ chèn loại xoắn là trên cơ sở chu kì dịch
Trang 29Trong bộ chèn, chuỗi tin được viết vào ma trận theo theo cột, ma trận có m hàng và
n cột N= m x nvà m≤n Sau đó m hàng có kích thước n được đưa vào m thanh ghi dịch, ở đó thanh ghi dịch thứ i dịch i hàng về bên trái bởi B(i-1), trong đó B là số thực nhỏ được chọn: B≤ n/m Chuỗi dịch từ ma trận mới và dữ liệu được đọc ra theo cột của ma trận Bộ giải chèn hoạt động tương tự thế
Ví dụ với bộ chèn dịch vòng có kích thước 21 và các tham số m, n, B la 3, 7, 2 ta có
So sánh với bộ chèn xoắn, bộ chèn dịch vòng có tính chất của bộ chèn xoắn với n1 =
mB - 1 và n2 = m nhưng nó khắc phục được yếu điểm của việc mở rộng chuỗi ra
1.5.3.5 Bộ chèn kiểu ngẫu nhiên
1.5.3.5.1 Bộ chèn ngẫu nhiên
Với bộ chèn ngẫu nhiên một khối N bit đầu vào được đọc vào bộ chèn và đọc ra một cách ngẫu nhiên vector chèn π (i) i ∈ 1, 2, 3, , N có thể sinh ra theo thuật toán
N bước sau đây:
+ Bước 1 chọn ngẫu nhiên 1 số i1 từ bộ A = {1, 2, 3, N} với sác xuất đồng đều từ 1 đến N và sét là π (1)
+ Bước k (k>1) chọn 1 cách ngẫu nhiên ik từ bộ Ak={ i ∈ A, i ≠ i1 , i2 , i
k-1 } theo phân phỗi sác xuất đồng đều : p (ik) = 1/(N-k+1) Số ik được set là π (k) Khi k=N, số tự nhiên iN được set là π (N)
Khi kích thước của bộ chèn là N = 2m -1, một bộ chèn giả ngẫu nhiên có thể được tạo ra bởi m cấp thanh ghi dịch với đương phản hồi được mô tả trong hình 1.17
C’ =
Trang 30Hình 1.17 Bộ chèn giả ngẫu nhiên
Đa thức phản hồi : 1 + a1D + a2D2 + a3D3 + amDm
Nếu trạng thái bắt đầu của thanh ghi dịch không phải là trạng thái all-zero, thanh ghi dịch sẽ qua tất cả 2m -1 trạng thái theo chu kì Do đó trạng thái của m cấp thanh ghi dịch có thể mô tả hàm chèn
Lấy ví dụ với bộ chèn kích thước N = 7, 1 bộ chèn giả ngẫu nhiên có thể được tạo ra
từ thanh ghi dịch 3 cấp với đa thức sinh 1+ D + D3 Giả sử là trạng thái bắt đầu là
010 và chuỗi bit tin vào là C = (c1 , c2 , c3 , , c7) Chuỗi sinh ra bởi bộ chèn :
C’ = (c2 , c5 , c6 , c7, c3, c1, c4) Trong đó đầu ra của bộ chènlà biểu diễn dạng oct của số trạng thái
1.5.3.5.2 Bộ chèn không đồng đều ( non-uniform
Bộ chèn dùng trong mã turbo nguyên thủ là 1 bộ chèn không đồng đều Nó dựa trên
bộ chèn khối vuông bình thường, nhưng dữ liệu đọc ra theo đường chéo với hàng cố định và nhảy giữa các cột trong quá trình đọc Cho i, j là địa chỉ của hàng và cột cho quá trình viết vào, ir , jr là địa chỉ của hàng, cột cho quá trình đọc ra Với N= M x M, trong đó M có mũ 2, bộ chèn không đồng đều có thể được mô tả bởi
Trang 31só hàng ir , 1 hệ số nhân (
2
M +1) được sử dụng để tránh hiện tượng ở đầu vào dữ liệu là 2 hàng liền kề có đầu ra cũng liền kề nhau Thêm vào, đó việc đọc ra theo đường chéo với sự chú ý khi viết để tránh mẫu chữ nhật đầu vào trọng só thấp ở bộ chèn khối thông thường
Một cách điển hình với bộ chèn kích thước N = 256 x 256, L được chon là 8 số P(k), k= 0,1,2, 7 được cho bởi:
P(0) = 17 , P(1) = 37 , P(2) = 19 , P(3) = 29
P(4) = 41 , P(5) = 23 , P(6) = 13 , P(7) = 7
1.5.3.5.3 Bộ chèn ngẫu nhiên S ( S-randoom
S-random là bộ chèn giả ngẫu nhiên được đưa ra bởi Divsalar và Pollara Chúng dựa trên sự sinh ra ngẫu nhiên của N số tự nhiên từ 1 đến N với một dàng buộc S, trong đó S được định nghĩa là khoảng cách chèn tối thiểu Bộ chèn S-random còn được gọi là bộ chèn trải ra (spread interleaver) Một bộ chèn S-Random được định nghĩa như sau Lựa chọn ngẫu nhiên số tự nhiên được so sánh với số tự nhiên S1 cho trước Nếu giá trị tuyệt đối của chênh lệch giữa lựa chọn hiện tại với giá trị S1 bất kì chọn trước là nhỏ hơn S2 thì sự lựa chọn hiện tại bị loại bỏ Dược mô tả bởi :
| i1-i2| ≥ S2 khi |π (i1)- π (i2)| ≤ S1 i1,i2 ∈ A
Trong đó S1 , S2 < N về cơ bản trọng bộ mã hóa turbo đây là 2 tham số cần chọn để chiều dài tối đa mẫu đầu vào có phá vỡ bởi bộ chèn Chiều dài mẫu là chiều dài của chuỗi đầu vào từ bit 1 bắt đầu đến bit 1 cuối cùng Nhung thực tế S1 , S2 < N/ 2
và ta có thể set S1 = S2 = S Nếu S = 1 bộ chèn S-random sẽ trở thành bộ chèn ngẫu
nhiên {C} là chuỗi đầu vào, chiều dài của mẫu C là l{C}, trọng lượng của mẫu đầu vào là w{C} Nếu chiều dài của mẫu vào nhỏ, nó sẽ như là xử lý từ mã trọng số
thấp Do đó bộ chèn cần thay đổi loại đầu vào này Với bộ chèn S-random , mẫu
đầu vào được ánh xạ thanhg C’ nếu C’ không phải là mẫu lỗi ta nói rằng mẫu đầu
vào cho bộ mã hóa thành phần đã bị thay đổi Bộ giải mã thành phần thứ hai sẽ tạo
ra bit parity kiểm tra chuỗi trọng lượng cố định Mặt khác nếu l{C}≤S+1 vì S giàng
Trang 32buộc, l{C’} > (w {C} -1)(S+1) C’ sẽ như là tạo ra bit kiểm tra có trọng số cao do
đó trong cả hai trường hợp trọng số của từ mã sẽ cao
1.5.3.6 kết luận
Trên đây liệt kê một số các kiểu chèn được sử dụng trong mã TC Với cùng một chuỗi tin ngõ vào, có thể đối với bộ chèn này sẽ cho ra các từ mã có trọng số cao nhưng với bộ chèn kiểu khác lại cho ra các từ mã có trọng số thấp hơn Trong thực
tế để có BER thấp người ta không sử dụng thuần tuý một kiểu chèn mà người ta thiết kế một bộ chèn mới bằng cách kết hợp các ưu điểm của các bộ chèn khác nhau Các cách thiết kế này làm tăng đáng kể chất lượng của mã TC đối với từng hệ thống cụ thể
Trang 33Chương 2 Giải mã mã turbo
2.1 Giới thiệu chương
Mã turbo khai thác ý tưởng tương tự thế, kết nối hai mã và phân cách chúng bởi bộ
chèn Sự khác nhau giữa mã turbo và mã liên kết nối tiếp đó là trong mã turbo hai hệ thống
mã thành phần được liên kết song song với nhau Bit thông tin hệ thống của bộ mã thành
phần thứ hai không được truyền đi và do đó tăng tốc độ mã so với mã liên kết nối tiếp
tương ứng Lý do chính của việc sử dụng một bộ cài xen dài trong mã turbo la fđể tạo ra
mã liên kết với chiều dài khối lớn điều này dẫn tới độ lợi mã lớn Bộ giải mã turbo gồm hai
bộ giải mã thành phần liên kết, được ngăn cách bởi bộ cài xen tương tự Bộ giải mã thành
(soft output Viterbi algorithm ) tạo ra một ước lượng mềm về trọng lượng của chuỗi đầu
vào Quá trình giải mã lặp thực hiện việc trao đổi thông tin giữa các bộ mã thành phần
Bằng cách tăng số lần lặp trong việc giải mã sác xuất lỗi bít có thể đạt 10-5-10-7 ở một tỉ lệ
tín hiệu trên tạp âm SNR gần với giớ hạn Shannon.
2.2 Mô hình hệ thống
Trong chương này chúng ta xem xet mô hình hệ thống như hình 2.1 cho việc
giải mã
Hình 2.1 Mô hình hệ thống
Để quá trình phân tích được đơn giản, ta mô tả hệ thống giải mã VA (Viterbi
algorithm) với bộ mã xoắn nhị phân (n,1,v) thông qua nó ta có thể dễ dàng tạo ra
Decoder
n Modulator
Memoryless noise
Trang 34các bộ mã xoắn có tốc độ k/n cũng như dễ dàng cho việc giả mã của mã khối Chuỗi
tin đầu vào được mô tả là c
C = ( c1 , c2 , c3… , cN) Trong đó ct là ký tự của bản tin ở thời điểm t, và N là chiều dài của bản tin, được mã hóa bởi một bộ mã tuyến tính Về cơ bản ký tự ct của bản tin có thể không phải là nhị phân nhưng để đơn giản chúng ta giả sử chúng là các ký tự nhị phân được tạo ra một cách độc lập và có xác xuất tiền nghiệm (priori probability) bằng nhau Hoạt động của bộ mã hóa được mô hình hóa là một quá trình Markov với trạng thái thời gian rời rạc Quá trình này có thể mô tả dưới dạng đồ họa qua sơ đồ trạng thái hoặc sơ đồ lưới (trellis diagram) Tương ứng với đầu vào ct, Quá trình
Markov với trạng thái thời gian sinh ra vt và chuyển trạng thái từ St sang St+1 trong
đó t+1 là trạng thái thời gian tiếp theo của t Quá trình có thể được mô tả bằng 2 quan hệ:
vt = f (St ,ct , t)
St+1 = g(St ,ct , t)
Hàm f và g cơ bản thay đổi theo thời gian
Chuỗi trạng thái thay đổi từ 0 đến t được mô tả bằng St0
0
St= (S0 ,S1, , St) Chuỗi trạng thái là quá trình Markov nên sác xuất P(St+1 | S0 ,S1, , St ) của trạng thái St+1 ở thời điểm t+1 chỉ phụ thuộc vào trạng thái St tại thời điểm t,
P(St+1 | S0 ,S1, , St ) = P(St+1 | St ) Chuỗi đầu ra của bộ mã hóa từ thời điểm 1 đến t là
Trang 35Có sự tương thích 1-1 giữa chuỗi mã và chuỗi sau điều chế, cặp mã hóa/ điều chế có thể được biểu diễn bởi quá trình Markov và có thể biểu diễn bằng sơ đồ trạng thái hoặc sơ đồ lưới (trellis)
Chuỗi đã được điều chế t
r = (r1 ,r2 ,…rt) trong đó rt = (rt,0 ,r t,1 ,…r t,n-1) và rt,i = xt,i + nt,i ; i = 0, 1, …n-1
Trong đó nt,i là giá trị nhiễu Gaussian thay đổi ngẫu nhiên có phương sai σ2, mỗi mẫu nhiếu được giả thiết là không phụ thuộc vào mẫu nhiễu khác
2.3 Tiêu chuẩn tối ưu hóa
Theo mô hình trên hình 2.1, chúng ta giả thiết sử dụng phương pháp điều chế BPSK, và chuỗi x được điều chế có chứa N’ ký tự
x = (x1 ,x2 ,…xN’) khi đó v sẽ có chiều dài N’.log2 M bít nhị phân Chuỗi bản tin
được cho bởi : C = ( c1 , c2 , c3… , cN) với N= RN’ log2 M và R là tốc độ mã Phía nhận ước lượng chuỗi bản tin không biết C được mô tả :
+ Tỉ lệ lỗi từ mã (WER, word error rate) được định nghĩa là sác xuất mà $v ≠
+ Tỉ lệ lỗi ký tự (SER, symbol error rate) là sác xuất mà xt ≠ xt,
với t = 1, 2 , N’ trong đó xt và xttương ứng là ký tự ước lượng và ký tự đã được điều chế ở thời điểm t
+ Tỉ lệ lỗi bit (BER) được định nghĩa là sác xuất ct ≠ ĉt trong đó ct và ĉttương ứng là bit truyền đi và bit được ước lượng ở thời điểm t
Trang 36Với ước lượng cứng đầu ra, nếu có một từ lỗi thì phải có ít nhất 1 ký tự lỗi, nếu có một ký tự lỗi thì phải có ít nhất một bit lỗi
2.4 Giải thuật Viterbi
Giải thuật Viterbi được đưa ra để giải mã cho mã xoắn, nó cũng được áp dụng như là một giải pháp thay đổi ước lượng các vấn đề của truyền thông, cũng như hệ thống có giản đồ trạng thái và được biểu diễ bởi sơ đồ lưới (trellis diagram) Chúng ta xem xét hệ thống trên hình 2.1 cặp mã hóa / giải mã biểu diễn quá trình Markov trạng thái thời gian rời rạc với sơ đồ lưới gồm Ms Trạng thái
Trước tiên chúng ta giả sử là quá trình thay đổi từ trạng thái 0 tại thời điểm t=0 sang trạng thái 0 ở thời điểm τ, trong đó τ là thời điểm kết thúc Chuỗi trạng thái
có thể được biểu diễn: S= (0, S0,…., sτ−1, 0) Giải thuât VA tìm chuỗi thông tin
ĉ = τ
1
c tương ứng với chuỗi đã được điều chế x = τ
1
x trên sơ đồ lưới để sác xuất lỗi
từ P w là tối thiểu Sác xuất lỗi từ mã có thể được biểu diễn:
( r )
r r r
Trang 37về sác xuất lỗi từ Sác xuất P r(r|c) cho chuỗi thu có chiều dài τ có thể được biểu
1 (r|c) =
2
r x n
( - )r t i x t i
τ
∑∑ giữa chuỗi nhận được r1τ và x1τ trên
sơ đồ lưới
Chúng ta xây dựng tại mỗi nhánh ở thời điểm t trên đường x của sơ đồ lưới khoảng
cách Euclidean và gọi là branch metric (trọng số nhánh) mô tả bởi x
t
ν như sau:
x t
ν = n-1 2
i=0 ( - )r t i x t i
ν µ− ν
=
∑ (2.4.1) Thuật toán VA là cách hiệu quả để tìm đường có metric nhỏ nhất trên sơ đồ lưới Nó dựa trên tư tưởng là trong số các đường hòa nhập vào một trạng thái đối với mã lưới, chỉ có đường với khả năng nhiều nhất được lưu lại để xử lý tiếp, trong khi các đường khác có thể bỏ qua mà không ảnh hưởng tới tính tối ưu giải mã Việc
Trang 38tính toán trên cơ sở chỉ giữ lại một đường dẫn tại mỗi nút với path metric nhỏ nhất tại mỗi khoảng thời gian.đường đó được gọi là đương survivor
Quyết định ước lượng bản tin c được đưa ra ở khoảng thời gian cuối τ Đường với khả năng lớn nhất được lựa chọn là đường survivor ở nút cuối Nếu path metric nhỏ nhất ứng với một đường x, bộ giải mã sẽ lựa chọn chuỗi c$ trên đường này làm quyết định cứngcuar chuỗi được truyền đi c
Thuật toán VA có thể tổng kết lại như sau:
1 Khởi tạo các giá trị
2 Tăng giá trị t thêm 1
- Tính các branch metric cho các nhánh đi vào một nút ở thời điểm t
- Tính path metric cho tất cả các đường đi vào một nút tại thời điểm t, bằng cách cộng thêm branch metric của nhánh đi vào nút vào path metric của đường survivor ở nút trước tại thời điểm t-1 theo phương trình (2.4.1)
- So sánh path metric của tất cả các đường đi vào một nút và tìm đường survivor cho mỗi nút và metric của nó
- lặp lại bước 2 đến khi t=τ
3 Đường survivor tại nút Sτ là đường có khả năng lớn nhất
Thuật toán VA cần Ms đơn vị bộ nhớ để lưu trữ đường survivor và path metric
Ms 2 k branch metric và thực hiện Ms 2 k cùng với Ms 2 k lần so sánh tại mỗi khoảng thời gian Do đó bộ nhớ yêu cầu tỉ lệ với số trạng thái và mức độ phức tạp tính toán tỉ lệ với số nhánh và số trạng thái
Ví dụ: ta xem xét mã RSC với bộ giải mã được mô tả trên hình 2.2 các trạng thái của nó và sơ đồ lưới được được mô tả trên hình 2.2 b ,c Nếu chuỗi nhận được là
r=[(1,-1) , (0.8 , 1) , (-1 , 1) , (-1 , 1) , (1 , -1)
branch metric được mô tả trên hình 2.3 với 4 ký tự bản tin và 1 ký tự để kết thúc lưới, đưa về trạng thái 0
Trang 39Đường survivor và path metric của nó ở thời điểm t=1 tới t=5 được mô tả trên hình
2.4 chuỗi thông tin đã truyền được ước lượng là c = (0,1,0,0,1)
(a) bộ mã hóa
(b) giản đồ trạng thái
(c) sơ đồ lưới
Hình 2.2 Bộ mã xoắn và minh họa của nó
Hình 2.3 Branch metric của bộ mã trong ví dụ trên
Trang 40Hình 2.4 Đường survivor và path metric của chúng 2.5 Thuật toán Viterbi hai chiều đầu ra mềm (SOVA)
Mặt hạn chế của thuật toán VA đó là nó tạo ra ước lượng cứng các ký tự và
do đó có thể làm mất thông tin Thuật toán này có thể được thay đổi để có lối ra mềm Sau đây sẽ trình bày thuật toán hai chiều SOVA (soft output viterbi algorithm) mà không đòi hỏi phải biết phương sai của nhiễu và cũng dễ dàng thực hiện trong thực tế đối với hệ thống có cấu trúc khối dữ liệu
Thuật toán SOVA ước lượng thông tin ra mềm cho mỗi ký tự nhị phân được truyền đi theo hàm log – likelihood:
1 1
( ) log
r t t
r t
P c c
P c
τ τ
=
=
Trong đó r1τ là chuỗi tin nhận được và P c r{ t =i| r }1τ , i=0, 1 là sác xuất hậu nghiệm
(APP) của ký tự đã được truyền
Thuật toán SOVA đưa ra quyết định cứng nhờ việc so sánh Λ ( )c t với ngưỡng 0: c t= 1 nếu Λ ( )c t ≥ 0 ngoài ra thì c t= 0