我们有一个 FPGA 系统,它从 ADC 获取输入并计算 FFT。系统识别我们感兴趣的频率的位置,并将这些箱中的系数发送到我的软件。除了系数之外,我还收到了时间序列数据
当硬件人员在硬件上工作时,我开发了额外的信号处理代码。为了进行测试和开发,我编写了一些代码来合成我希望从硬件接收到的信号,并且效果很好。不出所料,现在我有实时数据没有任何效果。
在调试问题的过程中,我正在获取真实世界的时间序列数据并np.numpy.fft.rfft
用于查看频谱。当我绘制频谱时,我会在正确的 FFT 箱中看到我们感兴趣的频率。我将 PSD 和 Python 的 FFT 标准化,硬件 FFT 匹配得很好。我看到的问题是系数的相位不匹配。阶段的差异看起来并不有序。(只看图中的相位差)。
当我使用 FPGA 提供的时间序列(这是真实世界的数据)计算 FFT 时,numpy.fft.rfft
我希望我感兴趣的频率处的系数与 FPGA FFT 计算的系数具有相同的相位,后者在相同的条件下运行时间序列。
有谁知道什么可能导致相同真实世界时间序列数据上的 FFT 具有不同的系数相位?
谢谢
贾斯汀