-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathCapture_INRAS_77GHz_TDM.m
82 lines (70 loc) · 2.36 KB
/
Capture_INRAS_77GHz_TDM.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ROW DATA CAPTURING FROM INRAS FMCW RADAR
%
% CREATED BY:
% MUHAMMET EMIN YANIK
%
% ADVISOR:
% PROFESSOR MURAT TORLAK
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [RowData,nCall] = Capture_INRAS_77GHz_TDM(Brd,Cfg,CalData,RowData,nCall)
%--------------------------------------------------------------------------
% Enable Receive Chips
%--------------------------------------------------------------------------
Brd.RfRxEna();
%--------------------------------------------------------------------------
% Enable Transmit Chips
%--------------------------------------------------------------------------
TxChn = 1;
TxPwr = 63;
Brd.RfTxEna(TxChn, TxPwr);
Brd.RfMeas('ExtTrigUp_TxSeq',Cfg);
% Capture Data
DataTx1 = Brd.BrdGetData();
DataTx2 = Brd.BrdGetData();
DataTx3 = Brd.BrdGetData();
DataTx4 = Brd.BrdGetData();
DataTx = [DataTx1.'; DataTx2.'; DataTx3.'; DataTx4.'];
CalibratedData = CalData .* hilbert(DataTx.').';
RowData(:,:,nCall) = CalibratedData;
nCall = nCall + 1;
%% Post Processing
% Range FFT
% kf = (Cfg.fStop - Cfg.fStrt)/Cfg.TRampUp; % 7.8125e+12
% fs = Brd.Get('fs'); % 2000000
% % Cfg.N = 256;
%
% c = physconst('LightSpeed');
%
% numFFTbins = 1024;
%
% rangeIdxToMeters = c * fs / (2 * kf * Cfg.N);
% rangeAxis = linspace(0, (Cfg.N/2-1) * rangeIdxToMeters, numFFTbins/2);
%
% Data1Ch = CalibratedData(1,:);
% % Data1Ch = hilbert(RowData(1,:))*CalData(1);
%
% Data1ChFFT = fft(Data1Ch,numFFTbins);
% Data1ChFFT = Data1ChFFT(1:numFFTbins/2);
%
% figure;plot(rangeAxis,mag2db(abs(Data1ChFFT)))
%%
% fCarrier = 77*1e9; % 77 GHz;
% lambda = c / fCarrier;
% % maximumRange = fs * c / (2*kf);
% % rangeAxis1 = linspace(0, maximumRange, numFFTbins/2);
%
% cHData = CalibratedData(1,:);
% cHDataRangeFFT = fft(cHData,numFFTbins);
% plot(rangeAxis,pow2db(abs(cHDataRangeFFT(1:numFFTbins/2))))
%
% % Angle FFT
% AntIdx = [1:7, 9:15, 17:23, 25:32];
% VirtualArrayData = CalibratedData(AntIdx,:);
% VirtualArrayDataRangeFFT = fft(VirtualArrayData.',numFFTbins);
% % mesh(rangeAxis,1:29,pow2db(abs(VirtualArrayDataFFT(1:numFFTbins/2,:).')))
% mesh(pow2db(abs(VirtualArrayDataRangeFFT(1:numFFTbins/2,:).')))
%
% peakData = VirtualArrayDataRangeFFT(9,:);
% VirtualArrayDataAngleFFT = fft(peakData,128);
% plot(abs(VirtualArrayDataAngleFFT(1:64)))