Phase Noise 생성 활성화 플래그 수정 및 datasheet 정보를 이용한 phasenoise를 우선 적용하도록 수정.

This commit is contained in:
2026-03-02 15:06:38 +09:00
parent a3615caf08
commit 855c3d1d55
3 changed files with 6 additions and 10 deletions
+4 -2
View File
@@ -22,8 +22,10 @@ function [adc_raw_data, adc_combined] = apply_lna_and_mixer(RxOut, TxOut, RadarP
phase_noise_cfg = struct(); phase_noise_cfg = struct();
if isfield(RadarParams.Waveform.nonideal, 'phaseNoise') if isfield(RadarParams.Waveform.nonideal, 'phaseNoise')
phase_noise_cfg = RadarParams.Waveform.nonideal.phaseNoise; phase_noise_cfg = RadarParams.Waveform.nonideal.phaseNoise;
if isfield(phase_noise_cfg,'enabled') && phase_noise_cfg.enabled && ... has_offset = isfield(phase_noise_cfg,'offset_Hz') && ~isempty(phase_noise_cfg.offset_Hz);
isfield(phase_noise_cfg,'offset_Hz') && isfield(phase_noise_cfg,'level_dBc_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; use_datasheet_phase_noise = true;
end end
end end
@@ -61,7 +61,6 @@ function fig = visualize_rd_map_with_spurs(target_rd_map, r_axis, v_axis, Target
ni = RadarParams.Waveform.nonideal; ni = RadarParams.Waveform.nonideal;
enable_phase_noise = false; enable_phase_noise = false;
enable_nonlinearity = false; enable_nonlinearity = false;
enable_datasheet_phase_noise = false;
if isfield(ni,'enable_phase_noise') if isfield(ni,'enable_phase_noise')
enable_phase_noise = logical(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') if isfield(ni,'enable_nonlinearity')
enable_nonlinearity = logical(ni.enable_nonlinearity); enable_nonlinearity = logical(ni.enable_nonlinearity);
end 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 && ... show_nonideal_overlay = show_nonideal_overlay && ...
(enable_phase_noise || enable_nonlinearity || enable_datasheet_phase_noise); (enable_phase_noise || enable_nonlinearity);
end end
% --- 2. LO/ADC --- % --- 2. LO/ADC ---
+1 -2
View File
@@ -42,12 +42,11 @@ RadarParams.Waveform.nonideal.pn_level = 0.05; % 위상노이즈
RadarParams.Waveform.nonideal.f_ripple = 300e3; % RadarParams.Waveform.nonideal.f_ripple = 300e3; %
RadarParams.Waveform.nonideal.peak_phase_error = 0.1; % RadarParams.Waveform.nonideal.peak_phase_error = 0.1; %
RadarParams.Waveform.nonideal.power_drop_edge = 0.8; % 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 RadarParams.Waveform.nonideal.enable_nonlinearity = false; % nonlinearity on/off
% Datasheet phase noise (: -89 dBc/Hz @ 1 MHz) % Datasheet phase noise (: -89 dBc/Hz @ 1 MHz)
RadarParams.Waveform.nonideal.phaseNoise.offset_Hz = [1e6]; RadarParams.Waveform.nonideal.phaseNoise.offset_Hz = [1e6];
RadarParams.Waveform.nonideal.phaseNoise.level_dBc_Hz = [-89]; RadarParams.Waveform.nonideal.phaseNoise.level_dBc_Hz = [-89];
RadarParams.Waveform.nonideal.phaseNoise.enabled = false;
% 2-3) MIMO % 2-3) MIMO
RadarParams.Waveform.mimoMode = 'TDM'; % 'TDM' 'DDMA' RadarParams.Waveform.mimoMode = 'TDM'; % 'TDM' 'DDMA'