1. Trang chủ
  2. » Tất cả

Nghiên cứu về phương pháp mã hóa kênh ldpc cho 5g

73 0 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 73
Dung lượng 1,63 MB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HỒ CHÍ MINH ĐỒ ÁN TỐT NGHIỆP NGHIÊN CỨU VỀ PHƯƠNG PHÁP MÃ HÓA KÊNH LDPC CHO 5G NGÀNH: ĐIỆN TỬ - VIỄN THÔNG GIẢNG VIÊN HƯỚNG DẪN: TS TRẦN DUY CƯỜNG Sinh viên thực hiện: MSSV: Lớp: Quan Lực Vinh 1811041211 18DDTA1 Trần Hiển Minh Long 1811010092 18DDTA1 Thành phố Hồ Chí Minh, ngày 01 tháng 08 năm 2022 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CƠNG NGHỆ TP HỒ CHÍ MINH ĐỒ ÁN TỐT NGHIỆP NGHIÊN CỨU VỀ PHƯƠNG PHÁP MÃ HÓA KÊNH LDPC CHO 5G NGÀNH: ĐIỆN TỬ - VIỄN THÔNG GIẢNG VIÊN HƯỚNG DẪN: TS TRẦN DUY CƯỜNG Sinh viên thực hiện: MSSV: Lớp: Quan Lực Vinh 1811041211 18DDTA1 Trần Hiển Minh Long 1811010092 18DDTA1 Thành phố Hồ Chí Minh, ngày 01 tháng 08 năm 2022 VIỆN KỸ THUẬT HUTECH MÃ ĐỀ TÀI: 09 PHIẾU ĐĂNG KÝ ĐỀ TÀI ĐỒ ÁN/KHÓA LUẬN TỐT NGHIỆP Hệ: ………CQ……… (CQ, LT, B2, VLVH) Họ tên sinh viên/ nhóm sinh viên đăng ký đề tài (sĩ số nhóm: …2…): (1) Quan Lực Vinh MSSV: 1811041211 … Lớp: 18DDTA1 Điện thoại: 0789149145 Email: quanlucvinh333@gmail.com Ngành: Điện tử - viễn thông Chuyên ngành : Viễn thông (2) Trần Hiển Minh Long MSSV: 1811010092…… Lớp: 1811041211 Điện thoại: 0987150441 Email: minhlong2238@gmail.com Ngành : Điện tử - viễn thông Chuyên ngành : Viễn thông Tên đề tài đăng ký : Nghiên cứu phương pháp mã hóa kênh LPCD cho 5G Sinh viên hiểu rõ yêu cầu đề tài cam kết thực đề tài theo tiến độ hoàn thành thời hạn Giảng viên hướng dẫn TP HCM, ngày 01 tháng 08 năm 2022 (Ký ghi rõ họ tên) Sinh viên đăng ký (Ký ghi rõ họ tên) MÃ ĐỀ TÀI: 09 Viện kỹ thuật Hutech PHIẾU GIAO NHIỆM VỤ THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP (Mỗi sinh viên phiếu, GVHD ghi rõ tên đề tài nhiệm vụ sinh viên GVHD chuyển cho SV để nộp VP Viện.) Sinh viên thực đề tài Họ tên : Trần Hiển Minh Long MSSV: 1811010092 Lớp: 18DDTA1 Điện thoại : 0987150441 .Email: minhlong2238@gmail.com Ngành : Điện tử - viễn thông Tên đề tài: Nghiên Cứu Về Phương Pháp Mã Hoá Kênh LDPC Cho 5G Nhiệm vụ thực đề tài: - Tổng quan phương pháp mã hóa kênh (mã vịng, mã chập vịng, mã turbo, mã LDPC) - Tìm hiểu phương pháp mã hóa kênh giải mã kênh LDPC theo định cứng (Hard Decision) - Viết giải thuật xây dựng mơ hình mô - Đo BER (Bit Error Rate) theo SNR (Signal to Noise Ratio) - Viết đồ án tốt nghiệp theo chuẩn Viện Kỹ thuật Hutech Sinh viên thực TP HCM, ngày tháng năm 2022 (Ký ghi rõ họ tên) Giảng viên hướng dẫn (Ký ghi rõ họ tên) Viện kỹ thuật Hutech PHIẾU GIAO NHIỆM VỤ THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP (Mỗi sinh viên phiếu, GVHD ghi rõ tên đề tài nhiệm vụ sinh viên GVHD chuyển cho SV để nộp VP Viện.) Sinh viên thực đề tài Họ tên : Quan Lực Vinh MSSV: 1811041211 Lớp: 18DDTA1 Điện thoại : 0789149145 .Email: quanlucvinh333@gmail.com Ngành : Điện tử - viễn thông Tên đề tài: Nghiên Cứu Về Phương Pháp Mã Hoá Kênh LDPC Cho 5G Nhiệm vụ thực đề tài: - Tổng quan phương pháp mã hóa kênh (mã vịng, mã chập vịng, mã turbo, mã LDPC) - Tìm hiểu phương pháp mã hóa kênh giải mã kênh LDPC theo định mềm (Soft Decision) - Viết giải thuật xây dựng mơ hình mơ - Đo BER (Bit Error Rate) theo SNR (Signal to Noise Ratio) - Viết đồ án tốt nghiệp theo chuẩn Viện Kỹ thuật Hutech Sinh viên thực TP HCM, ngày tháng năm 2022 (Ký ghi rõ họ tên) Giảng viên hướng dẫn (Ký ghi rõ họ tên) LỜI CAM ĐOAN Tơi cam đoan cơng trình nghiên cứu hướng dẫn Ths Trần Duy Cường Các nội dung nghiên cứu, kết đề tài trung thực chưa cơng bố hình thức trước Những số liệu bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá tác giả thu thập từ nguồn khác có ghi rõ phần tài liệu tham khảo Ngoài đồ án cịn sử dụng số trích dẫn, nhận xét, đánh số liệu tác giả khác, quan tổ chức khác có trích dẫn thích nguồn gốc Nếu phát có sư gian lận chúng tơi xin hoàn toàn chịu trách nhiệm nội dung đồ án Trường Đại học Cơng nghệ TP HCM khơng liên quan đến vi phạm tác quyền, quyền chúng tơi gây q trình thực (nếu có) Tp Hồ Chí Minh, ngày 01 tháng 08 năm 2022 (ký tên ghi rõ họ tên) i LỜI CẢM ƠN Trước tiên chúng em xin gửi lời cảm ơn chân thành sâu sắc tới thầy cô giáo trường Đại học Cơng Nghệ TP.HCM nói chung thầy giáo Viện Kỹ thuật nói riêng tận tình giảng dạy, truyền đạt cho em kiến thức, kinh nghiệm quý báu suốt thời gian qua Đặc biệt chúng em xin gửi lời cảm ơn đến thầy Trần Duy Cường, thầy tận tình giúp đỡ, trực tiếp bảo, hướng dẫn chúng em suốt trình làm đồ án tốt nghiệp Trong thời gian làm việc với thầy, chúng em không ngừng tiếp thu thêm nhiều kiến thức mới, bổ ích mà học tập tinh thần làm việc, thái độ nghiên cứu khoa học nghiêm túc, hiệu Đây điều cần thiết cho chúng em trình học tập làm việc sau Nhóm tác giả xin trân trọng cảm ơn! ii TÓM TẮT Trong năm gần đây, với phát triển công nghệ mạng truyền thông, mạng di dộng ngày phát triển mạnh mẽ để đáp ứng nhu cầu người sử dụng ứng dụng mạng không dây nhu cầu băng thông cao truy cập internet nhu cầu chất lượng dịch vụ cung cấp ngày tốt tốc độ truy cập Web, tải xuống tài nguyên mạng nhanh Đồng thời kéo theo phát triển mã LDPC giúp ta kiểm soát sửa lỗi ngày tốt Tại thời điểm đời mã LDPC, lực tính tốn máy tính cịn hạn chế nên khai thác tiềm đáng kinh ngạc mã hóa Mãi tận ngày này, đặc tính vượt trội mã LDPC chứng minh Mackay Neal hai người coi phát minh mã LDPC lần nhờ sử dụng giải thuật giải mã đựa giải thuật tổng tích (Sum – product algorithm) Qua báo cáo này, nhóm tìm hiểu mã hóa giải mã LDPC phương pháp định cứng định mềm Nhóm mơ ma trận H dạng Protogragh, ma trận G kết GHT = 0, Tanner Graph ma trận H kết BER theo Eb/N0 Đồng thời đánh giá tỉ số BER khác biệt phương pháp định cứng định mềm Qua đánh giá đuợc khả sửa lỗi định cứng định mềm để rút nhận xét phương pháp tốt iii ABSTRACT In recent years, with the development of network and communication technology, the mobile network has grown more and more strongly to meet the needs of people when using wireless network applications and high bandwidth needs When accessing the internet, the demand for better quality of service is better and faster for accessing the Web and downloading network resources At the same time, the development of LDPC code helps us to control and correct errors better and better At the time of the LDPC code's birth, the computing power of computers was so limited that it was not possible to exploit the amazing potential of this encoder Until this day, the outstanding feature of LDPC codes was demonstrated by Mackay and Neal as two people who are considered to have invented LDPC codes again by using a decoding algorithm based on the Sum – product algorithm Through this report, the team has studied LDPC encoding and decoding by hard decision and soft decision methods The team also simulated the matrix H in the form of Protogragh, matrix G and the result GHT = 0, Tanner Graph of the matrix H and the BER result according to Eb/N0 At the same time, it also evaluates the BER ratio difference between the hard decision method and the soft decision method Thereby also evaluate the ability to correct errors between hard decisions and soft decisions to draw comments on which method is better iv MỤC LỤC TIÊU ĐỀ TRANG LỜI CAM ĐOAN i LỜI CẢM ƠN ii TÓM TẮT iii ABSTRACT iv MỤC LỤC v DANH MỤC CÁC TỪ VIẾT TẮT viii DANH MỤC CÁC HÌNH ix DANH MỤC CÁC BẢNG x LỜI MỞ ĐẦU xi CHƯƠNG TỔNG QUAN VỀ MẠNG 5G VÀ MÃ LDPC 1.1 Tổng quan mạng di động: 1.1.1 Sự phát triển mạng di động: Hình 1.1: Sự phát triển mạng di động qua thời kỳ .1 1.1.2 Mạng 4G gì? 1.1.3 Mã turbo: 1.2 Tổng quan mạng 5G: 1.2.1 Mạng 5G gì? 1.3 Tổng quan LDPC: .3 1.3.1 Mã LDPC gì? .3 1.3.2 Phân loại mã LDPC: 1.3.3 Vì sử dụng mã LDPC? CHƯƠNG GIỚI THIỆU VỀ MÃ HÓA KÊNH 2.1 Giới thiệu mã hóa kênh: Hình 2.1: Sơ đồ tổng quan truyền tin 2.2 Giới thiệu mã vòng: .5 v H(:, chosenCol) = tmp2; % Fill the LU matrices column by column L(i:end, i) = F(i:end, i); U(1:i, i) = F(1:i, i); % There will be no rows operation at the last row if i < M % Find the later rows with non-zero elements in column i [r2, c2] = find(F((i + 1):end, i)); % Add current row to the later rows which have a in column i F((i + r2), :) = mod(F((i + r2), :) + repmat(F(i, :), length(r2), 1), 2); end % if end % for i % Find B.dsource z = mod(H(:, (N - M) + 1:end)*dSource, 2); % Parity check vector found by solving sparse LU c = mod(U\(L\z), 2); % Return the rearrange H newH = H; fprintf('Message encoded.\n'); 43 % Bit error rate of BPSK modulated LDPC codes under AWGN channel % % % Copyright Bagawan S Nugroho, 2007 % http://bsnugroho.googlepages.com clc; clear all; % LDPC matrix size, rate must be 1/2 % Warning: encoding - decoding can be very long for large LDPC matrix! M = 1000; N = 2000; % Method for creating LDPC matrix (0 = Evencol; = Evenboth) method = 1; % Eliminate length-4 cycle noCycle = 1; % Number of 1s per column for LDPC matrix onePerCol = 3; % LDPC matrix reorder strategy (0 = First; = Mincol; = Minprod) strategy = 2; % EbN0 in dB EbN0 = [0 0.5 1.5]; % Number of iteration; iter = 5; 44 % Number of frame (N bits per frame) frame = 10; % Make the LDPC matrix H = makeLdpc(M, N, 1, 1, onePerCol); for i = 1:length(EbN0) ber1(i) = 0; ber2(i) = 0; % Make random data (0/1) dSource = round(rand(M, frame)); for j = 1:frame fprintf('Frame : %d\n', j); % Encoding message [c, newH] = makeParityChk(dSource(:, j), H, strategy); u = [c; dSource(:, j)]; % BPSK modulation bpskMod = 2*u - 1; % Additional white gaussian noise N0 = 1/(exp(EbN0(i)*log(10)/10)); tx = bpskMod + sqrt(N0/2)*randn(size(bpskMod)); % Decoding (select decoding method) %vhat = decodeProbDomain(tx, H, newN0, iter); vhat1 = decodeLogDomain(tx, newH, N0, iter); 45 vhat2 = decodeLogDomainSimple(tx, newH, iter); %vhat = decodeBitFlip(tx, newH, ter); % Get bit error rate (for brevity, BER calculation includes parity bits) [num1, rat1] = biterr(vhat1', u); ber1(i) = (ber1(i) + rat1); [num2, rat2] = biterr(vhat2', u); ber2(i) = (ber2(i) + rat2); end % for j % Get average of BER ber1(i) = ber1(i)/frame; ber2(i) = ber2(i)/frame; end % for i % Plot the result semilogy(EbN0, ber1, 'o-'); hold; semilogy(EbN0, ber2, 'o '); grid on; hold off; function vHat = decodeLogDomainSimple(rx, H, iteration) % Simplified log-domain sum product algorithm LDPC decoder % % rx : Received signal vector (column vector) % H : LDPC matrix 46 % iteration : Number of iteration % % vHat : Decoded vector (0/1) % % % Copyright Bagawan S Nugroho, 2007 % http://bsnugroho.googlepages.com [M N] = size(H); % Prior log-likelihood (simplified) Minus sign is used for 0/1 to -1/1 mapping Lci = -rx'; % Initialization Lrji = zeros(M, N); Pibetaij = zeros(M, N); % Asscociate the L(ci) matrix with non-zero elements of H Lqij = H.*repmat(Lci, M, 1); for n = 1:iteration fprintf('Iteration : %d\n', n); % Get the sign and magnitude of L(qij) alphaij = sign(Lqij); betaij = abs(Lqij); % - Horizontal step for i = 1:M 47 % Find non-zeros in the column c1 = find(H(i, :)); % Get the minimum of betaij for k = 1:length(c1) % Minimum of betaij\c1(k) minOfbetaij = realmax; for l = 1:length(c1) if l ~= k if betaij(i, c1(l)) < minOfbetaij minOfbetaij = betaij(i, c1(l)); end end end % for l % Multiplication alphaij\c1(k) (use '*' since alphaij are -1/1s) prodOfalphaij = prod(alphaij(i, c1))*alphaij(i, c1(k)); % Update L(rji) Lrji(i, c1(k)) = prodOfalphaij*minOfbetaij; end % for k end % for i % Vertical step -for j = 1:N % Find non-zero in the row r1 = find(H(:, j)); 48 for k = 1:length(r1) % Update L(qij) by summation of L(rij)\r1(k) Lqij(r1(k), j) = Lci(j) + sum(Lrji(r1, j)) - Lrji(r1(k), j); end % for k % Get L(Qij) LQi = Lci(j) + sum(Lrji(r1, j)); % Decode L(Qi) if LQi < vHat(j) = 1; else vHat(j) = 0; end end % for j end % for n function vHat = decodeProbDomain(rx, H, N0, iteration) % Probability-domain sum product algorithm LDPC decoder % % rx : Received signal vector (column vector) % H : LDPC matrix % N0 : Noise variance % iteration : Number of iteration % % vHat : Decoded vector (0/1) % 49 % % Copyright Bagawan S Nugroho, 2007 % http://bsnugroho.googlepages.com [M N] = size(H); % Prior probabilities P1 = ones(size(rx))./(1 + exp(-2*rx./(N0/2))); P0 = - P1; % Initialization K0 = zeros(M, N); K1 = zeros(M, N); rji0 = zeros(M, N); rji1 = zeros(M, N); qij0 = H.*repmat(P0', M, 1); qij1 = H.*repmat(P1', M, 1); % Iteration for n = 1:iteration fprintf('Iteration : %d\n', n); % - Horizontal step for i = 1:M % Find non-zeros in the column c1 = find(H(i, :)); for k = 1:length(c1) 50 % Get column products of drji\c1(l) drji = 1; for l = 1:length(c1) if l~= k drji = drji*(qij0(i, c1(l)) - qij1(i, c1(l))); end end % for l rji0(i, c1(k)) = (1 + drji)/2; rji1(i, c1(k)) = (1 - drji)/2; end % for k end % for i % Vertical step -for j = 1:N % Find non-zeros in the row r1 = find(H(:, j)); for k = 1:length(r1) % Get row products of prodOfrij\ri(l) prodOfrij0 = 1; prodOfrij1 = 1; for l = 1:length(r1) if l~= k prodOfrij0 = prodOfrij0*rji0(r1(l), j); prodOfrij1 = prodOfrij1*rji1(r1(l), j); end 51 end % for l % Update constants K0(r1(k), j) = P0(j)*prodOfrij0; K1(r1(k), j) = P1(j)*prodOfrij1; % Update qij0 and qij1 qij0(r1(k), j) = K0(r1(k), j)./(K0(r1(k), j) + K1(r1(k), j)); qij1(r1(k), j) = K1(r1(k), j)./(K0(r1(k), j) + K1(r1(k), j)); end % for k % Update constants Ki0 = P0(j)*prod(rji0(r1, j)); Ki1 = P1(j)*prod(rji1(r1, j)); % Get Qj Qi0 = Ki0/(Ki0 + Ki1); Qi1 = Ki1/(Ki0 + Ki1); % Decode Qj if Qi1 > Qi0 vHat(j) = 1; else vHat(j) = 0; end end % for j end % for n 52 function H = makeLdpc(M, N, method, noCycle, onePerCol) % Create R = 1/2 low density parity check matrix % % M : Number of row % N : Number of column % method : Method for distributing non-zero element % {0} Evencol : For each column, place 1s uniformly at random % {1} Evenboth: For each column and row, place 1s uniformly at random % noCyle : Length-4 cycle % {0} Ignore (do nothing) % {1} Eliminate % onePerCol: Number of ones per column % % H : Low density parity check matrix % % % Copyright Bagawan S Nugroho, 2007 % http://bsnugroho.googlepages.com % Number of ones per row (N/M ratio must be 2) if N/M ~= fprintf('Code rate must be 1/2\n'); end onePerRow = (N/M)*onePerCol; fprintf('Creating LDPC matrix \n'); switch method 53 % Evencol case {0} % Distribute 1s uniformly at random within column for i = 1:N onesInCol(:, i) = randperm(M)'; end % Create non zero elements (1s) index r = reshape(onesInCol(1:onePerCol, :), N*onePerCol, 1); tmp = repmat([1:N], onePerCol, 1); c = reshape(tmp, N*onePerCol, 1); % Create sparse matrix H H = full(sparse(r, c, 1, M, N)); % Evenboth case {1} % Distribute 1s uniformly at random within column for i = 1:N onesInCol(:, i) = randperm(M)'; end % Create non zero elements (1s) index r = reshape(onesInCol(1:onePerCol, :), N*onePerCol, 1); tmp = repmat([1:N], onePerCol, 1); c = reshape(tmp, N*onePerCol, 1); % Make the number of 1s between rows as uniform as possible % Order row index [r, ix] = sort(r); 54 % Order column index based on row index for i = 1:N*onePerCol cSort(i, :) = c(ix(i)); end % Create new row index with uniform weight tmp = repmat([1:M], onePerRow, 1); r = reshape(tmp, N*onePerCol, 1); % Create sparse matrix H % Remove any duplicate non zero elements index using logical AND S = and(sparse(r, cSort, 1, M, N), ones(M, N)); H = full(S); end % switch % Check rows that have no or only have one for i = 1:M n = randperm(N); % Add two 1s if row has no if length(find(r == i)) == H(i, n(1)) = 1; H(i, n(2)) = 1; % Add one if row has only one elseif length(find(r == i)) == H(i, n(1)) = 1; end end % for i 55 % If desired, eliminate any length-4 cycle if noCycle == for i = 1:M % Look for pair of row - column for j = (i + 1):M w = and(H(i, :), H(j, :)); c1 = find(w); lc = length(c1); if lc > % If found, flip one to in the row with less number of 1s if length(find(H(i, :))) < length(find(H(j, :))) % Repeat the process until only one column left for cc = 1:lc - H(j, c1(cc)) = 0; end else for cc = 1:lc - H(i, c1(cc)) = 0; end end % if end % if end % for j end % for i end % if fprintf('LDPC matrix is created.\n'); 56 57 ... tài: Nghiên Cứu Về Phương Pháp Mã Hoá Kênh LDPC Cho 5G Nhiệm vụ thực đề tài: - Tổng quan phương pháp mã hóa kênh (mã vòng, mã chập vòng, mã turbo, mã LDPC) - Tìm hiểu phương pháp mã hóa kênh. .. tài: Nghiên Cứu Về Phương Pháp Mã Hoá Kênh LDPC Cho 5G Nhiệm vụ thực đề tài: - Tổng quan phương pháp mã hóa kênh (mã vịng, mã chập vịng, mã turbo, mã LDPC) - Tìm hiểu phương pháp mã hóa kênh. .. CHƯƠNG GIỚI THIỆU VỀ MÃ HÓA KÊNH 2.1 Giới thiệu mã hóa kênh: Mục đích lý thuyết Mã hóa kênh truyền (channel encoding theory) tìm mã truyền thơng nhanh chóng, chứa đựng nhiều mã ký (code word)

Ngày đăng: 22/02/2023, 22:52

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w