傅里叶变换的本质

📅 2026/7/3 11:17:09 👁️ 阅读次数 📝 编程学习
傅里叶变换的本质

前言

傅里叶变换作为信号处理的基本功,在教科书上常以数学公式来对其进行解释,难免会产生较多的疑惑。实际上,傅里叶变换最好通过图形化的方式进行解释会更好理解,本文将以图形化的方式详细介绍傅里叶变换的实质。

信号的本质

世界上任何信号都是不同频率信号的叠加,无论是方波、三角波、甚至是画像都可以被分解为不同频率信号的叠加。

以上这句话可以用来概括所有信号的本质,但是光看文字可能不好理解,接下来我会利用这句话来合成一个方波。

如上,我现在只画了一个单一频率的信号,表现为正弦波。

现在,我又叠加了四个奇次谐波。可以看到信号已经有了一点方波的雏形。

我又叠加了四个奇次谐波。可以看到信号已经很接近方波了。

这次一次性叠加了20次谐波,可以看到信号已经与我们平时在示波器上见到的方波一致了。

由此可见,想要生成任何不同形状的信号,都只需要将不同频率的信号进行叠加即可。

傅里叶变换作用

在信号处理时,为了保证获取信号的频率信息,常用的方法就是傅里叶变换。傅里叶变换的作用就是对原始信号进行数学变换从而获取原始信号所含有的信号的频率。

如图所示,我将一个通过四个奇次谐波简易合成的方波进行了傅里叶变换,在频域上存在5个尖峰。其中频率最低的是它的基波,其余的尖峰则是四个奇次谐波。

在频域上,横轴代表信号的频率,纵轴代表信号的能量即幅度。

傅里叶变换数学公式

X ( f ) = ∫ − ∞ ∞ x ( t ) e − j 2 π f t d t {X(f) = \int_{-\infty}^{\infty} x(t)\, e^{-j 2\pi f t}\, dt}X(f)=x(t)ej2πftdt

如上,这是傅里叶变换的基本公式。

这个公式到底是什么意思 🤨?现在我们先不对其进行枯燥的数学推导,直接用图形化的方式展示傅里叶变化。

工作原理

如图所示,我们在对一个信号采样之后,对于采样后的数据与一个频率不一致的正弦波探测信号相乘。各点的乘积有正有负,在对每一点的乘积进行积分后,积分值实际上是很小的,因为正数与负数相互抵消了。

调整探测信号频率与采样信号一致,此时探测信号与采用信号的正数部分相乘后为正数,负数部分相乘后为正数,最终乘积结果全部极性为正。对乘积进行积分后,积分值会很大。

那么这和傅里叶变换有什么关系呢?
其实这就是傅里叶变换的底层原理。

当我们采用傅里叶变换的时候,会以探测信号的频率为横轴,积分值作为竖轴,构建坐标系,称为频域

就像之前演示的对合成的方波进行傅里叶变换后的图像一样,每一个尖峰对应的就是积分值突增的点,即探测信号与采样信号频率一致的点

如此一来,傅里叶变换的工作原理便清晰明了了:

傅里叶变换就是通过将不同频率的探测信号与采样信号相乘后,对乘积进行积分,根据积分后的数据激增点判断频率相关性的方法。

看着很简单对吧,但是目前还存在一个问题:如果采样信号与探测信号存在相位差怎么办?

能量分散的解决方法

如上图所示,如果采样信号与探测信号存在π 2 \frac{\pi}{2}2π的相位差,尽管此时探测信号的频率已经与采样信号一致了,最终乘积的积分值却为0,这会导致最终无法检测到数据激增点,自然无法知道采样信号的频率。

解决方法如上图所示。原本我们的探测信号是只有一个正弦波,这会导致采样信号与探测信号存在相位差时输出结果异常。此时可以加入另外一个探测信号:与原本正弦波频率一致的余弦波。

此时可以看到,通过余弦信号计算完以后的积分值是一个很大的值,正弦信号计算出的值为0,刚好互补。因此,在实际应用中,考虑到相位差不可忽略,必须使探测信号包含正弦波和余弦波。

此时设置采样信号相位差为π 4 \frac{\pi}{4}4π,在两个探测信号都存在相位差的情况下,两者都存在一定量的能量,在频域上展示的话需要分为实轴与虚轴:

正常运用实轴和虚轴的数据往往需要求取二者的平方和再开方,这样便能求得傅里叶变换常用的幅度谱。

幅度谱的详细数学公式如下:

∣ X ( f ) ∣ = ( Re ⁡ [ X ( f ) ] ) 2 + ( Im ⁡ [ X ( f ) ] ) 2 连续形式 = ( ∫ − ∞ ∞ x ( t ) cos ⁡ ( 2 π f t ) d t ) 2 + ( − ∫ − ∞ ∞ x ( t ) sin ⁡ ( 2 π f t ) d t ) 2 离散形式 ≈ ( ∑ n x [ n ] cos ⁡ ( 2 π f n Δ t ) Δ t ) 2 + ( − ∑ n x [ n ] sin ⁡ ( 2 π f n Δ t ) Δ t ) 2 \begin{align*} |X(f)| &= \sqrt{ \big(\operatorname{Re}[X(f)]\big)^2 + \big(\operatorname{Im}[X(f)]\big)^2 } \\[6pt] \text{连续形式} \quad &= \sqrt{ \left( \int_{-\infty}^{\infty} x(t)\cos(2\pi ft)\,dt \right)^2 + \left( -\int_{-\infty}^{\infty} x(t)\sin(2\pi ft)\,dt \right)^2 } \\[6pt] \text{离散形式} \quad &\approx \sqrt{ \left( \sum_{n} x[n]\cos(2\pi f n\Delta t)\Delta t \right)^2 + \left( -\sum_{n} x[n]\sin(2\pi f n\Delta t)\Delta t \right)^2 } \end{align*}X(f)连续形式离散形式=(Re[X(f)])2+(Im[X(f)])2=(x(t)cos(2πft)dt)2+(x(t)sin(2πft)dt)2(nx[n]cos(2πfnΔt)Δt)2+(nx[n]sin(2πfnΔt)Δt)2

如此一来,傅里叶变换便已经解释完毕。现在回到一开始的傅里叶变换公式:

X ( f ) = ∫ − ∞ ∞ x ( t ) e − j 2 π f t d t {X(f) = \int_{-\infty}^{\infty} x(t)\, e^{-j 2\pi f t}\, dt}X(f)=x(t)ej2πftdt

这个公式又是什么意思?

其实这个公式要先看积分符号内部:

x ( t ) e − j 2 π f t x(t)\, e^{-j 2\pi f t}x(t)ej2πft

其中x ( t ) x(t)x(t)自然是我们的采样信号,e − j 2 π f t e^{-j 2\pi f t}ej2πft根据欧拉公式可知:

e i x = cos ⁡ x + i sin ⁡ x e − j 2 π f t = cos ⁡ ( 2 π f t ) − j sin ⁡ ( 2 π f t ) e^{ix} = \cos x + i\sin x \\ e^{-j 2\pi f t} = \cos(2\pi f t) - j\sin(2\pi f t)eix=cosx+isinxej2πft=cos(2πft)jsin(2πft)

由此可知公式展开为:

x ( t ) e − j 2 π f t = x ( t ) cos ⁡ ( 2 π f t ) − j x ( t ) sin ⁡ ( 2 π f t ) x(t) e^{-j 2\pi f t} = x(t)\cos(2\pi f t) - j\, x(t)\sin(2\pi f t)x(t)ej2πft=x(t)cos(2πft)jx(t)sin(2πft)

此时可以发现这与我们求幅度谱的数学公式本质上是一致的。

综上所述,傅里叶变换公式就是对上式的整个坐标系各点的积分。

实际效果展示

讲了这么多,最后实际展示下在合成波情况下傅里叶变换的效果:

总结

所以,傅里叶变换是基于信号的本质即任何信号是有不同频率的信号的叠加这一理论基础,通过对采样信号与不同频率的正弦和余弦两个探测信号相乘后的点积,根据最终积分值作为判断信号相关性的标准,从而求出信号信息的方法。

傅里叶变换不单单只能用来求采样信号的频率和幅度信息,作为信号处理的基石,还存在很多不同的应用方式,如NUDFT、STFT、SDFT等拓展应用,是信号处理不得不学习的一环。