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

📄 uwbdetection.m

📁 该程序仿真超宽带的脉冲位置调制。是在MATLAB下实现的。
💻 M
字号:
function [sys,x0,str,ts] = uwbDetection(t,x,u,flag,threshold,tau,Ts,Ep)
global UWB_SIG_DETECT_TIME;
global UWB_SIG_DETECT_ON;

switch flag,

  %%%%%%%%%%%%%%%%%%
  % Initialization %
  %%%%%%%%%%%%%%%%%%
  case 0,
    sizes = simsizes;

    sizes.NumContStates  = 0;
    sizes.NumDiscStates  = floor(2*tau/Ts)+1;
    sizes.NumOutputs     = 0;
    sizes.NumInputs      = 1;
    sizes.DirFeedthrough = 0;
    sizes.NumSampleTimes = 1;   % at least one sample time is needed

    sys = simsizes(sizes);
    
    x0  = zeros(floor(2*tau/Ts)+1,1); % State of the state register and initial c0, m=5
    str = []; ts  = [0 0];
    
    UWB_SIG_DETECT_TIME=0;
    UWB_SIG_DETECT_ON=0;
    
  %%%%%%%%%%%%%%%
  % Derivatives %
  %%%%%%%%%%%%%%%
  case 1,
    sys=[];

  %%%%%%%%%%
  % Update %
  %%%%%%%%%%
  case 2,
 %     coefficient=sum(x.*scholtzValue([-tau:Ts:tau]',1,0,tau))*Ts/sqrt(Ep)*100;
 %    fprintf('Time=%3.3f ns, Coefficient=%3.3f\n',(t-(floor(tau/Ts)+1)*Ts)*1e9,coefficient);
      if UWB_SIG_DETECT_ON==0
          coefficient=sum(x.*scholtzValue([-tau:Ts:tau]',1,0,tau))*Ts/sqrt(Ep)*100;
          if(  coefficient>threshold )
              UWB_SIG_DETECT_ON=1; UWB_SIG_DETECT_TIME=t-(floor(tau/Ts)+1)*Ts;
              fprintf('UWB signal Detected. Time=%3.3f ns, Coefficient=%3.3f\n',(t-(floor(tau/Ts)+1)*Ts)*1e9,coefficient);
          end
      end
      
      l=length(x);      
      x(1:l-1)=x(2:l);x(l)=u;
      sys=x;
      
  %%%%%%%%%%%
  % Outputs %
  %%%%%%%%%%%
  case 3,
    sys=[];
    
  %%%%%%%%%%%%%%%%%%%%%%%
  % GetTimeOfNextVarHit %
  %%%%%%%%%%%%%%%%%%%%%%%
  case 4,
      sys=[];
      
  %%%%%%%%%%%%%
  % Terminate %
  %%%%%%%%%%%%%
  case 9,
     sys=[];
     
  %%%%%%%%%%%%%%%%%%%%
  % Unexpected flags %
  %%%%%%%%%%%%%%%%%%%%
  otherwise
    error(['Unhandled flag = ',num2str(flag)]);

end

⌨️ 快捷键说明

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