我正在开发通过比较输入和输出信号的FFT计算系统响应的软件。输入和输出信号被划分为多个窗口,并且对于每个窗口,将信号进行中值相减并乘以Hann函数。那么,该窗口的仪器响应就是已处理数据的FFT比率。
我相信以上是标准程序,尽管我可能对此描述不佳。我的问题来自如何组合来自多个窗口的响应。
据我所知,正确的方法是在所有窗口中平均复数值。振幅和相位响应就是每个频率上平均复数的振幅和相位:
av_response = sum_windows(response) / n
av_amplitude = sqrt(real(av_response)**2 + imag(av_response)**2)
av_phase = atan2(imag(av_response), real(av_response))
频点上的隐式环路。
但我一直在问这个改变计算幅度和在每个窗口期第一,然后平均在所有窗口的振幅和相位:
amplitude = sqrt(real(response)**2 + imag(response)**2)
av_amplitude = sum_windows(amplitude) / n
phase = atan2(imag(response), real(response))
av_phase = sum_windows(phase) / n
我认为这是不正确的,因为平均角度“是错误的”-例如,0度和360度的平均值为180度,但是与我合作的人回答说“好,我们只会显示振幅”。
所以我的问题是:
- 我是否认为第二种方法对振幅也普遍不正确?
- 如果是这样,是否有任何可能相关的例外情况?这些例外情况可以解释为什么我与之共事的人更喜欢第二种方法?例如,随着噪声变小,这两种方法看起来会一致,那么这可能是低噪声的公认近似值吗?
- 如果第二种方法不正确,那么可以使用任何令人信服的权威参考来证明这一点吗?
- 如果第二种方法不正确,是否有任何好的,易于理解的示例针对振幅进行显示(如相位为0和360度的平均值)?
- 另外,如果我做错了,对我来说,如何更好地自我教育的好书呢?
我试图证明-1 1 1 -1 1 -1 -1 -1的平均值应该为零而不是1,但这令人信服。尽管我认为我可以随着时间的流逝,基于给定特定的噪声模型,基于最大似然估计来构造一个论点,但这并不是我与之共事的人会听的那种推理。因此,如果我没有记错的话,我要么需要权威的有力论据,要么需要“明显”的示范。
[我尝试添加更多标签,但找不到相关标签,也无法将新标签定义为新用户-抱歉]