具有重叠滑动的自定义自相关 window

Custom autocorrelation with overlapping sliding window

我正在尝试根据下图中的信息在 matlab 中制作自定义自相关函数:

该函数有效,但我收到一个错误,指出索引超出了矩阵维度,从数学上讲它是正确的,但在编程中我是否遗漏了什么?这是我的代码:

close all; clear all; clc;

[x,fs]=audioread('c1.wav');
N=length(x); %// length of signal
n1=128;  %// length of window
win_num=floor(N/n1); %// number of windows
m=1:n1;
for l=1:n1/2:win_num %// 50% overlapping - 64 samples for a 128 window
    for n=1:N-m 
        cmax(n)=max(sum(x(n+m)*conj(x(n))));
    end
end

提前致谢。

我假设当您执行 for n=1:N-m 时您想要执行 for n=1:N-max(m)(或 for n=N-m(end))。

如果你做第一个 N-m returns 一个数组,而不是单个值,因为 m 是一个数组!