Báo cáo thí nghiệm Thông tin số - ĐTVT Bách Khoa Hà Nội k57

Chia sẻ: Lê Hồng Thái | Ngày: | Loại File: DOCX | Số trang:19

0
271
lượt xem
87
download

Báo cáo thí nghiệm Thông tin số - ĐTVT Bách Khoa Hà Nội k57

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tài liệu Báo cáo thí nghiệm thông tin số dành cho các sinh viên Điện tử viễn thông tham khảo. Hy vọng tài liệu hữu ích phục vụ nhu cầu học tập và nghiên cứu của các bạn.

Chủ đề:
Lưu

Nội dung Text: Báo cáo thí nghiệm Thông tin số - ĐTVT Bách Khoa Hà Nội k57

  1. Thông tin số Hà Nội 2014 Bao cao thı́ nghiem Thong tin số ́ ́ ̣̂ ̂ Mã học phần : ET3250 Họ tên sinh viên : Lê Hồng Thái Mã số sinh viên : 20112207 Lớp : ĐTTT-03 K56 Ngày làm thí nghiệm : 26/02 /2014 Ngày nộp báo cáo : 12/3/2014
  2. Thông tin số Hà Nội 2014 Bài 1: QUÁ TRÌNH NgẪU nhiên của tín hiệu 1.1 code x = -5:0.01:5; Px = exp(-x.^2/2)/sqrt(2*pi); plot(x,Px,'r'); title('Tin hieu ngau nhien Phan phoi chuan'); xlabel('x'); ylabel('Pe'); 1.2 code len = 100000; % Do dai cua qua trinh ngau nhien x = randn(1,len); % Tao qua trinh ngau nhien (phan phoi chuan) step = 0.05; % khoang cach lay mau 0.05 k = -5:step:5; % khoang xet -5 -> 5, cach deu 0.1 Px = hist(x,k)/len/step; % tinh xac suat ngau nhien
  3. Thông tin số Hà Nội 2014 stem (k, Px); % ve do thi roi rac cua QT ngau nhien Px_lithuyet = exp(-k.^2/2)/ sqrt(2*pi); % tinh xac suat phan bo theo ly thuyet hold on; % ve 2 do thi tren cung truc toa do plot (k, Px_lithuyet, 'r' ); % do thi ly thuyet title (' phan bo xac suat Gauss '); % tieu de xlabel(' x ' ); % truc hoanh ylabel(' Px '); % truc tung legend('Ly thuyet', 'Mo phong' ); % chu thich hold off; % tat che do 2 do thi. Bài 2: Lượng Tử Hóa Tuyến tính 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); 2.1 code
  4. Thông tin số Hà Nội 2014 a= [ -0.2 1.9 3.2 -2.5]; % vidu ham lquan [ indx qy ] = lquan (a,-4,4,2); % vidu ham lquan xs= rand(1,5) *2-1; % lay 5 mau bang lenh random [xi xq] = lquan (xs,-1,1,3); % su dung ham lquan 2.2 code t = 0:0.01:20; xt = sin (rand() + t ).* cos (rand() *t); % Tin hieu vao [inx xqt] = lquan (xt, -1, 1,randint(1,1,3) +2 ); % xqt tin hieu da duoc luong tu hoa hold on; % mo ve 2 do thi plot(t,xt); % do thi tin hieu vao plot(t, xqt,'r'); % do thi tin hieu da luong tu hoa title ('Luong Tu Hoa Tuyen Tinh'); % tieu de xlabel('t'); % nhan truc x ylabel('xt xqt'); % nhan truc y legend('Tin hieu dau','Tin hieu qua Luong Tu'); % giai thich tung duong tren do thi hold off; Bài 3: tập âm lượng tử trong kĩ thuật Lượng Tử Hóa tuyến tính
  5. Thông tin số Hà Nội 2014 3.1 code N =1000; x = 2*rand(1,N) -1; % x phan bo deu tu -1 den 1 nbit = 1 :10; % so bit luong tu hoa tu 1 den 10 SNqR = zeros (size (nbit)); % khoi tao mang SNqR chua ket qua SNqR_lt = 6.02 *nbit; % mang SNqR_lythuyet tinh theo Ly thuyet Ps = sum (x.^2)/N; % Cong suat tin hieu x % tinh gia tri SNqR ung voi moi gia tri nbit n = [1 2 3 4 5 6 7 8 9 10]; for i=1:size(n,2) % tra ve so cot n [xi xq] = lquan (x,-1,1,nbit(i) ); % Luong tu hoa voi ket qua dua vao xq eq = x - xq; % Tinh sai so Pq= sum (eq.^2)/N; % Cong suat tap am luong tu SNqR(i) = 10 .* log (Ps ./Pq) ; % ti so nhieu %end end plot (nbit,SNqR ,'r',nbit,SNqR_lt); % do thi ly thuyet title('Luong tu hoa Tuyen Tinh'); xlabel('nbit'); ylabel('SNqR'); legend('SNqR mo Phong', 'SNqR Ly Thuyet') 3.2 code
  6. Thông tin số Hà Nội 2014 N =1000; x = sin(linspace(1,5,N)); % x phan bo deu tu -1 den 1 nbit = 1 :10; % so bit luong tu hoa tu 1 den 10 SNqR = zeros (size (nbit)); % khoi tao mang SNqR chua ket qua SNqR_lt = 6.02 *nbit; % mang SNqR_lythuyet tinh theo Ly thuyet Ps = sum (x.^2)/N; % Cong suat tin hieu x % tinh gia tri SNqR ung voi moi gia tri nbit n = [1 2 3 4 5 6 7 8 9 10]; for i=1:size(n,2) % tra ve so cot n [xi xq] = lquan (x,-1,1,nbit(i) ); % Luong tu hoa voi ket qua dua vao xq eq = x - xq; % Tinh sai so Pq= sum (eq.^2)/N; % Cong suat tap am luong tu SNqR(i) = 10 .* log (Ps ./Pq) ; % ti so nhieu %end end plot (nbit,SNqR ,'r',nbit,SNqR_lt); % do thi ly thuyet title('Luong tu hoa Tuyen Tinh'); xlabel('nbit'); ylabel('SNqR'); legend('SNqR mo Phong', 'SNqR Ly Thuyet') Bài 4: Mật độ phổ năng lượng và hàm tu tương quan của tín hiệu 4.1 code
  7. Thông tin số Hà Nội 2014 L =500; x1 = randn(1,L); % Tin hieu ngau gien roi rac phan phoi Chuan x2 = linspace(-1,1,L); % Tin hieu co bien do tang dan x3 = sin(linspace(-10,10,L)); % Tin hieu sin cua t/h co bien do tang dan [acorr_x1 n1] = xcorr(x1); % Ham tu tuong quan cua t/h x1 [acorr_x2 n2] = xcorr(x2); % Ham tu tuong quan cua t/h x2 [acorr_x3 n3] = xcorr(x3); % Ham tu tuong quan cua t/h x3 plot( n1, acorr_x1,'r',n2, acorr_x2,'g',n3, acorr_x3); title('Ham tuong Quan'); % Tieu de xlabel('n'); % Truc hoanh ylabel('Rxx'); % Truc tung legend('x1 Ngau Nhien', 'x2 Bien Do Tang Dan Deu', ' x3 Tin Hieu sin(cua TH bien do tang dan)'); grid on % bat luoi do thi 4.2 code L = 50; % do dai mau x = randn(1,L); % tin hieu ngau nhien x N = 200; % 200 tan so roi rac w = linspace (0,2*pi,N); % chia mau tan so [acorr_x n] = xcorr(x); % ham tuong quan x
  8. Thông tin số Hà Nội 2014 f_acorr_x = freqz(acorr_x,1,w).* exp(1i*w*(L-1)); % pho cua ham tu tuong quan x esd_x = f_acorr_x .* conj (f_acorr_x); % mat do pho nang luong x subplot(2,1,1); % semilogy(w/pi,esd_x); % do thi mat do pho nang luong title('Mat do pho nang luong '); % tieu de xlabel('w/pi '); % truc hoanh ylabel('esd_ x'); % truc tung subplot(2,1,2); % semilogy(w/pi,real(f_acorr_x),'r'); % di thi Pho ham tuong quan title('Pho ham tu tuong quan'); % tieu de xlabel('w'); % truc hoanh ylabel('f_ acorr_ x'); % nhan truc tung Bài 5: Mã đường dây NRZ 5.1 code len = 100000; % Do dai dong bit mo phong SNR_db = 0:2:8; % vecto SNR_db = [0 2 4 6 8] SNR = 10.^ (SNR_db/10); % doi SNR tu deciben sang lan bsignal = randint(1,len); % dong bit ngau nhien do dai 'len' NRZ_signal = bsignal* 2 -1; % doi dong 0 1 sang -1 1 N0 = 1./SNR; % cong suat tap am Pe= [0 2 4 6 8];
  9. Thông tin số Hà Nội 2014 for i =1:length(SNR_db) noise = sqrt(N0(i)) * randn(1,len); % nhieu tap am r_signal = NRZ_signal + noise; % Tin hieu thu duoc NRZ_decoded = sign(r_signal); end d=0; for l = 1:len % dem so loi bit if (NRZ_signal(i) == NRZ_decoded(i)) % dem so loi bit d = d+1; % dem so loi bit end % dem so loi bit end d= d/len; Pe (i) =d; plot(SNR_db,Pe,'r'); % ti le loi bit tren duong truyen title ('Ma duong day NRZ'); xlabel('SNR_db'); ylabel('Pe'); 5.2 code
  10. Thông tin số Hà Nội 2014 len = 100000; % Do dai dong bit mo phong SNR_db = 0:2:8; % vecto SNR_db = [0 2 4 6 8] SNR = 10.^ (SNR_db/10); % doi SNR tu deciben sang lan bsignal = randint(1,len); % dong bit ngau nhien do dai 'len' NRZ_signal = bsignal* 2 -1; % doi dong 0 1 sang -1 1 N0 = 1./SNR; % cong suat tap am Pe= [0 2 4 6 8]; Pe_lt = [1 2 3 4 5]; for i =1:length(SNR_db) noise = sqrt(N0(i)) * randn(1,len); % nhieu tap am r_signal = NRZ_signal + noise; % Tin hieu thu duoc NRZ_decoded = sign(r_signal); d=0; end for l = 1:len % dem so loi bit if (NRZ_signal ~= NRZ_decoded) % dem so loi bit d = d+1; % dem so loi bit end % dem so loi bit end d= d/len; Pe (i) =d; hold on plot(SNR_db,Pe,'r'); % ti le loi bit tren duong truyen for k =1:length(SNR_db) Pe_lt = 1/2 * (1- erf(1/ sqrt(2) *sqrt(SNR))); end plot (SNR_db,Pe_lt); title ('ma duong day NRZ'); xlabel ('SNR_db'); ylabel ('Pe'); legend('Pe li Thuyet', 'BER Mo phong'); hold off Bài 6: Điều chế QPSK
  11. Thông tin số Hà Nội 2014 6.1 code len = 50000; signal = randint (1, len); qpsk_signal = zeros(1,len); for i =1:2:len if (signal(i)==0 && signal(i+1) == 0) qpsk_signal(i) = exp(1j*pi/4); elseif signal(i) == 0 && signal(i+1) ==1 qpsk_signal(i) = exp (3*1j* pi/4); elseif (signal(i) == 1 && signal(i+1) ==1) qpsk_signal(i)= exp (5*1i* pi/4) ; elseif signal(i) == 1 && signal(i+1) ==0 qpsk_signal(i)= exp (7*1j* pi/4) ; end end plot(qpsk_signal,'r--'); hold on t=0:0.01:2*pi ; % khai báo biến t plot(exp(j*t),'k--') ; 6.2 code len = 5000; signal = randint (1, len); qpsk_signal = zeros(1,len); % Sinh ra ma tran de chua
  12. Thông tin số Hà Nội 2014 qpsk_noise = zeros(1,len); % sinh ra ma tran de chua SNR_db = 6; % ti le tin hieu tren tap am SNR = 10^ (SNR_db/10); % doi sang deciben for i =1:len-1 % doan for de TAO TIN HIEU PHUC if (signal(i)==0 && signal(i+1) == 0) qpsk_signal(i) = exp(1j*pi/4); elseif signal(i) == 0 && signal(i+1) ==1 qpsk_signal(i) = exp (3*1j* pi/4); elseif (signal(i) == 1 && signal(i+1) ==1) qpsk_signal(i)= exp (5*1i* pi/4) ; elseif signal(i) == 1 && signal(i+1) ==0 qpsk_signal(i)= exp (7*1j* pi/4) ; end end Es= std(qpsk_signal)^2; % Nang luong cua ki hieu N0= Es/SNR; % Cong suat tap am noise = sqrt(N0/2)* (randn(1,len) + 1i* randn(1,len)); % Nhieu for i= 1:len qpsk_noise(i) = qpsk_signal(i) + noise(i); % Tin hieu qua nhieu trang end plot (qpsk_noise,'.'); Bài 7: Mô phỏng điều chế Qpsk qua kênh nhiễu gaus Code: leng=1000; % độ dài dòng bit mô phỏng chance_signal=randi([0,1],1,leng); % tạo dòng bit ngẫu nhiên có độ dài leng snr_db=0:2:8; %tạo bộ vecto nhiễu SNR=0, 2, 4 , 6, 8 [dB] snr=10.^(snr_db/10); % đổi từ dB sang lần for i=1:2:leng % vòng lặp điều chế QPSK
  13. Thông tin số Hà Nội 2014 if (chance_signal(i)==0 & chance_signal(i+1)==0) qpsk_signal((i+1)/2)=exp(j*pi/4); else if (chance_signal(i)==0 & chance_signal(i+1)==1) qpsk_signal((i+1)/2)=exp(j*3*pi/4); else if (chance_signal(i)==1 & chance_signal(i+1)==0) qpsk_signal((i+1)/2)=exp(j*7*pi/4); else qpsk_signal((i+1)/2)=exp(j*5*pi/4); end end end end % vòng lặp xác định số lỗi bít ứng với giá trị SNR[dB] khác nhau for i=1:length(snr_db) c(i)=cha(snr_db(i),qpsk_signal,chance_signal); % tính số bit lỗi với hàm dựng cha end BEP=c/length(chance_signal); % tính tỉ lệ bit lỗi plot(snr_db,BEP,'*--'); hold on; grid on title ('BER/ SR') xlabel ('[dB] ');
  14. Thông tin số Hà Nội 2014 ylabel ('BER' ); % Code hàm “cha()” đã dùng trong bài: function y=cha1(SNR_db,S,x) Es=var(S); Eb=Es/2; N_0=Eb/10^(SNR_db/10); N0=sqrt(N_0/2)*(randn(size(S))+j*randn(size(S))); % tạo nhiễu trắng phức NS=S+N0; % tín hiệu thu được theta_m=[pi/4,3*pi/4,5*pi/4,7*pi/4]; S_m=exp(j*theta_m); % vòng lặp so sánh độ lệch của kí hiệu thu được với các giá trị kí hiệu chuẩn. for i=1:length(S) d=abs(S_m-NS(i)); md=min(abs(S_NS(i ))); if md==d(1); R(2*i1) =0; R(2*i)= 0; Else if md==d(2 );
  15. Thông tin số Hà Nội 2014 R(2 *i-1)=0; R(2*i)=1; Else If md==d(3); R (2*i-1)=1; R(2*i)=1; Else if md==d(4); R (2*i1 )=1; R(2*i )=0; end e nd end end end c=0; % mặc định biến đếm lỗi bit bằng 0 for i=1:length(x) if R(i )~=
  16. Thông tin số Hà Nội 2014 x(i ); c=c +1; end end y=c; % trả về y Bài 8:Xác suất lỗi bít trong điều chế QPSK Code: leng=1000; signal=randi([0,1],1,leng); SNR_db=0:2:8; SNR=10.^(SNR_db/10);
  17. Thông tin số Hà Nội 2014 for i=1:2:leng if (signal(i)==0 & signal(i+1)==0) qpsk_signal((i+1)/2)=exp(j*pi/4); else if (signal(i)==0 signal(i+1)==1) qpsk_signal((i+1)/2)=exp(j*3*pi/4); else if (signal(i)== signal(i+1)==0) qpsk_signal((i+1)/2)=exp(j*7*pi/4); else qpsk_signal((i+1)/2)=exp(j*5*pi/4); end end end end for i=1:length(snr_db) c(i)=cha(snr_db(i),qpsk_signal, signal); end BEP=c/length(sign al); plot(SNR_db,BER,' ^--'); hold on; % Phần Code trên để vẽ đồ thị mô phỏng ĐIỀU CHẾ QPSK QUA KÊNH NHIỄU TRẮNG ( giống bài 5, xem ý nghĩa hàm, biến ở bài 5) pb=erfc(sqrt(2*snr)/sqrt(2))/2; %Công thức tính xác suất lỗi bit theo lý thuyết plot(snr_db,pb,'ro-'); % Vẽ đường Lý thuyết grid on; % mở lưới title('Ti le loi Bit'); xlabel('SNR [dB]'); ylabel('BER');
  18. Thông tin số Hà Nội 2014 legend('Mo phong','Li thuyet');
  19. Thông tin số Hà Nội 2014

CÓ THỂ BẠN MUỐN DOWNLOAD

Đồng bộ tài khoản