diff --git a/03. Rx Path/apply_lna_and_mixer.m b/03. Rx Path/apply_lna_and_mixer.m index 1ee8d31..a35a94d 100644 --- a/03. Rx Path/apply_lna_and_mixer.m +++ b/03. Rx Path/apply_lna_and_mixer.m @@ -22,8 +22,10 @@ function [adc_raw_data, adc_combined] = apply_lna_and_mixer(RxOut, TxOut, RadarP phase_noise_cfg = struct(); if isfield(RadarParams.Waveform.nonideal, 'phaseNoise') phase_noise_cfg = RadarParams.Waveform.nonideal.phaseNoise; - if isfield(phase_noise_cfg,'enabled') && phase_noise_cfg.enabled && ... - isfield(phase_noise_cfg,'offset_Hz') && isfield(phase_noise_cfg,'level_dBc_Hz') + has_offset = isfield(phase_noise_cfg,'offset_Hz') && ~isempty(phase_noise_cfg.offset_Hz); + has_level = isfield(phase_noise_cfg,'level_dBc_Hz') && ~isempty(phase_noise_cfg.level_dBc_Hz); + same_length = has_offset && has_level && (numel(phase_noise_cfg.offset_Hz) == numel(phase_noise_cfg.level_dBc_Hz)); + if same_length use_datasheet_phase_noise = true; end end diff --git a/04. Signal Processing/visualize_rd_map_with_spurs.m b/04. Signal Processing/visualize_rd_map_with_spurs.m index ca38e09..982608f 100644 --- a/04. Signal Processing/visualize_rd_map_with_spurs.m +++ b/04. Signal Processing/visualize_rd_map_with_spurs.m @@ -61,7 +61,6 @@ function fig = visualize_rd_map_with_spurs(target_rd_map, r_axis, v_axis, Target ni = RadarParams.Waveform.nonideal; enable_phase_noise = false; enable_nonlinearity = false; - enable_datasheet_phase_noise = false; if isfield(ni,'enable_phase_noise') enable_phase_noise = logical(ni.enable_phase_noise); @@ -69,12 +68,8 @@ function fig = visualize_rd_map_with_spurs(target_rd_map, r_axis, v_axis, Target if isfield(ni,'enable_nonlinearity') enable_nonlinearity = logical(ni.enable_nonlinearity); end - if isfield(ni,'phaseNoise') && isstruct(ni.phaseNoise) && isfield(ni.phaseNoise,'enabled') - enable_datasheet_phase_noise = logical(ni.phaseNoise.enabled); - end - show_nonideal_overlay = show_nonideal_overlay && ... - (enable_phase_noise || enable_nonlinearity || enable_datasheet_phase_noise); + (enable_phase_noise || enable_nonlinearity); end % --- 2. LO/ADC 톤 스퍼 표시 --- diff --git a/Main.m b/Main.m index 1800d75..5e269f3 100644 --- a/Main.m +++ b/Main.m @@ -42,12 +42,11 @@ RadarParams.Waveform.nonideal.pn_level = 0.05; % 위상노이즈 RadarParams.Waveform.nonideal.f_ripple = 300e3; % 위상 리플 주파수 RadarParams.Waveform.nonideal.peak_phase_error = 0.1; % 최대 위상오차 RadarParams.Waveform.nonideal.power_drop_edge = 0.8; % 엣지 파워 드롭 -RadarParams.Waveform.nonideal.enable_phase_noise = false; % phase noise on/off +RadarParams.Waveform.nonideal.enable_phase_noise = true; % phase noise on/off RadarParams.Waveform.nonideal.enable_nonlinearity = false; % nonlinearity on/off % Datasheet 기반 phase noise 설정 (예: -89 dBc/Hz @ 1 MHz) RadarParams.Waveform.nonideal.phaseNoise.offset_Hz = [1e6]; RadarParams.Waveform.nonideal.phaseNoise.level_dBc_Hz = [-89]; -RadarParams.Waveform.nonideal.phaseNoise.enabled = false; % 2-3) MIMO 모드 설정 RadarParams.Waveform.mimoMode = 'TDM'; % 'TDM' 또는 'DDMA'