RDM dBm/bin 단위 PSD 도시 기능 추가
This commit is contained in:
@@ -70,11 +70,11 @@ RadarParams.Antenna.TxPattern = build_antenna_patterns(RadarParams.Antenna.NumTx
|
||||
RadarParams.Antenna.RxPattern = build_antenna_patterns(RadarParams.Antenna.NumRx, '2D', 14, 2, 40, 15, RadarParams.Antenna.rx_files);
|
||||
|
||||
% 5) 타겟 모델링
|
||||
RadarParams.Target.R = [12, 80, 120]; % 타겟 거리 (m)
|
||||
RadarParams.Target.v = [7, -5, 0]; % 타겟 속도 (m/s)
|
||||
RadarParams.Target.rcs = [10, 5, 20]; % 타겟 RCS (dBsm)
|
||||
RadarParams.Target.az = [10, -10, 0]; % 방위각 (deg)
|
||||
RadarParams.Target.el = [0, 0, 5]; % 고각 (deg)
|
||||
RadarParams.Target.R = [12]; % 타겟 거리 (m)
|
||||
RadarParams.Target.v = [7]; % 타겟 속도 (m/s)
|
||||
RadarParams.Target.rcs = [-10000]; % 타겟 RCS (dBsm)
|
||||
RadarParams.Target.az = [10]; % 방위각 (deg)
|
||||
RadarParams.Target.el = [0]; % 고각 (deg)
|
||||
RadarParams.Target.NumTargets = length(RadarParams.Target.R);
|
||||
|
||||
% 6) 수신단 파라미터
|
||||
@@ -83,6 +83,7 @@ RadarParams.Rxpath.fc_lpf = 0.8*RadarParams.Waveform.fs_adc/2; % L
|
||||
RadarParams.Rxpath.adc_bits = 12; % ADC 비트수
|
||||
RadarParams.Rxpath.adc_v_full_scale = 2.0; % full-scale 전압 (Vp-p)
|
||||
RadarParams.Rxpath.receiver_mode = 'Real'; % 'IQ' 또는 'Real'
|
||||
RadarParams.Rxpath.load_impedance_ohm = 50; % 임피던스 (Ohm)
|
||||
RadarParams.Rxpath.rxPathGain_dB = 50; % RX 경로 이득 (dB)
|
||||
RadarParams.Rxpath.system_NF_dB = 15; % 시스템 잡음지수 (dB)
|
||||
|
||||
@@ -103,6 +104,34 @@ RadarParams.SpurParams.enabled = false; % spur on/of
|
||||
% 7) 신호처리 파라미터
|
||||
RadarParams.SP.RDM.window_type_range = 'hann'; % Range FFT용 윈도우
|
||||
RadarParams.SP.RDM.window_type_doppler = 'chebwin'; % Doppler FFT용 윈도우
|
||||
|
||||
num_samples_range = round(RadarParams.Waveform.fs_adc * RadarParams.Waveform.Timing.AdcSampTime);
|
||||
num_chirps_doppler = RadarParams.Waveform.NumChirps;
|
||||
|
||||
if strcmpi(RadarParams.SP.RDM.window_type_range, 'none')
|
||||
RadarParams.SP.RDM.window_range = ones(1, num_samples_range);
|
||||
elseif strcmpi(RadarParams.SP.RDM.window_type_range, 'hamming')
|
||||
RadarParams.SP.RDM.window_range = hamming(num_samples_range)';
|
||||
elseif strcmpi(RadarParams.SP.RDM.window_type_range, 'blackman')
|
||||
RadarParams.SP.RDM.window_range = blackman(num_samples_range)';
|
||||
elseif strcmpi(RadarParams.SP.RDM.window_type_range, 'chebwin')
|
||||
RadarParams.SP.RDM.window_range = chebwin(num_samples_range, 60)';
|
||||
else
|
||||
RadarParams.SP.RDM.window_range = hann(num_samples_range)';
|
||||
end
|
||||
|
||||
if strcmpi(RadarParams.SP.RDM.window_type_doppler, 'none')
|
||||
RadarParams.SP.RDM.window_doppler = ones(1, num_chirps_doppler);
|
||||
elseif strcmpi(RadarParams.SP.RDM.window_type_doppler, 'hamming')
|
||||
RadarParams.SP.RDM.window_doppler = hamming(num_chirps_doppler)';
|
||||
elseif strcmpi(RadarParams.SP.RDM.window_type_doppler, 'blackman')
|
||||
RadarParams.SP.RDM.window_doppler = blackman(num_chirps_doppler)';
|
||||
elseif strcmpi(RadarParams.SP.RDM.window_type_doppler, 'hann')
|
||||
RadarParams.SP.RDM.window_doppler = hann(num_chirps_doppler)';
|
||||
else
|
||||
RadarParams.SP.RDM.window_doppler = chebwin(num_chirps_doppler, 60)';
|
||||
end
|
||||
|
||||
RadarParams.SP.CFAR.method = 'OS'; % 'CA' 또는 'OS'
|
||||
RadarParams.SP.CFAR.dimension = '2D'; % '1D' 또는 '2D'
|
||||
RadarParams.SP.CFAR.axis = 'doppler'; % 1D일 때만 사용: 'range' 또는 'doppler'
|
||||
|
||||
Reference in New Issue
Block a user