幅度和相位分析

时间:2017-06-11 15:38:45

标签: python matplotlib fft jupyter-notebook

我在数据分析方面遇到了一些问题。我有大量的数据写如下:

-0,30273438;-0,06835938;
-0,29785156;-0,05371094;
-0,28320313;-0,04882813;
-0,28808594;-0,06347656;
-0,27343750;-0,03417969;
-0,24414063;-0,03906250;
-0,24414063;-0,01464844;

我写了一个小程序,用于构建2个向量的图形:

 import csv
 import matplotlib.pyplot as plt
 import matplotlib.dates as mdates
 import numpy as np

 x = []
 y = []

 with open('20283.dat', newline='') as csvfile:
     trash = csv.reader(csvfile, delimiter=';')
     for row in trash:
         x.append(float(row[0].replace(",", ".")))
         y.append(float(row[1].replace(",", ".")))
 #print(x)
 z = len(x)
 #print(t)
 t = np.arange(z)
 plt.figure(1)
 plt.plot(t,x, label='signal')
 plt.xlabel('timing')
 plt.ylabel('x')
 plt.title('First channel')
 plt.legend()
 plt.figure(2)
 plt.plot(t,y, label='signal')
 plt.xlabel('timing')
 plt.ylabel('y')
 plt.title('Second channel')
 plt.legend()

 plt.show()

如何获得幅度和相位谱?以及如何实现可自定义的简单移动平均滤波器(窗口大小,时间步长,启动和停止点)?

1 个答案:

答案 0 :(得分:0)

对于python numpyscipy通常是您想要寻找线性代数的地方。

对于移动窗口函数,请查看pandas它与numpy可以完全互操作,并以有用的方式扩展numpy功能。

https://scipy.org/

https://docs.scipy.org/doc/numpy-dev/user/quickstart.html

https://docs.scipy.org/doc/scipy/reference/

http://pandas.pydata.org/