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

BÁO cáo THÍ NGHIỆM THÔNG TIN số ( ET3250)

19 17 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 19
Dung lượng 611,23 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 : Đậu Công Dụng Mssv : 20172504 Mã lớp TN : 713389 Nhóm TN : T02 Hà Nội, 2022 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ị của 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 của quá trình ngẫu nhiên  x=randn(1,leng); %Tạo quá 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);  % Vẽ lên đồ thị hold on;  Px_theo=(1/sqrt(2*pi))*exp(-power(k,2)/2);  plot(k,Px_theo);  title('Phan bo xac suat Gauss'); % Tiêu đề  xlabel('x'); % Dán nhãn x  ylabel('P(x)'); % Dán nhãn y  legend('Analysis','Simulation'); % Chú thích  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    0.0006    0.9721    0.2069   -0.3657] xi = [                 2] xq = [0.6250    0.1250    0.8750    0.1250   -0.3750 ] 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   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 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 2 n biên độ lượng tử : SNqR= ( ) ( 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 độ 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 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 dB dB dB dB dB Pe lý thuyết 0.27 0.16 0.09 0.03 0.006 BER mô 0.08 0.06 0.02 0.004 0.0002 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;                % 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 '); 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 = 50000;                % SNR_db = 0:2:8;             % SNR = 10.^(SNR_db/10);      % bsignal = randi([0 1],1,len); % Thuc hien dieu che QPSK for i=1:2:len Do dai dong bit mo phong Tao vector SNR_db = Doi SNR tu Decibel sang lan   % Tao dong bit ngau nhien dai len 15     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;                 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ả: 16 SNR 0dB 2dB 4dB 6dB 8dB Pb lý thuyết 0.1587    0.1040    0.0565    0.0230    0.0060 BER mô 0.1606    0.1043    0.0551    0.0221    0.0062 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 = 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 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 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);  % 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 0dB 0.288 0.330 0.360 5dB 0.164 0.224 0.263 10dB 0.058 0.116 0.152 15dB 0.004 0.028 0.063 20dB 0 0.008 25dB 0 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 ... 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');... %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');... 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}');

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

TỪ KHÓA LIÊN QUAN

w