1. SNR 신호처리, Secondary surface 영향 고려하여 SNR 재계산

2. Coverage Figure 개선
3. 윈도우 생성 및 성능 계산 함수 추가
This commit is contained in:
2026-03-06 06:48:07 +09:00
parent e002d08580
commit 3c05d2be09
5 changed files with 270 additions and 123 deletions
+15 -24
View File
@@ -119,29 +119,13 @@ 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
% Range
[RadarParams.SP.RDM.window_range, RadarParams.SP.RDM.window_metrics_range] = ...
create_window_with_metrics(RadarParams.SP.RDM.window_type_range, num_samples_range, 60);
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
% Doppler
[RadarParams.SP.RDM.window_doppler, RadarParams.SP.RDM.window_metrics_doppler] = ...
create_window_with_metrics(RadarParams.SP.RDM.window_type_doppler, num_chirps_doppler, 60);
RadarParams.SP.CFAR.method = 'OS'; % 'CA' 'OS'
RadarParams.SP.CFAR.dimension = '2D'; % '1D' '2D'
@@ -151,7 +135,14 @@ RadarParams.SP.CFAR.train = [8, 8]; % [doppler, range] training cell 수
RadarParams.SP.CFAR.guard = [2, 2]; % [doppler, range] guard cell (1D면 )
RadarParams.SP.CFAR.rank = 0.75; % OS-CFAR rank (0~1)
RadarParams.SP.CFAR.os_scale = 15.0; % OS-CFAR
% 8) Secondary surface loss ( )
RadarParams.Antenna.SecondarySurfaceLoss_dB = 3;
% 9)
RadarParams.Coverage.R_max = 10; % (m)
RadarParams.Coverage.RCS_dBsm = 0; % RCS (dBsm)
%% 2. (TX )
% step 0. TX
@@ -308,7 +299,7 @@ elevation_deg = [];
coverage_info = [];
fig_coverage = [];
if PlotToggle.coverage
[snr_coverage_2d, azimuth_deg, elevation_deg, coverage_info, fig_coverage] = analyze_coverage(RadarParams, 20, 0);
[snr_coverage_2d, azimuth_deg, elevation_deg, coverage_info, fig_coverage] = analyze_coverage(RadarParams, RadarParams.Coverage.R_max, RadarParams.Coverage.RCS_dBsm);
end