ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

从傅里叶级数到傅里叶变换:非周期信号的频谱密度推导与实战

从傅里叶级数到傅里叶变换:非周期信号的频谱密度推导与实战

1. 从“非周期”这三个字说起

1.1 信号分析里最常被跳过的一个动机问题

我当年学“信号与系统”这门课,第一次对傅里叶变换产生困惑就是在教材的章节标题上:前面还在讲“周期信号的傅里叶级数”,后面突然跳到“非周期信号的傅里叶变换”。老师在黑板上写下那个积分式的时候,我的第一反应是:这个公式到底是推出来的,还是直接定义出来的?为什么周期信号有离散的谱线,而非周期信号就变成连续的频谱了?

后来我才意识到,这个问题不搞清楚,后面学抽样定理、滤波器设计、通信系统,全都是在背结论,稍微换个场景就不知道该怎么分析。傅里叶变换不是凭空出现的公式,它是傅里叶级数在“周期趋于无穷大”这个极限过程下的自然推广。换句话说,连续时间非周期信号并不是一个和周期信号无关的新问题,它只是把周期信号延伸到极限之后看到的另一种视角。

想明白这一点,你的脑子里就会有这样一个框架:周期信号用级数拆成离散频率的谐波组合;非周期信号用变换铺成连续频率的频谱密度。两者的数学工具和物理含义一脉相承,只是形式变了。

1.2 非周期信号为什么值得单独拿一章来讲

周期信号,比如正弦波、方波,它们的特征是每隔一个固定的周期T就会重复自己。这类信号在工程里大量存在,但不是全部。实际中遇到更多是这种情况:敲一下木鱼产生的振动衰减、你按一下开关产生的瞬间脉冲、一帧图像里的亮度变化,这些都没有严格意义上的周期性。

非周期信号更接近真实世界的“一次性事件”或“有限时长事件”。它的能量通常不是无限延续的,而是在时间轴上集中释放。对这类信号做频域分析,就不能再用离散谱线的思路了,因为你没法把一段非周期波拆成有限个正弦波的叠加。正弦波本身是无限延展的,任何一个非周期的有限长信号,都需要用无限多、频率无限接近的正弦分量来拼出来,这就是为什么傅里叶变换的结果是一个关于频率的连续函数——X(jω),而不是一串离散系数。

把这个观念扎稳,很多“神乎其神”的频谱图就都说得通了。比如你看到某个信号的频谱是一段连续的过山车曲线,它背后其实意味着:这个信号包含从低频到高频的无数个正弦成分,只是各个频率的幅度和相位在不断变化。非周期信号,本质上就是一个频率分量铺满整个频率轴的信号,只是有的地方多、有的地方少。

2. 从傅里叶级数到傅里叶变换:一次极限倒计时

2.1 周期信号与傅里叶级数的关键公式回顾

要理解傅里叶变换,绕不开傅里叶级数。一个周期为T的实信号f(t),只要满足一定条件,就可以写成下面这种形式:

$$f(t) = \sum_{k=-\infty}^{\infty} C_k e^{jk\omega_0 t}$$

其中$\omega_0 = 2\pi/T$是基波角频率,$C_k$是第k次谐波的复指数幅度:

$$C_k = \frac{1}{T}\int_{-T/2}^{T/2} f(t)e^{-jk\omega_0 t}dt$$

这里面有一个概念值得反复品味:$C_k$表示的是kω₀这个频率点上复指数分量的幅度。正频率和负频率是对称出现的,因为实信号拆成复指数后,正负频率的系数互为共轭。物理上我们通常只看正频率,数学上却必须保留负频率,否则复指数形式的级数没法对实信号展开。

周期信号的频谱是离散的,相邻两条谱线之间的间隔是$\omega_0=2\pi/T$。周期T越大,谱线之间越挤。

2.2 周期趋于无穷大的极限过程到底发生了什么

现在假设我们有一个非周期信号,比如一个持续时间有限的矩形脉冲。我们怎么把它当成周期信号来看?常见做法是:假设这个脉冲每隔T就重复一次,然后把它当成周期信号做傅里叶级数展开,得到一串离散谱线。

接下来让T慢慢变大——脉冲被复制得越来越远,谱线变得越来越多,间距越来越小。当T趋近无穷大的时候,这个“周期信号”就退化成了原来的非周期脉冲;而离散谱线之间的间隔趋近于零,谱线密集成了一条连续曲线。

这个时候,$C_k$本身会怎么变化呢?注意$C_k = \frac{1}{T}\int_{-T/2}^{T/2}...\ dt$,T变大,$C_k$会变小。如果直接盯着$C_k$取极限,得到的是一堆趋近于零的数值,什么都看不出来。所以傅里叶变换不是直接对$C_k$取极限,而是对$T \cdot C_k$取极限,也就是把谱线幅度乘上T,抵消掉1/T带来的衰减。

这个$T \cdot C_k$就是频谱密度的雏形。

2.3 频谱密度:连续频谱的正确理解方式

为什么要用“密度”这个词?因为非周期信号的频谱是一个连续函数,它不能像离散谱线那样直接说“这个频率有多大”,而只能说“单位频率区间里有多少谱分量”。类比一下更容易懂:一包米你数不清每粒米的位置,但你可以说明“每公斤米里有多少粒”。傅里叶变换X(jω)衡量的是频率附近单位频带内的复振幅密度。

用极限的语言严格写出来,就是:

$$X(j\omega) = \lim_{T\to\infty} T \cdot C_k \bigg|{k\omega_0 = \omega} = \int{-\infty}^{\infty} f(t)e^{-j\omega t}dt$$

这个式子就是连续时间傅里叶变换的正变换。它把原来“周期信号离散谱线”的理解升级成“非周期信号连续频谱密度”,两者之间只差一个和1/T有关的比例换算。

工程上,人们通常不严格区分“频谱密度”和“频谱”的说法,直接称X(jω)为频谱。但心里要清楚,它刻画的是密度。

2.4 反变换的1/2π是从哪里冒出来的

正变换已经得到,反变换怎么还原?

从周期信号的级数表示出发,$f(t)=\sum C_k e^{jk\omega_0t}$,把$C_k = \frac{1}{T}X(jk\omega_0)$和$\omega_0=2\pi/T$代进去,得到:

$$f(t)=\frac{1}{2\pi}\sum_{k=-\infty}^{\infty} X(jk\omega_0)e^{jk\omega_0t}\omega_0$$

当T→∞时,ω₀变成无穷小量dω,求和变成积分:

$$f(t)=\frac{1}{2\pi}\int_{-\infty}^{\infty} X(j\omega)e^{j\omega t}d\omega$$

这个1/2π就是这么来的,它是$1/T$换成频率分辨率后的残留因子。

很多人背公式时总纠结为什么不把1/2π放到正变换里,其实对称写法在信号处理里也常见。只要正反变换搭配起来能还原信号,常数因子放哪边都不是原则性问题,但统一约定可以减少大量计算错误。

3. 正变换和反变换的完整定义与符号心法

3.1 正变换的积分式什么时候能写出来用

连续时间非周期信号的傅里叶变换(CTFT)标准定义为:

$$X(j\omega)= \int_{-\infty}^{\infty} f(t)e^{-j\omega t}dt$$

这里f(t)可以是实信号也可以是复信号。信号与系统教材里通常不写X(ω)而写X(jω),是为了明确这里是傅里叶变换而不是拉普拉斯变换——拉普拉斯变换的变量是s=σ+jω,傅里叶变换相当于在s平面的虚轴上取值。

计算时要注意:积分域是整个实数轴,不是信号的非零区间。好多初学者拿着矩形脉冲算傅里叶变换,把积分上下限写成脉冲宽度而不是正负无穷,这当然也能算出正确结果,因为没有信号的区域积分是零,可直接写无穷区间更通用,遇到指数衰减信号时也更不容易漏项。

3.2 反变换还原信号时,为什么积分方向是正的

反变换为:

$$f(t)=\frac{1}{2\pi}\int_{-\infty}^{\infty}X(j\omega)e^{j\omega t}d\omega$$

这里指数是$e^{+j\omega t}$,不是负号。数学上是合理的:正变换用$-j$,反变换用$+j$,两者是对称的逆运算。工程上可以这么记忆:正变换是“时间分解成频率”,沿着频率轴看信号;反变换是“频率分量合成时间波形”,最终拼出原来的信号。

相位问题特别容易在这里出幺蛾子。X(jω)是复数,写成$|X(j\omega)|e^{j\varphi(\omega)}$。反变换积分时,每个频率分量的相位φ(ω)都会影响时域波形的形态。你不把相位谱算对,合成的波形和原始信号对不上。在很多实战排查里,幅度谱看着完全正确,波形对不上,最后发现就是相位谱少乘了一个符号。

3.3 现代工程中常用的角频率形式与普通频率形式

很多工程资料使用普通频率f(Hz)而不是角频率ω(rad/s)来写傅里叶变换:

$$X(f)=\int_{-\infty}^{\infty}x(t)e^{-j2\pi ft}dt$$

$$x(t)=\int_{-\infty}^{\infty}X(f)e^{j2\pi ft}df$$

好处是反变换前面不再有1/2π,公式更对称,编程画图也更直观——横轴直接是Hz。坏处是如果教科书里用ω,而你要和用f实现的代码对数据,换算容易错:120Hz的频率,换成ω要乘2π,约754rad/s,这一步漏了,数字滤波器的截止频率就全部偏到外太空去了。

我的习惯是:做题和推导用ω,写代码采样率和横轴标注用f,心里始终记住两者只差2π,不混用。

4. 收敛条件没那么可怕,但广义变换必须懂

4.1 狄利克雷条件在傅里叶变换里的具体形式

傅里叶变换不是对随便什么函数都成立的,教科书通常给出一组充分条件,这组条件是狄利克雷条件在非周期信号上的版本:

  • 信号在任意有限区间内只有有限个间断点;
  • 信号的间断点处有有限值;
  • 信号在任意有限区间内只有有限个极大值和极小值;
  • 信号绝对可积,即$\int_{-\infty}^{\infty}|f(t)|dt$是有限值。

前三条大多是数学上的严谨性约束,工程中的信号基本都能满足。核心是最后一条:绝对可积。

矩形脉冲、单边指数衰减信号、高斯脉冲,这些信号绝对可积,它们的傅里叶变换存在且是普通函数,可以直接用积分公式算。真正让人头疼的是不绝对可积但依然很有用的信号,比如常值信号、阶跃信号、正余弦信号。

4.2 不收敛的信号为什么工程上还要用

如果用严格数学定义去算常数信号的傅里叶变换,积分发散,不收敛。但工程里天天在和高频载波、直流偏置打交道,没有常量和正弦的频谱表示就没法分析通信系统了。

这时要用广义傅里叶变换,也就是借助冲激函数的概念扩展适用范围。最关键的两个变换对是:

  • 常数信号 $A$ ⟶ $2\pi A\delta(\omega)$
  • 单频复指数 $e^{j\omega_0t}$ ⟶ $2\pi\delta(\omega-\omega_0)$

冲激函数δ(ω)在ω=0处无穷高、面积为1,物理上表示“该频率处有确定强度的成分”。常数信号在所有时间都有同样幅值,所以它只有直流分量,频谱是位于ω=0处的冲激,冲激强度等于2πA。

4.3 常用不绝对可积信号的变换结果整理

我上学时最常用的几张广义变换表:

信号傅里叶变换
常数A$2\pi A \delta(\omega)$
单位阶跃u(t)$\pi\delta(\omega)+\frac{1}{j\omega}$
符号函数sgn(t)$\frac{2}{j\omega}$
cos(ω₀t)$\pi[\delta(\omega-\omega_0)+\delta(\omega+\omega_0)]$
sin(ω₀t)$j\pi[\delta(\omega+\omega_0)-\delta(\omega-\omega_0)]$

阶跃信号同时包含直流分量和从0时刻开始变化的瞬态,所以频谱是冲激加上1/jω的连续部分。正余弦信号只有正负两个频率分量的冲激,因为它们是无限延续的周期信号,能量集中在离散频率上。

这些变换对在调制解调分析里出现频率极高。比如通信里最经典的调幅模型,就是把低频信号和高频载波相乘,傅里叶变换后用频移性质可以瞬间看出频谱搬移的效果——这一步几乎是一个标答操作。

5. 常用信号的傅里叶变换与手算技巧

5.1 矩形脉冲:频谱为什么是sinc函数

给定矩形脉冲:

$$f(t)=A,\quad |t|\le\frac{\tau}{2};\qquad f(t)=0,\quad |t|>\frac{\tau}{2}$$

直接代正变换:

$$X(j\omega)=\int_{-\tau/2}^{\tau/2}Ae^{-j\omega t}dt=A\frac{e^{-j\omega\tau/2}-e^{j\omega\tau/2}}{-j\omega}=A\tau\frac{\sin(\omega\tau/2)}{\omega\tau/2}$$

这就是$A\tau\cdot\text{sinc}(\omega\tau/2)$的形式。第一零点出现在$\omega=2\pi/\tau$的位置,换成频率就是$f=1/\tau$,这是一个可以背下来的结论:脉冲宽度越窄,频谱的第一零点频率越高,信号占的频带越宽。

5.2 单边指数衰减信号:复频谱的对称性判断

[ f(t)=e^{-at}u(t),\quad a>0 ]

[ X(j\omega)=\int_0^\infty e^{-at}e^{-j\omega t}dt=\frac{1}{a+j\omega} ]

幅度谱$|X(j\omega)|=1/\sqrt{a^2+\omega^2}$,相位谱$\angle=-\arctan(\omega/a)$。a大说明信号衰减快,频带更宽;a小说明信号拖得久,能量集中在低频。

这类信号的频率响应常用来模拟RC低通滤波器的行为。我在实际做电路模型分析时,就是拿这种变换对估计RC电路的带宽和相位滞后,跟示波器实测对得上。

5.3 高斯脉冲:傅里叶变换前后形状不变的美丽性质

[ x(t)=e^{-t^2/(2\sigma^2)} ]

[ X(j\omega)=\sqrt{2\pi}\sigma e^{-\sigma^2\omega^2/2} ]

还是一个高斯函数。这个结论在信号处理里非常重要:高斯脉冲的傅里叶变换仍是高斯脉冲,时域越窄,频域越宽,但不改变函数形式。

这个性质在生成脉冲、处理超宽带信号、做滤波器设计时特别讨喜。它也是不确定性原理在信号分析里的直观体现,时域和频域展宽不能同时压缩到任意小。

5.4 冲激信号和它的搬移作用

[ \delta(t)\longrightarrow 1 ]

幅度为1的频谱意味着所有频率分量都有相等的幅度,这常被称为“白频谱”。冲激信号的反变换也值得记住:

[ 1\longrightarrow 2\pi\delta(\omega) ]

这两对配合起来,就能理解冲激串采样的数学模型:把连续信号乘以周期冲激串,频域会出现信号的频谱被复制到各采样频率附近的结果,这也是后面抽样定理推导的基石。

6. 傅里叶变换的性质,真正需要死记硬背的只有几条

6.1 线性、时移、频移这三种最基础

线性性质:$af(t)+bg(t)\longrightarrow aX(j\omega)+bY(j\omega)$。靠这一条,信号拆分后可以分别变换,再组合得到结果。

时移性质:

[ f(t-t_0)\longrightarrow e^{-j\omega t_0}X(j\omega) ]

时域延迟不影响幅度谱,只改变相位谱,相位变化量是$-\omega t_0$,这是线性相位结构的来源。匹配滤波器、雷达回波延迟估计都直接用到这个结论。

频移性质:

[ e^{j\omega_0t}f(t)\longrightarrow X(j(\omega-\omega_0)) ]

频移是调制解调的理论基石。把基带信号乘上高频载波,频谱整体搬到ω₀处,这就是通信系统里最基础的频谱搬移手段。

6.2 尺度变换和对偶性:一个式子省一半记忆量

尺度变换:

[ f(at)\longrightarrow \frac{1}{|a|}X(j\frac{\omega}{a}) ]

a>1时信号在时域被压缩,频谱被展宽;a<1时相反。这个性质解释了为什么窄脉冲的带宽大,“时间压缩-频率扩展”的对应关系是通过这个公式严格描述的。

对偶性则更巧妙:如果$f(t)\longrightarrow X(j\omega)$,那么$X(t)\longrightarrow 2\pi f(-\omega)$。

意思是,时域信号和频域函数的角色可以互换。当你算出一个变换对,翻过来用就能得到另一个变换对,相当于公式表容量翻倍。矩形脉冲和sinc函数的变换对就能互相印证:矩形包络变换成sinc频谱,而sinc形状的时间信号变换成矩形频谱。

6.3 卷积定理:系统分析里真正的主力

[ f(t)*g(t)\longrightarrow X(j\omega)Y(j\omega) ]

时域卷积,频域乘法。这个定理是线性时不变系统分析的命脉:系统的输出等于输入和单位冲激响应的卷积,但直接求卷积往往很繁琐,频域做一次乘积就能算完。

[ f(t)g(t)\longrightarrow \frac{1}{2\pi}X(j\omega)*Y(j\omega) ]

时域相乘,频域卷积。通信里的调制器、乘法器都建立在这条性质的基础上。

6.4 帕塞瓦尔定理与能量计算

[ \int_{-\infty}^{\infty}|f(t)|^2dt = \frac{1}{2\pi}\int_{-\infty}^{\infty}|X(j\omega)|^2d\omega ]

左边的时域总能量等于右边的频域能量积分,前提是信号能量有限。工程上常用它来验证计算结果:时域算一次能量,频域算一次能量,对不上就说明变换求错了,这个自检技巧非常有用。

7. 傅里叶变换在系统分析里的实战用法

7.1 用频率响应求解LTI系统的输出

一个线性时不变系统,单位冲激响应是h(t),频率响应是$H(j\omega)=FT{h(t)}$。给定输入信号x(t),输出y(t)=x(t)*h(t),频域里:

[ Y(j\omega)=X(j\omega)H(j\omega) ]

这样就不用做卷积积分,而是先做三件事:求输入信号的傅里叶变换、乘系统频率响应、再反变换回时域。

我做过一个简单的一阶低通系统测试,输入矩形脉冲,直接频域相乘再反变换,得到的波形和数值卷积几乎完全吻合,但效率高很多。这个思路在连续系统分析、模拟滤波器设计、反馈控制系统性能评估中都通用。

7.2 滤波器设计里如何使用变换结果

低通滤波器的频率响应理想形状是矩形门函数,对应时域单位冲激响应是sinc函数。这就是为什么FIR滤波器设计里,很多人从“理想低通冲激响应”出发,再去加窗截短。

实际操作时要注意:理想低通不是物理可实现的,因为它的单位冲激响应是非因果且无限长的。工程上常用窗函数截断,或者在频域直接报出幅度和相位指标的近似解。傅里叶变换的角色是提供理想边界,实际设计则是在理想边界附近找可实现的妥协。

7.3 用频谱图分析信号时最常见的几个误解

看频谱图时,最容易犯的错是把坐标轴搞混。横轴是ω还是f?纵轴是幅度还是幅度平方?这些直接影响读图判断。

还有一个常见误会:很多人以为非周期信号的频谱是“每条谱线的幅度”,但严格说X(jω)是密度,幅度谱的数值会随频率轴的选法变化。用f做变量时,横轴单位是Hz,函数值可能与用ω时的值差2π倍。读文献时先确认对方用的是哪种定义,再比较结果,不然会闹笑话。

另外一个实操经验:画频谱图时,负频率部分的幅度谱是对称的,相位谱是反对称的,所以常常只画正频率一边。但处理非对称复信号时,负频部分不能省略。

7.4 从傅里叶变换回到周期信号的频谱衔接

如果非周期信号和周期信号之间可以通过“周期化”建立联系,那么两者的频谱也能对应起来。周期信号f_p(t)可以看作非周期信号f(t)以周期T重复叠加:

[ f_p(t)=\sum_{m=-\infty}^{\infty}f(t-mT) ]

频域里,连续频谱X(jω)会在各谐波频率处被抽样,变成离散谱线。这个过程让我深刻体会到,傅里叶级数和傅里叶变换不是两套孤立方法,而是同一个思想在不同周期假设下的两种表现。

这也能解释为什么方波、锯齿波这类周期信号的频谱图都是离散的;把它们当作特例的傅里叶变换,连续谱会在谐波处产生冲激序列,二者并不矛盾。

8. 学习避坑指南与我的实操体会

8.1 常见错误和排查方法

最大的一个坑是混淆“信号绝对可积”和“信号能量有限”。功率有限的周期信号不一定绝对可积,但它们可以做广义傅里叶变换。做题时先把信号归类:绝对可积用普通积分,不绝对可积纯周期信号用冲激组合,既有瞬态又有直流分量的混合信号用分段+查表。

第二个坑是反变换经常忘记1/2π。我的建议是别硬背,每一次都从傅里叶级数的过渡推导一遍,推两三次之后就自然记住了,比死记可靠多了。

第三个典型错误是计算频移和时移时符号搞反。记住口诀:时域延迟指数e^{-jωt₀},频域搬移指数e^{+jω₀t},两者符号恰好相反,混一次计算结果就面目全非。

第四个坑在处理实信号时丢失负频率。实偶信号的频谱是实偶的,实奇信号的频谱是虚奇的,指数形式的傅里叶级数又天然需要负频率,这些关系如果不提前理清,相位谱画出来就会缺一半。

8.2 我的学习建议:先推公式再刷题

我不会一上来就背变换表。更有效的路线是:

  1. 花半天时间把从傅里叶级数到傅里叶变换的极限推导做一遍,搞清楚1/2π怎么来的;
  2. 自己手算矩形脉冲、单边指数、高斯脉冲、冲激、常数这几个基本变换对;
  3. 再用性质去推其他变换对,比如用频移性质推余弦信号的变换;
  4. 最后才是拿实际工程场景练习,比如周期方波的频谱、低通滤波器的频率响应。

这样学下来,记忆负担小得多,遇到稍偏一点的题也能从性质出发找解法。

8.3 后续可以深入扩展的方向

傅里叶变换掌握后,后面还有一堆硬骨头等着:抽样定理的频域解释、拉普拉斯变换涉及的s平面分析、离散时间傅里叶变换以及数字信号处理中的FFT实现。这些内容全都是傅里叶变换在不同条件下的变体,底层的频率分解思想始终是同一套。

我个人做完这轮笔记后最大的感触是:信号与系统这门课不是要你背多少个公式,而是帮你建立“时域和频域之间随意穿梭”的思维方式。这一章如果真的学透了,后面面对系统响应、滤波、调制这些内容时,会感觉到所有知识点都在往一个框架里收拢。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进