Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.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_Fft - Fatal编程技术网

Python-绘制非周期值的傅里叶变换的问题

Python-绘制非周期值的傅里叶变换的问题,python,fft,Python,Fft,我在绘制数据系列的傅里叶变换时遇到问题。我测量了一些振荡的东西,我的值是这样的(x轴是时间,10秒,y是某种加速度): 然后我用这个函数做傅里叶变换: def plot_magnitude_spectrum(signal, title, sr): ft = np.fft.fft(signal) magnitude_spectrum = np.abs(ft) plt.figure(figsize=(18,5)) frequency = np.linspa

我在绘制数据系列的傅里叶变换时遇到问题。我测量了一些振荡的东西,我的值是这样的(x轴是时间,10秒,y是某种加速度):

然后我用这个函数做傅里叶变换:

def plot_magnitude_spectrum(signal, title, sr):
    ft = np.fft.fft(signal)
    magnitude_spectrum = np.abs(ft)
    
    plt.figure(figsize=(18,5))
    frequency = np.linspace(0, sr, len(magnitude_spectrum))
    plt.plot(frequency, magnitude_spectrum)
    plt.xlabel("frequencies")
    plt.title(title)
    plt.show()
    
    
plot_magnitude_spectrum(normes, "normes", 10.5)
信号是我的测量值列表,sr是采样率(我每秒钟有10.5个测量值)。 它给了我这个图表:


我试图找到振荡的频率,但我觉得我做错了。FFT是否执行错误?

第一项是常数,表示信号的平均值。因为原始信号的平均值相当大,所以常数项也很大也就不足为奇了。看看吉布斯现象。傅里叶变换隐式地将信号视为周期性的,因此想象一下将信号并排叠加——边界处会有明显的差异,因此在小频率下会有大量的功率。尝试你的代码在一个信号,你理解像一个正弦波,以确保它的工作正常。查看窗口功能,并考虑裁剪您的数据。