傅里叶级数模拟器 返回
信号处理 / 数学

傅里叶级数模拟器

用N=1~50个谐波合成方波、三角波、锯齿波,实时观察吉布斯现象过冲与谐波振幅频谱的变化规律。

参数设置
波形类型
谐波数 N
振幅 A
动画速度
吉布斯现象:约 9.0% 过冲
计算结果
谐波数 N
10
峰值
RMS 误差
波形合成(实时动画)
谐波振幅频谱 |bn|
光谱
理论与主要公式

$$f(t) = \frac{a_0}{2}+ \sum_{n=1}^{N}\!\left(a_n\cos\frac{2\pi nt}{T}+ b_n\sin\frac{2\pi nt}{T}\right)$$

方波:$b_n = \tfrac{4A}{n\pi}$(仅奇数 $n$)
三角波:$b_n = \tfrac{8A}{n^2\pi^2}\sin\!\tfrac{n\pi}{2}$
锯齿波:$b_n = -\tfrac{2A}{n\pi}(-1)^n$

什么是傅里叶级数

🙋
傅里叶级数是什么?为什么能把一个方方正正的方波,用一堆圆滑的正弦波拼出来?
🎓
简单来说,傅里叶级数就像“声音的食谱”。任何一个周期性的“味道”(波形),都可以用不同“配料”(正弦和余弦谐波)按特定比例混合出来。在实际工程中,比如分析发动机的振动噪音,我们测到的是复杂的时间信号,用傅里叶级数分解后,就能知道是哪些频率的振动在“作怪”。你可以在模拟器里选择“方波”,然后试着把“谐波数N”从1慢慢拖到10,看看这些平滑的波浪是怎么一步步逼近一个棱角分明的方块的。
🙋
诶,真的吗?我拖到N=20,方波的边角确实更直了,但跳变的地方总有个小鼓包在抖,这是怎么回事?
🎓
你观察到的那个抖动的鼓包,就是著名的“吉布斯现象”!就像你用有限块乐高去拼一个直角,拐角处总会有锯齿。对于方波这种有突然跳变的信号,无论你加多少谐波(即使N很大),在不连续点附近总会存在大约9%的过冲和振荡。工程现场常见的是,在CFD模拟激波,或者FEM分析应力集中时,也会出现类似的数值振荡。你试试把波形切换到“三角波”,再用同样的谐波数叠加,会发现边角平滑多了,因为三角波的“配料”衰减得更快。
🙋
原来不同波形的“配料”比例还不一样啊!那右边那些竖条(频谱)代表什么?我调“AmplitudeA”滑块,它们怎么一起变?
🎓
那些竖条就是“食谱”的具体配方表!每个竖条的高度代表对应频率谐波的振幅大小。对于方波,只有奇数次谐波(n=1,3,5...)有“配料”,而且振幅按 $1/n$ 衰减。所以你改变顶部的总“AmplitudeA”,所有谐波的振幅都会按比例缩放,就像把整道菜做咸或做淡。试着把“波形类型”从方波切换到锯齿波,你会立刻看到频谱变成所有谐波(1,2,3,4...)都有分量了,这就是不同波形对应的不同数学公式在起作用。

物理模型与关键公式

傅里叶级数的核心思想是将一个周期为 $T$ 的复杂函数 $f(t)$,分解为一系列频率为基频整数倍的正弦和余弦函数的线性组合。

$$f(t) = \frac{a_0}{2}+ \sum_{n=1}^{N}\!\left(a_n\cos\frac{2\pi nt}{T}+ b_n\sin\frac{2\pi nt}{T}\right)$$

其中,$a_0/2$ 是直流分量(平均值),$a_n$ 和 $b_n$ 是傅里叶系数,决定了每个余弦和正弦谐波的“分量”大小,$n$ 是谐波次数,$N$ 是叠加的谐波总数。

不同波形的“身份”由其独特的傅里叶系数决定。模拟器中三种波形的关键系数公式如下(假设振幅为 $A$):

$$ \begin{aligned}&\text{方波(奇谐波)}: & b_n &= \frac{4A}{n\pi}\quad (n=1,3,5,\ldots), \quad a_n=0 \\ &\text{三角波(奇谐波)}: & b_n &= \frac{8A}{n^2\pi^2}(-1)^{(n-1)/2}\quad (n=1,3,5,\ldots), \quad a_n=0 \\ &\text{锯齿波(所有谐波)}: & b_n &= \frac{2A}{n\pi}(-1)^{n+1}\quad (n=1,2,3,\ldots), \quad a_n=0 \end{aligned} $$

注意系数衰减速度:方波 ($1/n$),三角波 ($1/n^2$),锯齿波 ($1/n$)。衰减越快,用有限项 $N$ 逼近时收敛得越好,吉布斯现象越不明显。

现实世界中的应用

结构振动与噪声分析:在汽车或飞机设计中,通过传感器采集机身的振动时域信号,利用傅里叶变换(傅里叶级数的推广)得到频谱,可以精准定位引起异常噪音或疲劳问题的共振频率,从而指导结构优化。

信号处理与通信:在无线通信中,任何调制信号(如AM/FM)都可以用傅里叶级数表示其频带特性。滤波器的设计也基于此,目的是保留有用频段,滤除噪声或干扰谐波。

热传导与电磁场分析:在求解具有周期性边界条件的热传导或电磁场偏微分方程时,傅里叶级数法是重要的解析工具。例如,分析周期性加热的金属板内的温度分布。

CAE中的数值仿真后处理:在有限元分析(FEA)或计算流体力学(CFD)得到瞬态结果后,工程师常对某个关键点的位移、压力等数据进行傅里叶分析,将时域响应转化为频域,以评估系统的动态特性或识别 dominant 的物理频率。

常见误解与注意事项

首先,人们常认为“N越大精度总是越高”,但实际上并非如此简单。对于平滑的三角波确实如此,但对于像方波这样具有不连续点的波形,由吉布斯现象引起的约9%过冲即使将N增至100或1000也不会消失。这是数学上已证明的收敛性质。在实际工程中,“应增加多少项数”取决于可接受的误差与计算成本之间的平衡。例如,若语音信号再现中9%的失真不可接受,那么方波近似本身可能就不适用。

其次,需注意仿真器中看到的“频谱”终究只是理想周期波形的频谱。实际CAE数据(例如时程振动数据)经FFT得到的频谱会混杂噪声和非稳态成分,不会呈现如此清晰离散的谱线。例如,对发动机振动数据进行FFT时,虽能看到与转速对应的峰值,但背景中必然存在宽频噪声。重要的是不能将工具的完美频谱直接等同于现实。

最后,要理解系数衰减速度 $1/n$ 和 $1/n^2$ 所揭示的“波形特性” 。衰减越慢(如方波的$1/n$)则高频成分越多,包含急剧变化;反之衰减越快(如三角波的$1/n^2$)的波形越平滑。这直接关系到实际工程中的网格划分和时间步长设置。模拟冲击波这类急剧现象时,由于不能假设快速衰减,因此需要非常精细的网格或高采样频率。

使用指南

  1. 在波形选择区选择目标波形(方波、三角波或锯齿波),设定基频f₀=1Hz作为参考
  2. 通过nHarmonicsNum滑块调整谐波数量N(范围1至50),实时观察合成波形逼近目标的过程
  3. 使用animSpeedNum调节动画播放速度,逐步加入各次谐波(奇次/全次谐波),同步查看频谱中各分量的振幅衰减规律
  4. 对比不同N值下的吉布斯现象,记录方波在跳变处的过冲比例(约9%)与波纹衰减速率

具体计算示例

以合成方波为例,基频f₀=50Hz、幅值A=10V、取N=11次谐波。方波傅里叶级数为:f(t)=4A/π[sin(ωt)+1/3·sin(3ωt)+1/5·sin(5ωt)+...+1/21·sin(21ωt)]。第1次谐波(50Hz)振幅12.73V,第3次谐波(150Hz)为4.24V,第11次谐波(550Hz)为1.16V。合成波形在0.1ms处的幅值可达10.9V,展现典型的吉布斯过冲;当N增至25时,过冲逐渐收敛至±9%范围。

实务注意事项

  1. 锯齿波要求所有谐波参与(含偶数次),衰减速率1/n最慢,需N≥30才能在高频测量中获得<5%误差
  2. 三角波仅含奇次谐波且衰减快(1/n²),N=7时已可达到工程精度,用于音频合成时需注意上限频率不超过奈奎斯特频率的一半
  3. 在模拟开关电源PWM输出(方波)时,若switching频率=100kHz、占空比50%,需采样至少50次谐波以准确预测EMI滤波器的所需截止频率
  4. 吉布斯现象在实际硬件中表现为信号上升沿的振铃,可通过Chebyshev滤波器衰减高次谐波分量