Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 阶段的最终Goertzel算法实现?_Algorithm_Signal Processing - Fatal编程技术网

Algorithm 阶段的最终Goertzel算法实现?

Algorithm 阶段的最终Goertzel算法实现?,algorithm,signal-processing,Algorithm,Signal Processing,作为使用FFT的更快、更频率特定的替代方案,DTMF音调检测广泛应用于此类设备。在这种情况下,以及在某些其他情况下,只有结果的大小才是重要的,因此使用与否并不重要 但是如果你想从信号中提取相位,这很重要。在每种情况下,d1和d2(或q1和q2)的组合方式不同,导致完全不同的阶段结果。此外,他们似乎都不同意我所做的电子表格模拟,其中我生成了100个已知频率和相位的正弦波样本,然后使用Goertzel算法检测特定频率(采样频率的整数倍)。很清楚的是,当我改变相位时,相位会改变,但在这些情况下,当我把

作为使用FFT的更快、更频率特定的替代方案,DTMF音调检测广泛应用于此类设备。在这种情况下,以及在某些其他情况下,只有结果的大小才是重要的,因此使用与否并不重要

但是如果你想从信号中提取相位,这很重要。在每种情况下,
d1
d2
(或
q1
q2
)的组合方式不同,导致完全不同的阶段结果。此外,他们似乎都不同意我所做的电子表格模拟,其中我生成了100个已知频率和相位的正弦波样本,然后使用Goertzel算法检测特定频率(采样频率的整数倍)。很清楚的是,当我改变相位时,相位会改变,但在这些情况下,当我把一个零相位放进去时,没有一个零相位出现

那么,这些——或者其他什么——是Goertzel算法的最终实现吗?我习惯于FFT,当我输入一个零相位时,它会给我一个零相位输出。从我所读到的,Goertzel算法真的应该做同样的事情。我如何让它在没有任意偏移的情况下实现这一点

更新:维基百科页面的总和是从0到N,而不仅仅是从0到N-1。这可能是一个错误,但如果我将我的模拟扩展一步,我会得到一个更合理的相位结果。。。尽管与输入相位正好相差90度。这是答案所在的线索吗