【发布时间】:2019-03-17 18:40:03
【问题描述】:
根据http://www.thefouriertransform.com/
" 傅里叶变换表明任何波形都可以重写为正弦函数的总和。"
我有一些信号(每个信号的形状为 256,64),我想将它们分解为子信号,然后我想使用这些子信号来生成真实的信号。我现在正在这样做:-
#getting data
with open('../f', 'rb') as fp:
f=pickle.load(fp)
from scipy.fftpack import fft, dct
f=f[0]
tf=fft(f)
x=np.reshape(np.abs(tf),(256,64))
plt.plot(x)
plt.show()
print(x.shape) #same shape as f
但我得到的输出与真实信号的形状相同,但有一些最终被丢弃的虚值。我在这里查看了其他傅立叶问题,但没有一个给出令人满意的结果,它们只是转换了输入信号。我究竟做错了什么?任何帮助将不胜感激。
【问题讨论】:
-
当您从时域中的曲线开始时,然后在每个频率都有幅度和相位的频域中应用 fft its then ... 将此频域转换回时域,以重新创建原始源曲线,您需要执行我在您的代码中没有看到的逆 fft ...从头开始自己编写这个 ifft 很有启发性,但是 python 有这样一个 ifft api 调用
-
我使用了 ifft,但它只会将 x 转换回 f。但是我怎样才能得到傅里叶变换输出的那些特征或子信号呢?或者我怎样才能像绘制它们一样可视化它们?
标签: python-3.x scipy fft