我已经计算power spectrum
了信号。步骤是:
- 时间信号的 FFT
- FFT绝对值的平方/信号长度即功率谱
现在我想把它转换成时域。我应该遵循哪些步骤。
我已经计算power spectrum
了信号。步骤是:
现在我想把它转换成时域。我应该遵循哪些步骤。
从频域重构原始信号需要幅度和相位信息。因此,当您计算功率谱并仅保留幅度时,您不再拥有唯一重建原始信号所需的所有信息。
换句话说,我们可以找到不同信号具有完全相同功率谱的示例。在那种情况下,检索这些不同信号中的哪一个是原始信号是不可能的。
作为一个简单的说明,假设原始信号x
是:
x = [0.862209 0.43418 0.216947544 0.14497645];
为了争论,让我们考虑一些其他的信号y
,我为这个例子的目的特制了它:
y = [-0.252234 -0.0835824 -0.826926341 -0.495571572];
如下图所示,这两个信号可能看起来完全不相关:
然而,它们确实共享相同的功率谱:
f = [0:N-1]/N;
Xf = fft(x,N);
Yf = fft(y,N);
hold off; plot(f, Xf.*conj(Xf)/N, 'b');
hold on; plot(f, Yf.*conj(Yf)/N, 'r:');
xlabel('Normalized frequency');
legend('Px', 'Py')
title('Power spectrum');
结果,只看到功率谱而不知道您从 开始的x
人很可能会猜到您是从 开始的y
。
也就是说,这些信号具有相同的功率谱这一事实可以告诉你,这些信号并不像你想象的那么不相关。事实上,这些信号在时域中也共享相同的自相关函数:
Rx = xcorr(x);
Ry = xcorr(y);
t = [0:length(Rx)-1] - length(x) + 1;
hold off; stem(t, Rx, 'bo');
hold on; stem(t, Ry, 'rx');
legend('Rxx', 'Ryy');
xlabel('lag');
title('Autocorrelation');
这是可以预料的,因为可以通过计算功率谱的逆变换(使用ifft )来获得自相关。但是,这与您在时域中可以恢复的差不多。任何具有这种自相关函数的信号都可以作为对原始信号的猜测。如果您非常有动力,您可以尝试求解从自相关定义中获得的非线性方程组,并获得可能信号的列表。这仍然不足以判断哪一个是原始的,并且正如您在比较我的示例x
和时注意到的那样y
,它不会有太多的意义。
查看描述时域信号的功率(或幅度)谱的非唯一性的最简单方法是,白噪声和时域中的 delta 函数具有相同的功率(或幅度)谱 - 一个常数 - 在频域。