From 6b4dd299f56c74657dfa5a3b8bd6e53daeb194d4 Mon Sep 17 00:00:00 2001 From: Karthik Chandrashekara Date: Tue, 8 Jul 2025 17:15:41 +0200 Subject: [PATCH] Aesthetic changes --- Data-Analyzer/extractCustomCorrelation.m | 61 ++++++++++++------------ 1 file changed, 30 insertions(+), 31 deletions(-) diff --git a/Data-Analyzer/extractCustomCorrelation.m b/Data-Analyzer/extractCustomCorrelation.m index e406087..f0db2e9 100644 --- a/Data-Analyzer/extractCustomCorrelation.m +++ b/Data-Analyzer/extractCustomCorrelation.m @@ -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