Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中有限信号的傅里叶变换_Python_Numpy_Fft - Fatal编程技术网

python中有限信号的傅里叶变换

python中有限信号的傅里叶变换,python,numpy,fft,Python,Numpy,Fft,我想计算有限时间序列的使用 傅里叶变换在有限的时间间隔内进行。可以指定此时间间隔的长度。但是,我不希望时间间隔的长度会影响任何给定频率下变换的振幅。这似乎就是发生的情况: 短时间序列(橙色)似乎比长时间序列(蓝色)具有更高的傅里叶振幅。一些示例代码: from __future__ import division import matplotlib.pyplot as plt import numpy as np import glob import scipy.integrate #Se

我想计算有限时间序列的使用

傅里叶变换在有限的时间间隔内进行。可以指定此时间间隔的长度。但是,我不希望时间间隔的长度会影响任何给定频率下变换的振幅。这似乎就是发生的情况:

短时间序列(橙色)似乎比长时间序列(蓝色)具有更高的傅里叶振幅。一些示例代码:

from __future__ import division
import matplotlib.pyplot as plt
import numpy as np
import glob
import scipy.integrate


#Set up plotting environment
plt.rc('text', usetex=True)
plt.rc('font', family='serif')
fig = plt.figure(figsize=(20,10))
ax1 = plt.subplot2grid((1,2), (0,0))
ax2 = plt.subplot2grid((1,2), (0,1))


def process(f):

    #Load the data
    data = np.load(f)


    #plot the time series
    plot_data =  data['plot_data']

    t_norm = plot_data[:,0]
    y_norm = plot_data[:,1]

    ax1.plot(t_norm, y_norm)

    #Now get the FT using the proper data
    real_data = data['real_data']
    t = real_data[:,0]
    y = real_data[:,1]

    #Get the frequencies   
    f = np.fft.rfftfreq(y.size)
    dt = t[1] - t[0]

    y_FT = dt*np.fft.rfft(y)
    y_FT = np.abs(y_FT)
    ax2.loglog(f,y_FT)

all_files = glob.glob('*.npz')
for f in all_files:
    process(f)



#Label axes
ax1.set_xlabel('t [days]')
ax1.set_ylabel('y (t)')

ax2.set_xlabel('f [Hz]')
ax2.set_ylabel(r'$\mid y (f) \mid$')


plt.show()
这两个数据集是和
谁能解释一下我做错了什么吗?

@Yacola谢谢你的回答。你是说正确的图表吗?你是说数值噪声,傅里叶变换是怎么做的?看看这个笔记本,小的浮动被处理了吗?@user1887919,不知怎么的,我删除了第一条评论,但是是的,是正确的。左图(宏观视图)看起来很好,右图(对数)显示,与2e-5 Hz之前的蓝色FFT相比,橙色FFT缺少点,之后这两种FFT之间的剩余差异没有任何物理意义。