Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 30 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
30
Dung lượng
1,31 MB
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 MSSV Lớp Nhóm thí nghiệm Hà Nội, 2021 download by : skknchat@gmail.com PHẦN 2: CÁC BÀI THÍ NGHIỆM BÀI SỐ 1: Q TRÌNH NGẪU NHIÊN CỦATÍN HIỆU Bài 1.1 Chạy chương trình: x=-5:0.1:5; Px=1/(sqrt(2*pi)) *exp(-x.^2/2); plot(x, Px); title ('Ham phan bo xac suat Gauss'); xlabel('x'); ylabel('P(x)'); Kết quả: Câu hỏi: download by : skknchat@gmail.com download by : skknchat@gmail.com download by : skknchat@gmail.com Bài 1.2 Chạy chương trình: len=100000; x=randn(1, len); chuan step=0.1; k=-5: step:5; Px=hist (x, k)/len/step; % Xac dinh so vector cac khoang duoc cho boi stem (k, Px); Px_LT=exp(-k.^2/2)/sqrt(2*pi); % Tinh Px ly thuyet hold on; plot (k, Px_LT); title ('Phan bo xac xlabel('x'); ylabel('P(x)'); legend ('Ly thuyet','Mo phong'); hold off; Kết quả: Câu hỏi: download by : skknchat@gmail.com download by : skknchat@gmail.com BÀI SỐ 2: 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); Bài 2.1 Chạy chương trình: xs = rand (1,5)*2-1; [xi xq] = lquan(xs,-1,1,3) Kết quả: xs = [0.6294 xi = [6 xq = [0.6250 Dòng bit truyền: 110111001111101 Bài 2.2 Chạy chương trình: t=0:0.01:20; 0.01 xt=sin(randn()+t).*cos(rand()*t); % Tin bien -1 den [inx xqt] = lquan(xt,-1,1,randi(3)+1); plot(t,xt,'b',t,xqt,'r'); 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 quả: download by : skknchat@gmail.com Câu hỏi: * Số bit dùng để lượng tử hóa cho mẫu tín hiệu n = (có mức lượng tử hóa 23 = 8) * Bước lượng tử q = 0.25 * Liệt kê tất mức lượng tử: 0.875, 0.625, 0.375, 0.125, -0.125, -0.375, -0.625, -0.875 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 Bài 3: download by : skknchat@gmail.com Chạy chương trình: N = 1000; x_uni = 2*rand(1,N)-1; den x_sin = sin(linspace(1,5,N)); nbit = 1:10; 10 SNqR_uni = zeros(size(nbit)); SNqR_sin chua SNqR_sin = zeros(size(nbit)); deu va tin hieu sin SNqR_lt = 6.02*nbit; ly thuyet Ps_uni = sum(x_uni.^2)/N; (3-3) Ps_sin = sum(x_sin.^2)/N; for i = 1:size(nbit,2) cua n [indx_uni xq_uni] = lquan(x_uni,-1,1,nbit(i tu hoa tin hieu x_uni [indx_sin xq_sin] = lquan(x_sin,-1,1,nbit(i tu hoa tin hieu x_sin eq_uni = x_uni - xq_uni; hoa x_uni eq_sin = x_sin - xq_sin; hoa x_sin Pq_uni = sum(eq_uni.^2)/N; luong tu x_uni Pq_sin = sum(eq_sin.^2)/N; luong tu x_sin SNqR_uni(i) = 10*log10(Ps_uni/Pq_uni); cua x_uni SNqR_sin(i) = 10*log10(Ps_sin/Pq_sin); cua x_sin end plot(nbit,SNqR_uni,'b-'); bo deu mo phong hold on; plot(nbit,SNqR_sin,'r '); phong plot(nbit,SNqR_lt,'m-.'); 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 quả: download by : skknchat@gmail.com nbit SNqR lt SNqR uni SNqR sin 6.0200 6.0359 6.4171 Câu hỏi: download by : skknchat@gmail.com Câu hỏi: 15 download by : skknchat@gmail.com BÀI SỐ 5: MÃ ĐƯỜNG DÂY NRZ Bài Chạy chương trình: len = 100000; SNR_db = 0:2:8; SNR = 10.^(SNR_db/10); bsignal = randi([0 1],1,len); len NRZ_signal = bsignal*2-1; N0 = 1./SNR; for i=1:length(SNR_db) noise = sqrt(N0(i))*randn(1,len); voi ti so SNR(i) r_signal = NRZ_signal + noise; = NRZ + noise NRZ_decoded = sign(r_signal); NRZ thu duoc [n,BER(i)] = symerr(NRZ_decoded,NRZ_signal); xac suat loi end plot(SNR_db,BER,'bo '); Pe = 1/2*(1-erf(sqrt(SNR)/sqrt(2))); ly thuyet 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 quả: 16 download by : skknchat@gmail.com SNR Pe Lý thuyết BER mô Câu hỏi: 17 download by : skknchat@gmail.com 18 download by : skknchat@gmail.com 19 download by : skknchat@gmail.com BÀI SỐ 6: KỸ THUẬT ĐIỀU CHẾ SỐ QPSK Bài Chạy chương trình: len = 50000; SNR_db = 0; SNR = 10^(SNR_db/10); bsignal = randi([0 1],1,len); dai len % Thuc hien dieu che QPSK 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; % 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ả: 20 download by : skknchat@gmail.com + Trường hợp SNR = dB + Trường hợp SNR = dB + Trường hợp SNR = dB 21 download by : skknchat@gmail.com Câu hỏi: 22 download by : skknchat@gmail.com BÀI SỐ 7: XÁC SUẤT LỖI BIT TRONG ĐIỀU CHẾ QPSK Bài Chạy chương trình: len = 50000; SNR_db = 0:2:8; SNR = 10.^(SNR_db/10); bsignal = randi([0 1],1,len); dai len % Thuc hien dieu che QPSK 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 % 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 23 download by : skknchat@gmail.com if imag(r_signal((j+1)/2))>=0 r_bsignal(j) = 1; r_bsignal(j+1) = 0; else r_bsignal(j) = 1; r_bsignal(j+1) = 1; end else if imag(r_signal((j+1)/2))>=0 r_bsignal(j) = 0; r_bsignal(j+1) = 0; else % Goc phan tu I % Goc phan tu IV % Goc phan tu II % Goc phan tu III r_bsignal(j) = 0; 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 quả: 24 download by : skknchat@gmail.com SNR Pb Lý thuyết BER mô Câu hỏi: 25 download by : skknchat@gmail.com BÀI SỐ 8: MÔ PHỎNG ĐIỀU CHẾ M-QAM QUA KÊNH NHIỄU GAUSS Bài 8.1 Chạy chương trình: n_sym = M = SNR_db = 0:25; BER loi EbN0 =SNR_db; Pe= for tuong dai n_sym 50000; 64 256] [16 = zeros(length(M),length(SNR_db)); bit % BER d BER; k = 1:size( s_stream = randi([0 M(k)-1],1,n_sym); s_mod = qammod(s_stream,M(k),'GRAY'); % Die for r = 1:s awgn(s_mod,SNR_db(r),'measured'); % s_mod_awgn = 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,:),'bo-'); semilogy(SNR_db,BER(2,:),'rs-');% Ve thi BER ung voi M = 64 plot(EbN0,Pe(2,:),'rs-'); semilogy(SNR_db,BER(3,:),'m*-'); M=256 plot(EbN0,Pe(3,:),'m*-'); % Ve thi BER ung voi grid on; title('Do thi the hien ty le loi bit MQAM'); xlabel('SNR_d_B'); ylabel('BER'); legend('16-QAM','64-QAM','256QAM'); hold off; 26 download by : skknchat@gmail.com Kết quả: 27 download by : skknchat@gmail.com SNR=0dB 16QAM Pe : 0.1190 64QAM Pe : 0.1779 QAM Câu hỏi: 28 download by : skknchat@gmail.com ...PHẦN 2: CÁC BÀI THÍ NGHIỆM BÀI SỐ 1: QUÁ TRÌNH NGẪU NHIÊN CỦATÍN HIỆU Bài 1.1 Chạy chương trình: x=-5:0.1:5; Px=1/(sqrt(2*pi))... 0.01 xt=sin(randn()+t).*cos(rand()*t); % Tin bien -1 den [inx xqt] = lquan(xt,-1,1,randi(3)+1); plot(t,xt,'b',t,xqt,'r'); grid on; title('Do thi cua tin hieu x(t) va x_q(t)'); xlabel('t'); legend('x(t)','x_q(t)');... deu va tin hieu sin SNqR_lt = 6.02*nbit; ly thuyet Ps_uni = sum(x_uni.^2)/N; (3-3) Ps_sin = sum(x_sin.^2)/N; for i = 1:size(nbit,2) cua n [indx_uni xq_uni] = lquan(x_uni,-1,1,nbit(i tu hoa tin hieu