我正在使用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