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

📄 gen_vt.m

📁 matlab在通信原理中的应用
💻 M
字号:
function [sys,x0,str,ts] = generadorVT_DSn(t,x,u,flag,k,s)


% Es un gernerador de bit aleatorio con distribucion  uniformemente distribuida 
% i:   Es la  variable  que  se utiliza para el contador.
%y: Variable utilizada para almacenamiento, n: longitud de la secuencia pseudo-aleatoria.

% inicializacion de variable internas.

i=0;
y=0;
u=(144*k*s);
%(numero de bits que posee en total la trama)
     %(la entradas son los bytes totales de la trama)

  switch flag,
  %%%%%%%%%%%%%%%%%%
  % Initializacion %
  %%%%%%%%%%%%%%%%%%
  % Initialize the states, sample times, and state ordering strings.
  case 0
    [sys,x0,str,ts]=mdlInitializeSizes(u,k,s);

  %%%%%%%%%%%
  % salidas %
  %%%%%%%%%%%
  % Devuelve las variables de salidas del bloque S-function
  case 3
    [sys]=mdlOutputs(t,x,u,i,y,k,s);


  %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % Banderas sin manejadores %
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % No hay culminacion de tareas(flag=9) to be handled.
  % tambien, No hay estados continuos o discretos,
  % entonces,las banderas 1 , 2 , 4 no son utilizadas, se regresa una
  % matrix vacia. 
  case { 1, 2, 4, 9 }
    sys=[];

  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % Banderas inesperadas (error handling)%
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % devuelve un mensaje de error con el numero del manejador de la bandera.
  otherwise
    error(['Unhandled flag = ',num2str(flag)]);

end

% fin del generador

%
%=============================================================================
% mdlInitializeSizes
% devuelve tama駉s, condiciones inicialles, y tiempos de muestreo para la
% S-function.
%=============================================================================

function [sys,x0,str,ts] = mdlInitializeSizes(u,k,s)

sizes = simsizes;
sizes.NumContStates  = 0;
sizes.NumDiscStates  = 0;
sizes.NumOutputs     = u;  % dynamically sized
sizes.NumInputs      = 0;  % dynamically sized
sizes.DirFeedthrough = 1;   % has direct feedthrough
sizes.NumSampleTimes = 1;

sys = simsizes(sizes);
str = [];
x0  = [];
ts  = [(1/(5503999/688)) 0];   % tiempo de muestreo inherente

% end mdlInitializeSizes

%
%=============================================================================
% mdlOutputs
% Return the output vector for the S-function
%=============================================================================
%
function [sys] = mdlOutputs(t,x,u,i,y,k,s)
% 1
for i=1:u
   y=randn;
  if y>=0.5;
     sys(i)=1;
 else
     sys(i)=0;
 end
end
%

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -