1. SNR 신호처리, Secondary surface 영향 고려하여 SNR 재계산
2. Coverage Figure 개선 3. 윈도우 생성 및 성능 계산 함수 추가
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user