虽然循环花费了太多时间来执行,但循环内经过的时间也很长

时间:2018-04-15 16:58:32

标签: matlab time while-loop elapsedtime usrp

我正在使用USRP N210和UBX-40子板使用MATLAB进行雷达项目。当我运行用于接收发送脉冲的回声的代码时,我遇到了问题。电路板开始接收和收集第一个样品需要4秒钟,这在我的情况下都不合适。在第一个样本之后,接收其他回波的经过时间是以毫秒为单位,这是不好的,因为雷达中的回波应该在微秒或更短时间内接收,而不是秒和毫秒!

clear;
clc;
Fs= 50e6; % Sampling freq
t=0:1/Fs:10-1/Fs;   %Time vector
PRI = 10e-6; %PRI 
pw = 0.04e-6; %pulse width
d= 0:PRI:10; %delay vector
y_pulse = ones(Fs*pw,1);


connectedRadios = findsdru;
if strncmp(connectedRadios(1).Status, 'Success', 7)
radioFound = true;
 platform = connectedRadios(1).Platform;
switch connectedRadios(1).Platform
  case {'B200','B210'}
  address = connectedRadios(1).SerialNum;
case {'N200/N210/USRP2','X300','X310'}
  address = connectedRadios(1).IPAddress;
 end
else
radioFound = false;
address = '192.168.10.2';
platform = 'N200/N210/USRP2';
end

 gn = 23;
 inf1=2;
 rfTxFreq = 5e9; % RF Transmitter Center Frequency (Hz)

  radioTx = comm.SDRuTransmitter('Platform', platform, ...
    'IPAddress', address, ...
    'CenterFrequency', rfTxFreq,...
    'Gain', gn, ...
    'InterpolationFactor', inf1)


    radioRx = comm.SDRuReceiver(...
    'Platform',         platform, ...
    'IPAddress',        address, ...
    'CenterFrequency',  rfTxFreq,...
    'Gain',             gn, ...
    'DecimationFactor', inf1,...
    'SamplesPerFrame',  498,...
    'OutputDataType','single')  

   for i=1:5
   step(radioTx,y_pulse)


    timeCounter = 0;
   tic
   while timeCounter < 1
     [x, len] = step(radioRx);
   pulses(:,i)=x ;
    if len > 0

    timeCounter = timeCounter + 1;
      end
  end
      end
   toc
   release(radioTx)
   release (radioRx)

    clear radioRx

0 个答案:

没有答案