Giải mã bit-flipping

Một phần của tài liệu MÃ KIỂM TRA CHẴN lẻ LDPC (Trang 31 - 36)

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, … , 𝑀𝑛].

Ví dụ 2.3: Mã LDPC từ Ví dụ 1.12 được sử dụng để mã hóa các từ mã C=[0 0 1 0 1 1], c được gửi qua một kênh BSC với sự giao nhau xác suất p = 0,2 và tín hiệu nhận được là y=[1 0 1 0 1 1], khởi tạo là 𝑀𝑖 = 𝑟𝑖 để M=[1 0 1 0 1 1]

Bước 1 Thông tin các node kiểm tra được tính toán. Nút kiểm tra 1 được nhập vào bit node 1, 2 và 4, B=[1,2,4], và vì vậy thông tin cho node kiểm tra 1 là

𝐸1,2= 𝑀2 ⊕ 𝑀4 = 0 ⊕ 0 = 0 𝐸1,2= 𝑀1 ⊕ 𝑀4 = 1 ⊕ 0 = 0

Nhóm: Vũ Văn Nam, Trương Văn Mạnh, Lê Trí Hiếu, Nguyễn Hoàng Long Page 28 1 procedure DECODE(y) 2 3 I = 0  Initialization 4 For i =1 : n do 5 𝑀𝑖 = 𝑦𝑖 6 End for 7 8 Repeat

9 For j=1:m do  Step 1: Check messages

10 For i =1 : n do

11 𝐸𝑖,𝑗 = ⅀𝑖,∈𝐵𝑗,𝑖,≠𝑖 (𝑀𝑖, mod 2) 12 End for

13 End for

14

15 For i =1 : n do  Step 2: Bit messages

16 If the massages 𝐸𝑖,𝑗 disagree with 𝑦𝑖 then

17 𝑀𝑖 = (𝑟𝑖 + 1 𝑚𝑜𝑑 2) 18 End if

19 End for

20

21 For j=1:m do  Test: are the parity-check

22 𝐿𝑗 = ⅀𝑖,∈𝐵𝑗, (𝑀𝑖, mod 2)  equations satisfied 23 End for 24 If all 𝐿𝑗=0 or 𝐼 = 𝐼𝑚𝑎𝑥 then 25 Finished 26 Else 27 𝐼 = 𝐼 + 1 28 End if 29 Ultil finished 30 End procedure 𝐸1,4= 𝑀1 ⊕ 𝑀2 = 1 ⊕ 0 = 1

node kiểm tra 2 bao gồm bit thứ 2,3 và 5, 𝐵2= [2, 3, 5], và vì vậy thông tin cho node kiểm tra 2 thứ là

𝐸2,2= 𝑀3 ⊕ 𝑀5 = 1 ⊕ 1 = 0 𝐸2,3= 𝑀2 ⊕ 𝑀5 = 0 ⊕ 1 = 1 𝐸2,5= 𝑀2 ⊕ 𝑀3 = 0 ⊕ 1 = 1

Nhóm: Vũ Văn Nam, Trương Văn Mạnh, Lê Trí Hiếu, Nguyễn Hoàng Long Page 29 Lặ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

Nhóm: Vũ Văn Nam, Trương Văn Mạnh, Lê Trí Hiếu, Nguyễn Hoàng Long Page 30 Ví dụ 2.4

Một từ mã hợp lệ cho các mã với Tanner đồ thị trong hình. 2.3 c = [0 0 1 0 0 1].

Khởi tạo Kiểm tra thông báo

Bit cập nhật Kiểm tra

Hình 2. 2: Giải mã Bit-flipping của chuỗi vào y = [1 0 1 0 1 1].

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 thong báo từ các bước trước. Dấu (x) biểu diễn cho việc kiểm tra tính chẵn lẻ là không thỏa mãn trong khi một đánh dấu ( ) là thỏa mãn. 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".

Từ mã này được gửi thông qua nhị phân một đầu vào phụ kênh nhiễu Gauss trắng với pha nhị phân thay đổi cách nhập (BPSK) báo hiệu và

[−1.1 1.5 − 0.5 1 + 1.8 − 2]

nhận được. Máy phát hiện làm cho một quyết định cứng trên mỗi bit từ mã và trả về y = [1 0 1 0 0 1]

Nhóm: Vũ Văn Nam, Trương Văn Mạnh, Lê Trí Hiếu, Nguyễn Hoàng Long Page 31 Như trong ví dụ 2.4 tác dụng của các kênh đã được là bit đầu tiên là không chính xác. Các bước của thuật toán Bit-flipping cho chuỗi vào này được thể hiện trong hình. 2.3. Các giá trị bit đầu tiên là 1, 0, 1, 0, 0, và 1, tương ứng, và thông tin được gửi đến các nút kiểm tra cho các giá trị. Bước 1 cho thấy rằng lần và lần2 phương trình kiểm tra chẵn lẻ không thỏa mãn và vì vậy các thử nghiệm các thuật toán tiếp tục. Bước 2 trong cả lần 1 và bit lần 2 có phần lớn các thông tin của nó chỉ ra rằng giá trị nhận được là không chính xác và như vậy cả hai lật giá trị bit của nó. Khi bước 1 được lặp lại chúng ta thấy rằng lần 2 phương trình kiểm tra chẵn lẻ lần 1 và một lần nữa không thỏa mãn. Trong lặp đi lặp lại thêm hai bit đầu tiên tiếp tục lật các giá trị của nó với nhau như vậy mà một trong số đó luôn luôn là không chính xác và các thuật toán không hội tụ. Là kết quả của các chu kỳ 4, mỗi hai bit từ mã đầu tiên được tham gia vào cùng một hai phương trình kiểm tra chẵn lẻ, và do đó, khi cả hai phương trình kiểm tra chẵn lẻ không thỏa mãn, không thể để xác định bit lỗi.

Nhóm: Vũ Văn Nam, Trương Văn Mạnh, Lê Trí Hiếu, Nguyễn Hoàng Long Page 32 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 tin nhắn từ các bước trước. Dấu (x) là thể hiện cho việc kiểm tra tính chẵn lẻ là không thỏa mãng trong khi một dấu ( ) là thỏa mãn. Hình trên cho thấy, một mũi tên đứt nét tương ứng với "bit = 0", trong khi một mũi tên liền tương ứng với "bit = 1".

Một phần của tài liệu MÃ KIỂM TRA CHẴN lẻ LDPC (Trang 31 - 36)

Tải bản đầy đủ (PDF)

(67 trang)