我有噪声data(峰值周期为1.8s,每周期2048个仓),我想计算频率并删除50Hz。我很确定我要找的频率是50赫兹,因为我是用originlab
找到的。在
当我尝试在python中做同样的事情时,平均峰值是~47Hz。我正在看教程和例子,但结果仍然是一样的。在
import numpy as np
from scipy.fftpack import fft
from scipy.fftpack import fftfreq
import matplotlib.pyplot as plt
data = np.loadtxt('3.dat', comments="#")
t = data[:, 0]
y = data[:, 2]
len_data = len(data)
bins = 2048
plt.figure(figsize=(7, 9))
plt.subplot(211)
plt.plot(t, y, 'b-')
plt.xlabel("time[sec]")
plt.ylabel("original signal")
plt.subplot(212)
F = fft(y)
freq = fftfreq(len(t), (t[1] - t[0]))
ipos = np.where(freq > 0)
freqs = freq[ipos]
mags = np.abs(F[ipos])
plt.plot(freqs, mags, 'b-')
plt.xlabel("freq")
plt.ylabel("POWER")
plt.savefig('stoc.png')
plt.show()
有人能帮我修理吗?在
我得继续问关于切断噪音的问题。当我减去频率时,信号振幅明显减小。这是对的吗?在
^{pr2}$
您的问题似乎是您的时间网格不是均匀分布的:
如果将值插值到时间上的恒定间距:
^{pr2}$峰值为50赫兹:
相关问题 更多 >
编程相关推荐