Phase Noise 생성 활성화 플래그 수정 및 datasheet 정보를 이용한 phasenoise를 우선 적용하도록 수정.
This commit is contained in:
@@ -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 톤 스퍼 표시 ---
|
||||||
|
|||||||
@@ -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'
|
||||||
|
|||||||
Reference in New Issue
Block a user