numpy fft在绘图时返回原始频率

2024-05-03 07:44:10 发布

您现在位置:Python中文网/ 问答频道 /正文

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

df = pd.read_csv('signal180_single.csv', sep=',', header=None)
x = df.values
length = len(x)
# frequency 0.02s
fs = 50.0
t = np.arange(0, length/fs,1.0/fs)

xF = np.fft.fft(x)
N = len(xF)
xF = xF[0:N/2]

# plot frequencys from 0 to fs, with num = N/2
fr = np.linspace(0,fs,N/2)

plt.figure()
plt.subplot(211)
plt.plot(t,x)
plt.subplot(212)
plt.plot(fr, abs(xF))
plt.show()

我正在从文件将180000个浮点值写入数组。 这些值以50赫兹采样,并包含2赫兹的正弦。在

然后我在上面的绘图窗口中绘制频率。 我想在下面的绘图窗口中绘制频率的specter,但是我得到的值与上面的绘图窗口中的值相同。 有人能看到错误在哪里吗?在

当我绘制公式x=np.sin公司(10*t)+np.cos公司(3*t),我得到了频率,但当我从文件或数组中读取窦性信号时却没有。在


Tags: csvimport绘图dflenplotasnp