这个多部分系列将回顾离散傅立叶变换,并描述如何在从时间到频率域的过渡中避免常见的问题。 将时间的函数表示为频率的函数, 傅立叶变换 是从时间域到频率域的著名道路: 我的数据是以离散数据点的形式出现的,而不是连续的可积函数。 是的。在工程环境中,您无疑将拥有使用示波器或数据采集系统获得的离散数据集。如果你有 N 代表离散样本 f(n) ,然后您可以使用离散傅立叶变换(DFT)返回 N 代表数据点 F(k) : 在这个多部分系列中,我们将转换一些样品数据,检查一些结果中的明显畸变,并探索光谱泄漏在造成它们的作用。最后,我们将研究如何使用窗口功能来提高精度。 让我们先手动转换一个简单的数据集,看看DFT是如何工作的。首先,来自 欧拉公式 ,我们可以改写DFT方程如下: 图1 显示为数据集进行的计算 f(n)= 三,四,五。它突出强调了 n 穿着蓝色的 k 穿着红衣服。部分结果列在每个方程下面的浅蓝色。颜色可以说明每一次计算 F(k) 包括了 f(n) .最终的复杂结果是12+J0,-1.5+J0.866,-1.5-J0.866。对于大多数应用程序,我们都对复数的大小或绝对值感兴趣:12,1.732,1,732。 图1在这个简单的DFT计算中,N和K的值分别以蓝色和红色列出,而复F(K)值以橙色表示。 我觉得这可能会很乏味。 DFT是计算密集型的,即使对计算机来说也很耗时。因此,许多快速傅立叶变换(FFT)算法已经开发出来,以加速执行. 顺便问一下,我们如何从结果中提取频率信息? 图1中的每个公式都代表一个可以对应频率的"BIN",但DFT本身并没有添加任何有用的上下文--它不要求输入时序信息,也不生成任何关于频率的明确信息。在高端示波器上,你会发现FFIN可以为你处理所有的日常事务--你只需显示你的时域信号,按FFT按钮,范围就会自动产生适当的幅值。频率尺。 我要在笔记本上做什么? 你总是可以自己编写一个执行DFT方程或FFT算法的程序,但是你最好的选择是工程软件,比如 马氏实验室 或 实验室 .除此之外,微软EXEXERL有限的能力运行FFFT--不优雅,但在某种程度上可以帮助你回答如何从输出中获取频率数据的问题。 我们是否可以使用EXERL来验证图1中的手动计算? 我们不能。EXERL使用FFT的一个版本,要求 N 是2的力量。不过,你可以在网上找到可以做到这一点的DFT计算器--点击 在这里 ,比如说。 我如何树立一个现实的榜样? 我将通过设置时域波形的FFT计算来演示 图2 ,包括512个样本 t 从0毫秒到511毫秒不等。 图2这个函数代表512个样本间隔1毫秒。 首先,我们设置了一个电子表格,如图3所示,并显示了六栏标题。 图3按照步骤1和2检查是否安装了EXERL数据分析包。 看上去F列有我一直在问的频率信息,对吧? 对。我们将在第2部分中讨论填写电子表格的细节,特别是F栏。现在,您可以采取两个简单的步骤,以确保您可以运行FFFS自己的版本。点击"数据"标签,寻找"数据分析"按钮。 |