⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 regenerador.m

📁 matlab在通信原理中的应用
💻 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 + -