我对生理数据进行了多次试验。我正在进行基于频率的分析,以分析某些特定频率下的功率(振幅)。对多个相等长度的试验进行平均,然后对平均信号进行一次FFT,而不是对每个试验计算FFT,然后对频点进行平均,是否相同?实际上,我发现情况并非如此。

具体来说,信号自然具有很强的1 / f分量,如果我计算每个单独试验的FFT,然后平均每个频点的幅度(实数部分),这一点就会得到强调。这两个相等吗?有正确的做事方法吗?还是应该在什么原则条件下在时域平均与频点平均之间进行选择?

#1 楼

让我澄清一下。


傅立叶变换不代表信号的直方图。傅立叶变换是一种线性变换,它将信号从时域(复函数)传递到频域(另一个复函数)。它需要将一个复数函数转换为另一个复数函数。
傅立叶变换是线性的,如上面的提示所指出。
样本中的相位如上所述。如果逐项试验数据的相位不同,则您不希望在进行傅立叶变换之前进行平均,但也不想在进行傅立叶变换之后进行平均。您想要在傅立叶变换和范数后求平均值。我将在下面尽可能详细地说明需要做的事情。

这里的主要问题是问题是错误的。它不是“我应该在平均之前或之后进行傅立叶变换”。因为它不会因傅立叶变换的线性而有所不同。

正确的问题是“我应该在平均之前或之后取傅里叶变换的幅度”。对于这个问题,答案是之前。

以下是详细信息。

假设您的采样数据由以下序列表示:

$ d_1 = d_1 [n_1],d_1 [n_2],... d_1 [n_N] $

$ d_2 = d_2 [n_1],d_2 [n_2],... d_2 [n_N] $

$ d_3 = d_3 [n_1],d_3 [n_2],... d_3 [n_N] $

...

$ d_M = d_M [n_1],d_M [n_2],... d_M [n_N] $

其中$ d_1,... d_M $是来自M次试验的数据,$ n_1,... n_N $是采样的时间点,则:

$ F_1 = \ sum_ {j = 1 } ^ M {| \ mathcal {F} \ {d_j \} |} \ neq | \ mathcal {F} \ {\ sum_ {j = 1} ^ M {d_j} \} | = F_2 $

因此,虽然变换$ \ mathcal {F} $是线性的,但$ | \ mathcal {F} | $却不是。

另外,而$ d_j [n_i] $对于所有$ i,j $是真实的,$ \ mathcal {F} \ {d_j \} $不是,但$ | \ mathcal {F} \ {d_j \} | $是真实的。

至于您应该做什么,您应该对单个试验进行傅立叶变换(通过FFT),获得单个试验的幅度,然后将它们平均起来。

最后,什么是$ 1 / f $。 $ 1 / f $是“自然”信号(通常人们会想到的图像)频谱的短期称呼。

当人们说$ 1 / f $的成分很大时,表示振幅作为频率的函数看起来像$ 1 / f $。这完全是手工挥舞的...可能来自生物学家:$ 1 / f $的傅立叶逆变换是一些符号函数,但这没用。这是一个假想的符号功能!实函数会产生对称的傅立叶变换。

实际上,频谱是$ 1 / f $,可以告诉您有关信号的某些信息,但不能让您恢复信号。您所知道的只是$ | \ mathcal {F} \ {x(t)\} | = | 1 / f | $。这并不能让您唯一地确定$ x(t)$,因为所有相位信息都已消失,而且我们知道信号的结构很大程度上取决于其相位。

$ 1 / f是什么$告诉你吗?简单地说,它包含很多低频和一点高频。

同样重要的一个问题是,平均会买到什么?更重要的是如何解释结果?明天收听,进行更深入的讨论:p

评论


$ \ begingroup $
+1感谢您的澄清。我觉得我对这个问题背后的根本问题有误解,我认为这更能引起人们的注意。
$ \ endgroup $
– jstarr
13年1月26日在3:07

#2 楼

首先,FFT是一种算法。该变换称为傅立叶变换!它代表信号的直方图。在离散情况下,频域中的高读数意味着该频率上的大量能量。

不要在FFT之前对数据求平均,因为相位信息会引起数据的显着变化。

想象两个样本,每个样本都包含一个纯余弦。在现实世界中,您永远不会在完全相同的起点上捕获此余弦。一个余弦将被替换为另一余弦(或者两个余弦将被替换为开始。数学上这是说y1 = cos(wt-A)y2 = cos(wt-B)其中A和B是偏移。在您的模型中两个更好地表现为同一件事。通过一点数学运算,我可以选择这些值,以使y2-y1 = 0。零的平均值为零,并且完全不是您想要的。这是相位问题。

如果您的目标是找到应该在整个光谱中平均的平均光谱,请不要对信号进行平均!

评论


$ \ begingroup $
谢谢你。当然存在这样的担忧,即,如果每个试音之间的相位差都恰到好处,那么它会消除所有或感兴趣频率的信号。我仍然不清楚为什么1 / f是通过频点平均而不是时域平均然后是FFT来强调的。
$ \ endgroup $
–user1487551
13年1月15日在7:11

$ \ begingroup $
@ user1487551强1 / f分量是什么意思? 1 / f的傅立叶逆变换是正负号函数,可能会在系统稳定时暗示您的数据包含很大的块。您可能应该显示一个图或一些数据。
$ \ endgroup $
–米哈伊尔
13年1月15日在7:18

$ \ begingroup $
请注意,如果您有可以将数据捕获同步到的相位参考,则可以进行时间平均,这对于降低本底噪声非常有效,但是,确实,您需要在其中进行整体平均频域。
$ \ endgroup $
– Paul R
13年1月15日在7:52

#3 楼

除非我完全不了解或误解您的问题,否则答案是肯定的:通过DFT的线性,对信号进行平均,然后取平均值的DFT等于对信号的DFT进行平均。

为了显示这一点,让我们定义一些变量:


$ x_ {n} [\ ell] $:$ \ ell ^ {th} $-时间的时域示例$ n $
$ X_ {k} [\ ell] $:$ \ ell ^ {th} $试用频率为$ k $的频域样本

时域由$ \ frac {1} {L} \ sum _ {\ ell = 0} ^ {L} x_ {n} [\ ell] $给出。以其DFT,我们有

$ \ sum_ {n = 0} ^ {N-1} \ frac {1} {L} \ sum _ {\ ell} ^ {L} x_ {n} [\ ell] e ^ {-i 2 \ pi kn / N} $。

切换求和顺序,我们可以写

$ \ frac {1} {L} \ sum _ {\ ell = 0} ^ {L} \ sum_ {n = 0} ^ {N-1} x_ {n} [\ ell] e ^ {-i 2 \ pi kn / N},$

,但这与

$ \ frac {1} {L} \ sum _ {\ ell = 0} ^ {L} X_ {k} [l]相同$

,这与平均每个trival的DFT相同。这就是我们想要展示的。

评论


$ \ begingroup $
要在时域中进行平均,您需要某种相位参考,您可以对其进行同步。当可用时,尽管有时可以得到比在频域中进行整体平均更好的结果,这主要是由于减少了量化效应等。
$ \ endgroup $
– Paul R
13年1月23日在9:05