Tag: fft

Excel中的FFT – 如何获得最真实的频谱

我试图使用Excel获取这些数据的FFT频谱: gggttt.host.sk/sample.xls 。 @Paul R在另外一个问题上帮了我很大的忙,弄清楚垃圾桶的含义,但是还有一些问题我想了解。 首先,即使模型以对数标度表示,Excel也不会以dB为单位显示它们。 你怎么做这些幅度转换为dB? 此外,还有一个关于窗口函数,锯齿等的问题。由于我正在从一个时期开始处理数据,似乎不需要应用窗口函数。 另外,因为我只需要基本的,二次和三次谐波,而且在上面的箱子中没有其他的峰值,所以照顾混淆似乎也不是必须的。 然而,非常值得关注的是非n ^ 2点数 – 1253。我试图用零填充到2048或者在第一个1024上进行FFT,忽略剩余的229点,最后每6然后删除每一个第52点,最后一个点加倍以获得必要的1024.最后,用零填充结果是最糟糕的方法 – 在整个频谱中重复高低条。 截断数据(仅处理前1024个点)似乎效果最好。 我真的很想知道在信号处理方面有什么经验的人会推荐作为产生最真实光谱的最佳方法。 下面是在这些数据上应用FFT的两种不同方式的示例: gggttt.host.sk/fig_truncated.jpg gggttt.host.sk/fig_padded.jpg gggttt.host.sk/fig_every_6th_and_52nd_point_deleted.jpg

如何用傅立叶变换将数组中的数字输出到Excel文件中的单行

我想要将image processing的数字结果输出到.xls文件中,并在单元格中精确地在单元格中进行输出,请问有人build议使用哪个Python模块以及要添加什么代码? 换句话说,如何从数组中排列数字并将其精确地放置在Excel单元格中? Code fragment: def fouriertransform(self): #function for FT computation for filename in glob.iglob ('*.tif'): imgfourier = mahotas.imread (filename) #read the image arrayfourier = numpy.array([imgfourier])#make an array # Take the fourier transform of the image. F1 = fftpack.fft2(imgfourier) # Now shift so that low spatial frequencies are in the center. F2 = fftpack.fftshift(F1) # […]

将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频率?

使用Excel的VBA进行快速傅里叶变换

我试图在MS的Excel VBA中实现一个快速傅里叶变换(Radix-2)。 我正在使用的代码从工作表中的范围内拉取数据,进行计算,然后将结果转储到相邻的列中。 我遇到的麻烦是1)知道如何处理结果X [k]数组,2)将这些结果与Excel内置的FFT(它们当前不匹配)的结果进行匹配。 代码如下所示。 在此先感谢您的帮助。 Sub Enforce_DecimationInTime() On Error GoTo ERROR_HANDLING Dim SubName As String SubName = "Enforce_DecimationInTime()" Dim WS As Worksheet Dim n As Long, v As Long, LR As Long, x As Long Set WS = Worksheets("FFT") LR = WS.Range("A" & Rows.Count).End(xlUp).Row n = LR – 1 Do Until 2 ^ […]