diff --git a/content/signal_processing/advanced_statistic/autocorrelation/period_detect.md b/content/.trash/period_detect.md similarity index 100% rename from content/signal_processing/advanced_statistic/autocorrelation/period_detect.md rename to content/.trash/period_detect.md diff --git a/content/conference/2024.md b/content/conference/2024.md index ed3daab90..92dd8a69a 100644 --- a/content/conference/2024.md +++ b/content/conference/2024.md @@ -8,5 +8,5 @@ date: 2024-03-25 * https://www.icecet.com/ * http://www.icbibe.org/ * http://www.icbeps.org/ -* https://www.icbbe.com/ +* https://www.icbbe.cICom/ * https://www.ssip.org/ \ No newline at end of file diff --git a/content/signal_processing/advanced_statistic/autocorrelation/autocorrelation.md b/content/signal_processing/advanced_statistic/autocorrelation/autocorrelation.md index aff05673e..f102fc9e1 100644 --- a/content/signal_processing/advanced_statistic/autocorrelation/autocorrelation.md +++ b/content/signal_processing/advanced_statistic/autocorrelation/autocorrelation.md @@ -217,6 +217,11 @@ $$ 其傅里叶变换始终大于0 + +# Application + + +* [Period Detection by Autocorrelation](signal_processing/advanced_statistic/autocorrelation/period_detection.md) # Reference * https://pinkr1ver.notion.site/Autocorrelation-Analysis-Power-Spectral-Density-330755770347472989062c6b31f18a21?pvs=4 diff --git a/content/signal_processing/advanced_statistic/autocorrelation/period_detection.md b/content/signal_processing/advanced_statistic/autocorrelation/period_detection.md new file mode 100644 index 000000000..0419fad36 --- /dev/null +++ b/content/signal_processing/advanced_statistic/autocorrelation/period_detection.md @@ -0,0 +1,38 @@ +--- +title: Period Detection by Autocorrelation +tags: + - signal + - signal-processing +--- + + +$$ +R_x(n,n+m) = E\{x(n)x(n+m)\}=\lim_{N\rightarrow\infty}\frac{1}{N}\sum_{k=1}^{N}x_k(n)x_k(n+m) +$$ + +$m=0$ 的时候肯定是autocorrelation最大的时候,即自己与自己最为相关; +在$m \not = 0$的时候,在$m = \text{Period}$的时候,会得到第二大的值,即移动一个周期后做相关。 + + +# Demo Code + +```matlab +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 +``` \ No newline at end of file diff --git a/content/signal_processing/signal_processing_MOC.md b/content/signal_processing/signal_processing_MOC.md index 4eb6c2ca5..839a88d4f 100644 --- a/content/signal_processing/signal_processing_MOC.md +++ b/content/signal_processing/signal_processing_MOC.md @@ -45,8 +45,7 @@ date: 2024-03-18 ## Autocorrelation * [Autocorrelation in Signal Processing](signal_processing/advanced_statistic/autocorrelation/autocorrelation.md) -* [Autocorrelation to Detect Period](signal_processing/advanced_statistic/autocorrelation/period_detect.md) - +* [Period Detection by Autocorrelation](signal_processing/advanced_statistic/autocorrelation/period_detection.md) # Software ## CST MWS