如何使用numpy对离散傅里叶变换采样频率进行门控

时间:2014-06-06 08:44:03

标签: python matplotlib signal-processing fft

在可用的教程和示例的帮助下,我写下了通过文本文件" jai.txt"提供给脚本的给定数据集的代码。

1 13.5872
2 12.4938666667
3 14.1024
4 13.1434666667
5 13.1552
6 13.0570666667
7 13.2309333333
8 12.6170666667
9 12.4213333333
10 14.6373333333
11 11.8170666667

但是这段代码生成空白图是错误的。我应该做出哪些改变来纠正这段代码。

from __future__ import division
from pylab import plot, ylim, xlim, show, xlabel, ylabel, grid
from numpy import linspace, loadtxt, ones, convolve
import numpy as numpy

data = loadtxt("jai.txt", float)

#def movingaverage(interval, window_size):
#    window= numpy.ones(int(window_size))/float(window_size)
#    return numpy.convolve(interval, window, 'same')

x = data[:,0]
y = data[:,1]

signal = y

fourier = numpy.fft.fft(signal)
n = signal.size
timestep = 1.0
freq = numpy.fft.fftfreq(n, d=timestep)

plot(x,freq,"k.")
#y_av = movingaverage(y, 3)
plot(x, freq,"r")
xlim(0,1)
xlabel("time.")
ylabel("mean")
grid(True)
show()

1 个答案:

答案 0 :(得分:0)

你应该首先看一下你正在策划的内容,然后你会看到错误。

print x.min(), x.max()

这将返回'1.0 11.0'。所以问题是你的xlim定义,当你设置xlim(0,1)时,你不会看到你的x值从1到11的情节。注释xlim你会看到它。