尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

傅里叶变换四种形式:FS、FT、DTFT、DFT一次讲清

傅里叶变换四种形式:FS、FT、DTFT、DFT一次讲清 最近在带几个刚入门信号处理方向的新人他们几乎绕不开同一个困惑傅里叶变换到底有多少种形式翻开教材傅里叶级数FS、傅里叶变换FT、离散时间傅里叶变换DTFT、离散傅里叶变换DFT扑面而来公式长得像名字还特别像一不留神就混了。我当年也是被这四个名字折腾过的人。后来想通了一件事它们根本不是四个独立的数学工具而是同一个傅里叶思想在不同信号形态下的四种投影。把这条主线抓住FS、FT、DTFT、DFT之间的关系就清晰得像一张地图。这篇文章就按这条主线来写把四种形式的分类逻辑、核心公式、典型变换对、常见工程陷阱一次讲完尤其是三角脉冲的傅里叶变换怎么记我会给出几个亲测好用的记忆方法适合正在啃信号与系统、数字信号处理或者刚开始用FFT做频谱分析的朋友。1. 四种形式怎么分类抓住时域和频域的两对性质1.1 一张表看懂四种形式的位置判断一个信号该用哪种傅里叶形式不需要背只需要问两个问题时域信号是连续的还是离散的时域信号是周期的还是非周期的把这两个维度交叉一下正好得到四种组合分别对应四种傅里叶形式时域信号形态连续、非周期连续、周期离散、非周期离散、周期变换名称傅里叶变换FT傅里叶级数FS离散时间傅里叶变换DTFT离散傅里叶变换DFT频域形态连续、非周期离散、非周期连续、周期离散、周期典型场景理论推导、模拟信号分析周期信号的谐波分解序列分析、数字滤波器设计FFT计算、频谱分析这张表的核心就是傅里叶变换理论里那两句“对偶关系”时域周期频域离散时域离散频域周期。后文所有公式和工程现象都从这两句话来。只要把这两句话刻在脑子里四种形式的位置就永远不会搞乱。1.2 时域连续与离散的本质区别时域连续意味着信号在每个时刻都有定义变换的时候用积分时域离散意味着信号只在整数采样点上存在变换的时候用求和。这是FS/FT和DTFT/DFT在公式形式上的分界线。时域周期与非周期则决定频域是离散谱线还是连续谱密度。周期信号分解出来是一根一根的谱线对应各个谐波频率非周期信号的频谱是一段连续的曲线代表能量在频率轴上的密度分布。把这两对性质放在一起就能直观理解为什么DFT的频域输出是一堆离散的X[k]而FT的频域输出是连续函数X(ω)。DFT的输入本来就是离散且周期化的序列所以输出自然离散且周期化。这也是计算机里只能跑DFT、不能直接跑FT的根本原因。提示判断一个信号属于哪种形式先看时域再看频域。时域周期还是非周期、连续还是离散这两个问题决定了变换公式长什么样也决定了频谱画出来是点、是线、还是连续曲线。2. 四种形式的公式与工程语义2.1 FS周期信号分解成一堆旋转向量周期信号是第一种要处理的信号。假设x(t)以周期T0重复基波角频率ω02π/T0那么它可以分解为一系列谐波的叠加x(t) Σ_{k-∞}^{∞} X_k e^{jkω0 t}其中傅里叶系数X_k (1/T0) ∫_{T0} x(t) e^{-jkω0 t} dt这里积分区间取任意一个完整周期T0就行。每个X_k都代表频率kω0处的复振幅包含幅度和相位。k0对应直流分量k±1对应基波k±2对应二次谐波依此类推。工程里做谐波分析比如分析电网谐波、机械振动信号用的就是FS的思路。周期性是前提频谱输出是一根根离散谱线谱线间距就是基波频率ω0。信号周期越大谱线越密周期趋向无穷大谱线密到连成一片FS就自然过渡到FT。2.2 FT把周期拉长到无穷谱线变成谱密度当信号的周期T0趋于无穷大信号不再重复变成单个非周期脉冲。这时谱线间距ω0趋于无穷小离散的X_k退化成连续的X(ω)FS的求和退化成FT的积分X(ω) ∫_{-∞}^{∞} x(t) e^{-jωt} dt逆变换x(t) (1/2π) ∫_{-∞}^{∞} X(ω) e^{jωt} dω注意这里的X(ω)不再是某个频率点的幅度而是频谱密度单位是幅度除以角频率。这也是为什么FT的结果经常出常数π、1/2π这些因子本质上都是密度化带来的尺度变化。FT对应的是连续非周期信号理论分析几乎离不开它。模拟滤波器频率响应、调制解调的频谱搬移、匹配滤波器的传递函数全部建立在这组公式上。但FT有个工程难点积分区间从负无穷到正无穷信号又是连续的计算机没法直接算所以实际数值计算要绕到DFT那边去。2.3 DTFT序列的频谱为什么一定是周期的把连续时间信号x(t)按采样周期Ts抽样得到离散序列x[n]x(nTs)。离散后的序列依然可以定义频谱但积分变成求和X(e^{jω}) Σ_{n-∞}^{∞} x[n] e^{-jωn}这里的ω是数字角频率和模拟角频率Ω的关系是ωΩ·Ts。很多人第一次看到这个公式会问为什么用e^{jω}不是e^{jωn}就已经算完了关键在于频域的周期性问题。因为对任意ω都有e^{-j(ω2π)n}e^{-jωn}所以X(e^{jω})天然是以2π为周期的周期函数。这正是“时域离散频域周期”的体现。采样让频谱以采样率fs为周期重复原本连续信号频谱如果最高频率超过fs/2重复的频谱就会叠在一起这就是混叠。DTFT的频域是连续的这导致它也没法直接在计算机里精确计算。计算机能算的是把它进一步离散化之后的DFT。2.4 DFT计算机唯一能直接算的傅里叶变换要让频谱既离散又有限长才能在计算机里做数值计算。对长度为N的序列x[n]n0,1,...,N-1做周期延拓后取一个周期频域同样离散成N个点X[k] Σ_{n0}^{N-1} x[n] e^{-j2πkn/N}, k0,1,...,N-1逆变换x[n] (1/N) Σ_{k0}^{N-1} X[k] e^{j2πkn/N}DFT的时域序列和频域序列都是有限长离散的所以适合计算机处理。但要注意DFT的数学定义里隐含了“x[n]是周期信号的一个周期”这一假设时域被周期延拓频域也被周期延拓。FFT只是DFT的一种快速算法不是新的变换。工程里用FFT算出来的X[k]本质上就是DFT的结果。很多人以为FFT是独立的一套理论其实它只是把DFT的重复乘法运算组织成了蝶形运算复杂度从O(N²)降到O(NlogN)结果和DFT一模一样。提示四种形式的递进关系是FS把周期信号拆成谱线FT把非周期信号变成连续谱DTFT处理离散序列得到周期频谱DFT把DTFT的频谱又抽样成有限离散点。核心线路是周期化、离散化。3. 必背变换对与三角脉冲记忆方法3.1 常用变换对速查表学傅里叶变换离不开典型变换对。这些变换对就像是数学里的乘法口诀背不下来后面推导什么都费劲。我最常给新人推荐的几张“卡”时域信号傅里叶变换记忆要点冲激函数 δ(t)1时域最窄频域最宽常数 12πδ(ω)时域最宽频域最窄矩形脉冲 rect(t/T)T·Sa(ωT/2)矩形对应抽样函数三角脉冲 tri(t/T)T·Sa²(ωT/2)三角对应抽样函数平方高斯脉冲 e^{-at²}也是高斯形式变换后仍保持高斯形状周期冲激串 Σδ(t-nT)周期冲激串时域周期频域离散周期这里统一使用角频率ω形式的正变换不另外带系数。如果使用频率f的常用形式矩形脉冲对应T·sinc(fT)其中sinc(x)sin(πx)/(πx)形式和角度频率差一个π比例的因子需要注意区分。矩形脉冲和三角脉冲是所有基础变换对里最容易出考题的。矩形脉冲相对好记脉冲宽度T频谱正好T乘以Sa(ωT/2)。三角脉冲如果当场硬背很容易记错系数下面两个方法能让你根本不靠背就把它推出来。3.2 卷积法构造一个矩形自卷积就完事这个思路特别直接三角脉冲可以由两个矩形脉冲卷积出来。设矩形脉冲p(t)rect(t/T)宽度T、高度1。把两个相同的矩形脉冲做卷积卷积结果就是一个底宽2T、顶点高度为T的三角形。把结果再除以T就得到标准三角脉冲tri(t/T)tri(t/T) (1/T) · [rect(t/T) * rect(t/T)]根据傅里叶变换的卷积定理时域卷积对应频域相乘。先写出矩形脉冲的变换对rect(t/T) ⟷ T·Sa(ωT/2)于是三角脉冲的频域就是矩形频谱的平方再除以TFT[tri(t/T)] (1/T) · [T·Sa(ωT/2)]² T·Sa²(ωT/2)整个过程只有两步矩形脉冲频谱是T·Sa平方后除以T得到T·Sa²。以后看到三角脉冲第一反应就是“矩形卷积矩形”频谱写成Sa的平方就不会错。这个方法还能扩展。梯形脉冲可以看成两个宽度不同的矩形做卷积频谱自然就是两个Sa函数相乘。很多复杂脉冲都能用卷积构造法快速推出频谱比翻积分表靠谱多了。3.3 求导法对三角脉冲做两次微分变成冲激如果对卷积不太熟另一个思路是用微分性质。三角波是分段直线它的一阶导数是分段常数的方波二阶导数直接变成三个冲激。用“时域求导等于频域乘以jω”的性质也可以很快推出频谱。标准三角脉冲f(t)tri(t/T)在[-T,T]区间外为0。求一阶导斜率在[-T,0]是1/T在[0,T]是-1/T所以f(t)是一个负向的矩形波。再求一次导在t-T处会出现正冲激1/Tt0处出现负冲激-2/TtT处出现正冲激1/T即f(t) (1/T)δ(tT) - (2/T)δ(t) (1/T)δ(t-T)利用微分性质若f(t)的傅里叶变换为F(ω)那么f(t)的傅里叶变换为(jω)²F(ω)。于是(jω)²F(ω) (1/T)(e^{jωT} - 2 e^{-jωT})把分子整理一下e^{jωT} e^{-jωT} - 2 -4sin²(ωT/2)再除以(jω)²化简最后得到F(ω) T·Sa²(ωT/2)结果和卷积法一致。求导法的好处是锻炼微积分性质而且能帮你理解为什么三角脉冲频谱是Sa²而不是Sa——二阶导数对应三个冲激冲激组合的频谱除以ω²自然就出现“每求一次导频域除以一次jω”的痕迹。注意卷积法和求导法都涉及系数最容易错的是矩形脉冲宽度和三角脉冲底宽的对应关系。上面推导里rect(t/T)的频谱是T·Sa(ωT/2)三角脉冲tri(t/T)底宽是2T。如果换一种符号定义底宽写成T公式里的T要跟着改不能整个照抄。3.4 关于“萨函数还是辛格函数”的符号混用提醒国内教材一般用采样函数Sa(x)sin(x)/x国外很多教材和Python、MATLAB里用的是sinc(x)sin(πx)/(πx)。两种符号差一个π导致同一个矩形脉冲写出来不一样。用Sa函数表示矩形脉冲FT是T·Sa(ωT/2)用sinc函数表示写成T·sinc(fT)。前者自变量是角频率后者自变量是自然频率两者数值上差π倍。我建议做理论推导时统一用角频率ω和Sa函数工程上读MATLAB、Python代码时再看它用的是哪种约定。这个习惯能省掉很多对不上号的麻烦。4. 实战中的典型问题与排查思路4.1 混叠离散化之前最该做的那一步离散时间信号做傅里叶分析混叠是绕不开的第一关。不管是DTFT还是DFT离散化都会让频谱以采样频率fs为周期重复。如果原始模拟信号里有超过fs/2的频率成分这些高频成分会折叠回低频区和真实低频信号叠在一起再也没法分离。很多人做数据采集只关心采样率够不够高忘了在ADC之前加抗混叠滤波器。正确的流程是先做模拟低通滤波把fs/2以上的分量滤掉再采样。数字信号处理里的频谱混叠不可逆一旦叠了后续任何滤波都是亡羊补牢。另外采样率的选择也不能只按理论最低值来。实际工程里常用fs≥ (5~10)倍信号最高频率一方面给抗混叠滤波器留过渡带另一方面降低量化噪声对高频段的影响。4.2 泄漏和栅栏效应为什么频谱看起来有鬼DFT处理的是有限长序列但信号本身可能是无限长的于是必然要截断。截断相当于在时域乘了一个矩形窗频域就变成原频谱与Sa函数的卷积。原来一根锐利的谱线被Sa展宽成带旁瓣的形状这就是频谱泄漏。泄漏让频谱看起来“有鬼”主瓣变宽、旁边出现假峰小信号可能被旁瓣淹没。缓解泄漏的思路是换窗。矩形窗主瓣窄但旁瓣高汉宁窗、海明窗、布莱克曼窗都能压低旁瓣代价是主瓣变宽、频率分辨率变差。频谱分析里没有免费的午餐窗函数选择就是在分辨率和泄漏抑制之间做权衡。栅栏效应则是另一个坑。DFT只输出N个离散频点X[k]相当于透过栅栏看频谱两个频点之间的频率分量看不到可能正好错过真实的谱峰。时域补零可以增加频域采样点让频谱曲线更细腻看起来像“栅栏变密了”但补零不会增加信息量真实分辨率依然由数据长度决定。提示先想清楚自己要解决的问题是什么。测频率、测幅值、测相位三个需求对窗函数和数据长度的要求完全不同。没有万能窗只有适合当前任务的窗。4.3 FFT幅值谱归一化X[k]到底是不是幅度用FFT做完频谱分析想从幅值谱读出真实信号的幅度要注意归一化问题。FFT直接输出的X[k]并不是信号的真实幅度它只是DFT的原始结果。如果原始时域信号是单频正弦x(t)Acos(2πf0t)采样N点后做N点FFT频谱上在f0对应的频点k0处|X[k0]|≈A·N/2。要想得到真实幅度A需要乘以2/N。直流分量对应的k0则只需要乘以1/N因为直流没有正负频率对半分的问题。工程上常见错误是完全不归一化读出来一堆和N相关的“幅度”换个FFT点数结果就变了。正确的流程是取X[k]的模k0处乘1/N其他频点乘2/N得到的就是单边幅值谱。4.4 选型建议什么时候用哪种形式理论上学四种形式是为了搞懂信号的本质实际动手时怎么选其实很明确。连续系统建模、解析推导、滤波器和调制理论的底层分析用FT。周期信号做谐波测量用FS或者说FS的思想需要问清楚基波频率是多少。离散序列的频响分析、数字滤波器设计、理论计算卷积用DTFT它给出的是连续的周期频谱适合推导解析式。实际测量、数值计算、音频处理、振动分析、任何上计算机跑数据的场景用DFT因为只有DFT是可计算的。如果是手算一些简单题FS和FT足够如果是做算法、跑数据、调参数基本绕不开DFT/FFT。搞明白每种形式的适用场景比反复背公式有用得多。5. 一些个人体会我自己在学习和带人的过程中最大的体会是傅里叶变换的四种形式本质上是同一句话在四种信号条件里的展开——时域周期对应频域离散时域离散对应频域周期。把这两句话焊在脑子里后面无论遇到连续采样、离散序列、周期延拓还是FFT归一化都能自己推导不需要记大纲。三角脉冲这类典型变换对强烈建议用“矩形卷积矩形”和“二阶导等于冲激组合”这两个视角各推一遍。第一次推可能觉得麻烦推两三次之后看到三角函数脑子里就自动出现Sa²和那个1、-2、1的冲激组合比死记硬背快得多。最后再分享一个实际操作中的习惯我每次做频谱分析都会先手写一遍信号模型和对应的傅里叶理论表达式想清楚这个信号是连续还是离散、周期还是非周期再打开代码去跑FFT。这个习惯看起来多花两分钟实际上能挡住大量因为四形式混用导致的低级错误。傅里叶变换这个工具用好了是信号处理最锋利的一把刀值得花时间把它捋顺。
返回列表