📄 regenerador.m
字号:
function [luz]=Regenerador(u)
%==============================================
% Regenerador= Esta funcion permite regenerar la informacion que esta siendo transmitida
% a traves de la fibra optica y que sufrio una Atenuacion al pasar por el
% medio antes mencionado.
%==============================================
%
% AUTORES : Z. AGUI%O & D. STECKLER
% Universidad de Carabobo
% Valencia edo. Carabobo, VENEZUELA
%
% FECHA : Diciembre 2003
% VERSION : 1.0
%
%==============================================
% Realizado bajo MATLAB 6.5 Release 13/ Enero 2004 (DZ)
%==============================================
%
%Extrae datos importantes de la mascara del bloque Regenerador
i=0; band=0;
while i<=50
if isempty(find_system(gcs,'Name','Regenerador'))==1
i=i+1;
if isempty(find_system(gcs,'Name',['Regenerador',int2str(i)]))==1
else
Blks=([gcs,'/','Regenerador',int2str(i)]);
snr_in_dB=str2num(get_param(Blks,'Potencia'));
tiposenal=get_param(Blks,'sel');
frecuencia=get_param(Blks,'frec');
break
end
else
Blks=([gcs,'/','Regenerador']);
snr_in_dB=str2num(get_param(Blks,'Potencia'));
tiposenal=get_param(Blks,'sel');
frecuencia=get_param(Blks,'frec');
break
end
end
% En dB
[a b]=size(u);
SNR=exp((snr_in_dB)*(log(10)/10));
sigma=(1/sqrt(2*SNR));
%==============================================
% Punto de decision
% Id = I(0)+I(1)/2
Id=(max(u(:,:))+min(u(:,:)))/2;
%---------------------------------------------
j=1;
r=zeros(1,b);
%output=zeros(1,b);
while j<=b
if u(1,j)<Id
r(1,j) = 0+gngauss(sigma);
else
r(1,j) = 1+gngauss(sigma);
end
if r(1,j) < 0.5
r(1,j) =0;
else
r(1,j) =1;
end
j=j+1;
end
%Inicializacion de Variables
Pot=zeros(1,b);
luz=zeros(1,b);
Nd=0;%Esta tomara valores tipicos dependiendo del tipo de laser.
Ith=0;% Corriente Threshold, tomara valores tipicos.
%
%
%======================================================
%
%Calculo dependiendo de los parametros obtenidos
%
switch (tiposenal)
case 'STS-12/STM-4' %622 Mbps
switch (frecuencia)
case '1310'
Nd=0.5;
Ith= 0.01;
case '1550'
Nd=0.25;
Ith= 0.01;
end
case 'STS-48/STM-16' %2.5 Gbps
switch (frecuencia)
case '1310'
Nd=0.25;
Ith= 0.01;
case '1550'
Nd=0.22;
Ith= 0.01;
end
case 'STS-192/STM-64' %10 Gbps
switch (frecuencia)
case '1310'
Nd=0.25;
Ith= 0.009;
case '1550'
%Datasheet LUCENT
Nd=0.2;
Ith= 0.015;
end
case 'STS-768/STM-256' %40 Gbps
switch (frecuencia)
case '1310'
Nd=0.25;
Ith= 0.009;
case '1550'
Nd=0.2;
Ith= 0.015;
end
end
for j=1:b
% circuito de decision
Pot(1,j)=Nd*(r(1,j)-Ith); %u(:,:)=Iop;
end
luz=Pot(:,:);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -