我正在尝试将 chirp z 变换用于需要小于或等于输入信号长度的任意 FFT 输出大小的应用程序。
但是,我遇到了一个问题,即输出长度与输入长度不同的 CZT 的总输出能量与输入能量相差很大。最初,我通过在执行转换之前对输入数据进行窗口化(使用平顶)来测试这一点。根据输入音调的频率,返回的幅度值不一致。
如果输入音调与 CZT 变换中第一个 FFT 的 bin 中心对齐,我移除窗口并重复实验以发现总能量值是正确的,但否则会非常不正确。
我最好的猜测是算法的第一个 FFT 中的扇形损失以某种方式导致能量无法在其他地方保存。
这似乎表明 CZT 算法违反了 Parseval 定理,因为输出大小不同于输入大小。
有人对这里有什么问题有任何建议吗?