You are on page 1of 9

Code Matlab 2015

Phụ lục 2015

%------------------------------------------------------------------------
kB=1.38*10^(-23); %hang so Boltzmann [J/K]
RL=50; %dien tro tai cua photodiode [ohm]
R=0.8; %He so chuyen doi quang dien [A/W]
T=300; %nhiet do tai may thu [K]
Idb=100*10^(-12); %dong toi khoi [A]
Ids=100*10^(-12); %dong toi be mat [A]
B=10^9; %bang thong bo loc ADC [Hz]
Be=0.75*10^9; %bang thong nhieu cua may thu [Hz]
f=2*10^9; %tan so song mang RF [Hz]
fs=2.5*10^9; %tan so lay mau tin hieu RF cua bo DAC [Hz]
jitter=0.6*10^-12; %do jitter cua bo ADC [s]
q=1.6*10^(-19); %dien tich cua dien tu [C]
h=6.625*10^(-34); %hang so Plank [J.s]
c=3*10^(8); %van toc anh sang trong chan khong [m/s]
n=8; %do phan giai cua ADC
M=1; %doi voi ASK
alpha=0.27; %suy hao tren 1 km soi quang [dB/km]
buocsong=1550*10^-9;%buoc song quang [nm]
m=2; %Beff/B
IP=12; %Intercept point [dBm]
beta=0.7; %He so lech pha va lech mat phang phan cuc
%------------------------------------------------------------------------
P_phat_dBm=(-5:0.25:5); %ma tran cong suat phat (dBm)
P_LO_dBm=(-5:0.25:5); %ma tran cong suat dao dong noi (dBm)
d_km=(100:2.5:200); %ma tran khoang cach [km]
for i=1:41 %vong lap quet cac gia tri cong suat phat
for j=1:41 %vong lap quet cac gia tri cong suat dao dong noi
for k=1:41 %vong lap quet cac gia tri khoang cach
%Chuyen don vi cac dai luong----------------------------
P_thu_dBm(i,j,k)=P_phat_dBm(i)-alpha*d_km(k);
P_phat(i)=10^(P_phat_dBm(i)/10)*0.001;
P_LO(j)=beta*10^(P_LO_dBm(j)/10)*0.001;
d(k)=d_km(k)*1000;
P_thu(i,j,k)=10^(P_thu_dBm(i,j,k)/10)*0.001;
SNR_IM_dB(i,j,k)=2*IP-2*P_phat_dBm(i);
SNR_IM(i,j,k)=10^(SNR_IM_dB(i,j,k)/10);
%Tinh cong suat 3 loai nhieu cua photodiode
Nq(i,j,k)=2*RL*q*R*P_thu(i,j,k)*Be;
Nd=2*RL*q*(Idb+Ids)*Be;
Nt=4*kB*T*Be;
N_tong(i,j,k)=Nq(i,j,k)+Nd+Nt;
Nq1(i,j,k)=2*RL*q*R*P_thu(i,j,k)*Be/40;
Nd1=2*RL*q*(Idb+Ids)*Be/40;
Nt1=4*kB*T*Be/40;
N_tong1(i,j,k)=Nq1(i,j,k)+Nd1+Nt1;
%Tinh cac SNR thanh phan
SNR_F(i,j,k)=P_phat(i)/(kB*T*B);
SNR_A(i,j,k)=P_phat(i)/((m-1)*kB*T*B);
SNR_J(i,j,k)=1/(4*pi^2*f^2*jitter^2);
SNR_Q(i,j,k)=10^(6.02*n+10*log10((sqrt(M)+1)/(sqrt(M)-1))/10);
SNR_J_DAC(i,j,k)=(1+2*f/fs)/(4*jitter^2*fs^2*(sin(pi*f/fs))^2);
%Tinh SNR va BER DDR
SNR_DD(i,j,k)=(RL*R^2*(P_thu(i,j,k))^2)/N_tong1(i,j,k);
%Tinh SNR va BER AROF
DD_AROF(i,j,k)=1/SNR_IM(i,j,k)+1/SNR_DD(i,j,k);
SNR_AROF_DD(i,j,k)=1/DD_AROF(i,j,k);
BER_AROF_DD(i,j,k)=0.5*erfc(sqrt(SNR_AROF_DD(i,j,k)/8));
Phụ lục 2015

%Tinh SNR va BER DROF

DD_DROF(i,j,k)=1/SNR_F(i,j,k)+1/SNR_A(i,j,k)+1/SNR_J(i,j,k)+1/SNR_Q(i,j,k
)+1/SNR_J_DAC(i,j,k)+1/SNR_DD(i,j,k);
SNR_DROF_DD(i,j,k)=1/DD_DROF(i,j,k);
BER_DROF_DD(i,j,k)=0.5*erfc(sqrt(SNR_DROF_DD(i,j,k)/8));
%Tinh SNR va BER CDR

SNR_CD(i,j,k)=(RL*R^2*P_thu(i,j,k)*P_LO(j))/(2*Nt+Be*RL*q*R*(P_phat(i)+P_
LO(j)));
%Tinh SNR va BER AROF
CD_AROF(i,j,k)=1/SNR_IM(i,j,k)+1/SNR_CD(i,j,k);
SNR_AROF_CD(i,j,k)=1/CD_AROF(i,j,k);

BER_AROF_CD_ASK_HE_SYN(i,j,k)=0.5*erfc(sqrt(SNR_AROF_CD(i,j,k)/4)); %ASK
doi tan dong bo
BER_AROF_CD_ASK_HE_ASYN(i,j,k)=0.5*exp(-SNR_AROF_CD(i,j,k)/4);
%ASK doi tan khong dong bo
BER_AROF_CD_ASK_HO(i,j,k)=0.5*erfc(sqrt(SNR_AROF_CD(i,j,k)/2));
%ASK dong tan

BER_AROF_CD_FSK_HE_SYN(i,j,k)=0.5*erfc(sqrt(SNR_AROF_CD(i,j,k)/4)); %FSK
doi tan dong bo
BER_AROF_CD_FSK_HE_ASYN(i,j,k)=0.5*exp(-SNR_AROF_CD(i,j,k)/4);
%FSK doi tan khong dong bo
BER_AROF_CD_PSK_HO(i,j,k)=0.5*erfc(sqrt(SNR_AROF_CD(i,j,k)));
%PSK dong tan

BER_AROF_CD_PSK_HE_SYN(i,j,k)=0.5*erfc(sqrt(SNR_AROF_CD(i,j,k)/2)); %PSK
doi tan dong bo
BER_AROF_CD_DPSK(i,j,k)=0.5*exp(-SNR_AROF_CD(i,j,k)/2);
%PSK vi phan
%Tinh SNR va BER DROF

CD_DROF(i,j,k)=1/SNR_F(i,j,k)+1/SNR_A(i,j,k)+1/SNR_J(i,j,k)+1/SNR_Q(i,j,k
)+1/SNR_J_DAC(i,j,k)+1/SNR_CD(i,j,k);
SNR_DROF_CD(i,j,k)=1/CD_DROF(i,j,k);

BER_DROF_CD_ASK_HE_SYN(i,j,k)=0.5*erfc(sqrt(SNR_DROF_CD(i,j,k)/4)); %ASK
doi tan dong bo
BER_DROF_CD_ASK_HE_ASYN(i,j,k)=0.5*exp(-SNR_DROF_CD(i,j,k)/4);
%ASK doi tan khong dong bo
BER_DROF_CD_ASK_HO(i,j,k)=0.5*erfc(sqrt(SNR_DROF_CD(i,j,k)/2));
%ASK dong tan

BER_DROF_CD_FSK_HE_SYN(i,j,k)=0.5*erfc(sqrt(SNR_DROF_CD(i,j,k)/4)); %FSK
doi tan dong bo
BER_DROF_CD_FSK_HE_ASYN(i,j,k)=0.5*exp(-SNR_DROF_CD(i,j,k)/4);
%FSK doi tan khong dong bo
BER_DROF_CD_PSK_HO(i,j,k)=0.5*erfc(sqrt(SNR_DROF_CD(i,j,k)));
%PSK dong tan

BER_DROF_CD_PSK_HE_SYN(i,j,k)=0.5*erfc(sqrt(SNR_DROF_CD(i,j,k)/2)); %PSK
doi tan dong bo
BER_DROF_CD_DPSK(i,j,k)=0.5*exp(-SNR_DROF_CD(i,j,k)/2);
%PSK vi phan
end
end
Phụ lục 2015

end
%---ve do thi----------------------------------------------------------
c=[[0 0 1];[0 1 0];[0 0 0];[1 0 0];[1 0 1];[ 0.7 0 0.7 ];[0.5 0.5
0.5];[0.8 0.2 1];[0 1 1];[0.8 1 0.2]];
c1=[[0 0 1];[ 0.7 0 0.7 ];[0 0 0];[1 0 0];[1 0 1];[0 1 0];[0.5 0.5
0.5];[0.8 0.2 1];[0 1 1];[0.8 1 0.2]];

figure(1)
for m=1:2
for k=1:length(d_km)
if m==1
BER(k)=BER_AROF_DD(17,17,k);
elseif m==2
BER(k)=BER_DROF_DD(17,17,k);
end
end
if m==1
p=semilogy(d_km,BER,'-d','markersize',5);
set(p,'Color',[c(m,1) c(m,2) c(m,3)],'LineWidth',1);
elseif m==2
p=semilogy(d_km,BER,'o-r','markersize',5);
set(p,'Color',[c(m,1) c(m,2) c(m,3)],'LineWidth',1);
end
hold on
grid on
end
axis([100 200 10^-14 1])
xlabel('d (km)');
ylabel('BER');
title('BER theo d (P-TX=-1dBm va P-LO=-1dBm)');
legend('AROF-DD','DROF-DD')

figure(2)
for m=1:6
for k=1:length(d_km)
if m==1
BER2(k)=BER_AROF_CD_ASK_HE_SYN(17,17,k);
elseif m==2
BER2(k)=BER_DROF_CD_ASK_HE_SYN(17,17,k);
elseif m==3
BER2(k)=BER_AROF_CD_ASK_HE_ASYN(17,17,k);
elseif m==4
BER2(k)=BER_DROF_CD_ASK_HE_ASYN(17,17,k);
elseif m==5
BER2(k)=BER_AROF_CD_ASK_HO(17,17,k);
elseif m==6
BER2(k)=BER_DROF_CD_ASK_HO(17,17,k);
end
end
if m==1
p=semilogy(d_km,BER2,'-d','markersize',5);
set(p,'Color',[c(m,1) c(m,2) c(m,3)],'LineWidth',1);
elseif m==2
p=semilogy(d_km,BER2,'o-r','markersize',5);
set(p,'Color',[c(m,1) c(m,2) c(m,3)],'LineWidth',1);
elseif m==3
Phụ lục 2015

p=semilogy(d_km,BER2,'-s','markersize',5);
set(p,'Color',[c(m,1) c(m,2) c(m,3)],'LineWidth',1);
elseif m==4
p=semilogy(d_km,BER2,'-^','markersize',5);
set(p,'Color',[c(m,1) c(m,2) c(m,3)],'LineWidth',1);
elseif m==5
p=semilogy(d_km,BER2,'-o','markersize',5);
set(p,'Color',[c(m,1) c(m,2) c(m,3)],'LineWidth',1);
elseif m==6
p=semilogy(d_km,BER2,'-*','markersize',5);
set(p,'Color',[c(m,1) c(m,2) c(m,3)],'LineWidth',1);
end
hold on
grid on
end
axis([130 200 10^-14 1])
xlabel('d (km)');
ylabel('BER');
title('BER theo d (P-TX=-1dBm va P-LO=-1dBm)');
legend('AROF-CD-ASK/FSK-HE-SYN','DROF-CD-ASK/FSK-HE-SYN','AROF-CD-
ASK/FSK-HE-ASYN','DROF-CD-ASK/FSK-HE-ASYN','AROF-CD-ASK-HO/PSK-HE-
SYN','DROF-CD-ASK-HO/PSK-HE-SYN')

figure(3)
for m=1:4
for k=1:length(d_km)
if m==1
BER3(k)=BER_AROF_CD_PSK_HO(17,17,k);
elseif m==2
BER3(k)=BER_DROF_CD_PSK_HO(17,17,k);
elseif m==3
BER3(k)=BER_AROF_CD_DPSK(17,17,k);
elseif m==4
BER3(k)=BER_DROF_CD_DPSK(17,17,k);
end
end
if m==1
p=semilogy(d_km,BER3,'-d','markersize',5);
set(p,'Color',[c(m,1) c(m,2) c(m,3)],'LineWidth',1);
elseif m==2
p=semilogy(d_km,BER3,'o-r','markersize',5);
set(p,'Color',[c(m,1) c(m,2) c(m,3)],'LineWidth',1);
elseif m==3
p=semilogy(d_km,BER3,'-s','markersize',5);
set(p,'Color',[c(m,1) c(m,2) c(m,3)],'LineWidth',1);
elseif m==4
p=semilogy(d_km,BER3,'-^','markersize',5);
set(p,'Color',[c(m,1) c(m,2) c(m,3)],'LineWidth',1);
end
hold on
grid on
end
axis([130 200 10^-14 1])
xlabel('d (km)');
ylabel('BER');
title('BER theo d (P-TX=-1dBm va P-LO=-1dBm)');
legend('AROF-CD-PSK-HO','DROF-CD-PSK-HO','AROF-CD-DPSK','DROF-CD-DPSK')
Phụ lục 2015

figure(4)
for m=1:6
for j=1:length(P_LO_dBm)
if m==1
BER4(j)=BER_AROF_CD_ASK_HE_SYN(13,j,17);
elseif m==2
BER4(j)=BER_DROF_CD_ASK_HE_SYN(13,j,17);
elseif m==3
BER4(j)=BER_AROF_CD_ASK_HE_ASYN(13,j,17);
elseif m==4
BER4(j)=BER_DROF_CD_ASK_HE_ASYN(13,j,17);
elseif m==5
BER4(j)=BER_AROF_CD_ASK_HO(13,j,17);
elseif m==6
BER4(j)=BER_DROF_CD_ASK_HO(13,j,17);
end
end
if m==1
p=semilogy(P_LO_dBm,BER4,'-d','markersize',5);
set(p,'Color',[c(m,1) c(m,2) c(m,3)],'LineWidth',1);
elseif m==2
p=semilogy(P_LO_dBm,BER4,'o-r','markersize',5);
set(p,'Color',[c(m,1) c(m,2) c(m,3)],'LineWidth',1);
elseif m==3
p=semilogy(P_LO_dBm,BER4,'-s','markersize',5);
set(p,'Color',[c(m,1) c(m,2) c(m,3)],'LineWidth',1);
elseif m==4
p=semilogy(P_LO_dBm,BER4,'-^','markersize',5);
set(p,'Color',[c(m,1) c(m,2) c(m,3)],'LineWidth',1);
elseif m==5
p=semilogy(P_LO_dBm,BER4,'-o','markersize',5);
set(p,'Color',[c(m,1) c(m,2) c(m,3)],'LineWidth',1);
elseif m==6
p=semilogy(P_LO_dBm,BER4,'-*','markersize',5);
set(p,'Color',[c(m,1) c(m,2) c(m,3)],'LineWidth',1);
end
hold on
grid on
end
axis([-5 5 10^-15 1])
xlabel('P-LO-dBm)');
ylabel('BER');
title('BER theo P-LO (P-TX=-2dBm va d=140km)');
legend('AROF-CD-ASK/FSK-HE-SYN','DROF-CD-ASK/FSK-HE-SYN','AROF-CD-
ASK/FSK-HE-ASYN','DROF-CD-ASK/FSK-HE-ASYN','AROF-CD-ASK-HO/PSK-HE-
SYN','DROF-CD-ASK-HO/PSK-HE-SYN')

figure(5)
for m=1:4
for j=1:length(P_LO_dBm)
if m==1
BER5(j)=BER_AROF_CD_PSK_HO(13,j,17);
elseif m==2
BER5(j)=BER_DROF_CD_PSK_HO(13,j,17);
elseif m==3
Phụ lục 2015

BER5(j)=BER_AROF_CD_DPSK(13,j,17);
elseif m==4
BER5(j)=BER_DROF_CD_DPSK(13,j,17);
end
end
if m==1
p=semilogy(P_LO_dBm,BER5,'-d','markersize',5);
set(p,'Color',[c(m,1) c(m,2) c(m,3)],'LineWidth',1);
elseif m==2
p=semilogy(P_LO_dBm,BER5,'o-r','markersize',5);
set(p,'Color',[c(m,1) c(m,2) c(m,3)],'LineWidth',1);
elseif m==3
p=semilogy(P_LO_dBm,BER5,'-s','markersize',5);
set(p,'Color',[c(m,1) c(m,2) c(m,3)],'LineWidth',1);
elseif m==4
p=semilogy(P_LO_dBm,BER5,'-^','markersize',5);
set(p,'Color',[c(m,1) c(m,2) c(m,3)],'LineWidth',1);
end
hold on
grid on
end
axis([-5 5 10^-15 1])
xlabel('P-LO-dBm');
ylabel('BER');
title('BER theo P-LO (P-TX=-2dBm va d=140km)');
legend('AROF-CD-PSK-HO','DROF-CD-PSK-HO','AROF-CD-DPSK','DROF-CD-DPSK')

figure(6)
for m=1:2
for i=1:length(P_phat_dBm)
if m==1
BER6(i)=BER_AROF_DD(i,17,1);
elseif m==2
BER6(i)=BER_DROF_DD(i,17,1);
end
end
if m==1
p=semilogy(P_phat_dBm,BER6,'-d','markersize',5);
set(p,'Color',[c(m,1) c(m,2) c(m,3)],'LineWidth',1);
elseif m==2
p=semilogy(P_phat_dBm,BER6,'o-r','markersize',5);
set(p,'Color',[c(m,1) c(m,2) c(m,3)],'LineWidth',1);
end
hold on
grid on
end
axis([-5 5 10^-14 1])
xlabel('P-phat');
ylabel('BER');
title('BER theo P-phat (P-LO=-1dBm va d=100km)');
legend('AROF-DD','DROF-DD')

figure(7)
for m=1:6
for i=1:length(P_phat_dBm)
Phụ lục 2015

if m==1
BER7(i)=BER_AROF_CD_ASK_HE_SYN(i,17,21);
elseif m==2
BER7(i)=BER_DROF_CD_ASK_HE_SYN(i,17,21);
elseif m==3
BER7(i)=BER_AROF_CD_ASK_HE_ASYN(i,17,21);
elseif m==4
BER7(i)=BER_DROF_CD_ASK_HE_ASYN(i,17,21);
elseif m==5
BER7(i)=BER_AROF_CD_ASK_HO(i,17,21);
elseif m==6
BER7(i)=BER_DROF_CD_ASK_HO(i,17,21);
end
end
if m==1
p=semilogy(P_phat_dBm,BER7,'-d','markersize',5);
set(p,'Color',[c(m,1) c(m,2) c(m,3)],'LineWidth',1);
elseif m==2
p=semilogy(P_phat_dBm,BER7,'o-r','markersize',5);
set(p,'Color',[c(m,1) c(m,2) c(m,3)],'LineWidth',1);
elseif m==3
p=semilogy(P_phat_dBm,BER7,'-s','markersize',5);
set(p,'Color',[c(m,1) c(m,2) c(m,3)],'LineWidth',1);
elseif m==4
p=semilogy(P_phat_dBm,BER7,'-^','markersize',5);
set(p,'Color',[c(m,1) c(m,2) c(m,3)],'LineWidth',1);
elseif m==5
p=semilogy(P_phat_dBm,BER7,'-o','markersize',5);
set(p,'Color',[c(m,1) c(m,2) c(m,3)],'LineWidth',1);
elseif m==6
p=semilogy(P_phat_dBm,BER7,'-*','markersize',5);
set(p,'Color',[c(m,1) c(m,2) c(m,3)],'LineWidth',1);
end
hold on
grid on
end
axis([-5 5 10^-15 1])
xlabel('P-phat-dBm)');
ylabel('BER');
title('BER theo P-phat (P-LO=-1dBm va d=150km)');
legend('AROF-CD-ASK/FSK-HE-SYN','DROF-CD-ASK/FSK-HE-SYN','AROF-CD-
ASK/FSK-HE-ASYN','DROF-CD-ASK/FSK-HE-ASYN','AROF-CD-ASK-HO/PSK-HE-
SYN','DROF-CD-ASK-HO/PSK-HE-SYN')

figure(8)
for m=1:4
for i=1:length(P_phat_dBm)
if m==1
BER8(i)=BER_AROF_CD_PSK_HO(i,17,21);
elseif m==2
BER8(i)=BER_DROF_CD_PSK_HO(i,17,21);
elseif m==3
BER8(i)=BER_AROF_CD_DPSK(i,17,21);
elseif m==4
BER8(i)=BER_DROF_CD_DPSK(i,17,21);
end
end
Phụ lục 2015

if m==1
p=semilogy(P_phat_dBm,BER8,'-d','markersize',5);
set(p,'Color',[c(m,1) c(m,2) c(m,3)],'LineWidth',1);
elseif m==2
p=semilogy(P_phat_dBm,BER8,'o-r','markersize',5);
set(p,'Color',[c(m,1) c(m,2) c(m,3)],'LineWidth',1);
elseif m==3
p=semilogy(P_phat_dBm,BER8,'-s','markersize',5);
set(p,'Color',[c(m,1) c(m,2) c(m,3)],'LineWidth',1);
elseif m==4
p=semilogy(P_phat_dBm,BER8,'-^','markersize',5);
set(p,'Color',[c(m,1) c(m,2) c(m,3)],'LineWidth',1);
end
hold on
grid on
end
axis([-5 5 10^-15 1])
xlabel('P-phat-dBm');
ylabel('BER');
title('BER theo P-phat (P-LO=-1dBm va d=150km)');
legend('AROF-CD-PSK-HO','DROF-CD-PSK-HO','AROF-CD-DPSK','DROF-CD-DPSK')

You might also like