Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 19 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
19
Dung lượng
435,99 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 THƠNG TIN SỐ ( ET3250) Họ tên Mssv Mã lớp TN Nhóm TN BUỔI THÍ NGHIỆM : Bài 1.1 Mã nguồn matlab: x=-5:0.1:5; %Tạo vector x Px=(1/sqrt(2*pi))*exp(-power(x,2)/2); %P(x) ứng với giá trị x plot(x,Px); %Vẽ đồ thị xlabel('x'); % Dán nhãn x ylabel('P(x)'); %Dán nhãn y Kết mô Trả lời câu hỏi : 1.1 Mơ tả hình dạng đồ thị hàm P(x) : Đồ thị có dạng hình chng Hàm P(x) biểu thị cho hàm số mũ lũy thừa có số e 1.2 Ý 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 độ phân bố tập trung thông tin thời gian xác định 1.3 Nếu thay đổi kỳ vọng u phương sai P(x) thay đổi Nếu tăng kỳ vọng phương sai đồ thị có xu hướng thoải lệch sang bên phải Đó đăc trưng hàm lũy thừa Bài 1.2: Mã nguồn Matlab: leng=100000; % Độ dài trình ngẫu nhiên x=randn(1,leng); %Tạo trình ngẫu nhiên theo pp chuẩn step=0.1; %step = 0.1; k=-5:step:5; %vector k px=hist(x,k)/leng/step; % Phân bố xác suất vào khoảng vector k stem(k,px); hold on; Px_theo=(1/sqrt(2*pi))*exp(-power(k,2)/2); plot(k,Px_theo); title('Phan bo xac suat Gauss'); xlabel('x'); ylabel('P(x)'); legend('Analysis','Simulation'); hold off; Kết mô Trả lời câu hỏi : Kết hai hàm mô lý thuyết tương đồng với Thay đổi trình ngẫu nhiên lên 10000000 phần tử Kết xác so với kết cũ , thay đổi độ dài trình ngẫu nhiên xác Câu lệnh : px= hist(x,k) /len/step phải chia cho len để tạo net liền phải chia cho step để tăng độ dài phần tử Bài 2.1 Hàm lquan function [id qy]= lquan(x,xmin,xmax,nbit) nlevel = 2^nbit; q = (xmax-xmin)/nlevel; [id qy] = quantiz(x,xmin+q:q:xmax-q,xmin+q/2:q:xmax-q/2); Chạy chương trình: xs = rand(1,5)*2-1; [xi xq] = lquan(xs,-1,1,3) Trả lời câu hỏi xs = [0.6180 xi = [ xq = [0.6250 Bài 2.2 Mã nguồn Matlab: t=0:0.01:20; %Thời gian xt=sin(randn()+t).*cos(rand()*t); %Tín hiệu x(t) [inx xqt]=lquan(xt,-1,1,randi(3)+1); %Lượng tử hóa plot(t,xt); %Vẽ đồ thị x(t) hold on; plot(t,xqt); %Vẽ đồ thị lượng tử xlabel('time'); %Dán nhãn x ylabel('signal'); %Dán nhãn y Kết mô phỏng: Trả lời câu hỏi : Số bit dung để lượng tử cho mẫu tín hiệu : n=3 ( mức lượng tử hóa ) Bước lượng tử q: q=0.25 Mức biên độ 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 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 quả: SNqR_lt= [6.0200 36.1200 SNqR_uni= [6.1217 36.2382 SNqR_sin= [6.4171 38.1620 Trả lời câu hỏi : Khi n tăng lên SNqR tăng lên lần SNqR phụ thuộc vào n , mà khơng phụ thuộc vào kích thước lượng tử dải biên độ lượng tử : SNqR= 3 n 2 (2 ) ( n độ dài từ mã ) Khi thay đổi tín hiệu x tín hiệu điều hịa giá trị SNqR thay đổi so với x phân bố BUỔI THÍ NGHIỆM 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 Đồ thị tín hiệu hàm tương quan - Code : L=500; x=randn(1,L); x1=linspace(-1,1,L); x2=sin(linspace(-10,10,L)); [acorr_x nx]=xcorr(x); [acorr_x1 nx1]=xcorr(x1); [acorr_x2 nx2]=xcorr(x2); figure; plot(nx,acorr_x); xlabel('n'); ylabel('R_{xx}'); figure; plot(nx1,acorr_x1); xlabel('n'); ylabel('R_{xx}'); figure; plot(nx2,acorr_x2); xlabel('n'); ylabel('R_{xx}'); - Kết mô - Trả lời câu hỏi : Đồ thị hàm tự tương quan trường hợp tổng qt ln biên độ ln tăng dần đạt cực đại Giá trị cực đại hàm tự tương quan nằm khoảng bên phải đồ thị Hàm tương quan trường hợp tín hiệu khác yêu cầu thí nghiệm hầu hết khác hẳn đầu vào khác 4.2 Biến đổi Fourier hàm tự tương quan Code L=50; x=rand(1,L); % 50 mẫu ngẫu nhiên từ đến N=200; % Số lượnng tần số rời rạc w=linspace(0,2*pi,N); % w từ - 2*pi fx=freqz(x,1,w); %Biến đổi fourier vector x esd_x=fx.*conj(fx); %esd_x bình phương biên độ fx acorr_x=xcorr(x); %Tự tương quan x ft_acorr_x=freqz(acorr_x,1,w); %Phổ hàm từ tương quan chưa xác ft_acorr_x=freqz(acorr_x,1,w).*exp(j*w*(N-1)); % Phổ hàm tự tương quan subplot(2,1,1); semilogy(w/pi,esd_x); xlabel('\omega (\pix)'); ylabel('S(e^{j\omega)}'); subplot(2,1,2); semilogy(w/pi,real(ft_acorr_x),'r'); xlabel('\omega (\pix)'); ylabel('FT[r_{xx}(n)]'); Kết mô Trả lời câu hỏi : Phổ biên độ rời rạc tín hiệu có đặc điểm biến đổi liên tục miền tần số Đồ thị phổ tín hiệu esd_x ft_acorr_x : 10 - Với esd_x đồ thị phổ biên độ biên độ - Với ft-acorr_x đồ thị có biên độ tăng dần Khi vẽ đồ thị cách trục hồnh w/pi cách trục hoành 2k/N để tránh chổng phổ Chọn N >200 để kết xác Ý nghĩa ứng dụng định lý Weiner-Khintchine thông tin số : Phổ tần số hàm tự tương quan hàm mật độ phổ lượng tín hiệu số Bài số : Mã đường dây NRZ - Code : len=100000; SNR_db=0:2:8; SNR= 10.^(SNR_db/10); bsignal=randi(2,1,len)-1; NRZ_signal=bsignal*2-1; N0=1./SNR; BER=zeros(1,length(SNR_db)); for i=1:length(SNR_db) noise=sqrt(N0(i))*randn(1,len); r_signal=NRZ_signal+noise; NRZ_decoded=sign(r_signal); BE_sum=sum(NRZ_signal~=NRZ_decoded); BER(i)=BE_sum/len; end Pe=(1/2)*(1-erf(sqrt(SNR/2))); plot(SNR,Pe); hold on; plot(SNR,BER,'o'); xlabel('SNR'); ylabel('BER'); - Kết mô 11 - Trả lời câu hỏi - Phải sử dụng mã đường dây : Chuyển đổi tín hiệu băng gốc miền tần số cao để vào băng thông đường dây , tăng mật độ chuyển đổi tích cực tín hiệu Giúp kiểm sốt lỗi Khi tỷ sơ SNR tăng xác suất lỗi giảm tỉ lệ nghịch với Kết đồ thị phù hợp với lý thuyết 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 khơng mang dấu có hai loại tín hiệu NRZ đơn cực lưỡng cực 12 Kết : SNR Pe lý thuyết BER mô Nhận xét : Kết qủa thay đổi nhiều SNR tăng dần BUỔI THÍ NGHIỆM BÀI 6: KỸ THUẬT ĐIỀU CHẾ SỐ QPSK Chạy chương trình: len = 50000; SNR_db = 0; SNR = 10^(SNR_db/10); bsignal = randi([0 1],1,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 '); 13 Kết quả: SNR = dB Với SNR = dB Với SNR = dB 14 Trả lời câu hỏi : 33 Điều chế tín hiệu để mang thông tin xa Phải điều chế số tín hiệu mã hóa bảo mật tốt Khối điều chế đóng vai trị trung gian quan trọng q trình xử lý tín hiệu để truyền 34 Kết mơ : tín hiệu thu có dạng vùng mây bao quanh điểm chịm 35.Trong điều chế PSK , phía thu giải mã sai mức điều chế khác với bên phát 36 Năng lượng tín hiệu Es lượng bit Eb trường hợp : Es=3db, Eb=1.5dB BÀI 7: XÁC SUẤT LỖI BIT TRONG ĐIỀU CHẾ QPSK Chạy chương trình: len SNR_db = 0:2:8; SNR bsignal = randi([0 1],1,len); % Thuc hien dieu che QPSK for i=1:2:len = 50000; = 10.^(SNR_db/10); 15 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 if real(r_signal((j+1)/2))>=0 if imag(r_signal((j+1)/2))>=0 r_bsignal(j) = r_bsignal(j+1) else r_bsignal(j) = r_bsignal(j+1) end else if imag(r_signal((j+1)/2))>=0 r_bsignal(j) = r_bsignal(j+1) else r_bsignal(j) = r_bsignal(j+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ả: 16 SNR Pb lý thuyết BER mô Trả lời câu hỏi : 37 So sánh điều chế BPSK QPSK - Về xác suất lỗi bit : Xác suất lỗi bit BPSK QPSK , tương quan QPSK có tỷ lệ thấp - QPSK giảm BER , tăng hiệu suất phổ , tốc độ truyền liệu BPSK 38 Một số hệ thống thực tế sử dụng điều chế QPSK : ứng dụng vào truyền hình số 17 BÀI 8: MƠ PHỎNG ĐIỀU CHẾ M-QAM QUA KÊNH NHIỄU GAUSS Chạy chương trình: n_sym M= SNR_db = 0:25; BER for = 50000; [16 32 64]; = zeros(length(M),length(SNR_db)); k = 1:size(M,2) s_stream = randi([0 M(k)-1],1,n_sym); 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 MQAM [num ratio] = biterr(s_stream,s_demod); % Tinh ti le loi bit BER(k,r) = ratio; % 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 quả: 18 SNR 16-QAM 32-QAM 64-QAM Trả lời câu hỏi : 39 Khi số mức điều chế M tăng BER thay đổi giảm dần Nhưng, tăng lên lớn khả khơi phục tín hiệu 40 Số mức điều chế tăng lên cao làm khả khơi phục tín hiệu nên khơng thể tăng lên lớn 19 ... 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);... 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... ft_acorr_x=freqz(acorr_x,1,w).*exp(j*w*(N-1)); % Phổ hàm tự tương quan subplot(2,1,1); semilogy(w/pi,esd_x); xlabel('omega ( pix)'); ylabel('S(e^{jomega)}'); subplot(2,1,2); semilogy(w/pi,real(ft_acorr_x),'r');