Aesthetic changes
This commit is contained in:
parent
39aa2072cf
commit
6b4dd299f5
@ -187,74 +187,73 @@ end
|
||||
[unique_scan_parameter_values, ~, idx] = unique(scan_parameter_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
|
||||
angle_range = 180; % total angular span of the profile
|
||||
angle_per_bin = angle_range / N_angular_bins;
|
||||
angle_range = 180; % total angular span of the profile
|
||||
angle_per_bin = angle_range / N_angular_bins;
|
||||
|
||||
max_peak_angle = 60;
|
||||
max_peak_bin = round(max_peak_angle / angle_per_bin);
|
||||
max_peak_angle = 60;
|
||||
max_peak_bin = round(max_peak_angle / angle_per_bin);
|
||||
|
||||
window_size = 10;
|
||||
angle_threshold = 100;
|
||||
|
||||
ref_peak_angles = [];
|
||||
angle_at_max_g2 = [];
|
||||
g2_values = [];
|
||||
g2_values = [];
|
||||
|
||||
for i = 1:N_params
|
||||
group_idx = find(idx == i);
|
||||
group_data = delta_nkr_all(group_idx, :);
|
||||
group_idx = find(idx == i);
|
||||
group_data = delta_nkr_all(group_idx, :);
|
||||
|
||||
for j = 1:size(group_data, 1)
|
||||
profile = group_data(j, :);
|
||||
profile = group_data(j, :);
|
||||
|
||||
% Restrict search for peak only in 0° to 90°
|
||||
restricted_profile = profile(1:max_peak_bin);
|
||||
[~, peak_idx_rel] = max(restricted_profile);
|
||||
restricted_profile = profile(1:max_peak_bin);
|
||||
[~, peak_idx_rel] = max(restricted_profile);
|
||||
|
||||
% Convert relative peak index to global index in profile
|
||||
peak_idx = peak_idx_rel;
|
||||
|
||||
peak_angle = (peak_idx - 1) * angle_per_bin; % zero-based bin index to angle
|
||||
peak_idx = peak_idx_rel;
|
||||
peak_angle = (peak_idx - 1) * angle_per_bin; % zero-based bin index to angle
|
||||
|
||||
% Determine shift direction based on peak angle
|
||||
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
|
||||
offsets = -round(70 / angle_per_bin) : -round(50 / angle_per_bin);
|
||||
offsets = -round(70 / angle_per_bin) : -round(50 / angle_per_bin);
|
||||
end
|
||||
|
||||
% Reference window around largest peak
|
||||
ref_window = mod((peak_idx - window_size):(peak_idx + window_size) - 1, N_angular_bins) + 1;
|
||||
ref = profile(ref_window);
|
||||
ref_window = mod((peak_idx - window_size):(peak_idx + window_size) - 1, N_angular_bins) + 1;
|
||||
ref = profile(ref_window);
|
||||
|
||||
% Store reference peak angle
|
||||
ref_peak_angles(end+1) = peak_angle;
|
||||
|
||||
correlations = zeros(size(offsets));
|
||||
angles = zeros(size(offsets));
|
||||
correlations = zeros(size(offsets));
|
||||
angles = zeros(size(offsets));
|
||||
|
||||
for k = 1:length(offsets)
|
||||
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 = profile(sec_window);
|
||||
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 = profile(sec_window);
|
||||
|
||||
% Calculate g2 correlation
|
||||
num = mean(ref .* sec);
|
||||
denom = mean(ref.^2);
|
||||
g2 = num / denom;
|
||||
num = mean(ref .* sec);
|
||||
denom = mean(ref.^2);
|
||||
g2 = num / denom;
|
||||
|
||||
correlations(k) = g2;
|
||||
correlations(k) = g2;
|
||||
|
||||
% Compute angle for this shifted window (map to 0-180 degrees)
|
||||
angle_val = mod((peak_idx - 1 + offsets(k)) * angle_per_bin, angle_range);
|
||||
angles(k) = angle_val;
|
||||
angle_val = mod((peak_idx - 1 + offsets(k)) * angle_per_bin, angle_range);
|
||||
angles(k) = angle_val;
|
||||
end
|
||||
|
||||
[max_corr, max_idx] = max(correlations);
|
||||
g2_values(end+1) = max_corr;
|
||||
[max_corr, max_idx] = max(correlations);
|
||||
g2_values(end+1) = max_corr;
|
||||
angle_at_max_g2(end+1) = angles(max_idx);
|
||||
end
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user