%% Example of how to work with the dataset files %Available files: "b1g-clean,b1g-prbs,b1g-prbs-qc,b1g-zc,b3g-clean,b3g-prbs,b3g-zc,b3g-zc-qc" fileName = "b3g-zc.mat"; load(fileName); %Each capture has 4 channels. You can perform a certain angular processing %by using all of them. This is out of the scope of the current tests. Rx_Channel = 2; %This example works with a single frame of each full measurement run. %Below, you can see suggested values of 'frameIndex' for the different data %files. frameIndex = 271; frameMatrix = squeeze(radarData(Rx_Channel,:,:,frameIndex)); %% Vicim radar parameters and range and velocity axis computation % Uncomment the configuration of the loaded file. The provided example % 'frameIndex' is related to a conference paper that is being presented % with the results of the dataset. % % "b3g-clean", frameIndex = 3640 % sFactor = 56.246e12; % tChirp = 53.33e-6; % tIdle = 5e-6; % fc = 77e9; % sPerC = 306; % cPerF = 128; % fs = 6e6; % "b3g-prbs", frameIndex = 1790 % "b3g-zc", frameIndex = 271 sFactor = 52.77e12; tChirp = 53.33e-6; tIdle = 5e-6; fc = 77e9; sPerC = 290; cPerF = 128; fs = 6e6; % % "b3g-zc-qc", frameIndex = 647 % sFactor = 52.77e12; % tChirp = 56.44e-6; % tIdle = 5e-6; % fc = 77e9; % sPerC = 312; % cPerF = 128; % fs = 6e6; % % "b1g-clean", frameIndex = 1861 % % "b1g-prbs", frameIndex = 1982 % % "b1g-zc", frameIndex = 2401 % sFactor = 52.77e12; % tChirp = 17.78e-6; % tIdle = 40.54e-6; % fc = 78e9; % sPerC = 82; % cPerF = 128; % fs = 6e6; % % "b1g-prbs-qc", frameIndex = 424 % sFactor = 52.77e12; % tChirp = 17.78e-6; % tIdle = 43.63e-6; % fc = 78e9; % sPerC = 82; % cPerF = 128; % fs = 6e6; %% Range-Doppler processing fftRWin = hann(sPerC); fftVWin = hann(cPerF); rProfInt = fft(frameMatrix.*fftRWin); rdProfInt = fftshift(fft(rProfInt.'.*fftVWin).',2); %% Plotting the results tFast = 0:1/fs:(sPerC-1)/fs; maxD = fs/sFactor*3e8/2; dAxis = 1.5e8*fs*(0:sPerC-1)./sPerC./sFactor; PRI = tChirp + tIdle; tSlow = 0:PRI:PRI*(cPerF-1); maxV = (3e8/fc)/(4*PRI); vAxis = 2*maxV*(-cPerF/2:(cPerF-1)/2)./cPerF; figure,imagesc(tSlow*1e3,tFast*1e6,abs(frameMatrix)), ... xlabel('Slow time [ms]'),ylabel('Fast time [\mus]'),title('Captured frame'),colorbar figure,imagesc(tSlow*1e3,dAxis(1:end/2),20*log10(abs(rProfInt(1:sPerC/2,:)))), ... xlabel('Slow time [ms]'),ylabel('Distance [m]'),title('Range profile'),colorbar, ... clim([max(max(20*log10(abs(rProfInt(1:sPerC/2,:)))))-45,max(max(20*log10(abs(rProfInt(1:sPerC/2,:)))))]) figure,imagesc(vAxis,dAxis(1:end/2),20*log10(abs(rdProfInt(1:sPerC/2,:)))), ... xlabel('Velocity [m/s]'),ylabel('Distance [m]'),title('Range-Doppler profile'),colorbar, ... clim([max(max(20*log10(abs(rdProfInt(1:sPerC/2,:)))))-60,max(max(20*log10(abs(rdProfInt(1:sPerC/2,:)))))])