擅长:python、mysql、java
<p>您的数据以1分钟的间隔获取,因此Fs=1/60而不是1/1440。在</p>
<p>我不清楚什么是完全不适合你,但试试这个修改后的版本。在</p>
<pre><code>from scipy.fftpack import fftfreq
# Sampling rate
Fs = 1.0/60.0
#Calculate the anomalies from the mean of time series y
y = y - y.mean()
#Calculate FFT
fftVar = np.fft.fft(y)
#calculate the frequencies.
#Here 1/Fs is the sampling interval, which is 1 minute (60 seconds)
f = fftfreq(len(y), 1/Fs)
#Remove frequencies not needed
frqThreshold = 0.9 * Fs/2
fftVar[(f >= frqThreshold) | (f <= -frqThreshold)] = 0.0
postFFT = np.real(np.fft.ifft(fftVar))
</code></pre>
<p>另外,要进行数字滤波,您可能需要考虑使用<code>butter</code>和{<cd2>}from{<cd3>}。在</p>