Trong các hệ thống truyền tin số ngày nay, để chống nhiễu trên kênh truyền, nâng cao chất lượng thông tin đều phải sử dụng mã kênh. Năm 1962, một họ mã kênh mới đã được Gallager giới thiệu trong luận án tiến sĩ của ông có chất lượng tiệm cận giới hạn Shannon trên kênh tạp âm trắng Gauss cộng cỡ vài phần trăm dB, đó là mã kiểm tra chẵn lẻ mật độ thấp LDPC. Mã LDPC là một lớp của mã khối tuyến tính có khả năng đạt chất lượng gần tới giới hạn dung lượng kênh. Các ứng dụng của mã LDPC đã và đang được thực hiện trong các hệ thống truyền dẫn số với tốc độ truyền dẫn cao, độ chính xác lớn. Tuy nhiên, so với các bộ mã khác thì thuật toán giải mã lặp LDPC khá phức tạp, số lượng vòng lặp nhiều yêu cầu số lượng tính toán quá lớn, làm cho tốc độ giải mã chậm gây độ trễ truyền tin cao. Vì thế, sau gần 35 năm ra đời, loại mã này đã không phát huy được khả năng của nó. Ngày nay, với sự phát triển vượt bậc của công nghệ tính toán, xử lý và lưu trữ dữ liệu cùng với các thuật toán mới được nghiên cứu, ứng dụng cho nên những vấn đề khó khăn về mã LDPC đã lần lượt được giải quyết. Hiện nay, trên thế giới đã và đang có nhiều nghiên cứu quá trình giải mã nhằm cải tiến, giảm số lượng tính toán để nâng cao tính khả thi của bộ mã này.
Trang 1MỤC LỤC
MỤC LỤC I DANH MỤC HÌNH VẼ III THUẬT NGỮ VIẾT TĂT IV
LỜI NÓI ĐẦU 1
TOPIC I: Mã kiểm tra chẵn lẻ mật độ thấp 2
1.1 Giới thiệu 2
1.2 Sử dụng kiểm tra chẵn lẻ để sửa lỗi 3
1.2.1 Mã hóa 4
1.2.2 Phát hiện và sửa lỗi 7
1.3 Mã kiểm tra chẵn lẻ mật độ thấp ( LPCP) 9
1.3.1 Xây dựng LDPC 10
1.3.2 Mã hóa 15
1.3.3 Mã hóa tuyến tính thời gian cho mã LDPC 17
1.4 ghi chú phụ lục 21
Topic II: Giải mã gói tin 22
2.1 Truyền tin trên kênh nhị phân có xoá 22
2.2 Giải mã bit-flipping 27
2.3 Giải mã tổng hợp kết quả 32
2.4 Lưu ý 45
Topic III: Phát triển Mật độ 46
3.1 Phát triển mật độ trên BEC 46
3.1.1 Mã LDPC đều 46
3.1.2 Mã LDPC không đều 50
3.1.3 Ngưỡng 52
3.1.4 Độ ổn định 56
Trang 23.2 Sự phát triển mật độ trên các kênh chung không nhớ 57
3.3 Lựa chọn mức độ phân bổ 63
3.4 Ghi chú 63
Trang 3
DANH MỤC HÌNH VẼ
Hình 1 1 Đồ thì tanner biểu diễn ma trận kiểm tra chẵn lẻ trong (1.16), 13
Hình 1 2 Đồ thị Tanner biểu diễn ma trận kiểm tra chẵn lẻ trong ví dụ 1.16 13
Hình 2 1: Giải mã gói tin chuỗi y nhận được = [0 0 1 xxx] .26
Hình 2 2: Giải mã Bit-flipping của chuỗi vào y = [1 0 1 0 1 1] .30
Hình 2 3: Giải mã Bit-flipping của y = [1 0 1 0 0 1] .31
Hình 3 1: Xác suất tẩy xóa trong ví dụ 3.2 48
Hình 3 2: Xác suất tẩy xoá tính trong ví dụ 3.2 50
Hình 3 3: Xác suất xoá tính trong ví dụ 3.3 .53
Hình 3 4: Xác suất xoá tính trong ví dụ 3.3 54
Hình 3 5: Xác suất xoá tính trong ví dụ 3.3 .56
Hình 3 6: Hàm mật độ xác suất với nhiễu Gaussian trắng .59
Hình 3 7: Sự gia tăng của hàm bậc xác suất với số lần lặp trong quá .60
Hình 3 8: Tính toán ngưỡng một tổ hợp có hệ thống (3,6) trên một 62
Trang 4THUẬT NGỮ VIẾT TĂT
LDPC Low-density parity-check Kiểm tra chắn lẻ mật độ thấp
IEEE Institute of Electrical and Electronics
Engineers
Học viện kỹ nghệ điện và điện tử
MAP maximum a posteriori
probability
xác suất hậu nghiệm lớn nhất
pdf probability density function hàm mật độ xác suất
FFTs Fast Fourier Transform Phép biến đổi nhanh Fourier
Trang 5LỜI NÓI ĐẦU
Trong các hệ thống truyền tin số ngày nay, để chống nhiễu trên kênh truyền, nâng cao chất lượng thông tin đều phải sử dụng mã kênh Năm 1962, một họ mã kênh mới đã được Gallager giới thiệu trong luận án tiến sĩ của ông có chất lượng tiệm cận giới hạn Shannon trên kênh tạp âm trắng Gauss cộng cỡ vài phần trăm dB, đó là mã kiểm tra chẵn
lẻ mật độ thấp LDPC Mã LDPC là một lớp của mã khối tuyến tính có khả năng đạt chất lượng gần tới giới hạn dung lượng kênh Các ứng dụng của mã LDPC đã và đang được thực hiện trong các hệ thống truyền dẫn số với tốc độ truyền dẫn cao, độ chính xác lớn Tuy nhiên, so với các bộ mã khác thì thuật toán giải mã lặp LDPC khá phức tạp, số lượng vòng lặp nhiều yêu cầu số lượng tính toán quá lớn, làm cho tốc độ giải mã chậm gây độ trễ truyền tin cao Vì thế, sau gần 35 năm ra đời, loại mã này đã không phát huy được khả năng của nó
Ngày nay, với sự phát triển vượt bậc của công nghệ tính toán, xử lý và lưu trữ dữ liệu cùng với các thuật toán mới được nghiên cứu, ứng dụng cho nên những vấn đề khó khăn
về mã LDPC đã lần lượt được giải quyết Hiện nay, trên thế giới đã và đang có nhiều nghiên cứu quá trình giải mã nhằm cải tiến, giảm số lượng tính toán để nâng cao tính khả thi của bộ mã này
Bài báo cáo này có 3 chủ đề chính:
Chủ đề 1: Mã kiểm tra chẵn lẻ mật độ thấp
Chủ đề 2: Giải mã gói tin
Chủ đề 3: Phát triển mật độ
Để hoàn thành bài báo cáo này, nhóm chúng em xin được gửi lời cảm ơn chân thành tới
thầy TS Lê Nhật Thăng, người đã hướng dẫn, chỉ bảo, định hướng và giúp đỡ tận tình
nhóm chúng em trong suốt thời gian qua
Do còn nhiều hạn chế về kiến thức nên bài báo cáo không tránh khỏi những thiếu sót Nhóm chúng em rất mong được sự góp ý của thầy và các ban để kiến thức về mã LDPC của nhóm chúng em có thể phong phú hơn
Trang 6TOPIC I: Mã kiểm tra chẵn lẻ mật độ thấp 1.1 Giới thiệu
Mã LDPC (Low-density parity-check ) là mã sửa lỗi chuyển tiếp, lần đầu tiên được
đề xuất trong luận án tiến sĩ năm 1962 của Gallager tại MIT Vào thời điểm đó, tiềm năng đáng kinh ngạc của bộ mã hóa vẫn chưa được khám phá do nhu cầu tính toán mô phỏng trong một thời kỳ đó khi mà ống vacumm đã được thay thế bằng các bóng bán dẫn lần đầu tiên Chúng hầu như bị lãng quên trong hơn 35 năm Trong khi đó lĩnh vực sửa lỗi chuyển tiếp đã giúp khối đại số có được cấu trúc cao và mã xoắn Mặc dù sự thành công thực tế của các mã số rất lớn, nhưng hiệu suất của chúng giảm về các giới hạn lý thuyết
có thể đạt được yêu cầu đặt ra bởi Shannon Vào cuối những năm 1980, dù phải trải qua những nỗ lực, phần lớn các nhà nghiên cứu đã không thể vượt qua khoảng cách lý thuyết thực hành
Các tĩnh lặng tương đối của các lĩnh vực mã hóa đã hoàn toàn biến đổi bởi ra đời của “mã turbo”, được đề xuất bởi Berrou, Glavieux và Thitimajshima vào năm 1993, trong đó tất
cả các thành phần quan trọng của mã sửa lỗi đã được thay thế: mã turbo liên quan đến rất
ít đại số, sử dụng lặp đi lặp lại, phân phối các thuật toán, tập trung vào trung bình (thay vì trường hợp xấu nhất) để thực hiện và dựa vào thông tin mềm (hay xác suất) trích từ kênh
Do đó, giới hạn khoảng cách của Shanon đã được loại bỏ tất cả, nhưng sử dụng bộ giải
mã phức tạp trong quản lý
Như các nhà nghiên cứu đấu tranh thông qua những năm 1990 để hiểu lý do tại sao chỉ mã Turbo làm việc tốt như kết quả của họ, hai nhà nghiên cứu, McKay và Neal đã giới thiệu một lớp mới của mã khối được thiết kế để sở hữu nhiều tính năng của mã turbo mới
Tổng quát mới của mã LDPC của Gallager của một số các nhà nghiên cứu bao gồm Luby, Mitzenmacher, Shokrollahi, Spielman, Richardson và Urbanke, nghiên cứu mã LDPC không đều mới tốt hơn mã turbo tốt nhất, cũng như cung cấp một số lợi thế thực hành và cho là thiết lập bộ lọc cho kết quả lý thuyết Kỹ thuật ngày nay, thiết kế để các
mã LDPC tồn tại cho phép xây dựng các mã tiếp cận Shannon công suất trong phần trăm của một dB
Vì vậy, lĩnh vực lý thuyết mã hóa bằng nhiều cách đã có sự tiến bộ nhanh chóng so với chính chúng ở thập kỷ trước Ngoài sự quan tâm mạnh mẽ trong lý thuyết mã LDPC,thì LDPC đã được áp dụng trong phát thanh-truyền hình số vệ tinh và các tiêu chuẩn truyền thông quang đường dài, thì rất có khả năng sẽ được thông qua trong các tiêu
Trang 7chuẩn mạng nội bộ không dây IEEE, và đang được xem xét cho sự phát triển lâu dài của điện thoại di động thế hệ thứ ba
1.2 Sử dụng kiểm tra chẵn lẻ để sửa lỗi
Ở đây chúng ta sẽ chỉ xem xét bản tin nhị phân và do đó các bản tin truyền bao gồm các chuỗi 0 và 1 Ý tưởng cơ bản của mã hóa kiểm soát lỗi chuyển tiếp là tăng thêm các bit kiểm tra để tạo ra một từ mã cho bản tin Các bit kiểm tra được thêm sao cho từ mã là
đủ khác biệt với nhau, bản tin truyền có thể được suy ra một cách chính xác tại nơi nhận, ngay cả khi một số bit trong từ mã bị hỏng trong quá trình truyền trên kênh
Chương trình mã hóa đơn giản nhất là mã kiểm tra chẵn lẻ đơn (SPC) SPC liên quan đến việc bổ sung thêm bit đơn cho bản tin nhị phân, giá trị của nó phụ thuộc vào các bit trong bản tin Trong mã chẵn, bit bổ sung thêm cho mỗi bản tin đảm bảo một số chẵn các
Chính thức hơn, cho ASCII 7-bit cộng với mã chẵn lẻ chúng ta định nghĩa một từ mã
c để có cơ cấu như sau:
C=[ c1c2c3c4c5c6c7c8] Trong đó mỗi ci là 0 hoặc 1, và mỗi từ mã đáp ứng các ràng buộc
c1 ⊕ c2 ⊕ c3 ⊕ c4 ⊕ c5 ⊕ c6 ⊕ c7 ⊕ c8 = 0 (1.1)
Phương trình (1.1) được gọi là phương trình cân bằng kiểm tra, trong đó ⊕ biểu tượng tượng trưng cho modulo-2 bổ sung
Ví dụ 1.2
Một chuỗi ASCII 7-bit được mã hóa kiểm tra chẵn lẻ đơn giản từ ví dụ 1.1 Kết quả từ
mã đã được gửi qua một kênh nhiễu và đã nhận được chuỗi y = [1 0 0 1 0 0 1 0] Để kiểm tra xem y là một từ mã hợp lệ chúng ta kiểm tra y với (1.1)
y1⊕y2⊕y3⊕y4⊕y5⊕y6⊕y7⊕y8 = 1⊕0⊕0⊕1⊕0⊕0⊕1⊕0=1
Trang 8Kết quả bằng 1, nên chuỗi y nhận được không phải là 1 từ mã hợp lệ Chúng ta đã phát hiện ra rằng ít nhất một lỗi xảy ra trong quá trình truyền
Trong khi một bit bị nghịch đảo do nhiễu kênh có thể dễ dàng được phát hiện với mã kiểm tra chẵn lẻ đơn, nhưng mã này là không thể chỉ ra bit đã bị nghịch đảo Hơn nữa, vì bất kỳ số chẵn bít nghịch đảo phải tạo ra một chuỗi thỏa mãn ràng buộc (1.1), nên các bít nghịch đảo này không bị phát hiện bởi mã kiểm tra chẵn lẻ đơn Việc phát hiện nhiều hơn các lỗi bit đơn sẽ làm tăng tính dự phòng trong các bit chẵn lẻ và nhiều các mã phức tạp hơn chứa đựng hàm kiểm tra chẵn lẻ và mỗi từ mã phải thỏa mãn các điều này
c1 c2c3 c4 c5c6 ]
= [
000] (1.3)
Ma trận H được gọi là ma trận kiểm tra chẵn lẻ Mỗi hàng của H tương ứng với một hàm kiểm tra chẵn lẻ và mỗi cột của H tương ứng với một bit trong từ mã Do đó cho một
mã nhị phân với m hàm kiểm tra chẵn lẻ và chiều dài n từ mã ma trận kiểm tra chẵn lẻ là một ma trận nhị phân m × n Trong ma trận tạo thành một chuỗi y = [c] là một từ mã hợp
lệ cho các mã với ma trận kiểm tra chẵn lẻ H khi và chỉ khi nó thỏa mãn phương trình ma trận
HyT = 0 (1.4)
1.2.1 Mã hóa
Để phân biệt giữa các bit tín hiệu và bit chẵn lẻ trong từ mã trong ví dụ 1.3 chúng ta lại viết mã phương trình kiểm tra chẵn lẻ để mỗi một giải quyết cho bit từ mã khác nhau Những hạn chế mã từ ví dụ 1.3 có thể được viết lại thành :
Trang 9Ma trận G được gọi là ma trận sinh của mã Các bit bản tin thông thường được dán
nhãn bởi u = [ u1,u2, ,uk], vecto u chứa k bit bản tin Do đó, từ mã c tương ứng với bản tin nhị phân u = [ u1,u2,u3] có thể được tìm thấy phương trình ma trận :
Trang 10Từ 1.7 ta có : (1.8)
[ 0 0 0 0 0 0 ] [ 0 0 1 0 1 1 ] [ 0 1 0 1 1 1 ] [ 0 1 1 1 0 0 ] [ 1 0 0 1 0 1 ] [ 1 0 1 1 1 0 ] [ 1 1 0 0 1 0 ] [ 1 1 1 0 0 1 ]
Mã này được gọi là có tính hệ thông bởi vì k bit từ mã đầu tiên chứa các bit bản tin Các mã tính hệ thống này chứa các ma trận sinh nhận dạng k × k Ma trận Ik chứa k cột đầu tiên Ma trận đơn vị Ik kích thước k × k là ma trận nhị phân vuông ( với các bit 1 nằm trên đường chéo từ góc trên bên trái xuống góc dưới bên phải và các bít 0 thì ở những phần còn lại trong ma trận )
Với ma trận sinh của 1 mã, có thể tính được ma trận kiểm tra chẵn lẻ H băng cách thực hiện phép khử Gauss-Jordan :
Trang 11trong số đó sẽ là tuyến tính độc lập, với k là số bit trong mỗi bản tin từ mã Trong ma trận
ký hiệu n - k là hạng của H :
n – k = rank2 (H) (1.12)
Rank2 (H) là số hàng trong H mà là phụ thuộc tuyến tính hơn GF (2)
1.2.2 Phát hiện và sửa lỗi
Giả sử một từ mã được gửi xuống một kênh đối xứng nhị phân và một hoặc nhiều hơn của các bit từ mã có thể đã bị lộn Nhiệm vụ của phần này là phát hiện các bít bị lộn nếu
có thể và sửa chúng
Trước hết, chúng ta biết rằng mỗi từ mã trong mã phải thỏa mãn (1.4), và do đó các lỗi
có thể được phát hiện trong bất kỳ từ mã nào nhận được không đáp ứng phương trình này
Kết quả là khác không và vì vậy chuỗi y nhận được không phải là mã đúng Do đó chúng ta kết luận rằng lỗi bit lộn xảy ra trong quá trình truyền
Cho vector
S = HyT
Được gọi là syndrome của y Nó chỉ ra các hàm kiểm tra chẵn lẻ mà y không thỏa mãn
Ví dụ 1.9
Kết quả của công thức 1.13, trong ví dụ 1.8 chỉ ra hàm kiểm tra chẵn lẻ đầu tiên của H
mà y không thỏa mãn Từ hàm kiểm tra chẵn lẻ này liên quan đến bit từ mã thứ 1, 2 và 4 chúng ta có thể kết luận rằng ít nhất một trong ba bit đã được đảo ngược bởi kênh
Trang 12Ví dụ 1.8 minh họa việc sử dụng một mã khối để phát hiện lỗi truyền dẫn, nhưng giả
sử rằng các kênh bị nhiễu và ba bit được đảo ngược để tạo chuỗi y = [ 0 0 1 0 1 1 ] Thay vào (1.4) cho thấy y là một từ mã hợp lệ và do đó chúng ta không thể phát hiện các lỗi truyền đã xảy ra Nói chung, một mã khối chỉ có thể phát hiện một tập hợp các lỗi bit nếu các lỗi không thay đổi các từ mã khác
Khoảng cách Hamming giữa hai từ mã được định nghĩa là số lượng các vị trí bit trong
đó chúng khác nhau Cho ví dụ từ mã [ 1 0 1 0 0 1 1 0 ] và [ 1 0 0 0 0 1 1 1 ] khác nhau ở
vị trí, bit từ mã thứ 3 và thứ 8, vây khoảng cách Hamming giữa 2 từ mã là 2 Một cách để phát hiện lỗi là khoảng cách Hamming tối thiểu hoặc chỉ ra khoảng cách tối thiểu của mã Khoảng cách tối thiểu của một mã, dmin, được định nghĩa là khoảng cách Hamming nhỏ nhất giữa bất kỳ cặp từ mã trong các mã Cho mã từ ví dụ 1.3 ta có dmin = 3, vậy 3 hoặc nhiều bit bị lỗi trong từ mã có thể dẫn đến từ mã hợp lệ Một mã có khoảng cách tối thiểu
dmin, có thể phát hiện t lỗi khi
t < dmin (1.14)
Đi xa hơn nữa và yêu cầu sửa bit lỗi bị đảo ngược, các bộ giải mã xác nhận các từ mã
có khả năng được gửi nhiều nhất Dựa trên chuỗi nhị phân y đã biết, bộ giải mã tốt nhất
sẽ chọn từ mã gần nhất trong khoảng cách Hamming y Khi có nhiều hơn một từ mã ở khoảng cách tối thiểu từ y các bộ giải mã sẽ ngẫu nhiên chọn một trong số chúng Bộ giải
mã này được gọi là bộ giải mã khả năng tối đa (ML) vì nó sẽ luôn luôn chọn từ mã mà có thể đã tạo ra từ y
Ví dụ 1.10
Trong ví dụ 1.8 chúng ta phát hiện ra rằng chuỗi nhận y = [ 1 0 1 0 1 0 ] không phải là một từ mã của mã trong ví dụ 1.3 Bằng cách so sánh y với mỗi từ mã trong mã này, bộ giải mã ML sẽ chọn c = [ 1 0 1 1 1 0 ] vì nó có khoảng cách hamming là 1 với y
Khoảng cách tối thiểu của mã trong ví dụ 1.8 là3, do đó, một bit đơn đảo ngược luôn luôn hiệu quả trong một chuỗi y gần hơn với các từ mã được gửi hơn bất kỳ từ mã khác
và do đó luôn luôn có thể được sửa chữa bởi các bộ giải mã ML Tuy nhiên, nếu hai bit đảo ngược trong y có thể có một từ mã khác nhau mà gần với y hơn một trong đó đã được gửi, trong trường hợp các bộ giải mã sẽ chọn một từ mã không chính xác
Ví dụ 1.11
Từ mã c = [ 1 0 1 1 1 0 ] trong ví dụ 1.3 được truyền thông qua một kênh trong đó đưa ra hai bit đảo ngược tạo chuỗi y = [ 0 0 1 0 1 0 ] Bằng cách so sánh y với nhau của các từ mã trong mã này (1.8) bộ giải mã ML sẽ chọn c = [ 0 0 1 0 1 1 ] có khoảng cách
Trang 13hamming tối thiểu với y Trong trường hợp này các bộ giải mã ML đã thực sự được thêm lỗi chứ không phải là sửa chữa chúng
Nói chung, đối với một mã với khoảng cách tối thiểu dmin, e bit đảo ngược luôn luôn
có thể được sửa chữa bằng cách chọn từ mã gần nhất bất cứ khi nào:
e ≤ [ (dmin – 1 )/2 ] (1.15)
Tỷ lệ mã càng nhỏ thì tập con của 2 vec tơ từ mã nhị phân càng nhỏ và khoảng cách tối thiểu càng dễ đạt đươc 1 mã có độ dài n Tầm quan trọng của khoảng cách tối thiểu trong việc xác định hiệu suất của nó được phản ánh trong các mô tả của mã khối bởi ba thông
số ( n k dmin )
Sửa lỗi bằng cách trực tiếp so sánh chuỗi nhận để biết mỗi từ mã khác trong các mã,
và lựa chọn gần nhất, được gọi là giải mã tối đa khả năng bởi vì nó được đảm bảo để trả lại từ mã có khả năng nhất Tuy nhiên, khả thi chỉ khi k nhỏ Các mã với hàng ngàn bit bản tin trong một từ mã nó làm cho quá trình tính toán tốn kém so sánh trực tiếp các chuỗi nhận được với mỗi một trong 2 từ mã trong mã Nhiều giải pháp khéo léo đã được
đề xuất để thực hiện nhiệm vụ này ít phức tạp hơn, bo gồm việc lựa chọn mã số đại số và khai thác cấu trúc của chúng để tăng tốc độ giải mã hoặc, như đối với mã LDPC, các phương pháp giải mã này không phải là ML nhưng có thể thực hiện rất tốt để sự phức tạp giảm đi nhiều
1.3 Mã kiểm tra chẵn lẻ mật độ thấp ( LPCP)
Như tên gọi của chúng, mã LDPC là mã khối với ma trận kiểm tra chẵn lẻ có chứa chỉ một số rất nhỏ các đầu vào khác 0 Độ thưa của H đảm bảo độ phức tạp giải mã và khoảng cách tối thiểu của mã tăng tuyến tính theo độ dài mã
Sự khác biệt lớn nhất giữa mã LDPC và mã khối cổ điển là cách chúng được giải mã
Mã khối cổ điển thường được giải mã với ML như thoán giải mã và vì thế thường ngắn
và thiết kế đại số làm cho công việc này ít phức tạp Tuy nhiên mã LDPC được giải mã lặp sử dụng một biểu diễn đồ họa của ma trận kiểm tra chẵn lẻ của mình và do đó được thiết kế với các tính chất của H là trọng tâm
Trang 14Một mã LDPC ma trận kiểm tra chẵn lẻ được gọi là (w c w r) chinh quy nếu mỗi bit mã
được chứa trong một số c cố định của kiểm tra chẵn lẻ và mỗi phương trình kiểm tra chẵn
chứa một số cố định, wr của bit mã
Ví dụ 1.12
Một ma trận kiểm tra chẵn lẻ đều cho mã trong ví dụ 1.3 với wc = 2 wr = 3 và rank2 H =
3, mà thỏa mãn ( 1.4 )
Đối với một ma trận chẵn lẻ kiểm tra không đều chúng ta chỉ định các phần cột của trọng
số i bởi v và các phần hàng của trọng số i bởi h v và h được gọi là phân bố mức độ mã
1.3.1 Xây dựng LDPC
Việc xây dựng các mã nhị phân LDPC liên quan đến giao một số lượng nhỏ các giá trị trong ma trận tất cả phân tử bằng 0 là 1 để các hàng và cột có sự phân bố mức độ yêu cầu
Các mã LDPC ban đầu được trình bày bởi Gallager là đều và xác định bởi một cấu trúc phân lớp trong H Các hàng của ma trận kiểm tra chẵn lẻ Gallagher được chia thành tập wc với M/w hàng trong mỗi tập Tập đầu tiên của hàng chứa những wr liên tiếp đặt từ trái qua phải của cột ( cho i ≤ M/wc, hàng thứ i không có 0 từ cột thứ (( i – 1 )K + 1 ) đến cột thứ i ) Mỗi tổ hợp khách là một hoán vị cột được chọn ngẫu nhiên của tập đầu tiên này Do đó mỗi cột của H có một '1' nhập một lần vào trong những tổ hợp wc
Trang 16Cột đầu tiên của H tương ứng với 1 bit bản tin Bit chẵn lẻ đầu tiên ( cột thứ 4 của H )
có thể mã hóa như c4 = c1, bit thứ 2 c5 = c4 ⊕ c1, và tiếp theo c6 = c5 ⊕ c2 và vv Bằng cách này mỗi bit - chẵn lẻ có thể được tính tại một thời điểm chỉ sử dụng các bit bản tin
Từ khi mã LDPC thường được xây dựng giả ngẫu nhiên, chúng ta thường nói về tập ( hoặc quần thể ) của tất cả các mã có thể với tham số nhất định (ví dụ như một phân phối mức độ nhất định) hơn là về một sự lựa chọn cụ thể của ma trận kiểm tra chẵn lẻ với các thông số
Mã LDPC thường thể hiện ở dạng minh họa bằng một đồ thị Tanner Các đồ thị
Tanner bao gồm hai tập các đỉnh : n các đỉnh cho các bit từ mã ( gọi là nút bit ) và m các
đỉnh cho phương trình kiểm tra chẵn lẻ ( gọi là nút kiểm tra ) Một cạnh nối một nút bit với một nút kiểm tra nếu bit được tích hợp trong phương trình kiểm tra chẵn lẻ tương ứng
và vì vậy số cạnh của đồ thị Tanner bằng với số nút trong ma trận kiểm tra chẵn lẻ
Trang 17Các nút kiểm tra
Các nút bit
Hình 1 1 Đồ thì tanner biểu diễn ma trận kiểm tra chẵn lẻ trong (1.16), chu kỳ 6 được in đậm
Các nút bit (các bit bản tin)
Một chu kỳ trong đồ thị Tanner là một chuỗi các đỉnh kết nối mà bắt đầu và kết thúc tại đỉnh cùng trong đồ thị và có chứa các đỉnh khác không quá một lần Chiều dài của một chu kỳ là số cạnh nó chứa và chu vi của một đồ thị là chu kỳ nhỏ nhất của nó
Ví dụ 1.19
Chu kỳ 6 được biểu diễn hình 1.1 Phương pháp xây dựng Mackay Neal cho mã LDPC có thể được điều chỉnh để tránh chu kỳ của độ dài 4, được gọi là chu kỳ 4, bằng cách kiểm tra mỗi cặp cột trong H để xem chúng có chồng chéo lên nhau ở hai nơi, sử
dụng phương pháp này được đưa ra trong thuật toán 1 Đầu vào là độ dài mã n, tỷ lệ r, và cột và hàng độ phân phối v và h Vector α là một vector có chiều dài n, trong đó có một mục i cho mỗi cột trong H trọng số i và vector β là một vector có chiều dài m, trong đó có
một mục i cho mỗi hàng trong H trọng số i
Trang 18Thuật toán 1 mã LPCD Mackay Neal
1: procedure MN CONSTRUCTION(n,r,v,h) % yêu cầu chiều dài, tỷ lệ và độ phân phối
2: H = all zero n(1 - r) × n matrix % khởi tạo
Trang 19không đáng kể Tuy nhiên, các mã ngắn chu kỳ 4 ma trận kiểm tra chẵn lẻ tự do có thể được xây dựng hiệu quả hơn nhiều bởi sử dụng phương pháp đại số, như chúng ta sẽ thấy sau này
Ngoài ra, phương pháp xây dựng Mackay Neal cho mã LDPC có thể được điều chỉnh
để tránh chu kỳ 4, mà không ảnh hưởng các mức độ phân phối hàng, bằng cách kiểm tra mỗi cột trước khi nó được thêm vào để xem nếu nó sẽ gây ra một chu kỳ với bất kỳ của các cột đã chọn và từ chối nó
Ví dụ 1.20
Nếu 1 mã tự do chu kỳ 4 đã được yêu cầu trong ví dụ 1.15 cột thứ tư sẽ được loại bỏ, và một cột mới được lựa chọn, vì nó gây ra một chu kỳ 4 với cột đầu tiên trong H
1.3.2 Mã hóa
Trước đây chúng ta lưu ý rằng một ma trận sinh cho một mã với ma trận kiểm tra chẵn
lẻ H có thể được tìm thấy bằng cách thực hiện Gauss-Jordan loại bỏ trên H :
H = [ A , In – k ] Khi A là một ma trận nhị phân ( n – k ) × k và In – k là cỡ ma trận đồng nhất n – k Ma trận sinh :
Đầu tiên, chúng tôi đặt H vào dạng hàng-bậc
Ma trận H được đưa vào biểu mẫu này bằng cách áp dụng các hoạt động hàng cơ bản trong GF (2), đó là, thay hai hàng hoặc thêm một hàng khác modul 2 Từ đại số tuyến tính chúng ta biết rằng bằng cách sử dụng các hoạt động hàng cơ bản, các sửa đổi ma trận kiểm tra chẵn lẻ sẽ có từ mã cùng thiết lập như ban đầu, (như hệ thống mới của phương trình tuyến tính sẽ có một giải pháp thiết lập không thay đổi )
Cột thứ nhất và thứ 2 của H đã có những phần tử trên đường chéo và các mục trong các cột bên dưới đường chéo được loại bỏ, thay thế bởi hàng thứ 4 với modulo-2 tổng của các hàng thứ 1 và 4 Cột thứ 3 của H không có 1 trên đường chéo nhưng điều này có thể thu được bằng cách thay đổi các hàng thứ 3 và thứ 5 Cuối cùng, thay thế hàng thứ 5 với modul hai khoản các hàng thứ 5 và thứ 4 cho 𝐻𝑟 ở dạng hàng-cấp có:
Trang 20𝐻𝑟 = [
số các hàng thứ 1 và hàng thứ 4 Cuối cùng, để xóa các cột thứ 5 liên quan đến việc bổ sung thêm hàng 5 đến hàng thứ 1, thứ 2 và thứ 4 cho 𝐻𝑟𝑟 trong hình thức giảm hàng-bậc có:
𝐻𝑟𝑟 = [
Trong bước này hoán vị cột đã được sử dụng và do đó, từ mã của 𝐻𝑠𝑡𝑑 sẽ được hoán
vị các phiên bản của từ mã tương ứng với H Giải pháp là để theo dõi sự hoán vị cột được
sử dụng để tạo ra 𝐻𝑠𝑡𝑑, mà trong trường hợp này là:
𝛱 = [ 6 7 8 9 10 1 2 3 4 5 ]
và áp dụng các hoán vị nghịch với mỗi từ mã 𝐻𝑠𝑡𝑑 trước khi nó được truyền
Ngoài ra, nếu là kênh không nhớ và bậc của bit từ mã là không quan trọng, là một lựa chọn dễ dàng hơn là để áp dụng 𝛱 với H ban đầu để cung cấp cho một ma trận chẵn lẻ kiểm tra
Trang 21𝐻′ = [
𝐶 = 𝑢𝐺 tại bộ mã hóa sẽ có độ phức tạp theo thứ tự của các hoạt động 𝑛2 Như n là lớn cho các
mã LDPC, từ hàng ngàn đến hàng trăm ngàn bit, mã hóa có thể trở thành phức tạp Sau
đó chúng ta sẽ thấy rằng cấu trúc ma trận chẵn lẻ kiểm tra có thể được sử dụng để làm giảm đáng kể việc thực hiện này phức tạp, tuy nhiên tùy ý cho các ma trận kiểm tra chẵn
lẻ một cách tiếp cận tốt là tránh xây dựng G ở tất cả và thay vào đó sử dụng để mã hóa trở lại thay thế bằng H như được thể hiện trong những điều sau đây
1.3.3 Mã hóa tuyến tính thời gian cho mã LDPC
Thay vì tìm kiếm một ma trận phát cho H, một mã LDPC có thể được mã hóa sử dụng ma trận chẵn lẻ kiểm tra trực tiếp bằng cách chuyển đổi nó thành tam giác trên và
sử dụng thay thế trở lại Ý tưởng là để làm càng nhiều các chuyển đổi như có thể sử dụng chỉ hàng và hoán vị cột để giữ càng nhiều H rời rạc càng tốt
Thứ nhất, sử dụng chỉ hàng và cột hoán vị, ma trận chẵn lẻ kiểm tra là đưa vào xấp
xỉ tam giác dưới :
𝐻𝑡 = [𝐴 𝐵 𝑇
𝐶 𝐷 𝐸]
Trang 22ở đây ma trận T là một ma trận tam giác dưới (có nghĩa là T có duy nhất trên đường chéo
từ trái sang phải và tất cả các mục trên đường chéo bằng không) kích thước (𝑚 − 𝑔) ×(𝑚 − 𝑔) Nếu Ht là bậc đầy đủ ma trận B là kích cỡ m - g × g và Một là kích cỡ (𝑚 − 𝑔)
× k Các hàng g của H còn lại trong C, D, và E được gọi là khoảng cách của đại diện gần đúng và các g nhỏ dưới mã hóa phức tạp cho các mã LDPC
Ví dụ 1.22
Chúng tôi muốn mã hóa gói tin u = [1 1 0 0 1] có cùng độ dài là 10, tỷ lệ 1/2 mã LDPC,
từ ví dụ 1.21:
H = [
𝐻𝑡 = [
𝐻̃ =[ 𝐼𝑚−𝑔 0
−𝐸𝑇−1 𝐼𝑔] 𝐻𝑡 = [𝐴 𝐵 𝑇
𝐶̃ 𝐷̃ 0]
Trang 23Khi áp dụng phép khử Gauss-Jordan để loại bỏ E, chỉ có 𝐶̃ và 𝐷̃ được thực hiện,
Cuối cùng để mã hóa, dùng từ mã 𝐻̃ chia c = [ 𝑐1𝑐2,…, 𝑐𝑛 ] thành 3 phần c=[c,𝑝1, 𝑝2 ] , trong đó u=[𝑢1, 𝑢2, … , 𝑢𝑘 ] là k bit tin, p1=[𝑝11, 𝑝12, … , 𝑝1𝑔] giữ các bit chẵn lẻ g đầu tiên và p2=[𝑝21, 𝑝22, … , 𝑝2𝑚−𝑔] giữ các bit chẵn lẻ còn lại
Từ mã c = [u , p1, p2 ] phải thỏa mãn phương trình cân bằng kiểm tra 𝑐𝐻̃𝑇=0 và
Au + B𝑝1 + T𝑝2 = 0 (1.19)
Và
𝐶̃u + 𝐷̃𝑝1 + 0𝑝2 = 0 (1.20)
Trang 24Khi E đã được xóa/loại bỏ, các bit chẵn lẻ 𝑝1 chỉ còn phụ thuộc vào thông tin bit Và như vậy có thể tự tính được bit chẵn lẻ ở 𝑝2 Nếu 𝐷̃ có thể nghịch đảo, 𝑝1 có thể thấy từ (1.20)
𝑝1 = 𝐷̃ −1 𝐶̃u (1.21)
Nếu 𝐷̃ không ngịch đảo được, các cột của 𝐻̃ có thể hoán vị cho tới khi 𝐷̃ nghịc đảo được, bằng cách giữ g càng nhỏ càng tốt điều phức tạp của nhân ma trận trong phương trình 1.21, đó là O(𝑔2) , được giữ ở mức thấp
Một khi biết được 𝑝1, 𝑝2 có thể tìm ra nhờ (1.19):
𝑝2 = −𝑇−1(𝐴𝑢 + 𝐵𝑝1), (1.22)
Khi rời rạc A, B và T có thể được sử dụng để giữ sự phức tạp của hoạt động này ở mức thấp và, Khi T là tam giác trên, 𝑝2 có thể được tìm thấy bằng cách sử dụng thay thế trở lại
Ví dụ 1.24
Tiếp tục ví dụ 1.23 , ta phân vùng đoạn từ mã dài 10 c = [ 𝑐1, 𝑐2, … , 𝑐10] như c=[u, 𝑝1, 𝑝2] trong đó p1 = [𝑐6, 𝑐7] và p2 = [𝑐8, 𝑐9, 𝑐10] Các bit chẵn lẻ trong p1 được tính toán từ các thông tin sử dụng phương trình 1.21:
Trang 25Ngoài ra, hoán vị cột được dùng để tính 𝐻𝑡 từ H và tương tự với 𝐻𝑡, hay H đã áp dụng hoán vị cùng cột, sẽ được dùng tại bộ giải mã Chú ý rằng vì ma trận kiểm tra được dùng
để tính G Ví dụ 1.21 là một dạng hoán vị cột của 𝐻𝑡 Tập hợp các từ mã tạo ra bởi hai bộ
mã sẽ không giống nhau
1.4 ghi chú phụ lục
Mã LDPC được giới thiệu lần đầu tiên trong luận án của Gallager năm 1962 [1] Trong công trình của mình, Gallager sử dụng một phép biểu diễn đồ họa từ các bit và bộ kiểm tra tổ hợp mã LDPC đều để mô tả các ứng dụng giải mã lặp Tuy nhiên,.nghiên cứu
có hệ thống về mã số trên đồ thị phần lớn là do Tanner thực hiện- người mà năm 1981 đã chính thức sử dụng đồ thị hai phía để mô tả tập hợp các mã [2]
Mã LDPC không đều đầu tiên được đề xuất bởi một nhóm các nhà nghiên cứu vào cuối những năm 90 [3, 4] và đó là những mã có thể tạo ra nhiều hiệu suất chỉ trong một phần của 1 dB dung lượng [5] Các thuật toán mã hóa được trình bày ở đây là từ [6] và hai phép xây dựng giả ngẫu nhiên chúng tôi đã xem xét có thể được tìm thấy tại [1] và [7] để biết rõ hơn về mã khối cổ điển chúng tôi khuyến khích các văn bản sửa lỗi [8] và [9] hoặc, cho những người quan tâm đến nghiên cứu toán học, [10] và [11]
Trang 26Topic II: Giải mã gói tin
Các loại thuật toán giải mã được sử dụng để giải mã mã LDPC được gọi chung là các thuật toán truyền tin bởi khi hoạt động của chúng có thể được giải thích bằng cách truyền tin dọc theo các cạnh của một đồ thị Tanner Mỗi nút đồ thị Tanner hoạt động độc lập , chỉ có quyền truy cập vào các thông tin trong các tin nhắn trên kết nối với nó Các thuật toán giải mã gói tin cũng được biết đến như là thuật toán giải mã lặp, các thông tin tới và
đi giữa các bit và kiểm tra các nút liên tục cho đến khi đạt được kết quả (hoặc quá trình tạm dừng) Các thuật toán truyền tin khác nhau được đặt tên theo các loại thông tin được truyền hoặc cho các loại hình hoạt động thực hiện tại các nút
Trong một số thuật toán , chẳng hạn như giải mã bit-flipping, các tin nhắn là nhị phân
và các dạng khác, chẳng hạn như giải mã truyền tin, các thông tin là xác suất đại diện cho một mức độ tin tưởng về giá trị của các bit từ mã Nó thường thuận tiện để đại diện cho các giá trị xác suất là tỷ lệ khả năng đăng nhập, và khi điều này được thực hiện giải mã truyền tin thường được gọi là giải mã tổng hợp sản phẩm vì tỷ lệ khả năng đăng nhập cho phép các tính toán ở các bit và kiểm tra các nút được tính toán sử dụng tổng hợp và điều khiển
2.1 Truyền tin trên kênh nhị phân có xoá
Trên kênh xoá nhị phân (BEC) một bit được truyền thì hoặc là nhận đúng hoặc hoàn toàn bị xóa với một xác suất ε Vì các bit nhận được luôn luôn đúng hoàn toàn, nhiệm vụ của các bộ giải mã là để xác định giá trị của các bit không rõ Nếu có một phương trình kiểm tra bao gồm chỉ có một bit bị xóa , giá trị chính xác cho các bit bị xóa có thể được xác định bằng cách chọn giá trị thỏa mãn chẵn
Ví dụ 2.1
Mã trong ví dụ 1.3 bao gồm các phương trình kiểm tra
𝑐1⊕𝑐2⊕ 𝑐4Nếu giá trị của bit 𝑐1 được biết đến là '0 ' và giá trị của bit 𝑐2 được biết đến là '1' , thì giá trị của bit 𝑐4 phải được '1 ' nếu 𝑐1, 𝑐2và 𝑐4là một phần của từ mã hợp lệ cho các mã này
Trong các bộ giải mã gói tin, mỗi nút kiểm tra xác định giá trị của một bit bị xóa, nếu nó chỉ là bit bị xóa trong phương trình tương đương kiểm tra của nó
Trang 27Các tín hiệu truyền qua theo các cạnh đồ thị Tanner rất đơn giản: một node bit gửi đi cùng một tin thông báo M cho mỗi node kiểm tra kết nối của nó Tín hiệu này, đặt tên 𝑀𝑖cho nút bit thứ 𝑖, đọc giá trị của các bit ′1 ′ , ′0′ nếu nó đã biết hoặc ′𝑥′ nếu nó bị xóa Nếu một node kiểm tra chỉ nhận được một tín hiệu ′𝑥′ , nó có thể tính toán giá trị của bit chưa biết bằng cách lựa chọn các giá trị thỏa mãn tính chẵn lẻ Các nút kiểm tra gửi lại các tín hiệu khác nhau cho từng bit của các node kết nối của nó Tín hiệu này, đặt tên là
𝐸𝑗,cho các tín hiệu từ nút kiểm tra thứ 𝑗 đến nút bit thứ 𝑖 , đọc giá trị của bit 𝑖 là ′1 ′ ,′0 ′ Hoặc ′ 𝑥 ′ được xác định bởi các nút kiểm tra thứ 𝑗 Nếu node bit của một bit bị xóa nhận được một tín hiệu tới là ′1 ′ hoặc ′0′ thì node bit thay đổi giá trị của nó thành giá trị của tín hiệu đến Quá trình này được lặp lại cho đến khi tất cả các giá trị bit được biết, hoặc
cho đến khi số lần truyền qua bộ cảm biến đạt mức tối đa và bộ Detector từ bỏ
Ta dùng các ký hiệu 𝐵𝑗 để thay cho tập hợp các bit trong phương trình kiểm tra tính chẵn
lẽ thứ j của các mã Vì vậy, đối với mã trong Ví dụ 1.12 ta có
𝐵1 = {1,2,4}, 𝐵2 = {2,3,5}, 𝐵3 = {1,5,6}, 𝐵4 = {3,4,6}
Tương tự như vậy , ta dùng các ký hiệu 𝐴𝑖 để thay cho các phương trình kiểm tra tính chẵn lẻ, để kiểm tra trên các bit thứ 𝑖 của mã Vì vậy, với mã trong Ví dụ
𝐴1 = {1,3} , 𝐴2 = {1,2}, 𝐴3 = {2,4}, 𝐴4 = {1,4}, 𝐴5 = {2,3}, 𝐴6 = {3,4} Thuật toán 2 phác thảo giải mã gói tin trên BEC Đầu vào là giá trị nhận được từ bộ
Detector, 𝑦 = [𝑦1… 𝑦𝑛] có thể là ′1 ′ , ′0′ hoặc ′𝑥′ , và đầu ra là M = [𝑀1, … , 𝑀𝑛] cũng có thể nhận các giá trị ′1 ′ , ′0′ hoặc ′𝑥′
Trang 28tín hiệu ′𝑥′ đến từ node bit thứ 4, tin thông báo của nó trên cạnh này , 𝐸1 , 4, sẽ là giá trị của bit từ mã thứ 4 : 𝐸1,4 = 𝑀1⊕ 𝑀2 = 0 ⊕ 0 = 0kiểm tra lần 2 bao gồm node bit thứ 2,3 và 5, và do đó có tín hiệu đến là ′0 ′, ′1′ và ′𝑥 Vì node kiểm tra có một tín hiệu đến,từ Thuật toán 2 giải mã Erasure
Trang 29Node bit thứ 5, tin thông báo của nó trên cạnh này, E2, 5, sẽ là giá trị của bit từ mã thứ 5:
𝐸2,5 = 𝑀2⊕ 𝑀3 = 0 ⊕ 1 = 1 Kiểm tra lần 3 bao gồm bit thứ 1, 5 và 6, và do đó có tín hiệu đến là ′0 ′,′ 𝑥 ′ và ′ 𝑥 ′ Vì node kiểm tra này nhận được hai tín hiệu ′𝑥′ nên nó không thể dùng để xác định giá trị của bất kỳ bit nào nữa Trong trường hợp này tin thông báo node kiểm tra là tất cả ′𝑥′ Tương tự như vậy, kiểm tra thứ lần 4 bao gồm bit thứ 3,4 và 6 và do đó nhận được hai tín hiệu ′𝑥′ và vậy nên cũng không thể dùng để xác định giá trị của bất kỳ bit nào
Trong Bước 2 mỗi node bit có giá trị chưa biết sử dụng tín hiệu vào để cập nhật giá trị của nó khi có thể Bit thứ 4 chưa biết và có tín hiều vào bằng ′0 ′ ( 𝐸1,4) và ′ 𝑥 ′ (𝐸4,4) và
do đó, nó thay đổi giá trị của nó thành ′0′ Bit 5 cũng chưa biết và có thông tin tới bằng
′1 ′ (𝐸2,5) và ′ 𝑥 ′ (𝐸3,5) và do đó, nó thay đổi giá trị của nó thành ′1′ Bit 6 cũng chưa biết nhưng nó có thông tin tới là ′𝑥′ (𝐸3,6) và ′𝑥′ (𝐸4,6) vì vậy nó không thể thay đổi giá trị của nó Ở cuối Bước 2 ta có
M = [0 0 1 0 1 𝑥 ]
Để kiểm tra, sẽ có một bit vẫn chưa biết (bit 6) và như vậy các thuật toán tiếp tục Lặp Bước 1 nút kiểm tra 3 được nhập node bit 1,5 và 6, và do đó node kiểm tra này có một thông tin tới 'x', M6 Tin thông báo từ việc kiểm tra node bit 6 , 𝐸3,6, là giá trị của từ
mã bit 6
𝐸3,6 = 𝑀1⊕ 𝑀5 = 1 ⊕ 0 = 1 Nút kiểm tra thứ 4 được nhập vào bit node 3,4 và 6 , và vì vậy nút kiểm tra này có một tín hiệu vào ′𝑥′, 𝑀6 Tin thông báo từ việc kiểm tra bit nút 6, 𝐸4,6, là giá trị của từ mã bit 6
𝐸3,6 = 𝑀3⊕ 𝑀4 = 0 ⊕ 1 = 1 Trong Bước 2 bit 6 chưa biết và bản tin đến, 𝐸3,4 và 𝐸4,6 với giá trị ′1 ′ và do đó, nó thay đổi giá trị của nó tới ′1′ Vì các bit nhận được từ kênh luôn luôn đúng, các thông tin
từ các nút kiểm tra sẽ luôn luôn đồng ý ( Trong các thuật toán bit-flipping, ta sẽ có cách khác khi không phải là trường hợp này )Lúc kiểm tra này, không có bit từ mã chưa biết
và do đó, các thuật toán tạm dừng và trở về
M = [0 0 1 0 1 1 ]
Trang 30Khi từ mã được giải mã Chuỗi nhận được do đó đã được xác định một cách chính xác mặc dù một nửa của các bit từ mã có bị xóa Hình 2.1 cho thấy đồ thị các thông tin qua
bộ giải mã thông tin
Bởi các bit nhận được trong một kênh xóa được hoặc là đúng hoặc không biết ( không
có lỗi nào được các kênh giới thiệu ) các thông tin qua lại giữa các nút luôn là giá trị bit đúng hay ′𝑥′ Khi kênh giới thiệu lỗi vào từ tiếp nhận , vì trong đối xứng nhị phân hoặc các kênh AWGN , các thông tin trong giải mã thông điệp là thay cho những dự đoán tốt nhất các giá trị từ mã bit dựa trên các thông tin hiện có sẵn cho mỗi nút
Hình 2 1: Giải mã gói tin chuỗiy nhận được = [0 0 1 xxx]
Mỗi hình nhỏ cho thấy tại mỗi bước của thuật toán giải mã dựa trên các thông tin từ các bước trước Đối với các thông tin, một mũi tên đứt tương ứng với thông điệp "bit = 0", trong khi một mũi tên liền tương ứng với "bit = 1", và mũi tên đứt mờ tương ứng với
"bit x"
Trang 312.2 Giải mã bit-flipping
Thuật toán bit-flipping là một thuật toán truyền tin cho mã LDPC Một quyết định nhị phân về mỗi bit nhận được tạo bởi bộ giải mã và đây là cách nó truyền qua bộ giải mã Đối với các thuật toán bit-flipping, các thông tin truyền dọc theo các cạnh đồ thị Tanner cũng là nhị phân : một node bit gửi một thông điệp khai báo rằng nó bằng 1 hay bằng 0 ,
và mỗi nút kiểm tra sẽ gửi một thông điệp tới mỗi nút bit kết nối , khai báo bit đó có giá trị là bao nhiêu dựa trên thông tin có sẵn tới node kiểm tra Node kiểm tra xác định phương trình kiểm tra tính chẵn lẻ của nó là thỏa mãn nếu tổng các giá trị bit của modulo -2 đến là 0 Nếu phần lớn các thông tin nhận được bởi một node bit khác với giá trị nhận được,node bit sẽ thay đổi ( flips ) giá trị hiện tại của nó Quá trình này được lặp đi lặp lại cho đến khi tất cả các phương trình kiểm tra tính chẵn lẽ được thỏa mãn, hoặc cho đến khi số lần truyền qua bộ cảm biến đạt mức tối đa
Các bộ giải mã bit-flipping có thể được chấm dứt ngay lập tức bất cứ khi nào một
từ mã hợp lệ được tìm thấy bằng cách kiểm tra tất cả các phương trình kiểm tra tính chẵn
lẽ đã thỏa mãn hay chưa Điều này đúng với tất cả giải mã gói tin của các mã LDPC và
có hai lợi ích quan trọng; đầu tiên,tránh lặp lại thêm lần nào một khi tìm thấy giải pháp và thứ hai, hội tụ từ mã thất bại sẽ luôn được phát hiện Các thuật toán bit-flpping dựa trên theo nguyên tắc là một bit từ mã cùng với một số lượng lớn các phương trình kiểm tra không chính xác có thể sẽ sai Các rời rạc của H giúp mở rộng các bit để kiểm tra, nhờ đó phương trình kiểm tra tính chẵn lẻ không có khả năng chứa một tập hợp các bit từ mã giống nhau Trong ví dụ 2.4, ta sẽ xem xét các ảnh hưởng bất lợi của phương trình kiểm tra chẵn lẻ chồng chéo Các thuật toán bit-flipping được trình bày trong thuật toán 3 Đầu vào quyết định hình thức vector đã cho y=[𝑦1, … , 𝑦𝑛] và đầu ra ISM=[𝑀1, … , 𝑀𝑛]
Trang 3216 If the massages 𝐸𝑖,𝑗 disagree with 𝑦𝑖 then
17 𝑀𝑖 = (𝑟𝑖 + 1 𝑚𝑜𝑑 2)
18 End if
19 End for
20
22 𝐿𝑗 = ⅀𝑖, ∈𝐵𝑗, (𝑀𝑖, mod 2) equations satisfied
𝐸2,2= 𝑀3 ⊕ 𝑀5 = 1 ⊕ 1 = 0
𝐸2,3= 𝑀2 ⊕ 𝑀5 = 0 ⊕ 1 = 1
𝐸2,5= 𝑀2 ⊕ 𝑀3 = 0 ⊕ 1 = 1
Trang 33Lặp lại các nút kiểm tra còn lại Cho:
𝐸3,1=0; 𝐸3,5=0; 𝐸3,6=0
𝐸4,3=1; 𝐸4,4=0; 𝐸4,6=1 Trong Bước 2 bit 1 nhận thông tin từ node kiểm tra 1 và 3, 𝐴1= [1, 3 ] cả hai đều bằng không Do đó phần lớn các thông tin vào node bit 1 sẽ cho ra một giá trị khác với giá trị nhận được và do đó node bit 1 đảo giá trị của nó Bit 2 nhận thông tin node kiểm tra 1
và 2 , 𝐴2 = [1 , 2] , được 1 và đồng ý với giá trị nhận được Vì vậy, bit 2 không đảo giá trị của nó Tương tự như vậy , không nút bit còn lại nào có đủ node kiểm tra để phân biệt bit thông tin với giá trị nhận được và vì vậy nó/chúng cũng đều giữ nguyên giá trị hiện tại Bit mới để kiểm tra thông tin là như vậy,
M= [0 0 1 0 1 1]
Đối với các bài kiểm tra, qua trình kiểm tra tính chẵn lẻ được tính toán Đối với nút kiểm tra đầu tiên
𝐿1 = 𝑀1⊕ 𝑀2⊕ 𝑀4=0⊕ 0 ⊕ 0=0 Đối với nút kiểm tra thứ hai
𝐿2 = 𝑀2⊕ 𝑀3⊕ 𝑀5=0⊕ 1 ⊕ 1=0
và tương tự cho các nút kiểm tra thứ 3 và 4:
𝐿3 = 0
𝐿4 = 0 Như vậy,sẽ không có nút kiểm tra chưa thỏa mãn và do đó thuật toán tạm dừng và trở về
M= [0 0 1 0 1 1]
như từ mã được giải mã Chuỗi nhận được đó đã được giải mã một cách chính xác mà không yêu cầu một tìm kiếm tường minh hơn trên tất cả các từ mã có thể Các bước giải
mã được hiển thị đồ họa trong hình 2.2
Sự tồn tại của chu kỳ trong đồ thị Tanner của một mã giảm hiệu quả của quá trình giải
mã lặp đi lặp lại Để minh họa sự ảnh hưởng bất lợi của chu kỳ-4, chúng tôi sử dụng một
mã LDPC mới với Tanner đồ thị hình 2.3 Đối với đồ thị Tanner này có một chu kỳ 4 giữa hai nút bit đầu tiên và hai nút kiểm tra đầu tiên