【发布时间】:2015-05-14 02:49:10
【问题描述】:
据我了解,当使用 cpsd 函数时:
[Pxy,f] = cpsd(x,y,window,Ns,NFFT,Fs);
matlab 将时间序列数据切割成您指定大小的较小窗口。并且窗口移动了 Ns 个数据点。最终的[Pxy, f] 是从每个单独窗口获得的结果的平均值。如果我对这个过程有错误,请纠正我。
我的问题是,如果我以特定频率使用 angle(Pxy),比如 34Hz。这会给我信号x 和y 在34Hz 频率下的相位差吗?
我对此表示怀疑,因为如果 Pxy 是每个单独窗口之间的平均值,并且因为每个单独的窗口偏移都被偏移了,这是否意味着平均 Pxy 的相位受窗口移位?
我已尝试通过确保窗口偏移对应于对应于 34Hz 的全相位差的整数来纠正此问题。这是正确的吗?
关于我正在做的事情的一些背景:
我基本上在 60 秒内以 1000Hz 采样率进行了多次时间序列压力测量。
功率谱分析表明,每个信号在 34 Hz 处都有一个峰值频率。 (所有窗口的平均值)
我想比较每个信号在 34Hz 峰值下的相位差。
单个窗口的 FFT 分析表明,该峰值频率会四处移动。所以我不确定 cpsd 是否是解决这个问题的正确方法。
我目前正在考虑尝试使用 xcorr 来计算信号之间的总体时间延迟,然后从中计算相位差。我也听说过希尔伯特变换,但我还不知道它是如何工作的。
【问题讨论】: