Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 23 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
23
Dung lượng
379,71 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Ố Sinh viên : Nguyễn Trung Kiệm MSSV : 20182613 Lớp : Điện tử 03 – K63 Mã lớp thí nghiệm: : 706781 Hà Nội, 2021 PHẦN 2: CÁC BÀI THÍ NGHIỆM BÀI SỐ 1: Q TRÌNH NGẪU NHIÊN CỦA TÍN HIỆU 1.1: Code: x=-5:0.1:5; % mang cac phan tu tu -5 den cach 0.1 gauss=exp(-x.^2/2)/sqrt(2*pi); % phan bo xac suat Gauss plot(x,gauss); % ve thi title('Ham phan bo xac suat Gauss'); xlabel('x'); ylabel('P(x)'); Đồ thị: Câu hỏi 1: Ý nghĩa kì vọng: biểu thị giá trị Gauss Ý nghĩa phương sai: biểu thị mức rời rạc giá trị biến ngẫu nhiên Câu hỏi 2: Đồ thị hàm giống hình dáng chng, tn theo phân bố xác suất Gauss Câu hỏi 3: Ứng dụng phổ biến mô tả hệ thống toán học nhiễu trắng Câu hỏi 4: Nếu giảm kì vong phương sai đồ thị co lại ngược lại giãn 1.2: Code: m=1; % bat dau tu n=100000; % ket thuc o 100000 x=randn(m,n); % vecto x co gia tri ngau nhien tu den 100000 buocnhay=0.1; % buoc nhay =0.1 k=-5:buocnhay:5; % khoang xet tu -5 den cach deu 0.1 px=hist(x,k)/n/buocnhay; % tim so vector [-5, 5] stem(k,px,'go'); % Ve thi mo phong Px_LT=exp(-k.^2/2)/sqrt(2*pi); % Tinh Px ly thuyet hold on; % giu thi phia tren plot(k,Px_LT,'m'); % Ve thi ly thuyet title('Phan bo xac suat Gauss'); % tieu de thi xlabel('x'); % ten truc hoanh ylabel('P(x)'); % ten truc ting legend('Ly thuyet','Mo phong'); % ki hieu hold off; Đồ thị: Câu hỏi 5: Kết đồ thị gần giống Câu hỏi 6: Trong khoảng 1.2 đến 1000000 tăng lên nhiều phần tử, nhiều phần tử xác Câu hỏi 7: Px chia len để tạo nét liền chia step để tang độ dài Câu hỏi 8: Càng cho nhiều phần tử xác BÀI SỐ LƯỢNG TỬ HĨA TUYẾN TÍNH 2.1: Câu hỏi 9: [xi xq] = lquan(xs, -1,1,3) Câu hỏi 10: Xs - -0.2592 -0.9386 -0.7804 -0.3295 0.9298 Câu hỏi 11: Xi = 0 Câu hỏi 12: Xq = -0.3750 -0.8750 -0.8750 -0.3750 0.8750 Câu hỏi 13: Dòng bit truyền: 010000000010111 2.2: Code: step=0:0.01:20; % khoang xet [0;20] thoidiem=sin(randn()+step).*cos(rand()*step); % tao gia tri ngau nhien [inx xqt] = lquan(thoidiem,-1,1,randi(3)+1); % Tinh cac diem lay mau plot(step,thoidiem,'go',step,xqt,'s-'); % Ve thi grid on; title('Do thi cua tin hieu x(t) va x_q(t)'); xlabel('t'); legend('x(t)','x_q(t)'); hold off; Đồ thị: Câu hỏi 14: Số bit dung để lượng tử hóa Câu hỏi 15: Bước lượng tử q =0.25 Câu hỏi 16: Tất mức lượng tử: -0.6875, -0.4375, -0.1875,0.0625,0.3125,0.5625,0.8125, 0.9375 BÀI SỐ 3: TẠP ÂM LƯỢNG TỬ HĨA TRONG KỸ THUẬT LƯỢNG TỬ HĨA TUYẾN TÍNH 3.1: 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 x_uni [indx_sin, xq_sin] = lquan(x_sin,-1,1,nbit(i)); % Luong tu hoa x_sin eq_uni = x_uni - xq_uni; % sai so cua x_uni eq_sin = x_sin - xq_sin; % sai so cua x_sin Pq_uni = sum(eq_uni.^2)/N; % cong suat tap am luong tu x_uni Pq_sin = sum(eq_sin.^2)/N; % cong suat tap am luong tu x_sin SNqR_uni(i) = 10*log10(Ps_uni/Pq_uni); % SNR_db cua x_uni SNqR_sin(i) = 10*log10(Ps_sin/Pq_sin); % SNR_db cua x_sin end plot(nbit,SNqR_uni,'g-.'); % ve thi SNR tin hieu phan bo deu mo phong hold on; plot(nbit,SNqR_sin,'c '); % ve thi SNR tin hieu sin mo phong plot(nbit,SNqR_lt,'k-'); % Ve thi SNR tin hieu phan bo deu ly thuyet xlabel('nbit'); legend('Phan bo deu','Hinh sin','Ly thuyet'); title('Do thi SN_qR theo nbit'); ylabel('SN_qR'); grid on; hold off; Đồ thị: SNR theo lý thuyết: 6.0200 12.0400 18.0600 24.0800 30.1000 36.1200 42.1400 48.1600 54.1800 60.2000 SNR theo uni: 5.8361 11.7784 17.8588 23.9559 30.1048 35.9538 42.0177 48.0865 53.8967 60.1301 SNR theo sin: 6.4171 12.8834 19.3981 25.6702 32.0389 38.1620 44.3266 50.4033 56.4544 62.5722 Câu hỏi 17: n tăng thêm SNR tang lên hàm mũ Câu hỏi 18: Vì dựa vào cơng thức SNR SNR n tỷ lệ thuận, khơng phụ thuộc vào kích thước bước lượng tự dải biên độ lượng tử Câu hỏi 19: x phân bố [-1,1] BÀI SỐ 4: 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; % Chieu dai cua tin hieu 500 mau x = randn(1,L); % Tao tin hieu ngau nhien theo phan phoi Gauss x = xcorr(x); % ham tu tuong quan cua x n = (-L+1):(L-1); % Cac mau gia tri plot(n,x); % Ve thi ham tu tuong quan tin hieu ngau nhien xlabel('n'); ylabel('r_x_x'); title('Ham tu tuong quan'); hold on; biendo = linspace(-1,1,L); % bien tang dan ttquanbiendo = xcorr(biendo); % ham tu tuong quan cua tang dan bien plot(n,ttquanbiendo,'c '); % Ve thi ham tu tuong quan bien tang dan biendo = sin(linspace(-10,10,L)); % tin hieu sin ttquanbiendo = xcorr(biendo); % ham tu tuong quan plot(n,ttquanbiendo,'k+'); % Ve thi ham tu tuong quan cua sin legend('Ngau nhien','Bien tang dan','Hinh sin') hold off; Đồ thị: Câu hỏi 21: Hàm tự tương quan làm tang biên độ dần Câu hỏi 22: Giá trị lớn nằm khoảng đồ thị điểm n=0 Câu hỏi 23: Tín hiệu khác cho hàm tự tương quan khác 4.2: Code: L = 50; % dai tin hieu N = 500; % So luong cac tan so roi rac [0;2pi] w = linspace(0,2*pi,N); % Tao N tan so tang dan tu den 2*pi x = rand(1,L); fx = freqz(x,1,w); % Bien doi Fourier cac tan so roi rac esd_x = fx.*conj(fx); % Tinh mat nang luong acorr_x = xcorr(x); % Tinh tu tuong quan cua x ft_acorr_x = freqz(acorr_x,1,w).*exp(j*w*(L-1)); % Bien doi Fourier ham tu tuong quan cua x subplot(2,1,1); semilogy(w/pi,esd_x); % ve thi theo logarit co so 10 xlabel('\omega'); ylabel('S(e^j^\omega)'); title('Mat nang luong'); hold on; subplot(2,1,2); semilogy(w/pi,real(ft_acorr_x),'c'); % ve thi theo logarit co so 10 xlabel('\omega'); ylabel('R_x_x(e^j^\omega)'); title('Ham tu tuong quan'); hold off; Đồ thị: Câu hỏi 24: miền tần số phổ tín hiệu rời rạc liên tục Câu hỏi 25: phổ biên độ esd_x có biên độ gần cịn phổ biên độ ft_acorr_x có biên độ tăng dần Câu hỏi 26: ta có w= 2pif => 2f=w/pi = wk/N Câu hỏi 27: Chọn N lớn độ xác cao đổi lại hiệu Chính vật N 20 Câu hỏi 28: để phân tích hệ thống LTN mà biến đổi Fourier không tồn BÀI SỐ 5: MÃ ĐƯỜNG DÂY NRZ 5.1: 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 deci 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; for i=1:length(SNR_db) tap_am = sqrt(N0(i))*randn(1,len); % Tao tap am noise voi ti so SNR(i) receive_tinhieu = NRZ_signal + tap_am; % Tin hieu thu duoc = Tin hieu NRZ ben phat + tap am giaima_NRZ = sign(receive_tinhieu); % Giai ma tin hieu NRZ thu duoc [n,BER(i)] = symerr(giaima_NRZ,NRZ_signal); % so sanh voi ber ban dau va tinh xac suat loi end plot(SNR_db,BER,'mx:'); % ve thi xlabel('SNR_d_B'); ylabel('BER'); title('Ty le bit loi'); Đồ thị: Câu hỏi 29: Vì mã đường dây chuyển đổi chuỗi số nhị phân thành tín hiệu số, mục đích để truyền thơng tin số Câu hỏi 30: Nếu SNR tang xác suất lỗi giảm chất chúng tỷ lệ nghích với nhau, vật đồ thị mơ phù hợp với lý thuyết Câu hỏi 31: Trường hợp trường hợp khơng mang dấu NRZ có loại đơn cực lưỡng cực 5.2: Code: len = 100000; % Do dai dong bit mo phong SNR_db = 0:2:8; % SNR_db = SNR = 10.^(SNR_db/10); % Doi SNR tu deci 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; for i=1:length(SNR_db) tap_am = sqrt(N0(i))*randn(1,len); % Tao tap am noise voi ti so SNR(i) receive_tinhieu = NRZ_signal + tap_am; % Tin hieu thu duoc = Tin hieu NRZ ben phat + tap am giaima_NRZ = sign(receive_tinhieu); % Giai ma tin hieu NRZ thu duoc [n,BER(i)] = symerr(giaima_NRZ,NRZ_signal); % so sanh voi ber ban dau va tinh xac suat loi end plot(SNR_db,BER,'ko '); % Ve thi BER Pe = 1/2*(1-erf(sqrt(SNR)/sqrt(2))); % Xac suat loi theo ly thuyet hold on; plot(SNR_db,Pe,'mx:'); xlabel('SNR_d_B'); ylabel('BER'); legend('Mo phong','Ly thuyet'); title('Do thi so sanh ly thuyet mong phong theo ty le loi'); Đồ thị: Theo lý thuyết: 0.1587 0.1040 0.0565 0.0230 0.0060 Theo mô phỏng: 0.1584 0.1031 0.0553 0.0224 0.0059 Nhận xét: dựa vào đồ thị mơ gần với lý thuyết BÀI SỐ 6: 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 tinhieunhiphan = randi([0 1],1,len); % Tao dong bit ngau nhien dai len for i=1:2:len if tinhieunhiphan(i)==0 & tinhieunhiphan(i+1)==0 % 00 tinhieu_qpsk((i+1)/2) = exp(j*3*pi/4); elseif tinhieunhiphan(i)==1 & tinhieunhiphan(i+1)==1 % 11 tinhieu_qpsk((i+1)/2) = exp(j*7*pi/4); elseif tinhieunhiphan(i)==1 & tinhieunhiphan(i+1)==0 % 10 tinhieu_qpsk((i+1)/2) = exp(j*pi/4); elseif tinhieunhiphan(i)==0 & tinhieunhiphan(i+1)==1 % 01 tinhieu_qpsk((i+1)/2) = exp(j*5*pi/4); end end Es = std(tinhieu_qpsk)^2; % Nang luong N0 = Es/SNR; % Cong suat noise nhieu_gauss = sqrt(N0/2)*(randn(1,length(tinhieu_qpsk)) +j*randn(1,length(tinhieu_qpsk))); awgn_qpsk = tinhieu_qpsk + nhieu_gauss; % tin hieu di qua kenh AWGN plot(awgn_qpsk,'.'); % Ve thi voi tin hieu co nhieu xlabel('I'); ylabel('Q'); title('Do thi chom 4-QPSK'); hold on; plot(tinhieu_qpsk,'r*'); % Ve thi voi tin hieu khong nhieu plot(exp(j*[0:0.01:2*pi]),'r '); Đồ thị: Với SNR = 0db Với SNR = 3db: Với SNR =6db: Câu hỏi 33: Mục đích để truyền tín hiệu xa, cịn ngun nhân để phù hợp với kênh truyền, cịn mục đích khối điều chế để xử lý tín hiệu truyền Câu hỏi 34: Từ đồ thị ta thấy tín hiệu bao quanh chịm Câu hỏi 35: Khi thay đổi SNR điểm tiến sát gần chòm Câu hỏi 36: Năng lượng kí hiệu 3db cịn lượng bit 1.5db BÀI SỐ 7: 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 tinhieunhiphan = randi([0 1],1,len); % Tao dong bit ngau nhien dai len % Thuc hien dieu che QPSK for i=1:2:len if tinhieunhiphan(i)==0 & tinhieunhiphan(i+1)==0 % 00 tinhhieu_qpsk((i+1)/2) = exp(j*3*pi/4); elseif tinhieunhiphan(i)==1 & tinhieunhiphan(i+1)==1 % 11 tinhhieu_qpsk((i+1)/2) = exp(j*7*pi/4); elseif tinhieunhiphan(i)==1 & tinhieunhiphan(i+1)==0 % 10 tinhhieu_qpsk((i+1)/2) = exp(j*pi/4); elseif tinhieunhiphan(i)==0 & tinhieunhiphan(i+1)==1 % 01 tinhhieu_qpsk((i+1)/2) = exp(j*5*pi/4); end end % Tim BER mo phong for i=1:length(SNR_db) receive_tinhieu = awgn(tinhhieu_qpsk,SNR_db(i)); % Dieu che QPSK di qua nhieu AWGN for a=1:2:len % Giai dieu che tin hieu QPSK co nhieu if real(receive_tinhieu((a+1)/2))>=0 if imag(receive_tinhieu((a+1)/2))>=0 % Goc I receive_tinhieunhiphan(a) = 1; receive_tinhieunhiphan(a+1) = 0; else receive_tinhieunhiphan(a) = 1; % Goc IV receive_tinhieunhiphan(a+1) = 1; end else if imag(receive_tinhieu((a+1)/2))>=0 % Goc II receive_tinhieunhiphan(a) = 0; receive_tinhieunhiphan(a+1) = 0; else receive_tinhieunhiphan(a) = 0; % Goc III receive_tinhieunhiphan(a+1) = 1; end end end [n,BER(i)] = biterr(receive_tinhieunhiphan,tinhieunhiphan); end Pb = 1/2*erfc(1/sqrt(2).*sqrt(SNR)); % Xac suat loi bit plot(SNR_db,Pb,'ko '); % Ve thi ly thuyet xlabel('SNR_d_B'); ylabel('BER'); title('Do thi ty le bit loi ly thuyet va mo phong'); hold on; plot(SNR_db,BER); % Ve thi BER mo phong legend('Ly thuyet','Mo phong'); hold off; Đồ thị: SNR 0dB 2dB 4dB 6dB 8dB Pb lý thuyết 0.1587 0.1040 0.0565 0.0230 0.0060 BER mô 0.1573 0.1048 0.0569 0.0237 0.0065 Câu hỏi 37: BPSK QPSK từ chứng minh cho thấy xác suất lỗi giống Câu hỏi 38:Ứng dụng: 3G, truyền hình số, mạng khơng dây BÀI SỐ 8: MƠ PHỎNG ĐIỀU CHẾ M-QAM QUA KÊNH NHIỄU GAUSS 8.1: Code: 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)); % BER de luu ti le loi bit for i = 1:size(M,2) % size(M,2) la so cot cua M s_stream = randi([0 M(i)-1],1,n_sym); % Tao dong bieu tuong dai n_sym s_mod = qammod(s_stream,M(i),0,'GRAY'); % Dieu che M-QAM for r = 1:size(SNR_db,2) % Vong lap tinh BER tinhhieuquaawgn = awgn(s_mod,SNR_db(r),'measured'); % Tin hieu qua nhieu giaidieuchetinhieu = qamdemod(tinhhieuquaawgn,M(i),0,'GRAY'); % Giai dieu che M-QAM [num ratio] = biterr(s_stream,giaidieuchetinhieu); % Tinh ti le loi bit BER(i,r) = ratio; % Luu ti le loi bit vao BER end end semilogy(SNR_db,BER(1,:),'gd-'); % Ve thi M = 16 hold on; semilogy(SNR_db,BER(2,:),'yh-'); % Ve thi M = 32 semilogy(SNR_db,BER(3,:),'m