ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

傅里叶变换性质全解析:从数学证明到工程实践

傅里叶变换性质全解析:从数学证明到工程实践 这题目一看就是《信号与系统》和《数字信号处理》里绕不过去的一座山。当年我学傅里叶变换的时候最头疼的不是变换本身而是那一大堆性质——线性、时移、频移、尺度变换、卷积定理、微分积分特性每一套都有对应的推导和工程含义记混一个符号后面全乱。后来做项目久了才明白这些性质不是用来考试的而是真正用来“省计算”和“建立直觉”的。这篇博文我打算从性质证明的角度重新梳理一遍傅里叶变换的核心内容把每一步推导背后的思路和工程场景都讲清楚适合正在啃教材的学生也适合想回头补基础的在职工程师。1. 为什么要把傅里叶变换的性质单独拿出来啃1.1 先统一符号约定开始之前所有推导必须建立在同一个符号体系上不然你抄我的证明时很容易差一个正负号或者少一个系数。我这里采用最常用的连续时间傅里叶变换定义正变换为F(ω) ∫_{-∞}^{∞} f(t) e^{-jωt} dt反变换为f(t) (1/2π) ∫_{-∞}^{∞} F(ω) e^{jωt} dω这里 j 是虚数单位ω 是角频率单位为 rad/s。有些教材用 f ω/2π 表示频率于是反变换前面的系数变成 1但本质完全一样。真正需要留意的是正反变换的系数分配方式有的书把 1/2π 拆成两个 1/√(2π)这在推导 Parseval 定理时结果不变但中间写法不同。所以我建议你自己固定一套定义然后所有性质都在这套定义下推导不要今天用这个版本明天用那个版本。还有一处容易踩坑连续傅里叶变换里时域信号如果是实信号那么频域幅度谱是偶函数相位谱是奇函数但如果你用的是 DFT 或者离散序列这个性质会变成共轭对称细节在后面的章节我会展开。现在先记住这套连续定义就够了。1.2 这些性质能帮你省下多少计算我刚工作那会儿做过一个信号处理模块需要用窄带滤波器提取某个频段的特征。如果每次我都直接做一次傅里叶变换那计算量很大而且还要处理边界效应。后来我用频移性质先在时域乘一个复指数把目标频段搬到基带再做低通滤波一下子把计算量降了一个数量级。性质不是摆设它们是工程上优化算法结构的基本工具。打个比方傅里叶变换的性质就像你手里的一张地图定义告诉你每个地点在哪儿性质告诉你怎么抄近路、怎么绕开拥堵路段。比如你已知一个信号的频谱想求它平移之后的频谱套用时移性质一行公式就写完不需要重新积分想求两个信号卷积之后的频谱卷积定理直接把它变成频域乘法复杂度从 O(N^2) 降到 O(N log N)这就是 FFT 加速卷积的根本逻辑。所以这些性质值得反复推、反复记它们决定了你能不能在实际系统里把算法写出效率。2. 线性、时移、频移最容易拿分也最容易被忽略2.1 线性性证明一条就够线性性是傅里叶变换所有性质里最直观的一条如果 f(t) 的变换是 F(ω)g(t) 的变换是 G(ω)那么对于任意常数 a 和 b有af(t) bg(t) ↔ aF(ω) bG(ω)证明过程就是把线性组合直接代入正变换的定义∫ [af(t) bg(t)] e^{-jωt} dt a∫ f(t)e^{-jωt}dt b∫ g(t)e^{-jωt}dt这一步用到了积分的线性性。需要注意的隐藏前提是 f(t) 和 g(t) 都必须绝对可积否则积分本身不收敛写出来的等式没有意义。很多初学者会忽略这一点拿着一个不满足收敛条件的信号硬套性质结果推出一堆奇怪结论。在做实际工程时由于我们处理的是有限长离散序列绝对可积条件自然满足所以这一条基本不会出问题但理论推导时一定要留意。为什么线性性重要因为它是“叠加原理”在频域的体现。线性时不变系统对多个输入信号的响应等于每个信号单独作用后的叠加。我们在做多路信号合并、干扰抑制、滤波器设计时都会反复用到这一条。没有线性性后面的卷积定理、傅里叶级数与变换的关系全都无从谈起。2.2 时移性质相位的直觉时移性质说的是如果 f(t) ↔ F(ω)那么f(t - t₀) ↔ F(ω) e^{-jωt₀}看到这个指数项第一反应应该是时域的时间平移会影响频域的相位而且是线性相位。这个“线性相位”在工程上极其重要设计滤波器时我们经常要求线性相位就是为了让不同频率分量经过延迟后相位变化均匀从而保持波形形状不失真。证明也很简单对 f(t - t₀) 做正变换令 u t - t₀那么 t u t₀dt du于是∫ f(t - t₀)e^{-jωt}dt ∫ f(u)e^{-jω(ut₀)}du e^{-jωt₀} ∫ f(u)e^{-jωu}du F(ω)e^{-jωt₀}这里唯一要注意的是积分上下限。当 t 从 -∞ 变到 ∞u 也同样从 -∞ 变到 ∞所以积分限不变。这一步看起来很 trivial但确实有同学在做变量替换时把上下限搞反了尤其是前面还有负号的时候。工程里我常用的一个场景是信号同步。接收端把本地序列对齐到接收信号的起始时刻本质就是在时域做平移而频域对应的相位斜率正好可以反过来估计延迟量。如果你有两个信号一个是参考一个是延迟之后的版本计算它们的互功率谱再观察相位斜率就能反推出时延值这就是时移性质在延迟估计里的直接应用。2.3 频移性质调制背后的数学频移性质是时移性质的对偶版本如果 f(t) ↔ F(ω)那么f(t) e^{jω₀t} ↔ F(ω - ω₀)证明方法和时移几乎一样只是把指数合并到一起∫ f(t)e^{jω₀t}e^{-jωt}dt ∫ f(t)e^{-j(ω-ω₀)t}dt F(ω - ω₀)注意这里指数上是 ω₀t 而不是 -ω₀t正负号特别容易记反。我常用的记忆方法是时域乘正频率复指数频谱往右搬时域乘负频率复指数频谱往左搬。你可以类比收音机的本振把射频信号乘一个本振信号频谱被搬到中频或者基带这就是超外差接收机的基本原理。频移性质在数字通信里是调制解调的理论基础。QAM 调制简单理解就是在两路正交载波上分别乘上同相和正交分量再合并发射。解调端乘同频同相的载波再用低通滤波器把基带信号取出来整个过程都是频移性质在支撑。理解了这个性质再看 IQ 调制解调就不会觉得神秘了。3. 尺度变换与对偶性最容易绕晕的一组3.1 尺度变换时域压宽频域就压缩尺度变换性质一般写成当 a 是非零常数时f(at) ↔ (1/|a|) F(ω/a)证明过程需要分 a 0 和 a 0 两种情况。先看 a 0令 u at则 t u/adt du/a代入正变换∫ f(at)e^{-jωt}dt ∫ f(u)e^{-jωu/a} (du/a) (1/a)F(ω/a)再看 a 0令 u at由于 a 是负的当 t 从 -∞ 到 ∞ 时u 从 ∞ 到 -∞积分限反过来会多出一个负号最后取绝对值得到 1/|a|。所以这个绝对值系数不是凭空出现的而是变量替换时积分方向反转造成的。这个性质最经典的工程解释是“时域压缩对应频域扩展”。比如一段语音变速播放时域被压缩听起来音调会变高因为它的频谱整体往高频搬了反过来放慢频谱向低频压缩声音变低沉。这不只是直觉而是可以用这个公式严格描述的。做多普勒雷达也是一个道理目标靠近时回波信号在时域被压缩频域整体抬高产生多普勒频移。3.2 对偶性一张表查两倍内容对偶性是我觉得最“省力”的一个性质。如果 f(t) ↔ F(ω)那么F(t) ↔ 2π f(-ω)也就是说时域里长成“原频谱函数”的那个信号它的频谱按 -ω 参数和原信号挂上钩。证明利用反变换公式把变量符号互换就行f(t) (1/2π)∫ F(ω)e^{jωt}dω两边把 t 和 ω 互换位置再取 f(-ω) 的形式整理之后就能得到 2π f(-ω)。这里 2π 的系数取决于前面定义的系数分配方式如果你的正反变换系数不是 1 和 1/2π这里的常数要相应调整。对偶性最大的作用是在记忆和查表时“买一送一”。你只要知道了一个变换对比如矩形脉冲的频谱是 sinc 函数那反过来说时域为 sinc 函数的信号其频谱应该在频域呈矩形当然要注意对偶形式中的 2π 和 -ω 符号。这在设计理想低通滤波器时特别重要理想低通滤波器的冲激响应是 sinc 函数因为它的频响是矩形窗而对偶性保证了这对变换关系成立。4. 卷积定理连接时域和频域的桥梁4.1 时域卷积定理及交换积分次序的坑时域卷积定理是信号处理里最核心的定理没有之一。它说的是f(t) * g(t) ↔ F(ω)G(ω)也就是说时域做卷积等于频域做乘法。这一定理把卷积运算的复杂度从时域的积分变成了频域的点乘配合 FFT 就是快速卷积的底层逻辑。证明需要从卷积定义出发。卷积定义为h(t) (f * g)(t) ∫ f(τ)g(t-τ)dτ对 h(t) 做傅里叶变换H(ω) ∫ [∫ f(τ)g(t-τ)dτ] e^{-jωt} dt这里的关键是交换积分次序。你把两个积分写在一起后把 e^{-jωt} 拆成 e^{-jωτ} e^{-jω(t-τ)}然后先对 t 积分令 u t - τ得到H(ω) ∫ f(τ)e^{-jωτ} dτ ∫ g(u)e^{-jωu} du F(ω)G(ω)交换积分次序这里有个隐性的收敛条件f 和 g 都绝对可积时这个操作才严格成立。在两个函数都是能量有限信号时交换没有问题但如果你处理的是周期信号或者某些广义函数比如冲激串严谨性就需要借助分布论来补充。工程上我们一般处理有限长离散序列收敛性天然满足所以这个坑在理论证明里才需要格外重视做实现时反而不用太担心。4.2 频域卷积定理和乘法器设计卷积定理还有一个对偶版本时域相乘等于频域卷积。f(t)g(t) ↔ (1/2π) F(ω) * G(ω)证明方式和时域卷积定理完全对称。你在时域做了乘法频域频谱会被“抹开”这就是为什么非线性操作会产生新的频率分量。比如乘法器把两个正弦信号相乘输出频域是两个原频谱卷积于是产生了和频与差频分量这是调制器、混频器设计的数学基础。实际做电路时理想的乘法器并不存在任何非线性器件都伴随寄生分量但卷积定理告诉我们只要两个输入信号的频谱被卷积输出一定会出现在两个输入频率的和频与差频位置以及它们谐波的组合位置。所以在设计混频器时我们总会在输出端加滤波器来选频这就是频谱搬移背后的数学依据。5. 微分、积分与Parseval定理从信号到功率的闭环5.1 时域微分性质电感电容模型如果 f(t) ↔ F(ω)且 f(t) 可导那么d^n f(t)/dt^n ↔ (jω)^n F(ω)证明可以从一次微分开始。对 f(t) 做傅里叶变换∫ f(t)e^{-jωt}dt用分部积分u e^{-jωt}dv f(t)dt得到[f(t)e^{-jωt}]_{-∞}^{∞} jω∫ f(t)e^{-jωt}dt如果 f(t) 在无穷远处衰减到零第一项为零于是结果是 jωF(ω)。注意这里“无穷远衰减”本质上就是绝对可积条件的一部分也是工程信号自然满足的。多次微分类推每次乘一个 jω。这个性质在电路分析里太常用了。电容的伏安关系 i C dv/dt两边做傅里叶变换后变成 I(ω) jωC V(ω)阻抗为 1/(jωC)电感是 v L di/dt变换后 V(ω) jωL I(ω)阻抗为 jωL。所有电路分析里的相量法本质上就是傅里叶变换微分性质的工程化表达。理解到这层你就明白为什么拉普拉斯变换要搞出“复频率 s”的概念它其实是在把微分算子映射成乘法因子。5.2 积分性质注意直流分量积分性质可以看作微分性质的逆运算。如果 f(t) ↔ F(ω)那么∫_{-∞}^{t} f(τ)dτ ↔ F(ω)/(jω) πF(0)δ(ω)这里多出来的 πF(0)δ(ω) 是直流分量。为什么会有这一项因为积分运算相当于在频域除以 jω但除零的情况需要单独处理F(0) 是 f(t) 的直流分量也就是信号的平均值。如果信号均值不为零积分之后会累积出一个直流偏置反映到频域就是原点的冲激。证明时通常先定义 g(t) ∫_{-∞}^{t} f(τ)dτ那么 g(t) f(t)。对两边取傅里叶变换利用微分性质有 jωG(ω) F(ω)。当 ω ≠ 0 时得到 G(ω) F(ω)/(jω)但在 ω 0 这一点上jωG(ω) 0需要单独补上冲激项才能让等式在分布意义下成立。工程上很多人在做积分器设计时会忽略直流分量导致输出饱和原因就是 F(0) 这一项没有被处理掉。数字滤波器里如果要设计积分器必须在低频处特别小心。5.3 Parseval定理证明与能量守恒直觉Parseval 定理可以写为∫_{-∞}^{∞} |f(t)|² dt (1/2π)∫_{-∞}^{∞} |F(ω)|² dω它说的是信号在时域的总能量等于频域的总能量两个域只是坐标不同能量的量值不变。证明时把 |f(t)|² 写成 f(t) f*(t)再用反变换表示 f*(t)f*(t) (1/2π)∫ F*(ω)e^{-jωt} dω代入原式交换积分次序整理后就能得到右边。严格推导时中间会用到冲激函数的筛选性质也就是 ∫ e^{-j(ω-ω)t} dt 2πδ(ω-ω)这是整个证明里最抽象的一步需要读者对广义函数有点基础。工程里这个定理最直接的应用就是能量谱密度。你有一个时域波形想知道功率在频率上怎么分布直接算 |F(ω)|² 就行。比如用频谱仪测量信号仪器显示的纵轴通常是功率谱密度原理就是 Parseval 定理的延伸。做抗干扰分析时我们经常用这个定理把时域的信噪比指标换算到频域去算或者反过来非常灵活。6. 常见问题、踩坑记录与记忆速查6.1 我见过最多的三个低级错误第一个错误是正负号混淆。时移性质 f(t-t₀) 对应 e^{-jωt₀}频移性质 f(t)e^{jω₀t} 对应 F(ω-ω₀)。很多同学记反原因是没有分清“这个信号在时域被移动了还是在频域被移动了”。我给自己的记忆锚点是信号向右延迟指数是负的频谱往右搬指数是正的。你可以找一组熟悉的信号算一遍算完一次就不容易忘。第二个错误是系数丢常数。正变换和反变换的系数是 1 和 1/2π有些性质会多出 2π比如对偶性比如频域卷积定理比如 Parseval 定理右边。我见过有人算频域卷积时少乘 1/2π结果滤波器增益整体不对排查半天最后才发现是常数问题。应对办法是养成“用直流信号验证”的习惯令 f(t)1那么它的傅里叶变换是 2πδ(ω)反变换回去要得到 1这个最简单的对子能帮你验证很多公式的系数对不对。第三个错误是忽略收敛条件。傅里叶变换需要信号绝对可积能量信号或者满足广义函数意义的条件。有人拿 f(t)1 这种非绝对可积信号直接套性质得到一堆“无穷大”还不自知。严格处理时常数信号、阶跃信号、周期信号都要用冲激函数或者极限过程来定义变换。工程实现里离散序列是有限长的天然满足条件但理论推导时一定要写清楚收敛前提。6.2 一张速查表帮你考前或面试前抱佛脚下面这张表把最常用的性质集中到一起左边是时域操作右边是频域结果符号部分统一采用第 1 节的约定。你可以把它保存下来或者抄到笔记里每次用之前快速扫一眼。性质时域 f(t)频域 F(ω)线性性a f(t) b g(t)a F(ω) b G(ω)时移f(t - t₀)F(ω) e^{-jωt₀}频移f(t) e^{jω₀t}F(ω - ω₀)尺度变换f(at)(1/对偶性F(t)2π f(-ω)时域卷积(f * g)(t)F(ω) G(ω)频域卷积f(t) g(t)(1/2π)(F * G)(ω)时域微分d^n f(t)/dt^n(jω)^n F(ω)时域积分∫_{-∞}^{t} f(τ)dτF(ω)/(jω) πF(0)δ(ω)频域微分(-jt)^n f(t)d^n F(ω)/dω^nParseval∫f(t)使用这张表的时候记住一点所有性质都必须保证积分收敛符号也要和你自己的定义匹配。如果换了一套定义表中的常数会变比如时域与频域系数对称分布的版本里对偶性和 Parseval 定理就不再有 2π。6.3 我的个人记忆法从卷积和微分两条主线出发性质很多但我不建议死记。我自己的习惯是从两条主线展开一条是“线性系统”一条是“算子映射”。线性系统这条线抓住卷积定理。你知道吗我们为什么那么喜欢研究冲激响应因为冲激响应经过傅里叶变换就是频响系统输出等于输入与冲激响应的卷积频域就是输入频谱乘频响。从卷积定理出发可以顺带记住时移时域卷积一个冲激、尺度变换、调制乘一个复指数这些和系统相关的操作。算子映射这条线抓住微分性质。微分在时域是 d/dt在频域是乘 jω积分在时域是 ∫在频域是除 jω。这几个映射关系能帮你快速推导微分方程、电路方程、状态空间表达式的频域形式。我在写频域分析代码时经常直接拿这些映射把时域方程变成代数方程然后用矩阵求解非常高效。最后再分享一个我自己的小习惯每次学完一组性质随手用几个简单信号做验证。比如取 f(t) e^{-t}u(t)它的变换是 1/(1jω)然后我分别验证时移、频移、微分性质算出来一致再继续下一组。这个验算过程不用花很多时间但能让你的记忆牢靠得多。做工程这么多年我越发觉得傅里叶变换的性质是一张网性质与性质之间互相印证你只要把几条主线抓住了其他内容都能推导出来而不是靠死记硬背。
返回列表