BÁO cáo THÍ NGHIỆM môn học THÔNG TIN số

24 6 0
BÁO cáo THÍ NGHIỆM môn học THÔNG TIN số

Đ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

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ - VIỄN THƠNG  BÁO CÁO THÍ NGHIỆM MÔN HỌC: THÔNG TIN SỐ Mã học phần : ET3250 Sinh viên : Đầu Xuân Thái Sơn MSSV : 20182755 Lớp : Điện tử 02 – K63 Nhóm thí nghiệm : T01 Hà Nội, 2021 BÀI MÔ PHỎNG NHIỄU GAUSS 1.1 - Code >> Px=1/(sqrt(2*pi))*exp(-x.^2/2); >> plot(x,Px); >> title('Ham phan bo xac xuat Gauss'); >> xlabel('x'); >> ylabel('Px'); - Kết quả: - 1.2 - Trả lời câu hỏi: Mơ tả hình dáng đồ thị hàm P(x) (là hình gì)? Giải thích?  Là đường cong chng  Vì đồ thị có dạng chng phương trình Px đối xứng qua trục tung Ý nghĩ ứng dụng hàm phân phối xác suất Gauss thông tin số?  Mô tả xác suất xảy trường hợp nhằm gúp nhận biết khả hay xảy  Ứng dụng: Dự báo thời tiết, số tự nhiên người, biến động gái trị cổ phiếu hay mức thu nhập người lao động Nếu thay đổi kì vọng µ phương sai σ P(x) thay đổi (cụ thể đồ thị thay đổi nào)? Giải thích?  Nếu thay đổi kì vọng μ đồ thị dịch chuyển sang trái sang phải  Nếu thay đổi phương sai σ biên độ độ thị giảm σ lần hình dáng đồ thị dãn σ lần Code: len = 100000; x = randn(1,len); step = 1; k = -5:step:5; px = hist(x,k)/len/step; stem(k,px); Px_lythuyet = exp(-k.^2/2)/sqrt(2*pi); hold on; plot(k,Px_lythuyet); title(' Phan bo xac suat Gauss '); xlabel('x'); ylabel('P(x)'); legend('Ly thuyet','Mo phong'); hold off; - Kết quả: - Trả lời câu hỏi: Nêu nhận xét kết hàm mô lý thuyết?  Kết hai hàm mô lý thuyết gần giống Thay đổi độ dài trình nhẫu nhiên tập 1.2 lên 1.000.000 phần tử So sánh kết với kết cũ? Giải thích?  Đồ thị hiển thị điểm dày hơn, lấy nhiều điểm Vì số phần tử tang từ 100.000 lên 1.000.000 tức gấp 10 lần Câu lệnh “px = hist(x,k)/len/step;”? Tại phải chia cho len step?  Vì hàm Hist tính số vecto khoảng cho veto k Cho nên chia cho step để biết tổng số vecto khoảng xét, chia cho len để biết số vecto mẫu BÀI KỸ THUẬT LƯỢNG TỬ HĨA TUYẾN TÍNH 2.1 - Code: xs = rand(1,5)*2-1; [xi,xq] = lquan(xs,-1,1,3) - Kết quả: xs = [0.6294 0.8116 -0.7460 0.8268 0.2647] xi = [6 7 5] xq = [0.6250 0.8750 -0.6250 0.8750 0.3750] - Trả lời câu hỏi: Dòng lệnh sử dụng: [xi,xq] = lquan(xs,-1,1,3) xs = [0.6294 0.8116 -0.7460 0.8268 0.2647] xi = [6 7 5] xq = [0.6250 0.8750 -0.6250 0.8750 0.3750] Dòng bit truyền 15bit = 110111001111101 2.2 - Code: t=0:.01:20; xt= sin(randn()+t).*cos(rand()*t); [inx xqt]=lquan(xt,-1,1,randi(3)+1); plot(t,xt,'b',t,xqt,'r'); grid on; title(' Luong tu hoa tuyen tinh '); xlabel ('t'); ylabel ('y'); legend('xt','xqt'); - Kết quả: Luong tu hoa tuyen tinh xt xqt 0.8 0.6 0.4 y 0.2 -0.2 -0.4 -0.6 -0.8 -1 10 12 14 16 18 20 t - Trả lời câu hỏi: Số bit dung để lượng tử hóa chó mẫu tín hiệu n bit Bước lượng tử q = (1 - (-1)) / = 0.25 Liệt kê mức biên độ mức lượng tử là: 1; -0.875; 0.625; -0.125; 0.125; -0.375; 0.625; -0.875 BÀI TẠP ÂM LƯỢNG TỬ TRONG KỸ THUẬT LƯỢNG TỬ HĨA TUYẾN TÍNH - Code N = 1000; x_uni = 2*rand(1,N)-1; % x_uni phan bo deu tu -1 den x_sin = sin(linspace(1,5,N)); % tin hieu sin nbit = 1:10; % so bit luong tu tu den 10 SNqR_uni = zeros(size(nbit)); % Khoi tao mang SNqR_uni va SNqR_sin chua SNqR_sin = zeros(size(nbit)); % SNqR cua tin hieu phan bo deu va tin hieu sin SNqR_lt = 6.02*nbit; % Mang chua SNqR tinh theo ly thuyet Ps_uni = sum(x_uni.^2)/N; % Cong suat tin hieu x theo (3-3) Ps_sin = sum(x_sin.^2)/N; for i = 1:size(nbit,2) % size(n,2) tra ve so cot cua n [indx_uni xq_uni] = lquan(x_uni,-1,1,nbit(i)); % Luong tu hoa tin hieu x_uni [indx_sin xq_sin] = lquan(x_sin,-1,1,nbit(i)); % Luong tu hoa tin hieu x_sin eq_uni = x_uni - xq_uni; % tinh sai so luong tu hoa x_uni eq_sin = x_sin - xq_sin; % tinh sai so luong tu hoa x_sin Pq_uni = sum(eq_uni.^2)/N; % tinh cong suat tap am luong tu x_uni Pq_sin = sum(eq_sin.^2)/N; % tinh cong suat tap am luong tu x_sin SNqR_uni(i) = 10*log10(Ps_uni/Pq_uni); % tinh SNR_db cua x_uni SNqR_sin(i) = 10*log10(Ps_sin/Pq_sin); % tinh SNR_db cua x_sin end plot(nbit,SNqR_uni,'b-'); % ve thi SNR tin hieu phan bo deu mo phong hold on; plot(nbit,SNqR_sin,'r '); % ve thi SNR tin hieu sin mo phong plot(nbit,SNqR_lt,'m-.'); % Ve thi SNR tin hieu phan bo deu ly thuyet title('Do thi SN_qR theo nbit'); xlabel('nbit'); ylabel('SN_qR'); legend('Phan bo deu','Hinh sin','Ly thuyet'); grid on; hold off; - Kết SNqR_lt = [6.0200 12.0400 18.0600 24.0800 30.1000 36.1200 42.1400 48.1600 54.1800 60.2000] SNqR_uni = [6.1217 12.0590 18.0125 23.9371 29.9149 36.2382 42.0380 48.2333 54.1255 59.9320] SNqR_sin = [6.4171 12.8834 19.3981 25.6702 32.0389 38.1620 44.3266 50.4033 56.4544 62.5722] - Trả lời câu hỏi: Khi n tăng lên giá trị SNqR thay đổi nào? Tại sao?  Giá trị SNqR tăng thêm 6.02 lần theo cơng thức SNqR = 6.02n Giải thích SNqR phụ thuộc vào n, không phụ thuộc vào kích thước bước lượng tử dải biên độ lưỡng tử?  Theo cơng thức tính SNqR = 6.02n\ Khi thay tín hiệu x tín hiệu điều hịa giá trị SNqR thay đổi so với tín hiệu x phân bố nào?  SNqR tín hiệu điều hịa có giá trị lớn SNqR tín hiệu phân bố khơng BÀI MẬT ĐỘ PHỔ NĂNG LƯỢNG VÀ HÀM TỰ TƯƠNG QUAN CỦA TÍN HIỆU 4.1 - Code L=500; x=randn(1,L); acorr_x = xcorr(x); % Ham tu tuong quan cua x n=-(L-1):1:(L-1); plot(n,acorr_x); title('Ham tu tuong quan'); xlabel('n'); ylabel('acorr_x'); hold on; % Tin hieu co bien tang dan x=linspace(-1,1,L); acorr_x=xcorr(x); n=-(L-1):1:(L-1); plot(n,acorr_x,'k '); hold on; % Tin hieu since x=sin(linspace(-10,10,L)); acorr_x=xcorr(x); n=-(L-1):1:(L-1); plot(n,acorr_x,'r.'); hold on; - Kết quả: Ham tu tuong quan 600 500 400 acorr x 300 200 100 -100 -200 -500 -400 -300 -200 -100 100 200 300 400 500 n - Câu hỏi: Đồ thị hàm tự tương quan trường hợp tổng quát ln có đặc điểm đặc biệt? Tại sao?  Đồ thị đối xứng qua trục tung đạt giá trị cực đại gốc tọa độ xa gốc tọa độ giá trị giảm tín hiệu thực hiện, tín hiệu TTQ hàm chắn phụ thuộc vào hàm e-x nên đạt MAX Giá trị cực đại hàm tự tương quan nằm đâu? Tại sao?  Giá trị cực đại hàm tự tương quan nằm gốc tọa độ tính chất hàm tự tương quan So sánh hàm tự tương quan trường hợp tín hiệu khác yêu cầu thí nghiệm trên? Giải thích?  Các hàm tự tương quan trường hợp có giá trị đồ thị khác nhiên có điểm chung cực đại gốc đồ thị đối xứng qua trục tung dạng tín hiệu khác nên hàm tự tương quan khác 4.2 - Câu hỏi: L=500; % tin hieu x ngau nhien dai L=50 mau N=200; % So luong tan so roi rac x=randn(1,L); w=linspace(0,2*pi,N); fx=freqz(x,1,w); esd_x=fx.*conj(fx); acorr_x=xcorr(x); subplot(2,1,1); semilogy(w/pi,esd_x); title('Mat nang luong'); xlabel('n'); ylabel('S(ejw)'); hold on; ft_acorr_x=freqz(acorr_x,1,w).*exp(j*w*(L-1)); subplot(2,1,2); semilogy(w/pi,real(ft_acorr_x),'r'); xlabel('n'); ylabel('Rxx(ejw)'); - Kết quả: Mat nang luong S(ejw) 105 100 10-5 0.2 0.4 0.6 0.8 1.2 1.4 1.6 1.8 1.2 1.4 1.6 1.8 n Rxx(ejw) 105 100 10-5 0.2 0.4 0.6 0.8 n - Câu hỏi: Phổ biên độ rời rạc tín hiệu có đặc điểm gì? Giải thích?  Đối xứng qua trục có n=1 theo cơng thức FT DFT Phụ thuộc vào hàm e x (L−1) => L-1=0 => đối xứng qua n=1 So sánh đồ thị phổ biên độ esd_x ft_acorr_x  Phổ biên độ giống Giải thích vẽ đồ thị với cách trục hoành w/pi cách trục hồnh k*2/N?  Vì cách dùng biến đổi FT, cách dùng biến đổi DFT Phải chọn N tối thiểu để kết mơ xác? Tại sao?  Chọn N tối thiểu 104 N > 21 N ⋮ Ý nghĩa ứng dụng định lý Weiner-Khintchine thông tin số?  Phổ hàm mật độ phổ lượng tín hiệu thể phân bố lượng tín hiệu BÀI MÃ ĐƯỜNG DÂY NRZ - Code: len = 100000; % Do dai dong bit mo phong SNR_db = 0:2:8; % Tao vector SNR_db = SNR = 10.^(SNR_db/10); % Doi SNR tu Decibel sang lan bsignal = randi([0 1],1,len); % Dong bit ngau nhiên dai len NRZ_signal = bsignal*2-1; % Bien doi dòng bit sang -1 N0 = 1./SNR; % Cong suat tap am for i=1:length(SNR_db) noise = sqrt(N0(i))*randn(1,len); % Tao tap am noise voi ti so SNR(i) r_signal = NRZ_signal + noise; % Tin hieu thu duoc = NRZ + noise NRZ_decoded = sign(r_signal); % Giai ma tin hieu NRZ thu duoc [n,BER(i)] = symerr(NRZ_decoded,NRZ_signal); % Tinh xac suat loi end plot(SNR_db,BER,'bo '); % Ve thi title('Ty le bit loi'); xlabel('SNR_d_B'); ylabel('BER'); - Kết quả: - Code: 5.2 len = 100000; % Do dai dong bit mo phong SNR_db = 0:2:8; % Tao vector SNR_db = SNR = 10.^(SNR_db/10); % Doi SNR tu Decibel sang lan bsignal = randi([0 1],1,len); % Dong bit ngau nhiên dai len NRZ_signal = bsignal*2-1; % Bien doi dòng bit sang -1 N0 = 1./SNR; % Cong suat tap am for i=1:length(SNR_db) noise = sqrt(N0(i))*randn(1,len); % Tao tap am noise voi ti so SNR(i) r_signal = NRZ_signal + noise; % Tin hieu thu duoc = NRZ + noise NRZ_decoded = sign(r_signal); % Giai ma tin hieu NRZ thu duoc [n,BER(i)] = symerr(NRZ_decoded,NRZ_signal); % Tinh xac suat loi end plot(SNR_db,BER,'bo '); % Ve thi BER Pe = 1/2*(1-erf(sqrt(SNR)/sqrt(2))); % Xac suat loi theo ly thuyet hold on; plot(SNR_db,Pe,'r* '); % Ve thi Pe title('Do thi ty le bit loi theo ly thuyet va mo phong'); xlabel('SNR_d_B'); ylabel('BER'); legend('Mo phong','Ly thuyet'); - Kết quả: - Câu hỏi: Giải thích phải sử dụng mã đường dây? Mã đường dây sử dụng trường hợp nào?  Mã đường dây có tác dụng chuyển phổ tín hiệu  Hỗ trợ q trình đồng đồng hồ có khả kiểm soát lỗi Khi tỷ số SNR tang thig xác suất lỗi thay đổi nào? Giải thích? So sánh với kết đồ thị?  Giảm đại lương tỷ lệ nghịch Nếu giải mã tín hiệu NRZ lệnh “NRZ-decoded = sign (r_signal)” hướng dẫn có số trường hợp khơng xác, trường hợp nào? Tại sao?  Đó trường hợp khơng mang dấu có loại tín hiệu NRZ đơn cực NRZ lưỡng cực Nhận xét kết mô phỏng, so sánh giá trị BER tính mơ xác suất lỗi Pe tính theo lý thuyết Từ rút kết luận gì? BÀI KỸ THUẬT ĐIỀU CHẾ SỐ QPSK - Code: len = 50000; % Do dai dong bit mo phong SNR_db = 0; % SNR co don vi Decibel SNR = 10^(SNR_db/10); % Doi SNR tu Decibel sang lan bsignal = randi([0 1],1,len); % Tao dong bit ngau nhien dai len % Thuc hien dieu che QPSK for i=1:2:len if bsignal(i)==0 & bsignal(i+1)==0 % 00 qpsk_signal((i+1)/2) = exp(j*3*pi/4); elseif bsignal(i)==0 & bsignal(i+1)==1 % 01 qpsk_signal((i+1)/2) = exp(j*5*pi/4); elseif bsignal(i)==1 & bsignal(i+1)==1 % 11 qpsk_signal((i+1)/2) = exp(j*7*pi/4); elseif bsignal(i)==1 & bsignal(i+1)==0 % 10 qpsk_signal((i+1)/2) = exp(j*pi/4); end end Es = std(qpsk_signal)^2; % Nang luong ky hieu N0 = Es/SNR; % Cong suat tap am % Tao nhieu Gauss noise = sqrt(N0/2)*(randn(1,length(qpsk_signal)) +j*randn(1,length(qpsk_signal))); qpsk_awgn = qpsk_signal + noise; % Cho tin hieu dieu che di qua kenh AWGN plot(qpsk_awgn,'.'); % Ve bieu chom tin hieu co nhieu title('Do thi chom 4-QPSK'); xlabel('I'); ylabel('Q'); hold on; plot(qpsk_signal,'r*'); % Ve bieu chom tin hieu khong nhieu plot(exp(j*[0:0.01:2*pi]),'r '); - Kết quả: +) Trường hợp SNR = Do thi chom 4-QPSK Q -1 -2 -3 -4 -4 -3 -2 -1 I +) Trường hợp SNR = 3dB Do thi chom 4-QPSK Q -1 -2 -3 -3 -2 -1 I +) Trường hợp SNR = 6dB Do thi chom 4-QPSK 2.5 1.5 Q 0.5 -0.5 -1 -1.5 -2 -2 -1.5 -1 -0.5 0.5 1.5 2.5 I - Câu hỏi: Điều chế tín hiệu để làm gì? Tại phải điều chế số? Nêu vai trò chức khối điều chế thơng tin số?  Điều chế tín hiệu để đưa thông tin cần truyền xa Khối điều chế có vai trị quan trọng, có nhiệm vụ làm trung gian q trình xử lý tín hiệu để truyền Mơ tả kết mơ phỏng? Giải thích?  KQ mơ tín hiệu thu dạng chum Do 4QPSK nên có điểm lệch 90 độ Trong điều chế PSK, phía thu giải mã sai? Năng lương ký hiệu Es lượng bit Eb trường hợp bao nhiêu? Tại sao?  Es = 3dB theo CT Es = N.SQR BÀI SỐ XÁC SUẤT LỖI BIT TRONG ĐIỀU CHẾ QPSK - Code: len = 50000; % Do dai dong bit mo phong SNR_db = 0:2:8; % Tao vector SNR_db = SNR = 10.^(SNR_db/10); % Doi SNR tu Decibel sang lan bsignal = randi([0 1],1,len); % Tao dong bit ngau nhien dai len % Thuc hien dieu che QPSK for i=1:2:len if bsignal(i)==0 & bsignal(i+1)==0 % 00 qpsk_signal((i+1)/2) = exp(j*3*pi/4); elseif bsignal(i)==0 & bsignal(i+1)==1 % 01 qpsk_signal((i+1)/2) = exp(j*5*pi/4); elseif bsignal(i)==1 & bsignal(i+1)==1 % 11 qpsk_signal((i+1)/2) = exp(j*7*pi/4); elseif bsignal(i)==1 & bsignal(i+1)==0 % 10 qpsk_signal((i+1)/2) = exp(j*pi/4); end end % Tim BER mo phong for i=1:length(SNR_db) r_signal = awgn(qpsk_signal,SNR_db(i)); % Dieu che QPSK di qua nhieu AWGN for j=1:2:len % Giai dieu che tin hieu QPSK co nhieu if real(r_signal((j+1)/2))>=0 if imag(r_signal((j+1)/2))>=0 % Goc phan tu I r_bsignal(j) = 1; r_bsignal(j+1) = 0; else % Goc phan tu IV r_bsignal(j) = 1; r_bsignal(j+1) = 1; end else if imag(r_signal((j+1)/2))>=0 % Goc phan tu II r_bsignal(j) = 0; r_bsignal(j+1) = 0; else III end % Goc phan tu r_bsignal(j) = 0; r_bsignal(j+1) = 1; end end [n,BER(i)] = biterr(r_bsignal,bsignal); end Pb = 1/2*erfc(1/sqrt(2).*sqrt(SNR)); % Xac suat loi bit plot(SNR_db,Pb,'ro '); % Ve thi Pb ly thuyet title('Do thi ty le bit loi ly thuyet va mo phong'); xlabel('SNR_d_B'); ylabel('BER'); hold on; plot(SNR_db,BER); % Ve thi BER mo phong legend('Ly thuyet','Mo phong'); hold off; - Kết quả: Do thi ty le bit loi ly thuyet va mo phong 0.16 Ly thuyet Mo phong 0.14 0.12 BER 0.1 0.08 0.06 0.04 0.02 0 SNRdB SNR Pb lý thuyết BER mô 0dB 0.1575 0.1609 2dB 0.1018 0.1034 4dB 0.0560 0.0549 6dB 0.0233 0.0241 8dB 0.0059 0.0056 - Câu hỏi: So sánh điều chế BPSK QPSK?  Xác suất lỗi bit tương đương QPSK có tỷ lệ lỗi thấp  QPSK điều chế phụ trực giao mã hóa bit thành  BPSK điều chế pha nhị phân, điều chế tín hiệu số 0, lệch pha 180 độ Nêu số hệ thống thực tế sử dụng kỹ thuật điều chế số QPSK?  Hệ thống OFDM  Hệ thống truyền tin nước BÀI MÔ PHỎNG ĐIỀU CHẾ M-QAM QUA KÊNH NHIỄU GAUSS - Code: n_sym = 50000; % So ky tu dieu che M = [16 64 256]; % So symbol ky hieu SNR_db = 0:25; % Tao vector SNR = - 25 Decibel BER = zeros(length(M),length(SNR_db)); % BER de luu ti le loi bit EbN0 = SNR_db; Pe = BER; for k = 1:size(M,2) % size(M,2) la so cot cua M s_stream = randi([0 M(k)-1],1,n_sym); % Tao dong bieu tuong dain_sym s_mod = qammod(s_stream,M(k),'GRAY'); % Dieu che M-QAM for r = 1:size(SNR_db,2) % Vong lap tinh BER s_mod_awgn = awgn(s_mod,SNR_db(r),'measured'); % Tin hieu qua nhieu s_demod = qamdemod(s_mod_awgn,M(k),'GRAY'); % Giai dieu che M-QAM [num, ratio] = biterr(s_stream,s_demod); % Tinh ti le loi bit BER(k,r) = ratio; % Luu ti le loi bit vao BER EbN0(r) = 10^(SNR_db(r)/20); Pe(k,r) = berawgn (EbN0(r),'qam',M(k)); end end semilogy(SNR_db,BER(1,:),'bo-'); % Ve thi BER ung voi M = 16 hold on; plot(EbN0,Pe(1,:),'g-'); % Ve thi Pe ung voi M = 16 semilogy(SNR_db,BER(2,:),'rs-'); % Ve thi BER ung voi M = 64 plot(EbN0,Pe(2,:),'c-'); % Ve thi Pe ung voi M = 64 semilogy(SNR_db,BER(3,:),'m*-'); % Ve thi BER ung voi M = 256 plot(EbN0,Pe(3,:),'k-'); % Ve thi Pe ung voi M = 256 grid on; title('Do thi the hien ty le loi bit M-QAM'); xlabel('SNR_d_B'); ylabel('BER'); legend('BER 16-QAM','Pe 16-QAM','BER 64-QAM','Pe 64-QAM','BER 256-QAM','Pe 256-QAM' ); hold off; - Kết quả: Do thi the hien ty le loi bit M-QAM 100 10-2 BER 10-4 10-6 BER 16-QAM Pe 16-QAM BER 64-QAM Pe 64-QAM BER 256-QAM Pe 256-QAM 10-8 10-10 10-12 10 15 20 25 SNRdB SNR = 16-QAM BER 0dB 5dB 10dB 15dB 20dB 25dB 0.2879 0.1642 0.0586 0.0047 5.0000e-06 0.3603 0.2614 0.1528 0.0645 0.0086 2.3333e-05 0.3959 0.3245 0.2365 0.1417 0.0658 0.0125 Pe 64-QAM BER Pe 256QAM BER Pe - Câu hỏi: Khi số mức điều chế M tang BER thay đổi nào? Giải thích?  M tang BER cững tang Vì số mức điều chế tang BER tang Số mức điều chế M tang lên cao có ưu nhược điểm gì? M tăng lên lớn khơng? Vì sao?  M tang lên cao truyền nhiều bit công suất tỷ lệ lỗi bit tang  M khơng thể tăng lên lớn tốn chi phí để tăng cơng suất phát ... Câu hỏi: Điều chế tín hiệu để làm gì? Tại phải điều chế số? Nêu vai trò chức khối điều chế thông tin số?  Điều chế tín hiệu để đưa thơng tin cần truyền xa Khối điều chế có vai trị quan trọng,... tu hoa tin hieu x_uni [indx_sin xq_sin] = lquan(x_sin,-1,1,nbit(i)); % Luong tu hoa tin hieu x_sin eq_uni = x_uni - xq_uni; % tinh sai so luong tu hoa x_uni eq_sin = x_sin - xq_sin; % tinh sai... P(x) (là hình gì)? Giải thích?  Là đường cong chng  Vì đồ thị có dạng chng phương trình Px đối xứng qua trục tung Ý nghĩ ứng dụng hàm phân phối xác suất Gauss thông tin số?  Mô tả xác suất xảy

Ngày đăng: 22/06/2022, 10:48

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan