TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ VIỄN THÔNG BÁO CÁO BÀI TẬP LỚN THÔNG TIN DI ĐỘNG Đề tài THỰC HIỆN ĐIỀU CHẾ, MÃ HÓA, GIẢI MÃ HÓA LDPC CHO MẠNG DI ĐỘNG 4G Sinh viên thực hiện VŨ THÀNH TRUNG.
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ - VIỄN THÔNG BÁO CÁO BÀI TẬP LỚN THÔNG TIN DI ĐỘNG Đề tài: THỰC HIỆN ĐIỀU CHẾ, MÃ HÓA, GIẢI MÃ HÓA LDPC CHO MẠNG DI ĐỘNG 4G Sinh viên thực hiện: VŨ THÀNH TRUNG- 20186319 NGUYỄN VIỆT HOÀNG - 20186315 VŨ HIẾU TRUNG - 20182839 Nhóm: Giảng viên hướng dẫn: PGS.TS NGUYỄN VĂN ĐỨC Hà Nội, 1-2022 LỜI NĨI ĐẦU Hệ thống thơng tin di động hệ thứ (4G - 4th Generation) cần đạt tiêu chí băng thơng rộng, độ tin cậy cao độ trễ thấp Mã kiểm tra chẵn lẻ mật độ thấp (LDPC - Low Density Parity Check) chấp nhận cho hệ thống thông tin di động 4G mã LDPC gần đạt dung lượng Shannon Trong báo cáo này, chúng em mô mã LDPC Matlab kênh truyền nhiễu trắng(AWGN) với phương pháp điều chế BPSK để chứng minh tính hiệu mã cho hệ thống thông tin di động 4G MỤC LỤC DANH MỤC KÍ HIỆU VÀ CHỮ VIẾT TẮT i DANH MỤC HÌNH VẼ ii DANH MỤC BẢNG BIỂU iii CHƯƠNG CƠ SỞ LÝ THUYẾT 1.1 Khái niệm LDPC 1.2 Cấu trúc mã LDPC 1.3 Cấu trúc mã LDPC 1.4 Giải mã (soft input - soft output decoder) CHƯƠNG MƠ PHỎNG MATLAB 12 2.1 Thuật tốn 12 2.1.1 Giải thuật Min-sum Product 12 2.1.2 Kỹ thuật phân lớp 12 2.2 Mô 13 2.3 Kết 14 THẢO LUẬN 17 PHỤ LỤC 18 DANH MỤC KÍ HIỆU VÀ CHỮ VIẾT TẮT Kí hiệu LDPC AWGN DVB NR BG SPC ML BPSK Giải nghĩa Low - density Parity Check White Noise Gauss Digital Video Broadcasting New Radio Base Graph Single Parity Check Maximum Likelihood Binary Phase Shift Keying i DANH MỤC HÌNH VẼ Hình 1.1 Cấu trúc ma trận sở Hình 1.2 Cách lựa chọn cấu trúc ma trận sở theo 3GPP Hình 1.3 Tanner graph cho ma trận kiểm tra chẵn lẻ Hình 1.4 Nút kiểm tra nhận giá trị q( n → m) từ bit node tính tốn trả lại giá trị r(m→n) đến bit node tương ứng Hình 1.5 Bit node nhận giá trị r(m→n) từ node kiểm tra, tính tốn tính tốn lại giá trị q(n→m) đến node kiểm tra tương ứng Hình 1.6 Tổng quan việc sửa lỗi bit dựa Tanner graph (Soft Deci- sion Decoding) Hình 1.7 Giải thuật giải mã Sum-Product 10 Hình 2.1 Thuật tốn giải mã với kỹ thuật phân lớp 13 Hình 2.2 Mơ hình thực việc điều chế, mã hóa, giải mã hóa với LDPC 13 Hình 2.3 Kết mơ với số lần lặp tối đa 14 Hình 2.4 BER theo Eb/N0¬ với số lần lặp tối đa 14 Hình 2.5 FER theo Eb/N0¬ với số lần lặp tối đa 15 Hình 2.6 BER theo Eb/N0 với trường hợp khác 15 Hình 2.7 FER theo Eb/N0 với trường hợp khác 16 ii DANH MỤC BẢNG BIỂU Bảng 1.1 Tập hệ số mở rộng iii CHƯƠNG CƠ SỞ LÝ THUYẾT 1.1 Khái niệm LDPC Mã LDPC (Low - density Parity Check) mã kiểm tra chẵn lẻ mật độ thấ , hay gọi mã Gallager, đề xuất Gallager vào năm 1962 Với ưu khả sửa lỗi đạt gần giới hạn Shannon kênh đối xứng nhị phân (BSC) kênh White Noise Gauss (AWGN), mã LDPC thu hút nhiều quan từ cộng đồng nghiên cứu lẫn giới công nghệ ứng dụng cơng nghệ nay, điển là: Wireless, DVB (Digital Video Broadcasting), 5G NR (New Radio) Về bản, mã LDPC loại mã khối tuyến tính sử dụng ma trận kiểm tra chẵn lẻ ma trận thưa (Sparse Parity-check Matrix), tức hầu hết phần tử 0, số Theo định nghĩa Gallager, ma trận kiểm tra chẵn lẻ mã LDPC có đặc điểm hàng chứa i phần tử cột chứa j phần tử Bằng việc sử dụng phương pháp truyền tin tưởng lặp (Iterative Belief Propagation) LDPC giải mã thời gian tuyến tính theo chiều dài khối chúng Mã LDPC sử dụng ngày nhiều ứng dụng yêu cầu truyền thông tin đáng tin cậy hiệu cao qua liên kết giới hạn băng thông giới hạn kênh trả có xuất nhiễu 1.2 Cấu trúc mã LDPC Về bản, mã LDPC loại mã khối tuyến tính mà mã trận kiểm tra chẵn lẻ H(mxn) có trọng số cột g trọng số hàng r cho r = g(n/m) g«m Nếu H có mật độ thấp trọng số cột, hàng số, mã mã LDPC khơng Ví dụ ma trận 6x12 có trọng số cột 3, trọng số hàng 1 0 H = 1 0 1 0 1 0 1 1 0 0 1 1 0 1 1 0 1 0 0 1 0 1 1 0 1 1 1 0 Base graph (base matrix): Là ma trận sở mà phần tử ma trận mở rộng dựa vào hệ số mở rộng Z Nói cách khác, ma trận sở chứa giá trị dịch chuyển Pi j , -1 ≤ Pi j ≤ Z-1, với giá trị dịch chuyển Pi j chuyển đổi thành ma trận đơn vị I có kích thước ZxZ dịch chuyển sang phải Pi j lần phần tử (i, j)th = ma trận sở Ma trận hốn vị tuần hồn nhị phân ký hiệu Q(Pi j ) 0 Q(1) = 0 1 ··· ··· 0 ··· 0 ··· 0 1 Ví dụ ma trận Q(1) dịch chuyển sang phải lần Do đó, Q(-1) để hiển thị ma trận rỗng, tất phần tử Từ đây, ta xác định ma trận kiểm tra chẵn lẻ dựa ma trận sở hệ số dịch chuyển Pi j ma trận sở Các phần tử ma trận sở (có giá trị từ -1 -> Z – 1) thay ma trận hoán vị tuần hoàn nhị phân tương ứng theo phương pháp mở rộng bên Q(P1,1 ) Q(P1,2 ) · · · Q(P1,nb ) Q(P2,1 ) Q(P2,2 ) · · · Q(P2,nb ) H = Q(Pmb ,1 ) Q(Pmb ,2 ) · · · Q(Pmb ,nb ) H ma trận kiểm tra chẵn lẻ cho ma trận có kích thước mb xnb Ta có ma trận sở ma trận H sau: P1,1 P1,2 P2,1 P2,2 E(H) = ··· ··· P1,nb P2,nb Pmb ,1 Pmb ,2 · · · Pmb ,nb Cấu trúc khối ma trận sở có dạng hình Hình 1.1 Cấu trúc ma trận sở • Các cột ma trận sở chia làm phần: Cột thông tin, cột chẵn lẻ cốt lõi (hay đường chéo kép) cột chẵn lẻ mở rộng Các hàng ma trận sở chia làm phần: Hàng kiểm tra cốt lõi hàng kiểm tra mở rộng Như hình trên, ma trận sở gồm ma trận A,B,O,C I Ma trận A tương ứng với bit có tính hệ thống Ma trận B tương ứng với tập hợp bit chẵn lẻ có cấu trúc đường chéo kép Ma trận O ma trận Các ma trận C I dùng để hỗ trợ cho việc nhanh chóng yêu cầu lặp lại tự động, kết hợp gia tăng dự phòng A B coi hạt nhân, O, C I coi phần mở rộng • 3GPP đưa cấu trúc ma trận sở cho việc mã hóa kênh BG1 có ma trận H kích thước 46x68 BG2 có ma trận H kích thước 42x52 • BG1 có độ dài lớn tỷ lệ mã hóa R cao Nếu kích thước khối ≤ 292 ≤ 3824 R ≤ 2/3 R ≤ 1/4 ma trận sở 2, BG2, mã LDPC sử dụng; khơng ma trận sở 1, BG1, mã LDPC sử dụng Hình 1.2 Cách lựa chọn cấu trúc ma trận sở theo 3GPP • Đối với ma trận BG1 BG2 số lượng thiết kế hệ số dịch chuyển Tất kích thước khác chia thành tập dựa tham số a, a sử dụng để xác định hệ số mở rộng Z = a × j Bảng 1.1 Tập hệ số mở rộng Ma trận lũy thừa Tập Tập Tập Tập Tập Tập Tập Tập Tập kích thước nâng Z = x j , j = 0, 1, 2, 3, 4, 5, 6, Z = x j , j = 0, 1, 2, 3, 4, 5, 6, Z = x j , j = 0, 1, 2, 3, 4, 5, Z = x j , j = 0, 1, 2, 3, 4, 5, Z = x j , j = 0, 1, 2, 3, 4, Z = 11 x j , j = 0, 1, 2, 3, 4, Z = 13 x j , j = 0, 1, 2, 3, Z = 15 x j , j = 0, 1, 2, 3, • Giá trị hệ số dịch chuyển Pi j tính cách sử dụng hàm Pi j = f (Vi j , Z), Vi j hệ số dịch chuyển phần tử (i, j) Hàm f định nghĩa sau: Pi, j = f (Vi, j , Z) = −1, Vi, j , Z = -1 mod(Vi, j , Z), khác (1.1) Trong đó, mod toán tử phép module 1.3 Cấu trúc mã LDPC • Thay sử dụng ma trận sinh G với SPC (Single Parity Check), mã LDPC mã hóa sử dụng trực tiếp ma trận chẵn lẻ H • Cho từ mã C = [s, pa , pc ], s biểu thị phần hệ thống, chia thành kb nhóm gồm Z bits mơ hình sở có kb = nb − mb cột bit thông tin Hơn nữa, s = [s1, s2, , skb ] phần tử s vector có độ dài Z Các tin nhận mã hóa lưu trữ ghi xếp theo khối kb , ký hiệu si (i = 1, 2, , kb ), tương ứng với khối hệ thống, khối bao gồm Z bit Giả sử phần chẵn lẻ thông tin p chia thành thành phần sau: g = bit chẵn lẻ ,pa = [pa1 , pa2 , , pag ] phần lại gồm (mb − g) bit kiểm tra pc = [pc1 , pc2 , , pc(mb−g) ] • Cụ thể, từ mã mã hóa biểu diễn sau: C = [s1 , s2 , , skb, pa1 , pa2 , , pag , pc1 , pc2 , , pc(mb−g)] (1.2) • Ma trận chẵn lẻ H LDPC chia thành ma trận con: H= A B C1 C2 I (1.3) Hình 1.6 Tổng quan việc sửa lỗi bit dựa Tanner graph (Soft Decision Decoding) • Từ mã ta ký hiệu X = [x1 , x2 , , xN ], xN ∈ {0, 1} Các giá trị LLR vector nhận tương ứng biểu thị Y = [y1 , y2 , , yN ] • Q trình giải mã sử dụng thuật tốn sum-product thực theo bước liên hình Hình 1.7 Giải thuật giải mã Sum-Product Bước khởi tạo: Các giá trị ban đầu LLR nhận từ đầu giải điều chế yn Các giá trị sử dụng làm qn→m lần lặp bước cập nhập nút kiểm tra Tính tốn nút kiểm tra: Tại nút kiểm tra m, xử lý giá trị đến từ nút biến (bit node) qn→m để tính tốn giá trị trả lời rm→n cho n ∈ N{m} Vì vậy, nút kiểm tra m: r(m→n) = ( ∏ sgn(qn→m ) × 2tanh−1 ( n∈N(m)\n ∏ tanh( n∈N(m)\n |qn→m| )) (1.25) Tính tốn nút kiểm tra: Tại nút biến n, xử lý giá trị đến từ nút kiểm tra rm→n để tính tốn giá trị trả lời qn→m cho m ∈ N{n} Vì vậy, nút biến n: qn→m = yn + ∑ m∈M(n)\m 10 rm→n (xn ) (1.26) Bước định: Đối với nút biến, giá trị LLR cập nhập theo công thức: (1.27) L(xn ) = yn + ∑ rm→n (xn ) m∈M(n) Các giá trị LLR áp dụng cho áp dụng định cứng để định giá trị trả Ví dụ với kênh truyền BPSK ngưỡng để định xem -1 hay Các giá trị LLR lặp lặp lại thỏa mãn điều kiện lặp Điều kiện lặp đạt tiến hành kiểm tra Syndrome HxT thỏa mãn điều kiện lặp tối đa Như trình lặp tiếp tục từ mã giải thành công số lần lặp tối đa hết 11 CHƯƠNG MƠ PHỎNG MATLAB 2.1 2.1.1 Thuật tốn Giải thuật Min-sum Product Để cải thiện tốc độ giải mã ta chỉnh sửa lại thuật toán Sum-Product nhằm giảm độ phức tạp thực giải mã Giải thuật Min-Sum Product có bước phương trình giống với giải thuật Sum-Product Tuy nhiên, có thay đổi phương trình (1.24) Phương trình (1.24) viết lại thành: rm→n = ( ∏ sgn(qn→m ) × |qn→m | (2.28) n∈N(m)\n 2.1.2 Kỹ thuật phân lớp Để cải thiện hiệu giải mã thuật toán sum-product, ta áp dụng kỹ thuật phân lớp Kỹ thuật giúp giải mã ta đạt thông lượng giải mã hiệu cao với độ phức tạp tính tốn thấp Đối với lần lặp, tính tốn nút kiểm tra nút biến lớp Việc giải mã sau diễn Điều có nghĩa ta tập hợp số hàng ma trận kiểm tra chẵn lẻ thành lớp Ma trận H phân lớp sau: H1 H2 H = (2.29) HN−K hàng ma trận H lớp 12 Hình 2.1 Thuật tốn giải mã với kỹ thuật phân lớp Hình minh họa sơ đồ giải mã kỹ thuật phân lớp có lớp: C1 từ mã mã hóa từ H1 C2 từ mã mã hóa từ H2 Việc giải mã C1 sử dụng LLR vịng lặp đầu tiên, sau sử dụng LLR21 sau cập nhập cột 2.2 Mô Mô cho hệ thống truyền thông điều chế BPSK (Binary Phase Shift Keying) với nhiễu Gaussian trắng cộng (Additive White Gaussian Noise – AWGN) theo sơ đồ Hình 2.2 Mơ hình thực việc điều chế, mã hóa, giải mã hóa với LDPC • Ở ta thực mô kênh truyền khơng thực mã hóa LDPC mã hóa LDPC với lần lặp khác • Các hình 14, hình 15 hình 16 kết việc thực mã hóa LDPC với lần 13 lặp • Các hình 17 hình 18 kết so sánh việc không thực mã hóa LDPC mã hóa LDPC với lần lặp khác • Việc mã hóa giải mã hóa thực với ma trận BG1 với hệ số mở rộng Z 16 100 khối bit truyền Code matlab trình bày phần Phụ lục 2.3 Kết Hình 2.3 Kết mơ với số lần lặp tối đa Hình 2.4 BER theo Eb/N0¬ với số lần lặp tối đa 14 Hình 2.5 FER theo Eb/N0¬ với số lần lặp tối đa Hình 2.6 BER theo Eb/N0 với trường hợp khác 15 Hình 2.7 FER theo Eb/N0 với trường hợp khác Từ việc mơ trên, ta đưa số nhận xét cụ thể sau: • BER FER giảm tỷ số Eb/N0 lớn • Việc thực mã hóa LDPC giúp cho tỷ lệ BER FER giảm đáng kể so với việc khơng mã hóa • Số lần lặp lớn BER FER giảm theo chiều tăng Eb/N0 16 THẢO LUẬN Nhóm em xin trả lời số câu hỏi thầy đưa đề tài Tại phải sử dụng ma trận thưa thớt? → Sử dụng ma trận thưa thớt giúp tăng tốc độ xử lý tăng khả lưu trữ nhớ ma trận thưa thớt lưu trữ tọa độ giá trị khác việc tính tốn dựa trên giá trị khác Mục đích việc sử dụng ma trận sở với hệ số mở rộng? → Hệ số mở rộng giúp mở rộng ma trận sở thành ma trận thưa thớt Ma trận sở mở rộng có khơng gian ma trận lớn, để việc lưu trữ dễ hơn, người ta sử dụng ma trận sở hệ số mở rộng PHỤ LỤC Mã code mô Hàm dịch ma trận theo khối vào: function y = mul_sh(x,k) %x: Khoi vao %k: -1 hoac so lan dich %y: Khoi if (k==-1) y = zeros(1,length(x)); else y = [x(k+1:end) x(1:k)]; end 18 Hàm Encoding cho vector message đầu vào: function cword = ldpc_encode(B,z,msg) %B: Ma tran co so %z: He so mo rong %msg: message vector, length = (#cols(B)-#rows(B))*z %cword: codeword vector, length = #cols(B)*z [m,n] = size(B); cword = zeros(1,n*z); cword(1:(n-m)*z) = msg; %Ma hoa duong cheo kep temp = zeros(1,z); for i = 1:4 %row to for j = 1:n-m %message columns temp = mod(temp + mul_sh(msg((j-1)*z+1:j*z),B(i,j)),2); end end if B(2,n-m+1) == -1 p1_sh = B(3,n-m+1); else p1_sh = B(2,n-m+1); end cword((n-m)*z+1:(n-m+1)*z) = mul_sh(temp,z-p1_sh); %p1 %Tim p2, p3, p4 for i = 1:3 temp = zeros(1,z); for j = 1:n-m+i temp = mod(temp + mul_sh(cword((j-1)*z+1:j*z),B(i,j)),2); end cword((n-m+i)*z+1:(n-m+i+1)*z) = temp; end %Cac bit chan le lai for i = 5:m temp = zeros(1,z); for j = 1:n-m+4 temp = mod(temp + mul_sh(cword((j-1)*z+1:j*z),B(i,j)),2); end cword((n-m+i-1)*z+1:(n-m+i)*z) = temp; end 19 Decoding: clear close all format short g MaxItrs = 8; %Basegraphnumber_j_z load base_matrices/NR_1_0_16.txt B = NR_1_0_16; [mb,nb] = size(B); z = 16; Slen = sum(B(:)~=-1); %So luong cac gia tri khac -1 B min_reg = zeros(max(sum(B ~= -1,2)),z); %Thanh ghi luu cac gia tri minsum k = (nb-mb)*z; %So cot bit message B n = nb*z; %So cot bit codeword B Rate = k/n; %Toc dB=[0.5:0.25:3]; FER=zeros(1,length(dB)); BER=zeros(1,length(dB)); % Khoang SNR chay theo dB % Mang luu tru Frame Error Rate % Mang luu tru Bit Error Rate FER_uncoded=zeros(1,length(dB));% Mang luu tru Frame Error Rate khong ma hoa BER_uncoded=zeros(1,length(dB));% Mang luu tru Bit Error Rate khong ma hoa FER_iter_2=zeros(1,length(dB));% Mang luu tru Frame Error Rate voi lan lap BER_iter_2=zeros(1,length(dB));% Mang luu tru Bit Error Rate voi lan lap FER_iter_4=zeros(1,length(dB));% Mang luu tru Frame Error Rate voi lan lap BER_iter_4=zeros(1,length(dB));% Mang luu tru Bit Error Rate voi lan lap EbNo=10.^(dB/10); % Eb/No doi tu dB thap phan Nblocks = 100; % So luong Block Message mo phong disp(' dB FER BER Nblkerrs Nbiterrs Nblocks') for g=1:length(EbNo) % Vong lap de test khoang SNR Nbiterrs = 0; Nblkerrs = 0; Nbiterrs_uncoded = 0; Nblkerrs_uncoded = 0; Nbiterrs_iter_2 = 0; Nblkerrs_iter_2 = 0; Nbiterrs_iter_4 = 0; Nblkerrs_iter_4 = 0; sigma = sqrt(1/(2*Rate*EbNo(g))); for i = 1: Nblocks msg = randi([0 1],1,k); %Tao k-bit message ngau nhien %msg = zeros(1,k); %all-zero message %cword = zeros(1,n); %all-zero codeword %Encoding cword = ldpc_encode(B,z,msg); cword = cword(1:n); s = - * cword; %Ma hoa BPSK r = s + sigma * randn(1,n); %AWGN channel I 20 %Soft-decision, Layer decoding L = r; %Tong cac belief itr = 0; %so lan lap hien tai R = zeros(Slen,z); %Thanh ghi chua du lieu xu ly tren hang % Thuc hien Layer Decoding while itr < MaxItrs Ri = 0; for lyr = 1:mb %lyr la layer, mac dinh la ti = 0; %so luong cac gia tri khac -1 tai row=lyr for col = find(B(lyr,:) ~= -1) ti = ti + 1; Ri = Ri + 1; %Subtraction (Thuc hien phep tru) L((col-1)*z+1:col*z) = L((col-1)*z+1:col*z)-R(Ri,:); %can chinh lai gia tri hang va luu tru min_reg min_reg(ti,:) = mul_sh(L((col-1)*z+1:col*z),B(lyr,col)); end %minsum tai min_reg: ti x z for i1 = 1:z %min_reg(1:ti,i1) [min1,pos] = min(abs(min_reg(1:ti,i1))); %Cuc tieu thu nhat theo gia tri tuyet doi min2 = min(abs(min_reg([1:pos-1 pos+1:ti],i1))); %Cuc tieu thu theo gia tri tuyet doi S = sign(min_reg(1:ti,i1)); %Luu tru dau cua hang parity = prod(S); %Tich cac dau cua hang min_reg(1:ti,i1) = min1; %Thay the gia tri tuyet doi min1 min_reg(pos,i1) = min2; %Thay the cho vi tri cua min1 gia tri tuyet doi min2 min_reg(1:ti,i1) = parity*S.*min_reg(1:ti,i1); %Nhan them dau cua hang end %Thuc hien hinh lai gia tri cot, addition va luu tru R Ri = Ri - ti; %reset Ri ti = 0; for col = find(B(lyr,:) ~= -1) Ri = Ri + 1; ti = ti + 1; %Can chinh gia tri cot R(Ri,:) = mul_sh(min_reg(ti,:),z-B(lyr,col)); %Addition (Thuc hien phep cong) L((col-1)*z+1:col*z) = L((col-1)*z+1:col*z)+R(Ri,:); end end if itr == msg_iter_2 = L(1:k) Nbiterrs_uncoded = Nbiterrs_uncoded + Nerrs_uncoded; Nblkerrs_uncoded = Nblkerrs_uncoded + 1; end if Nerrs_iter_2 > Nbiterrs_iter_2 = Nbiterrs_iter_2 + Nerrs_iter_2; Nblkerrs_iter_2 = Nblkerrs_iter_2 + 1; end if Nerrs_iter_4 > Nbiterrs_iter_4 = Nbiterrs_iter_4 + Nerrs_iter_4; Nblkerrs_iter_4 = Nblkerrs_iter_4 + 1; end end BER(g) = Nbiterrs/k/Nblocks; FER(g) = Nblkerrs/Nblocks; BER_uncoded(g) = Nbiterrs_uncoded/k/Nblocks; FER_uncoded(g) = Nblkerrs_uncoded/Nblocks; BER_iter_2(g) = Nbiterrs_iter_2/k/Nblocks; FER_iter_2(g) = Nblkerrs_iter_2/Nblocks; BER_iter_4(g) = Nbiterrs_iter_4/k/Nblocks; FER_iter_4(g) = Nblkerrs_iter_4/Nblocks; %disp([EbNodB FER_sim BER_sim Nblkerrs Nbiterrs Nblocks]) disp([dB(g) FER(g) BER(g) Nblkerrs Nbiterrs Nblocks]) end subplot(2,2,1) plot(dB,BER,'b-o') legend('BER MaxIter '); title('Bit Error Rate') ylabel('BER') xlabel('Eb/No (dB)') 22 subplot(2,2,2) plot(dB,BER,'b-o') hold on; plot(dB,BER_uncoded,'r o') plot(dB,BER_iter_2,'k:o') plot(dB,BER_iter_4,'m-.o') legend('BER MaxIter ','BER Uncoded','BER iter 2','BER iter 4'); title('Bit Error Rate') ylabel('BER') xlabel('Eb/No (dB)') grid %figure hold off; subplot(2,2,3) plot(dB,FER,'b-o') legend('FER MaxIter '); title('Frame Error Rate') ylabel('FER') xlabel('Eb/No (dB)') subplot(2,2,4) plot(dB,FER,'b-o') hold on; plot(dB,FER_uncoded,'r o') plot(dB,FER_iter_2,'k:o') plot(dB,FER_iter_4,'m-.o') legend('FER MaxIter ','FER Uncoded','FER iter 2','FER iter 4'); title('Frame Error Rate') ylabel('FER') xlabel('Eb/No (dB)') grid 23 ... việc điều chế, mã hóa, giải mã hóa với LDPC • Ở ta thực mô kênh truyền không thực mã hóa LDPC mã hóa LDPC với lần lặp khác • Các hình 14, hình 15 hình 16 kết việc thực mã hóa LDPC với lần 13 lặp... với lần 13 lặp • Các hình 17 hình 18 kết so sánh việc khơng thực mã hóa LDPC mã hóa LDPC với lần lặp khác • Việc mã hóa giải mã hóa thực với ma trận BG1 với hệ số mở rộng Z 16 100 khối bit truyền... thống thông tin di động 4G mã LDPC gần đạt dung lượng Shannon Trong báo cáo này, chúng em mô mã LDPC Matlab kênh truyền nhiễu trắng(AWGN) với phương pháp điều chế BPSK để chứng minh tính hiệu mã cho