的时候肯定是autocorrelation最大的时候,即自己与自己最为相关; 在的时候,在的时候,会得到第二大的值,即移动一个周期后做相关。

Demo Code

for i = 1:length(signal_list) - 1
    name = strsplit(matFiles(i).name, '.');
    name = name{1};
    [autocor, lag] = xcorr(signal_list{i}, 200);
    figure;
    plot(lag, autocor, 'LineWidth', 1);
    xlabel('Lag');
    ylabel('Auto-correlation');
    title(['Auto-correlation for ', name]);
    grid on;
    grid minor;
 
    [~, max_idx] = max(autocor);
    disp(max_idx);
    freq = 1 / (max_idx * 1 / fs);
    disp(freq)
    fprintf('Signal %s freq: %f\n', name, freq);
end