将excel文件转换为python频率

基本上,我已经有了第一列电压的Excel文件,第二列的时间。 我想find电压的周期,因为它返回一个周期性的y轴电压图和x轴时间图,看起来类似于正弦函数。

要find我已经上传我的Excel文件到Python的频率,因为我认为这将使它更容易 – 可能有一些我错过了,将简化这一点。

到目前为止在Python中我有:

import xlrd import numpy as N import numpy.fft as F import matplotlib.pyplot as P wb = xlrd.open_workbook('temp7.xls') #LOADING EXCEL FILE wb.sheet_names() sh = wb.sheet_by_index(0) first_column = sh.col_values(1) #VALUES FROM EXCEL second_column = sh.col_values(2) #VALUES FROM EXCEL 

现在我怎么从这个find频率?

我不确定你对傅里叶变换有多less了解,所以如果背景太多,请原谅我。
你的信号没有“一个频率”,但它可以被认为是多个频率之和。 傅立叶变换将告诉你构成你信号的所有频率的权重。 不幸的是,当从模拟(连续时间)采样到数字(离散时间)域时,信息可能会丢失。 这就对我们可以得到的关于频率的信息加以约束 – 即我们可以确定的最大频率分量与数字采样率( 奈奎斯特 – 香农准则 )有关:

 fs > 2B 

fs是你的采样率(采样/单位时间,一般以Hz为单位), B是信号的最大频率。 如果你的信号实际上具有高于B频率,则它们将被“别名”到比B更低的值。

对于你的问题,你所要做的就是:

 x = N.array(first_column) X = F.fft(x) 

现在X是电压信号的频域表示。 根据采样定理,相应的频率轴覆盖[0, fs) 。 那么,什么是fs ? 您需要通过查看样本数除以样本信号的总持续时间(请注意您的单位):

 fs = len(second_column) / second_column[-1] 

请注意,您的信号表示也可能(可能)是复杂的,即每个频率将有一个相关的幅度和相位。

希望这有帮助,希望我没有涵盖你已经知道的一堆东西。