傅里叶变换 Python

2025年3月17日 | 阅读 3 分钟

简介: 在本文中,我们将简要讨论 Python 中的傅里叶变换。数学模型,称为傅里叶变换(FT),将信号分解为频率分量,由变换的输出表示为频率的函数。

时间或空间的变化是最常见的类型,分别导致输出一个基于时间频率或空间频率的函数。分析是此过程的另一个名称。例如,分解音乐和弦的波形以了解其音高强度。连接频率表示和基于空间或时间的域的数学函数是“傅里叶变换信号”。

傅里叶逆定理提供了一种从其频域表示合成原始函数的方法。

对于不存在的每个频率,变换的成本为零。复数值的参数是该复数正弦波的相位设置。最大幅度、峰峰值、RMS 和波长都可以用来描述该正弦波。

在正弦波和蓝波之间存在相位差。

傅里叶变换是分析信号的强大工具,从音频处理到图像压缩都有应用。SciPy 在 scipy.fft 模块中提供了成熟的实现,本文将介绍如何使用它。scipy.fft 模块最初可能令人望而生畏,因为文档中使用了许多名称相似且包含大量技术术语的功能,但没有给出解释。

幸运的是,您只需要理解一些关键概念就可以开始使用这些模块。

该算法在计算序列的离散傅里叶变换(DFT)中起着非常重要的作用。将空间或时间信号转换为频域信号。DFT 信号是通过将值分配到不同的频率分量而创建的。

直接转换傅里叶变换在计算上成本很高。因此,使用了快速傅里叶变换(FFT)。这是因为它通过将 DFT 矩阵分解为稀疏系数的乘积来快速计算。结果,DFT 的复杂度从 O(n²) 降低到 O(N log N)。

当您处理大型数据集时,这会产生很大的差异。此外,与 DFT 定义直接比较,FFT 算法在存在舍入误差的情况下非常准确。

此变换是从配置空间到频率空间。它非常重要,因为它探索了特定问题的两种变换以及信号的功率谱,以实现更高效的计算。此转换可以从 xn 到 xk。将空间或时间数据转换为频域数据。

傅里叶变换方程: 傅里叶变换方程如下所示:

Fourier Transform Python

python 中的 sympy.discrete.transforms.fft() 函数: 它可以执行复数域中的离散傅里叶变换(DFT)。由于基数-2 FFT 需要样本点数量是 2 的幂,因此序列会自动在右侧用零填充。

对于较短的序列,请仅使用带有默认参数的此方法,因为表达式的复杂性会随着序列维度的增加而增加。

参数: 上述函数的参数如下:

seq:[可迭代] 要应用 DFT 的序列。

dps:[整数] 精确的小数位数。

返回值: 上述函数的返回值如下:

快速傅里叶变换

示例 1: 在这里,我们提供一个 python 中 sympy.discrete.transforms.fft() 函数的示例。示例如下:

输出: 现在我们编译上述程序,成功编译并运行后。然后可视化此结果 -

FFT : [84, -22.07107 + 39.04163*I, 20.0 - 10.0*I, -7.928932 + 9.041631*I, 16, -7.928932 - 9.041631*I, 20.0 + 10.0*I, -22.07107 - 39.04163*I]

示例 2: 在这里,我们提供一个 python 中 sympy.discrete.transforms.fft() 函数的示例。示例如下:

输出: 现在我们编译上述程序,成功编译并运行后。然后可视化此结果 -

[33, -9 - 18*I, -11, -9 + 18*I]

因此,在本文中,我们简要讨论了 Python 中的傅里叶变换。