快速平均平方差函数
我想知道是否有人知道计算周期信号的平均平方差函数(ASDF)或平均幅度差函数(AMDF)的快速(即 O(N log(N)) )方法,或者甚至是可能的。
我知道可以使用FFT来计算周期性互相关。 例如,在Matlab代码中,
for i=1:N
xc(i)=sum(x1*circshift(x2,i-1));
end
相当于更快
xc=ifft(fft(x1).*conj(fft(x2));
是否有类似的“快速”算法
for i=1:N
ASDF(i)=sum((x1-circshift(x2,i-1)).^2)/N;
end
或
for i=1:N
AMDF(i)=sum(abs(x1-circshift(x2,i-1)))/N;
end
?
I'm wondering if anyone knows of a fast (i.e. O(N log(N)) ) method of calculating the average square difference function (ASDF) or average magnitude difference function (AMDF) for a periodic signal, or it is even possible.
I know that one can use the FFT to calculate the periodic cross correlation. For example, in Matlab code,
for i=1:N
xc(i)=sum(x1*circshift(x2,i-1));
end
is equivalent to the much faster
xc=ifft(fft(x1).*conj(fft(x2));
Is there a similar "fast" algorithm for
for i=1:N
ASDF(i)=sum((x1-circshift(x2,i-1)).^2)/N;
end
or
for i=1:N
AMDF(i)=sum(abs(x1-circshift(x2,i-1)))/N;
end
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
方式扩展 ASDF 的定义:
您可以按如下
You can expand your definition of ASDF as follows:
which simplifies to