Aesthetic changes

This commit is contained in:
Karthik 2025-07-08 17:15:41 +02:00
parent 39aa2072cf
commit 6b4dd299f5

View File

@ -187,74 +187,73 @@ end
[unique_scan_parameter_values, ~, idx] = unique(scan_parameter_values); [unique_scan_parameter_values, ~, idx] = unique(scan_parameter_values);
% Number of unique alpha values % Number of unique alpha values
N_params = length(unique_scan_parameter_values); N_params = length(unique_scan_parameter_values);
% Define angular range and bins % Define angular range and bins
angle_range = 180; % total angular span of the profile angle_range = 180; % total angular span of the profile
angle_per_bin = angle_range / N_angular_bins; angle_per_bin = angle_range / N_angular_bins;
max_peak_angle = 60; max_peak_angle = 60;
max_peak_bin = round(max_peak_angle / angle_per_bin); max_peak_bin = round(max_peak_angle / angle_per_bin);
window_size = 10; window_size = 10;
angle_threshold = 100; angle_threshold = 100;
ref_peak_angles = []; ref_peak_angles = [];
angle_at_max_g2 = []; angle_at_max_g2 = [];
g2_values = []; g2_values = [];
for i = 1:N_params for i = 1:N_params
group_idx = find(idx == i); group_idx = find(idx == i);
group_data = delta_nkr_all(group_idx, :); group_data = delta_nkr_all(group_idx, :);
for j = 1:size(group_data, 1) for j = 1:size(group_data, 1)
profile = group_data(j, :); profile = group_data(j, :);
% Restrict search for peak only in 0° to 90° % Restrict search for peak only in 0° to 90°
restricted_profile = profile(1:max_peak_bin); restricted_profile = profile(1:max_peak_bin);
[~, peak_idx_rel] = max(restricted_profile); [~, peak_idx_rel] = max(restricted_profile);
% Convert relative peak index to global index in profile % Convert relative peak index to global index in profile
peak_idx = peak_idx_rel; peak_idx = peak_idx_rel;
peak_angle = (peak_idx - 1) * angle_per_bin; % zero-based bin index to angle
peak_angle = (peak_idx - 1) * angle_per_bin; % zero-based bin index to angle
% Determine shift direction based on peak angle % Determine shift direction based on peak angle
if peak_angle < angle_threshold if peak_angle < angle_threshold
offsets = round(50 / angle_per_bin) : round(70 / angle_per_bin); offsets = round(50 / angle_per_bin) : round(70 / angle_per_bin);
else else
offsets = -round(70 / angle_per_bin) : -round(50 / angle_per_bin); offsets = -round(70 / angle_per_bin) : -round(50 / angle_per_bin);
end end
% Reference window around largest peak % Reference window around largest peak
ref_window = mod((peak_idx - window_size):(peak_idx + window_size) - 1, N_angular_bins) + 1; ref_window = mod((peak_idx - window_size):(peak_idx + window_size) - 1, N_angular_bins) + 1;
ref = profile(ref_window); ref = profile(ref_window);
% Store reference peak angle % Store reference peak angle
ref_peak_angles(end+1) = peak_angle; ref_peak_angles(end+1) = peak_angle;
correlations = zeros(size(offsets)); correlations = zeros(size(offsets));
angles = zeros(size(offsets)); angles = zeros(size(offsets));
for k = 1:length(offsets) for k = 1:length(offsets)
shifted_idx = mod(peak_idx + offsets(k) - 1, N_angular_bins) + 1; shifted_idx = mod(peak_idx + offsets(k) - 1, N_angular_bins) + 1;
sec_window = mod((shifted_idx - window_size):(shifted_idx + window_size) - 1, N_angular_bins) + 1; sec_window = mod((shifted_idx - window_size):(shifted_idx + window_size) - 1, N_angular_bins) + 1;
sec = profile(sec_window); sec = profile(sec_window);
% Calculate g2 correlation % Calculate g2 correlation
num = mean(ref .* sec); num = mean(ref .* sec);
denom = mean(ref.^2); denom = mean(ref.^2);
g2 = num / denom; g2 = num / denom;
correlations(k) = g2; correlations(k) = g2;
% Compute angle for this shifted window (map to 0-180 degrees) % Compute angle for this shifted window (map to 0-180 degrees)
angle_val = mod((peak_idx - 1 + offsets(k)) * angle_per_bin, angle_range); angle_val = mod((peak_idx - 1 + offsets(k)) * angle_per_bin, angle_range);
angles(k) = angle_val; angles(k) = angle_val;
end end
[max_corr, max_idx] = max(correlations); [max_corr, max_idx] = max(correlations);
g2_values(end+1) = max_corr; g2_values(end+1) = max_corr;
angle_at_max_g2(end+1) = angles(max_idx); angle_at_max_g2(end+1) = angles(max_idx);
end end
end end