我想找到我的数据的 y 轴和我的 FFT(幅度)的垂直轴之间的关系。为此,我正在测试当我更改数据的 y 轴时 FFT 的幅度如何变化。例如,我绘制了从 0 到 2*pi 的 sin(t),并使用 Numpy 的 FFT 包进行 FFT,得到的频率约为 1/(2*pi)。然后我将 1 添加到我的所有 y 值中,只是为了将我的正弦函数在任何地方上移 1 个单位;但是,当我进行 FFT 时,我得到了一些没有意义的东西。当我只是将正弦函数向上移动时,为什么 FFT 完全不同?任何帮助将不胜感激。先感谢您。
import math
import numpy as np
import numpy.fft as fft
import matplotlib.pyplot as plt
t = np.linspace(0, 2*math.pi, 10)
y1 = np.sin(t)
y2 = np.sin(t) + 1
plt.plot(t, y2) # y1 can be used instead
plt.xlabel('time')
plt.ylabel('height')
plt.show()
fft_power = fft.fft(y2) # y1 can be used instead
rfft_power = fft.rfft(y2) # y1 can be used instead
sample_spacing = 0.6981317
frequency = fft.fftfreq(len(fft_power), sample_spacing)
real_frequency = fft.rfftfreq(len(fft_power), sample_spacing)
plt.plot(real_frequency.real, rfft_power.real)
plt.xlabel('frequency')
plt.ylabel('amplitude')
plt.show()