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

傅里叶级数模拟器

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

参数设置
波形类型
谐波数 N
振幅 A
动画速度
吉布斯现象:约 9.0% 过冲
计算结果
谐波数 N
10
峰值
—
RMS 误差
—
波形合成(实时动画)

谐波振幅与直流分量
光谱
理论与主要公式

$$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$
半波整流波:$a_0/2=A/\pi$, $b_1=A/2$, $a_n=-2A/[\pi(n^2-1)]$(偶数 $n\ge2$)。其余系数均为0。

周期归一化为1;N表示保留的最高谐波次数,而不是非零项的数量。锯齿波从0上升,在半周期处由+A跳至−A;间断点采用左右极限的平均值。RMS误差通过Parseval关系计算完整周期上的积分。最大振幅是4096点的数值估计;有限N的过冲率以跳跃幅度2A为基准。频谱显示√(aₙ²+bₙ²),直流分量DC=a₀/2单独显示。

什么是傅里叶级数

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

常见问题

N表示保留的最高谐波次数。增加N会降低完整周期的RMS误差。方波和锯齿波跳变附近的过冲渐近于跳跃幅度2A的约9%,而峰的宽度缩小。三角波连续,不存在由函数值跳变引起的这种吉布斯过冲。
横轴是谐波次数n,而不是Hz。柱高表示正弦和余弦分量合成的振幅√(aₙ²+bₙ²)。DC单独表示平均值a₀/2的绝对值。方波仅含奇次谐波,振幅按1/n衰减。这不是功率或实测FFT。
用有限个平滑分量近似有跳变的周期波形,会在跳变附近留下振荡。在跳变点本身,级数收敛到两侧极限的平均值。约9%的渐近值以跳跃幅度2A为基准,而不是幅值A;它不同于有限N下实际计算的过冲率。
本归一化模型用于学习截断对波形、误差和频谱的影响。示例按钮重现固定条件,可暂停比较。本工具不分析实测FFT数据,也不能评价实际电路的滤波性能、带宽或标准符合性。

物理模型与关键公式

傅里叶级数的核心思想是将一个周期为 $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. 选择方波、三角波、锯齿波或半波整流正弦波,设置最高谐波次数N(1~50)。N不是非零项的数量。
  2. 幅值A的范围为0.5~2.0。本模型将周期归一化为1,不提供Hz或V的输入。
  3. 播放只移动相位,不会自动增加谐波。速度范围0.1~3.0,可暂停后比较波形。
  4. RMS误差覆盖完整周期;最大振幅由4096个采样点估计。改变播放速度不会改变这两个指标。

具体计算示例

每个按钮设置A=1、速度=1、相位=0,并暂停在该示例。

实务注意事项

  1. 频谱表示振幅,不是功率或实测FFT。锯齿波第n次振幅为2A/(nπ)。
  2. RMS误差减小不代表跳变附近的最大误差按相同比例减小。在间断点,级数收敛到两侧极限的平均值。
  3. 实际电路的带宽、上升时间、采样和标准符合性均不在本模型范围内。不能仅凭此图确定实际应用所需的次数或滤波器性能。

参考资料:Mathematics for Quantum Physics:傅里叶系数与半波整流;UC Davis:锯齿波与Parseval练习。资料中的周期与相位定义已转换为本页的归一化形式。