1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO cáo THÍ NGHIỆM môn THÔNG TIN số mô PHỎNG NHIỄU GAUSS 1

26 4 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 26
Dung lượng 620,3 KB

Nội dung

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: THƠNG TIN SỐ Mã học phần ET3250 Sinh viên Nguyễn Tuấn Anh MSSV 20182356 Lớp Điện tử 10 – K63 Mã lớp thí nghiệm 706747 Nhóm thí nghiệm T01 Hà Nội, 10-2021 ii PHẦN 2: CÁC BÀI THÍ NGHIỆM BÀI SỐ 1: MÔ PHỎNG NHIỄU GAUSS Bài 1.1 Code matlab x = -5:0.1:5; Px = exp(-x.^2/2)/sqrt(2*pi); plot(x, Px); title('Ham phan bo xac suat Gauss'); xlabel('x'); ylabel('P(x)'); Kết chạy: Câu hỏi Q1 Nêu ý nghĩa đại lượng kỳ vọng phương sai phân phối xác suất Gauss - Giá trị trung bình kỳ vọng µ phản ánh giá trị trung bình phân phối - Phương sai σ phản ánh độ phân tán biến ngẫu nhiên Q2 Mơ tả hình dáng đồ thị hàm P(x) (là hình gì)? Giải thích? - Đồ thị P(x) có hình dạng chng Đó hàm P(x) biểu thị theo số tự nhiên e Q3 Ý nghĩa ứng dụng hàm phân phối xác suất Gauss thông tin số - Hàm phân phối xác suất Gauss thông tin số cho biết mật độ lượng thông tin khoảng giá trị xác định Q4 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 tăng kỳ vọng µ phương sai σ đặc trưng hàm lũy thừa đồ thị P(x) tràn xa lệch sang phía bên phát Bài 1.2 Code matlab 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 chạy: Câu hỏi: Q5 Nêu nhận xét kết hai hàm mơ phịng lý thuyết? - Hàm mơ tương đồng với tính tốn lý thuyết Q6 Thay đổi độ dài trình ngẫu nhiên 1.2 tập 1.2 lên 1.000.000 phần tử So sánh kết kết cũ? Giải thích? - Hàm mơ “mịn” hàm phân phối mô tả giá trị ngẫu nhiên nên nhiều phép thử xác Q7 Câu lệnh “px=hist(x,k)/len/step;”? Tại phải chia len step? - Chia cho len để tạo đường nét liền - Chia cho step để tăng độ dài phần tử Q8 Rút kết luận độ dài trình ngẫu nhiên dùng mơ phỏng? - Độ dài q trình ngẫu nhiên dùng mơ lớn xác BÀI SỐ 2: KỸ THUẬT LƯỢNG TỬ HĨA TUYẾN TÍNH Lý thuyết: Hàm lquan function [indx qy]= lquan(x,xmin,xmax,nbit) nlevel = 2^nbit; % So muc luong tu hoa q = (xmax-xmin)/nlevel; % Buoc luong tu [indx qy] = quantiz(x,xmin+q:q:xmax-q,xmin+q/2:q:xmax-q/2); end Bài 2.1 Code matlab: xs = rand(1,5)*2-1; [xi xq] = lquan(xs,-1,1,3); Câu hỏi: Q9 Dòng lệnh sử dụng: [xi xq] = lquan(xs, -1, -1, 3) Q10 xs = [-0.6671, -0.3500, -0.7871, -0.7231, -0.3599] Q11 xi = [1, 2, 7, 1, 2] Q12 xq = [-0.625, -0.3750 -0.6250, -0.3750] Q13 Dịng bít truyền: 0 0 1 0 Bài 2.2 Code matlab t=0:0.01:20; % Khoang thoi gian xet tu den 20, cach deu 0.01 xt=sin(randn()+t).*cos(rand()*t); % Tin hieu ngau nhien co bien -1 den [inx xqt] = lquan(xt,-1,1,randi(3)+1); plot(t,xt,'b',t,xqt,'r'); % Tinh xqt % Ve thi xt va xqt grid on; title('Do thi cua tin hieu x(t) va x_q(t)'); xlabel('t'); legend('x(t)','x_q(t)'); hold off; Kết chạy: Câu hỏi: Q14 Số bit dùng để lượng tử hóa cho mẫu tín hiệu n = bit Q15 Bước lượng tử hóa q = 0.25 Q16 Liệt kê mức biên độ tất mức lượng tử: 0.125, 0.375, 0.625, 0.875, 0.125, -0.375, -0.625, -0.875 BÀI 3: TẠM ÂM LƯỢNG TỬ HÓA TRONG KỸ THUẬT LƯỢNG TỬ HĨA TUYẾN TÍNH Bài Code matlab N = 1000; x_uni = 2*rand(1,N)-1; x_sin = sin(linspace(1,5,N)); nbit = 1:10; SNqR_uni = zeros(size(nbit)); SNqR_sin = zeros(size(nbit)); SNqR_lt = 6.02*nbit; Ps_uni = sum(x_uni.^2)/N; Ps_sin = sum(x_sin.^2)/N; for i = 1:size(nbit,2) [indx_uni xq_uni] = lquan(x_uni,-1,1,nbit(i)); [indx_sin xq_sin] = lquan(x_sin,-1,1,nbit(i)); eq_uni = x_uni - xq_uni; eq_sin = x_sin - xq_sin; Pq_uni = sum(eq_uni.^2)/N; Pq_sin = sum(eq_sin.^2)/N; SNqR_uni(i) = 10*log10(Ps_uni/Pq_uni); SNqR_sin(i) = 10*log10(Ps_sin/Pq_sin); end plot(nbit,SNqR_uni,'b-'); hold on; plot(nbit,SNqR_sin,'r '); plot(nbit,SNqR_lt,'m-.'); 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 chạy: Câu hỏi: Q17 Khi n tăng lên giá trị SNqR thay đổi nào? Tại sao? - Khi n tăng SNqR tăng lên ≈ - Theo cơng thức lý thuyết SNqR = 6.02 Q18 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ử? - Do cơng suất tín hiệu phụ thuộc vào M công thức tạm âm phụ thuộc vào công suất - → SNqR phụ thuộc vào M = 2n Q19 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ăng lượng tăng ↔ 4.74 – = 1.74 dB →1.2 lần Q20 Công thức SNqR lý thuyết trường hợp tín hiệu x điều hòa nào? Chứng minh? SNqR= Ps (A biên độ tín hiệu) Pq { 2A n A n → Ps= → SNqR= 2 2 q 4A Pq= = 12 12.2n q= Câu hỏi: Q21 Đồ thị hàm tự tương quan trường hợp tổng qt ln có đặc điểm đặc biệt? Tại sao? - Đồ thị hàm Rx đối xứng với trụng tung Rx(n) = Rx(-n) hàm chẵn Q22 Giá trị cực đại hàm tự tương quan nằm đâu? Tại sao? - Giá trị cực đại nằm gốc tọa độ cách tính tổng chập Q23 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ương quan có giá trị cực đại gốc tọa độ đối xứng qua trục tung Bài 4.2 Code matlab L = 50; N = 200; x = rand(1,L); w = linspace(0,2*pi,N); fx = freqz(x,1,w); esd_x = fx.*conj(fx); acorr_x = xcorr(x); ft_acorr_x = freqz(acorr_x,1,w).*exp(j*w*(L-1)); 10 subplot(2,1,1); semilogy(w/pi,esd_x) title('Mat nang luong'); xlabel('\omega'); ylabel('S(e^j^\ omega)') hold on; subplot(2,1, 2); semilogy(w/pi,real(ft_acorr_x),'r'); xlabel('\omega'); ylabel('R_x_x(e^j^\omega)'); hold off; Kết chạy: Câu hỏi: Q24 Phổ biên độ rời rạc tín hiệu có đặc điểm gì? Giải thích? - Đối xứng qua n = - Tín hiệu đưa dạng hình sin Q25 So sánh đồ thị phổ biến biên độ esd_x ft_acorr_x - đồ thị phổ biến có độ tương tự Q26 Giải thích vẽ đồ thị với cách trục hoàng w/pi cách trục hồnh k*2/N? - Do sử dụng lect cho tín hiệu khác miền FT DFT Q27 Phải chọn N tối thiểu để kết mơ xác? Tại sao? - Theo định lý Nyquist chọn N ≥ 100 11 Q28 Ý nghĩa ứng dụng định lý Weiner-Khintchine thông tin số? - Phổ cực hàm tương quan mật độ phổ lượng tín hiệu thể phân bố lượng 12 BÀI SỐ 5: MÃ ĐƯỜNG DÂY NRZ Bài Code matlab 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); r_signal = NRZ_signal + noise; % Tao tap am noise voi ti so NRZ_decoded = sign(r_signal); % Tin hieu thu duoc = NRZ + noise % Giai ma tin hieu NRZ thu duoc [n,BER(i)] = symerr(NRZ_decoded,NRZ_signal); % Tinh xac suat loi end end plot(SNR_db,BER,'bo '); Pe = 1/2*(1-erf(sqrt(SNR)/sqrt(2))); hold on; plot(SNR_db,Pe,'r* '); 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 chạy: 13 So sánh lý thuyết thực tế: SNR 0dB Pe Lý thuyết 0.1587 BER Mô 0.1594 2dB 0.1040 0.1049 4dB 0.0565 0.0553 6dB 0.0230 0.0231 8dB 0.0060 0.0061 Câu hỏi: Q29 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? - Giúp bên thu dễ dàng khôi phục sung clock => Áp dụng cho đường truyền hữu tuyến - Tạo dạng phổ thích hợp - Cung cấp khả quan sát lỗi Q30 Khi tỷ số SNR tăng xác suất lỗi thay đổi nào? Giải thích? So sánh với kết đồ thị trên? - Khi SNR tăng xác suất lỗi bit giảm - Kết đồ thị phù hợp với lý thuyết 14 Q31 Nếu giải mã tín hiệu NRZ lệnh “NRZ_decoded=sign(r_signal)” hướng dẫn có trường hợp khơng xác, trường hợp nào? Tại sao? - Vì có loại mã đơn ảnh phân ảnh nên trường hợp khơng có dấu chưa xác Q32 Nhận kết kết mơ phỏng, so sánh giá trị BER tính mơ xác suất lỗi Pe tính lý thuyết Từ rút kết luận gì? - Pe lý thuyết với BER mơ có kết tương tự - SNR tăng → lỗi bit giảm 15 BÀI SỐ 6: KỸ THUẬT ĐIỀU CHẾ SỐ QPSK Bài Code matlab len = 50000; SNR_db = 6; SNR = 10^(SNR_db/10); bsignal = randi([0 1],1,len); for i=1:2:len if bsignal(i)==0 & bsignal(i+1)==0 qpsk_signal((i+1)/2) = exp(j*3*pi/4); elseif bsignal(i)==0 & bsignal(i+1)==1 qpsk_signal((i+1)/2) = exp(j*5*pi/4); elseif bsignal(i)==1 & bsignal(i+1)==1 qpsk_signal((i+1)/2) = exp(j*7*pi/4); elseif bsignal(i)==1 & bsignal(i+1)==0 qpsk_signal((i+1)/2) = exp(j*pi/4); end end Es = std(qpsk_signal)^2; N0 = Es/SNR; noise = sqrt(N0/2)*(randn(1,length(qpsk_signal)) +j*randn(1,length(qpsk_signal))); qpsk_awgn = qpsk_signal + noise; plot(qpsk_awgn,'.'); title('Do thi chom 4-QPSK'); xlabel('I'); ylabel('Q'); hold on; plot(qpsk_signal,'r*'); plot(exp(j*[0:0.01:2*pi]),'r '); Kết chạy: + Trường hợp SNR = dB 16 + Trường hợp SNR = dB + Trường hợp SNR = dB 17 Câu hỏi: Q33 Đ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ố? - Để chuyển tín hiệu từ băng tần sở lên băng tần thông dải với xác suất lỗi bit nhỏ tốc độ truyền dẫn cao Q34 Mô tả nhận xét kết mô phỏng? Giải thích? - Kết thu dạng đám mây bao quanh chòm Q35 Trong điều chế PSK, phía thu giải mã sai? - SNR tăng →đám mây sát với chòm sao, nhiễu giảm SNR tăng Q36 Năng lượng ký hiệu Es lượng bit Eb trường hợp bao nhiêu? Tại sao? - Es=1 dB - Eb= Es =0.5 dB 18 BÀI SỐ 7: XÁC SUẤT LỖI BIT TRONG ĐIỀU CHẾ QPSK Bài 7: Code matlab 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 % Goc phan tu III r_bsignal(j) = 0; 19 r_bsignal(j+1) = 1; end 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 chạy: So sánh lý thuyết thực tế: 20 Pe Lý thuyết BER Mô 0.1587 0.1606 0.1040 0.1043 0.0565 0.0551 0.0230 0.0221 0.0060 0.0062 Câu hỏi: Q37 So sánh điều chế BPSK QPSK? - Xác suất lỗi bit => điều chế QPSK BPSK tương đương - Tuy nhiên BPSK có tỉ lệ lỗi bit thấp Q38 Nêu số hệ thống thực tế sử dụng kỹ thuật điều chế QPSK - Hệ thống truyền tin xác 21 BÀI SỐ 8: MƠ PHỎNG ĐIỀU CHẾ M-QAM QUA KÊNH TRUYỀN GAUSS Bài 8.1 Code matlab n_sym = 50000; % So ky tu dieu che M = [16 32 64]; % So symbol ky hieu SNR_db = 0:25; % Tao vector SNR = - 25 Decibel BER = zeros(length(M),length(SNR_db)); for k = 1:size(M,2) % BER de luu ti le loi bit % size(M,2) la so cot cua M s_stream = randi([0 M(k)-1],1,n_sym); % Tao dong bieu tuong dai n_sym s_mod = qammod(s_stream,M(k),0,'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),0,'GRAY'); % Giai dieu che M- QAM [num ratio] = biterr(s_stream,s_demod); BER(k,r) = ratio; % Tinh ti le loi bit % Luu ti le loi bit vao BER end end semilogy(SNR_db,BER(1,:),'bo-'); % Ve thi BER ung voi M = 16 hold on; semilogy(SNR_db,BER(2,:),'rs-'); % Ve thi BER ung voi M = 32 semilogy(SNR_db,BER(3,:),'m*-'); % Ve thi BER ung voi M = 64 grid on; title('Do thi the hien ty le loi bit M-QAM'); xlabel('SNR_d_B'); ylabel('BER'); legend('16-QAM','32-QAM','64-QAM'); hold off; Kết chạy: 22 SNR=0d SNR=5dB SNR=10dB SNR=15dB SNR=20dB SNR=25dB B 16QAM 32QAM 64QAM 0.2883 0.1647 0.0584 0.0046 0 0.3306 0.2241 0.1166 0.0285 0.0005 0.3605 0.2632 0.1520 0.0637 0.0083 Câu hỏi: Q39 Khi số mức điều chế M tăng BER thay đổi sao? Giải thích? - Khi M tăng BER tăng tăng mức điều chế khiển tỉ lệ bit tăng 23 Q40 Số mức điều chế M tăng lên cao có ưu nhược điểm gì? M tăng lên lớn không? Tại sao? Để đảm bảo chất lượng truyền dẫn M tăng hệ thống phải thay đổi nào? - M tăng giúp tốc độ bit tăng, tỉ lệ lỗi bit tăng tăng theo, M có giá trị giới hạn công suất phát vô hạn 24 ...Hà Nội, 10 -20 21 ii PHẦN 2: CÁC BÀI THÍ NGHIỆM BÀI SỐ 1: MÔ PHỎNG NHIỄU GAUSS Bài 1. 1 Code matlab x = -5:0 .1: 5; Px = exp(-x.^2/2)/sqrt(2*pi); plot(x, Px); title('Ham phan bo xac suat Gauss' );... 2 .1 Code matlab: xs = rand (1, 5)*2 -1; [xi xq] = lquan(xs, -1, 1,3); Câu hỏi: Q9 Dòng lệnh sử dụng: [xi xq] = lquan(xs, -1, -1, 3) Q10 xs = [-0.66 71, -0.3500, -0.78 71, -0.72 31, -0.3599] Q 11 xi = [1, ... 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);

Ngày đăng: 27/03/2022, 06:29

w