傅里叶变换(fourier transform)是一种数学工具,用于将一个函数(通常是时间域函数)转换成另一个函数(通常是频域函数),以分析该函数的频率特性。傅里叶变换是工程、物理学、计算机科学、图像处理、音频信号处理以及量子物理等多个领域中常用的一种数学方法。
时间域和频域是信号或函数的两种不同表示方式,它们包含的是同样的信息,只是从不同的角度进行展示。傅里叶变换(fourier transform)和其逆变换(inverse fourier transform)是从时间域到频域、以及从频域到时间域进行转换的数学工具。
通过傅里叶分析,你可以将一个时间域函数转换到频域来分析它,或者将一个频域函数转回时间域以重构它。这两种表示方式各有其优点和应用场景。例如,在信号处理、通信、图像处理等多个领域,频域分析提供了很多方便和高效的方法。
时间域函数
在时间域 (time domain) 中,信号或函数是按照时间变量 (通常表示为 t ) 来描述的。在这个表示中,你可以看到信号是如何随着时间变化的。时间域表示是直观的,因为它正是我们在现实世界中观察信号的方式。例如,声音波、电信号等都可以在时间域中表示。举个简单的例子,正弦波 asin(2πωt+ϕ) 是一个时间域函数,其中 a 是振幅, ω 是频率, ϕ 是相位角, t 是时间。
频域函数
频域(frequency domain)表示则是关注信号各个不同频率成分的强度或相位。在频域表示中,信号被表达为一系列正弦和余弦波的组合,这些正弦和余弦波有不同的频率和振幅。这样的表示使得我们能更容易地分析和理解信号的频率特性。例如,傅里叶变换是一种常用的从时间域到频域的转换方法。在该变换后,将得到一个频域函数,通常表示为 f(f) 或 f(ω) ,其中 f 或 ω 是频率或角频率。
我们知道,任何周期函数在满足狄利克雷条件下 (连续或只有有限个间断点,且都是第一类间断点;只有有限个极值点),都可以展开成一组正交函数的无穷级数之和。使用三角函数集的周期函数展开就是傅里叶级数。对于周期为 t 的信号 f(t) ,可以用三角函数集的线性组合来表示,即
式中 ω=2π/t 是周期信号的角频率,也成基波频率, nω 称为 n 次谐波频率; 为信号的直流分量,和分别是余弦分量和正弦分量幅度。根据级数理论,傅里叶系数、、的计算公式为:
若将式子中同频率的正弦项和余弦项合并,得到另一种形式的周期信号的傅里叶级数,即
其中,为信号的直流分量;为信号的基频分量,简称基波;为信号的 n 次谐波, n 比较大的谐波,称为高次谐波。上式说明任何周 期信号只要满足狄利克雷条件,都可以分解成直流分量和一系列谐波分量之和,这些谐波分量的频率是周期信号基频的整数倍。比较两种三角函数形式的傅里叶级数,可以看出它们的系数有如下关系:
傅里叶变换适用于非周期性函数,将一个时间域函数转换为其对应的频域函数。可以将傅里叶级数看作是傅里叶变换的一个特殊情况。考虑一个周期为 t 的函数。如果 t 趋于无穷,这意味着函数是非周期性的,此时傅里叶级数会趋向于傅里叶变换。
连续傅里叶变换
对于连续函数 f(t) ,其连续傅里叶变换定义为:
逆变换是:
离散傅里叶变换
对于离散信号,有离散傅里叶变换 (dft) :
其逆变换是:
离散傅里叶变换在多项式乘法中的应用
对于n-1阶多项式可以用n个点唯一表示(复数的点也是可以的)。令,,k=1,…,n-1
只要我们可以求出矩阵的逆,就能反推出这个 q 的系数。这个矩阵的逆的形式:
快速傅里叶变换(fast fourier transform,简称fft)是离散傅里叶变换(discrete fourier transform,简称dft)的一种高效算法。fft能在 o(nlogn) 的时间复杂度内完成这一变换,而直接计算 dft需要 o(n^2^) 的时间复杂度。
fft基于一种名为“分治法”的递归策略,它将一个大问题分解为几个更小的子问题来解决。对于一个 n 点的dft,fft会把它分成两个 n/2 点的dft,并递归地进行这个过程。
具体来说,fft算法采用以下步骤:
分解阶段:原始 n 点dft分解为两个 n/2 点的子序列,一个包含所有的偶数索引,另一个包含所有的奇数索引。递归阶段: 对这两个 n/2 点子序列递归地应用fft。组合阶段:使用递归解的结果,通过一系列的复数乘法和加法,组合得到原始n点dft的结果。原始的dft定义为:
在fft中,这个和会被分成两部分:一部分是偶数索引,另一部分是奇数索引:
其中 e[k] 和 o[k] 是偶数和奇数序列的dft。
具体例子
假设我们有一个 4 点的序列 x=[0,1,2,3] 。
分解偶数序列 e=[0,2]
奇数序列 o=[1,3]
递归求解
合并
所以 x=[6,0,-2,-4] ,这就是序列 x 的dft。这个过程大大减少了计算量,当 n 是2 的幂时,效率最高。
我们总结一下该过程的时间复杂度如下:
dft阶段: 将两个 n 度的多项式 a(x) 和 b(x) 使用fft转换到点值表示,分别得到 a(k) 和 b(k) 。时间复杂度为 2×o(nlogn)=o(nlogn) 。乘法阶段:在点值表示下,将 a(k) 和 b(k) 对应点值相乘得到 c(k) 。这是个 o(n) 时间复杂度的操作。idft阶段:再次使用fft (实际上是其逆变换idft)将 c(k) 转换回系数表示得到 c(x) , 即 a(x)×b(x) 。时间复杂度是 o(nlogn) 。综合这三个阶段,总时间复杂度为 o(nlogn)+o(n)+o(nlogn)=o(nlogn) 。数论变换(ntt)是有限域上离散傅里叶变化的一个变体。由于离散傅里叶变换是基于复数域上的变换,大多是浮点运算,故存在着一定的精度和效率问题。在许多应用中,需要对整数商环上的多项式进行变换,在这种情况下离散傅里叶变换的性能无法满足要求。而ntt直接对整数进行处理而无需考虑浮点数中的存储问题和精度问题,避免了浮点计算,大大提高了运算效率,非常适合基于lwe或rlwe难题的密码系统。
数论变换(ntt)是整数环上定义的线性正交变换。设x(i),x(k)∈,i=0,1,2…,n-1,k=0,1,2,…,n-1,有如下公式:
公式中ω为模q的n次单位原根,满足
n为整数并且存在n^-1^满足
无线模块天线挑选 要考虑以下注意事项
5V稳压电源设计:材料不多,电路图也非常简单
瑞丰光电P0.39小间距超高清显示产品再获新订单
如何获取和使用Github上的Vitis开放资源
就在今天:乐视总部躺讨债人,总共19家欠款6000多万,乐视是真玩不下去了?
离散傅里叶变换及其应用简析
光伏电站为什么要选择无人机智能巡检?
功率放大器的作用是什么意思
LoRa611Pro组网数传模块在LoRa组网中的3大应用优势
中国移动将于11月1日正式发布5G商用套餐并开启5G时代
如何将Commodore64计算机变成蓝牙键盘
电磁感应原理在发电机里的应用 电磁感应左手定则和右手定则
2通道和4通道引脚可选I2C多路复用器的功能分析
GPS在公路测量中的应用
IP百科知识之网络安全态势感知
KT-1型烟雾机工作原理分析
四川移动联合华为在写字楼DAS室分场景进行了5G网络部署的测试
数字孪生污水处理厂 助力数据采集可视化处理
VR直播将成为5G商用化的里程碑
英伟达推出超级计算机DGX GH200