You are on page 1of 11

Bo co th nghim thng tin s 2013

BO CO TH NGHIM THNG TIN S


Sinh vin thc hin: Nguyn Trung Dng MSSV: 20101286 Lp: T VT 06 K55 Ngy lm th nghim: 29/ 03/ 2013 Ngy np bo co: 12/ 04/ 2013

Bi S 1. Qu trnh ngu nhin ca tn hiu


1.1. th hm phn b xc sut Gauss

Code
step = 0.1; x= -5:step:5; px = (1/sqrt(2*pi))*exp(-x.^2/2); plot(x,px); xlabel('x'); ylabel('P(x)'); title('do thi phan bo xac suat Gauss');

% % % %

ve do thi tieu de truc x tieu de truc y tieu de do thi

Hnh v m phng
do thi phan bo xac suat Gauss 0.4

0.35

0.3

0.25

P(x)

0.2

0.15

0.1

0.05

0 -5

-4

-3

-2

-1

0 x

Bo co th nghim thng tin s 2013


1.2. To mt qu trnh ngu nhin Code
len=100000; % do dai cua qua trinh ngau nhieu x=randn(1,len); % tao qua trinh ngau nhien theo phan phoi chuan step=0.1; k=-5:step:5; % khoang xet tu -5 den 5 va co khoang cach la 0.1 px=hist(x,k)/len/step; % ham phan bo xac suat stem(k,px); % do thi roi rac phan bo px_lythuyet=exp(-k.^2/2)/sqrt(2*pi); % ham tinh hold on; % giu do thi o lai plot(k,px_lythuyet,'r'); % ve do thi ham title('Phan bo xac suat Gauss'); % tieu de cua do thi xlable('x'); % ten truc hoanh ylable('y'); % tien truc tung legend('mo phong', 'ly thuyet'); % ki hieu hold off;

Hnh v m phng
Phan bo xac suat Gauss 0.45 0.4 0.35 0.3 0.25 ly thuyet mo phong

y
0.2 0.15 0.1 0.05 0 -5

-4

-3

-2

-1

0 x

Bi s 2. Mt ph nng lng v hm t tng quan ca tn hiu

Bo co th nghim thng tin s 2013


2.1. Xy dng hm t tng quan ca qu trnh ngu nhin bi 1.2 Code
x = randn(1,100); %tao vec to ngau nhien co 100 phan tu y = xcorr(x,x); %tinh ham tuong tu quan cua tin hieu x stem(y); %ve do thi cua ham tuong tu quan title ('do thi ham tu tuong quan tin hieu x'); %dat ten tieu de xlabel ('n'); %truc x ylabel ('xcorr_x'); %truc y

Hnh m phng

2.2. Hm mt ph nng lng Code


x=randn(1,100); %tao vec to x co 100 phan tu y=xcorr(x); %tinh ham tu tuong quan cua vec to x esd_x = (fft(x,1000)).^2 %tinh mat do pho nan luong cua vec to x. Chon n=1000 ft_acorr_x = fft(y,1000); %tinh mat do pho cua ham tu tuong quan stem(esd_x); hold on; stem(ft_acorr_x,'r'); title('ham mat do pho nang luong cua x va ham mat do pho tuong tu quan'); xlabel('n');

Bo co th nghim thng tin s 2013


ylabel('fft(x,N'); legend('nang luong', 'tu tuong quan'); hold off;

Hnh m phng

Bi s 3. M ng dy NRZ
3.1. H thng truyn s dn bng tn c s Code
len = 10^5 ; bsignal = randint(1,len); % tao mot vecto len bit ngau nhien NRZ_signal = 2*bsignal-1; % dieu che BPSK, u noise = 1/sqrt(2)*[randn(1,len)]; % tao mot nhieu phuc Gauss SNR_db = 0:2:8; % ti le tin hieu tren tap am [dB] for i = 1:length(SNR_db) NRZ_rsignal = NRZ_signal + 10^(-SNR_db(i)/20)*noise; % cong nhieu trang NRZ_decoded = sign(NRZ_rsignal)>0; % ki hieu thu duoc c(i) = nnz([bsignal- NRZ_decoded]); end BER = c/len; theoryBer = 0.5*erfc(sqrt(10.^(SNR_db/10))); % xac suut loi bit ly thuyet save bpsk BER; % luu file de phuc vu Bai 3.2 semilogy(SNR_db,BER,'b.-'); xlabel('SNR_db[dB]'); ylabel('BER');

Bo co th nghim thng tin s 2013


title('ti le BER/SNR_db');

Hnh m phng

3.2. So snh vi cng thc l thuyt Code


SNR_db = 0:2:8; for i = 1:length(SNR_db) SNR(i)=10^(SNR_db(i)/10); p(i)=1/2*[1-erf(1/sqrt(2)*sqrt(SNR(i)))]; end semilogy(SNR_db,p,'b--'); xlabel('SNR[dB]'); ylabel('Pe'); title('Do thi so sanh ly thuyet va mo phong'); load bpsk BER; hold on; semilogy(SNR_db,BER,'r-'); legend('Ly thuyet', 'Mo phong'); hold off;

Hnh m phng

Bo co th nghim thng tin s 2013

Bi s 4. iu ch QPSK
4.1. Biu chm sao ca tn hiu iu ch QPSK v m ha theo m Gray Code
clear; x = randint(1,100000); % tao bien ngau nhieu 0 va 1 plot(x); for i = 1:2:length(x) if x(i)== 0 & x(i+1) == 0 s((i+1)/2) = exp(j*pi/4); elseif x(i) == 0 & x(i+1) == 1 s((i+1)/2) = exp(j*3*pi/4); elseif x(i) == 1 & x(i+1) == 1 s((i+1)/2) = exp(j*5*pi/4); elseif x(i) == 1 & x(i+1) == 0 s((i+1)/2) = exp(j*7*pi/4); end end save ex5p1_res s x; plot(s,'o'); hold on; t = 0:0.01:2*pi; plot(exp(j*t),'r--'); % luu bai lai dung cho bai sau

Bo co th nghim thng tin s 2013


xlabel('\phi(t)'); ylabel('S_m'); title('Bieu do khong gian trang thai QPSK voi ma gray');

Hnh m phng

4.2. Cho tn hiu trn qua knh nhiu trng AWGN Code
clear; load ex5p1_res; es = var(s); eb = es/2; snr_db = 6; % gia thiet n_0 = eb/10^(snr_db/10); n = sqrt(n_0/2)*(randn(size(s)) + j*randn(size(s))); % mien nhieu gauss r = s + n; plot(r,'.'); hold on; plot(s,'r*'); hold on; % tin hieu cong nhieu %load phan da luu o bai 4

% ve do thi chom sao QPSK

Bo co th nghim thng tin s 2013


t = 0:0.01:2*pi;m plot(exp(j*t),'r--'); % ve duong trong don vi net mau do legend('S_m','S'); xlabel('I'); ylabel('Q'); title('The complex signal-space diagram of 4-QPSK');

Hnh m phng

Bi s 5. M phng h thng truyn dn s bng tn c s QPSK


Code
% Ham giai dieu che QPSK va dem loi xuat hien trong qua trinh phat % luu voi ten %'cha' function y = cha(SNR_db,S,x) Es = var(S); Eb = Es/2; N_0 = Eb/10^(SNR_db/10); % tu SNR_db=10log(Eb/N_0) N0 = sqrt(N_0/2)*(randn(size(S)) + j*randn(size(S))); % tao nhieu trang phuc NS = S + N0; % tin hieu thu duoc theta_m = [pi/4,3*pi/4,5*pi/4,7*pi/4]; S_m = exp(j*theta_m); % vong lap so sanh do lech cua ki hieu thu duoc % voi cac gia tri ki hieu chuan. for i = 1:length(S)

Bo co th nghim thng tin s 2013


d = abs(S_m-NS(i)); md = min(abs(S_m-NS(i))); if md == d(1) R(2*i-1) = 0; R(2*i) = 0; elseif md == d(2) R(2*i-1)=0; R(2*i)=1; elseif md==d(3) R(2*i-1)=1; R(2*i)=1; elseif md==d(4) R(2*i-1)=1; R(2*i)=0; end end c = 0; for i = 1:length(x) if R(i)~=x(i) c = c+1; end end y =c ; end % mac dinh bien dem loi bit bang 0

% tra ve y

% Main function: clear all load Bai4p1 s x % load file exp5p1_Res c luu Bai 4.1 SNR_db = 0:2:8; % vong lap xac dinh so loi bit ung voi gia tri SNR[dB] khac nhau for i = 1:length(SNR_db) c(i) = cha(SNR_db(i),s,x); end BEP = c/length(x); % xac suat loi bit semilogy(SNR_db,BEP,'.--'); % ve do thi net '.--' title('Do thi ti le loi bit voi ti le tin hieu tren nhieu'); xlabel('SNR[dB]'); ylabel('Pb'); save Bai5 c BEP;

Hnh m phng

Bo co th nghim thng tin s 2013


10
-1

Do thi ti le loi bit voi ti le tin hieu tren nhieu

10

-2

Pb
10
-3

10

-4

4 SNR[dB]

Bi s 6. Tnh t l li bit l thuyt


Code
clear; snr_db = 0:8; snr_db_simulation = 0:2:8; for i = 1:length(snr_db) snr(i) = 10^(snr_db(i)/10); gamma_b(i) = snr(i); p_b(i) = erfc(sqrt(2*gamma_b(i))/sqrt(2))/2; end semilogy(snr_db,p_b,'ro--') % ve do thi log theo truc y hold on % giu do thi truoc o lai load ex6p1_res c BEP; % load bai truoc semilogy(snr_db_simulation,BEP,'x--') title('The bit error probability'); xlabel('SNR in dB'); ylabel('P_b'); legend('Theory','Simulation'); hold off

10

Bo co th nghim thng tin s 2013


Hnh m phng

11

You might also like