Initial Commit.
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
function [waveform_seq] = gen_fastramp_fmcw2(timing_struct, fs, f0, TxBw, ChirpIndex, NumChirps, prop_delay, phase_initial, opt)
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%
|
||||
% Generating m-th Fast Ramp Linear FMCW waveform with considering different PRI
|
||||
% Start : 23.12.22
|
||||
% End : xx.xx.xx
|
||||
% developed by Kwanggoo Yeo
|
||||
%
|
||||
% Description
|
||||
% - Input
|
||||
% - 1) timing_struct [struct], [-] : Timing information for one chirp
|
||||
% - 1-1) T_dwell [scalar], [sec] : Time length for idle
|
||||
% - 1-2) T_settle [scalar], [sec] : Time length for ramp start but not acquisition
|
||||
% - 1-3) T_jumpback [scalar], [sec] : Time length for go back to the start frequency
|
||||
% - 1-4) T_reset [scalar], [sec] : Time length for reset
|
||||
% - 1-5) T_acq [scalar], [sec] : Time length for acqusition
|
||||
% - 2) fs [scalar], [Hz] : Sampling rate
|
||||
% - 3) f0 [scalar], [Hz] : Start frequency
|
||||
% - 4) TxBw [scalar], [Hz] : Waveform Bandwidth
|
||||
% - 5) ChirpIndex [scalar], [-] : m-th chirp index ( m= 1, 2, 3, ..., M )
|
||||
% - 6) NumChirps [scalar], [-] : The number of chirps in one frame
|
||||
% - 7) prop_delay [scalar], [sec] : Time delay by range between radar and target
|
||||
% - 8) phase_ini [scalar], [deg] : Initial phase of Tx waveform in deg
|
||||
%
|
||||
% - Output
|
||||
% - 1) waveform_seq [struct], [-] : Struct containing waveform information
|
||||
% - 1-1) T_chirp [scalar], [sec] : Time length for one chirp
|
||||
% - 1-2) T_frame [scalar], [sec] : Time length for one frame
|
||||
% - 1-3) timeline [vec], [sec] : Time index for Fast ramp Linear FMCW sequence
|
||||
% - 1-4) waveform [matrix], [-] : Fast ramp Linear FMCW sequence
|
||||
%
|
||||
% History
|
||||
% (23.12.22) Start
|
||||
%
|
||||
% Referece
|
||||
% -
|
||||
%
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
T_dwell = timing_struct.T_dwell;
|
||||
T_settle = timing_struct.T_settle;
|
||||
T_acq = timing_struct.T_acq;
|
||||
T_jumpback = timing_struct.T_jumpback;
|
||||
T_reset = timing_struct.T_reset;
|
||||
T_idle = timing_struct.T_idle;
|
||||
|
||||
waveform_seq.T_chirp = T_dwell + T_settle + T_acq + T_jumpback + T_reset + T_idle;
|
||||
|
||||
waveform_seq.T_frame = waveform_seq.T_chirp * NumChirps;
|
||||
|
||||
waveform_seq.f_slope = TxBw / T_acq;
|
||||
|
||||
waveform_seq.timeline = T_dwell + T_settle + (0 : 1/fs : (T_acq - 1/fs)) + ((ChirpIndex-1) * waveform_seq.T_chirp) + prop_delay;
|
||||
|
||||
|
||||
|
||||
if opt == 0
|
||||
waveform_seq.waveform = cos(2 * pi * f0 * waveform_seq.timeline + 2 * pi * (waveform_seq.f_slope/2 * waveform_seq.timeline.^2) + phase_initial);
|
||||
waveform_seq.waveform = waveform_seq.waveform / sqrt(norm(waveform_seq.waveform)^2 / length(waveform_seq.waveform));
|
||||
elseif opt == 1
|
||||
waveform_seq.waveform = exp(1i * 2 * pi * f0 * waveform_seq.timeline + 1i * 2 * pi * (waveform_seq.f_slope/2 * waveform_seq.timeline.^2) + 1i* phase_initial);
|
||||
waveform_seq.waveform = waveform_seq.waveform / sqrt(norm(waveform_seq.waveform)^2 / length(waveform_seq.waveform));
|
||||
else
|
||||
disp('Opt error! : Real waveform(opt = 0) or Complex waveform(opt = 1)')
|
||||
return;
|
||||
end
|
||||
|
||||
|
||||
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user