十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

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

傅里叶级数详解:从正交分解到频谱分析与Python验证

傅里叶级数详解:从正交分解到频谱分析与Python验证 傅里叶级数这个知识点几乎所有学信号处理、通信、电子、自动控制的人都会遇到。但很多人在考试之后留下的印象只剩“算系数、背公式”并不知道它到底在干什么也不知道它在实际频谱分析里是什么位置。这次我们从“为什么要把周期信号拆成正弦波叠加”讲起把连续周期信号的傅里叶级数从定义、推导、工程含义到Python验证完整过一遍。这篇文章不是纯抄教材而是按最容易卡住的理解难点来组织先讲清楚投影与正交基再给三种等价展开形式然后通过方波和锯齿波看频谱结构最后用一段Python重建波形来验证数学结论。学完之后你至少能回答自己三个问题系数到底算的是什么、频谱图上的高度代表什么、为什么截断之后波形会振铃。1. 连续周期信号傅里叶级数核心知识速览能力项说明研究对象满足狄利赫里条件的连续周期信号主要是实信号与复指数形式的周期函数数学本质把一个周期信号分解成一系列整数倍频率的余弦和正弦信号或复指数信号的线性叠加展开形式三角形式、余弦相位形式、复指数形式三者等价核心系数直流分量 (a_0/2)、余弦系数 (a_n)、正弦系数 (b_n)、复指数系数 (c_n)频率特征只存在于基频的整数倍处形成离散频谱典型应用信号频谱分析、滤波器设计、谐波分析、电路稳态响应计算、振动故障诊断收敛条件信号绝对可积在一个周期内只有有限个极值点和有限个第一类间断点间断点现象跳变点重建值收敛为左右极限的平均值截断会产生吉布斯振荡常见工具Fourier级数系数公式、Parseval定理、奇偶性化简前置知识三角恒等式、周期函数积分、向量的正交投影概念后续延伸傅里叶变换、离散傅里叶变换、拉普拉斯变换、小波分析先明确边界这篇文章讨论的是“连续时间周期信号”的傅里叶级数。连续非周期信号对应傅里叶变换离散周期信号对应离散傅里叶级数DFS离散非周期信号对应离散傅里叶变换DFT这些概念容易混。先把连续周期这块啃透后面再学其它变换难度会低很多。2. 为什么要学习傅里叶级数我们来看一个平时不会细想的问题一个矩形脉冲序列、一段人声、一个机械振动信号它们看起来都不像正弦波。但如果把一个正弦波通过一个线性时不变系统比如RC低通滤波器、一段传输线输出仍然是一个同频率的正弦波变化的只是幅度和相位。也就是说线性系统对单频正弦波的响应极简单可以完全由“频率-幅度-相位”来描述。这个性质非常关键。如果任意一个复杂周期信号都能拆成若干个正弦波叠加那么分析它经过一个线性系统后的输出就不再需要直接解复杂的微分方程而是把每个正弦分量分别算一遍再叠加回来。这里隐藏着一个更深的观点选择正弦函数作为“基本单元”不是因为所有物理信号天然是正弦波而是因为正弦函数是线性时不变系统的特征函数。系统对一个正弦输入只改变幅度和相位不改变频率。这个“特征函数”的说法放在线性代数里就是“特征向量”概念在函数空间中的类比。除此之外学习傅里叶级数的第二个理由是工程中需要频谱。电力系统里需要分析谐波含量音频处理里需要做均衡器振动诊断里需要找到设备的特征频率。频谱图不会直接出现在示波器上它需要先对信号做分解。傅里叶级数就是理解“频谱”概念的最小模型它告诉你为什么横轴是离散频率、纵轴的高度代表什么、为什么谐波分量越小说明波形越接近正弦。所以学傅里叶级数不只是学一个公式而是在建立一套思维框架把时域波形换到频域看问题。这套框架贯穿通信原理、数字信号处理、控制理论后续所有“变换”本质上都是这个思路的推广。3. 数学准备函数空间中的投影3.1 正交基与内积回顾线性代数中向量的分解在二维平面中任意向量都可以用两个正交单位向量 (e_1, e_2) 表示坐标的计算方法是投影。设基向量满足 (e_i \cdot e_j 0, i eq j)且长度为1那么向量 (v) 在第 (j) 个方向上的坐标为 (v \cdot e_j)。现在把“向量”换成“函数”把“点积”换成积分形式的“内积”。在一个区间上定义两个函数 (f(t)) 和 (g(t)) 的内积为[ \langle f, g \rangle \int_{T_0} f(t) \cdot g(t), dt ]其中积分的区间宽度是一个周期 (T_0)或者从任意起点 (t_0) 到 (t_0 T_0)。如果这个积分为0就称两个函数在这个区间上正交。三角函数系恰好有一组漂亮的正交关系。设基频角频率为 (\omega_0 2\pi / T_0)(m)、(n) 是非负整数则在一个完整周期内[ \int_{T_0} \cos(m\omega_0 t) \cdot \sin(n\omega_0 t), dt 0 ][ \int_{T_0} \cos(m\omega_0 t) \cdot \cos(n\omega_0 t), dt \begin{cases} 0, m eq n \ T_0/2, m n 0 \ T_0, m n 0 \end{cases} ][ \int_{T_0} \sin(m\omega_0 t) \cdot \sin(n\omega_0 t), dt \begin{cases} 0, m eq n \ T_0/2, m n 0 \end{cases} ]这些式子说明在周期信号所在的函数空间里直流常数、基波余弦、二次谐波余弦、基波正弦、二次谐波正弦……全部互相正交。它们构成一组正交基。这里要注意系数取值细节(m n 0) 时(\cos(0\cdot\omega_0 t) 1)本身是常数不是零频率的余弦波它和自身的积分是 (T_0)不是 (T_0/2)。这个细节直接决定后面的直流系数为什么要除以2。3.2 用投影求展开系数假设可以把周期信号 (f(t)) 写成三角展开[ f(t) \frac{a_0}{2} \sum_{n1}^{\infty} \left[ a_n \cos(n\omega_0 t) b_n \sin(n\omega_0 t) \right] ]如果 (a_n)、(b_n) 未知怎么求利用正交性。想求 (a_m)就在等式两边同时乘以 (\cos(m\omega_0 t))然后在一个周期内积分。由于正交关系等号右边只有含有 (\cos(m\omega_0 t)) 且角频率完全相同的项保留下来其它项全部归零。对 (m 0) 时[ \int_{T_0} f(t) \cos(m\omega_0 t), dt a_m \cdot \frac{T_0}{2} ]所以[ a_m \frac{2}{T_0} \int_{T_0} f(t) \cos(m\omega_0 t), dt ]同理[ b_m \frac{2}{T_0} \int_{T_0} f(t) \sin(m\omega_0 t), dt ]直流项单独处理。设 (f(t)) 表达式中的直流项是 (a_0/2)取 (m 0) 时对应的基函数为1积分结果为 (a_0/2 \cdot T_0)因此[ a_0 \frac{2}{T_0} \int_{T_0} f(t), dt ]可以看到 (a_0) 的公式与 (a_m) 在形式上是统一的只是直流分量在展开式中写作 (a_0/2)。这就是许多教材里直流项写成 (a_0/2) 的原因为了保持系数公式一致便于记忆和编程实现。整个计算的本质可以这样理解任何一个复杂的周期信号在一个周期内和某个基波频率的余弦做积分得到的是它包含这个余弦分量的“多少”如果完全正交结果为零如果方向接近结果就大。这个过程和向量投影完全是一回事。4. 傅里叶级数的三种等价形式4.1 三角形式[ f(t) \frac{a_0}{2} \sum_{n1}^{\infty} \left[ a_n \cos(n\omega_0 t) b_n \sin(n\omega_0 t) \right] ]其中[ a_n \frac{2}{T_0} \int_{T_0} f(t) \cos(n\omega_0 t), dt ][ b_n \frac{2}{T_0} \int_{T_0} f(t) \sin(n\omega_0 t), dt ]这种展开的好处是直观每个 (n) 对应一个余弦分量和一个正弦分量。缺点是每条谱线要用两个参数描述物理含义不太直接。实际测量中我们更关心“第n次谐波的总幅度是多少、相位是多少”而不太关心它是由“余弦部分正弦部分”合成的。4.2 余弦相位形式利用辅助角公式把同频率的余弦和正弦合并为一个带相位的余弦[ a_n \cos(n\omega_0 t) b_n \sin(n\omega_0 t) A_n \cos(n\omega_0 t \varphi_n) ]其中[ A_n \sqrt{a_n^2 b_n^2} ][ \varphi_n \arctan\left( -\frac{b_n}{a_n} \right) ]工程频谱分析里最常用的幅度谱和相位谱就建立在这个形式上。幅度谱横轴是 (n\omega_0)纵轴是 (A_n)相位谱纵轴是 (\varphi_n)。直流分量单独记为 (A_0 a_0/2)。注意这里的相位符号容易弄错。不同教材定义 (\varphi_n) 的方式可能不同有的写成 (\arctan(-b_n/a_n))有的写成 (\arctan(b_n/a_n))取决于想合并成 (\cos(n\omega_0 t \varphi_n)) 还是 (\cos(n\omega_0 t - \varphi_n))。写代码时最好统一按一种约定并在注释里标明。4.3 复指数形式利用欧拉公式[ \cos\theta \frac{e^{j\theta} e^{-j\theta}}{2}, \quad \sin\theta \frac{e^{j\theta} - e^{-j\theta}}{2j} ]可以把三角形式改写为[ f(t) \sum_{n-\infty}^{\infty} c_n e^{j n \omega_0 t} ]系数为[ c_n \frac{1}{T_0} \int_{T_0} f(t) e^{-j n \omega_0 t}, dt ]这里 (n) 从负无穷取到正无穷。负频率只是数学表示不表示实际存在负频率的物理分量。正负频率对称出现在实信号下满足 (c_{-n} c_n^*)共轭对称。复指数形式在后续学习傅里叶变换时最方便因为积分核可以统一写成 (e^{-j\omega t})不需要分别处理 cosine 和 sine。三种形式之间的换算关系为[ A_0 \frac{a_0}{2} c_0 ][ A_n 2|c_n| ][ c_n \frac{a_n - j b_n}{2}, \quad c_{-n} \frac{a_n j b_n}{2} ]实际使用中三角形式适合入门理解频谱形式适合作图展示复指数形式适合数学推导和工程计算。三者不说谁更高级只是针对不同问题的表述成本不同。5. 傅里叶级数的收敛条件与吉布斯现象5.1 狄利赫里条件并不是任何周期函数都能做傅里叶展开。教材里通常给出狄利赫里充分条件函数在一个周期内绝对可积即[ \int_{T_0} |f(t)|, dt \infty ]在一个周期内函数只有有限个极大值和极小值。在一个周期内函数只有有限个第一类间断点左右极限都存在但不相等。满足这些条件的连续周期信号其傅里叶级数在连续点收敛于函数值本身在间断点收敛于间断点左右极限的平均值。这个表述很重要傅里叶级数展开的不是“波形本身”而是对“波形在连续点取值、在间断点取平均”这个修正信号的恢复。5.2 跳变点收敛为平均值如果一个信号在 (t t_0) 处发生跳变(f(t_0^-)) 和 (f(t_0^)) 不相等那么傅里叶级数在这点的收敛值是[ \frac{f(t_0^-) f(t_0^)}{2} ]所以当你写代码重建方波时会发现在跳变发生的地方重建波形会落在高低电平的中间位置。这不是bug也不是积分公式写错而是傅里叶级数收敛性的必然结果。5.3 吉布斯现象有限项求和时间断点附近会出现过冲和振铃这个现象叫吉布斯现象。所有在跳变附近重建的波形首个过冲的峰值并不随项数增加而消失而是趋近于理论跳变幅度的约9%。过冲位置会越来越靠近间断点波形两侧的振荡频率越来越高但振荡不会彻底消失。这是工程应用里一个非常实际的限制当你用有限个谐波“近似”一个方波时不管是扬声器重放、功率放大器输出还是数值模拟结果都会观察到脉冲边缘的过冲。增加谐波数量只能让过冲区域变窄不能消除过冲幅值。理解这一点可以避免在电路仿真或音频处理里把吉布斯振荡误判为系统自身的不稳定。6. 典型周期信号的傅里叶级数分析6.1 方波信号设一个周期方波周期 (T_0)幅度为1在 ([-T_0/4, T_0/4]) 上为1其余为0不同教材定义不同。这里使用最常见的奇对称方波在半个周期内为1另外半个周期内为-1。直接代入系数公式由于信号是奇函数在一个周期内奇函数乘以偶函数 (\cos(n\omega_0 t)) 后仍然为奇函数所以所有余弦系数 (a_n 0)。只需要计算正弦系数[ b_n \frac{2}{T_0} \int_{-T_0/2}^{T_0/2} f(t) \sin(n\omega_0 t), dt ]计算后会得到只有奇数项不为零[ b_n \begin{cases} \frac{4}{n\pi}, n \text{ 为奇数} \ 0, n \text{ 为偶数} \end{cases} ]所以[ f(t) \frac{4}{\pi} \left[ \sin(\omega_0 t) \frac{1}{3}\sin(3\omega_0 t) \frac{1}{5}\sin(5\omega_0 t) \cdots \right] ]从表达式可以看到三个信息方波没有偶次谐波谱线只在基频的奇数倍处出现。第n次谐波的幅度按 (1/n) 衰减。基波幅度为 (4/\pi)约等于1.273比方波的峰值还要大。这是频域综合的典型现象多个幅度不等的正弦波叠加峰值可以通过单项幅度通过相位抵消形成近似平坦的顶部和陡峭的边缘。6.2 锯齿波信号另一个常用信号是周期锯齿波在 ([0, T_0)) 内取 (f(t) 2t/T_0 - 1)同样按合适定义。它的系数计算会得到正弦系数按 (1/n) 衰减正负交替。具体表达式因相位定义有差异这里不写死但结论值得一说锯齿波在跳变处有严重的间断因此高频分量衰减得更慢和标准的三角形波相比想要重建锯齿波需要保留更多的高频谱线。观察这些典型信号可以总结出经验规律信号的跳变程度越剧烈频谱的高频分量衰减越慢截断误差越大。平滑的三角形波按 (1/n^2) 衰减连续但导数不连续的信号按 (1/n^2) 量级衰减而方波、锯齿波这类有跳变的信号通常按 (1/n) 量级衰减。这个衰减速度直接反映了波形的“光滑程度”。6.3 周期信号的时移影响如果把信号在时域整体平移一个时间 (t_0)傅里叶级数的幅度谱不变相位谱会发生变化。每个频率分量的相位都增加一个与频率成正比的偏移量[ c_n c_n e^{-j n \omega_0 t_0} ]用复数指数形式看这个结论几乎是瞬时的。工程上经常用这个性质来解释为什么不关心相位谱处理中出现的线性相位偏移——因为那往往只是时延并不是信号真正的相位畸变。这也是滤波器设计中“线性相位”为什么重要的原因。7. 用 Python 验证连续周期信号傅里叶级数7.1 验证目标用代码手动实现傅里叶系数积分验证两件事用前若干项重建方波观察波形逼近效果和吉布斯现象。画出频率谱线验证只有奇数次谐波且幅度按 (1/n) 衰减。7.2 代码实现下面的示例使用numpy和scipy.integrate.quad计算数值积分用matplotlib画图。quad用于求定积分适合演示“系数公式的直接实现”。对于更接近工程场景的做法可以用离散傅里叶变换计算频谱但这里为了验证傅里叶级数理论本身先保留数值积分方式。import numpy as np from scipy.integrate import quad import matplotlib.pyplot as plt # 定义周期为 2 的方波信号在 [-1, 1) 上 # 区间 [-1, 0) 为 -1区间 [0, 1) 为 1 T 2.0 omega0 2 * np.pi / T def f_square(t): t_mod t % T - T / 2 if t_mod 0 and t_mod T / 2: return 1.0 else: return -1.0 # 数值积分计算 a_n, b_n def fourier_coeffs(f, N): a0 (2 / T) * quad(lambda t: f(t), 0, T, limit100)[0] a [] b [] for n in range(1, N 1): an (2 / T) * quad(lambda t: f(t) * np.cos(n * omega0 * t), 0, T, limit200)[0] bn (2 / T) * quad(lambda t: f(t) * np.sin(n * omega0 * t), 0, T, limit200)[0] a.append(an) b.append(bn) return a0, np.array(a), np.array(b) # 用前 N 次谐波重建信号 def reconstruct(a0, a, b, t): value np.full_like(np.asarray(t, dtypefloat), a0 / 2) for n in range(1, len(a) 1): value a[n-1] * np.cos(n * omega0 * np.asarray(t)) \ b[n-1] * np.sin(n * omega0 * np.asarray(t)) return value N 50 a0, a, b fourier_coeffs(f_square, N) # 查看前面几项系数验证奇次正弦分量 print(a0 , a0) print(a[1:6] , a[:5]) print(b[1:6] , b[:5])方波的余弦系数理论上应为0但由于数值积分误差实际会得到非常小的数值数量级在 (10^{-10}) 左右可以视为零。正弦系数中只有奇数项有值第1项约为 (4/\pi)第3项约为 (4/(3\pi))第5项约为 (4/(5\pi))。如果这些数值和理论不一致大概率是信号的周期定义或系数公式中的 (2/T) 因子出了问题。接着画频谱和重建波形# 频谱幅度 n_values np.array(list(range(1, N 1))) amp np.sqrt(a**2 b**2) plt.figure(figsize(12, 6)) # 频谱图 plt.subplot(1, 2, 1) plt.stem(n_values, amp, basefmt ) plt.yscale(log) plt.xlabel(n) plt.ylabel(Amplitude) plt.title(Spectrum of Square Wave (log scale)) plt.grid(True, whichboth, alpha0.3) # 重建波形 plt.subplot(1, 2, 2) t_dense np.linspace(-1.5, 1.5, 4000) y_recon reconstruct(a0, a, b, t_dense) plt.plot(t_dense, y_recon, labelfN {N}, linewidth1) plt.plot(t_dense, [f_square(t) for t in t_dense], colorblack, linestyle--, labeloriginal) plt.ylim(-1.6, 1.6) plt.legend() plt.grid(True, alpha0.3) plt.title(Square Wave Reconstruction) plt.tight_layout() plt.show()7.3 观察结果运行代码后可以看到频谱图上只有奇数索引处有谱线偶数索引几乎为零对应理论推导结果。对数纵轴下谱线高度应表现出线性下降趋势因为幅度按 (1/n) 递减。重建波形在跳变点附近有明显的振荡项数 (N) 越大振荡越靠近间断点但过冲幅值不会随 (N) 增大而消失。重建波形在跳变点处的值非常接近0这正是间断点左右极限 (-1) 和 (1) 的平均值。这套代码可以直接拿去验证其它周期信号。换函数时只需要修改f_square的定义再重新调整理论预期就行。如果看的是三角波或半波整流信号注意选择对称区间时函数的周期定义要保持一致否则积分结果会差一个相位偏移。8. 频谱、功率与帕塞瓦尔定理8.1 什么是周期信号的频谱傅里叶级数展开之后每个整数倍基频处都有一个幅度 (A_n) 和相位 (\varphi_n)。这种只在离散频率上有值的谱叫离散谱或线谱。周期信号的频谱天然是离散的这是它有别于非周期信号频域特征的核心标志。频谱图应该包括幅度谱和相位谱两张图。但工程中最常见的是只画幅度谱因为幅度谱决定了各频率分量的能量大小也直接反映了滤波器、放大器会怎样处理这个信号的各个分量。相位谱在图像、通信等对波形形状敏感的场合同样关键但因为画起来不直观容易被忽略。8.2 帕塞瓦尔定理帕塞瓦尔定理把时域平均功率和频域各分量功率联系起来。对实周期信号在一个周期内[ \frac{1}{T_0} \int_{T_0} |f(t)|^2, dt \left(\frac{a_0}{2}\right)^2 \frac{1}{2}\sum_{n1}^{\infty} (a_n^2 b_n^2) \sum_{n-\infty}^{\infty} |c_n|^2 ]它的意义在于信号的总功率等于直流分量功率加上所有谐波分量功率之和不同频率分量之间不产生功率交叉项。正是因为三角函数系的正交性各频率分量的功率才能干净地在频域累加。8.3 截断误差与有效带宽实际系统中不可能处理无穷次谐波。如果只保留前 (N) 次谐波被丢弃部分的功率为[ P_{drop} \sum_{nN1}^{\infty} |c_n|^2 ]对衰减缓慢的信号要保留足够多的谐波才能达到给定误差要求。工程上经常用一个指标叫“恢复信号占总功率的百分比”利用帕塞瓦尔定理可以直接计算。这在设计带限系统、通信链路时很实用既然信道带宽有限就必须知道丢弃高频分量会造成多大波形失真。方波的 (1/n) 衰减意味着高阶谐波并不像想象中那么“不重要”粗略估计到第100次谐波时单次谐波功率已经降到基波的万分之一以下但如果叠加的谐波数量较多累积截断误差仍然不可忽略。设计系统时要综合考虑信号的频率结构和系统的带宽限制。9. 从傅里叶级数到傅里叶变换既然连续周期信号可以展开为离散频率谱线那非周期信号怎么办一种直观的思路是把非周期信号视为周期趋于无穷大的周期信号。当周期 (T_0 \to \infty) 时基频 (\omega_0 2\pi/T_0 \to 0)相邻谱线间隔变小。周期越来越大时谱线越来越密密度越来越高。当周期真正趋于无穷大离散谱就变成连续谱求和变成积分傅里叶级数就过渡到傅里叶变换。这正是傅里叶级数是理解傅里叶变换的最好入口的原因先在离散的谱线上建立概念再通过极限过程过渡到密度谱。在工程计算中实际处理的都是有限长信号。对有限长信号做周期延拓得到的是周期信号对这样的周期信号做傅里叶级数就得到离散频谱。数字信号处理中的DFT本质就是把有限长序列当作周期序列的一个周期再求其离散傅里叶级数系数。这一点想通后很多关于DFT“为什么输出是离散的”的疑问都会消失。10. 常见疑问与误区排查问题现象可能原因排查方式解决方案周期信号明明有突变为什么还能用连续的正弦波拟合正弦波可以叠加成任意形状只要无穷多项求和在连续点收敛到原值即可检查狄利赫里条件间断点收敛为左右极限平均值直流项为什么是 (a_0/2)不是 (a_0)为了保持系数公式统一常数基的内积结果是 (T_0)重新检查 (mn0) 时的正交性直流分量写作 (a_0/2)(a_0) 仍按统一公式计算余弦系数为什么计算出来接近0却不是严格0数值积分存在舍入误差与采样误差对比理论值观察数量级认为是数值计算误差不要误判为算法异常用前50项重建方波仍有振荡跳变点附近的吉布斯现象观察振荡是否随N增大而向跳变点集中增加N、改用平滑的窗函数加权或接受约9%最大过冲频谱中出现了负频率如何理解复指数形式下负频率是数学组合结果检查是否使用实信号实信号负频率成共轭对称没有独立物理意义计算系数时积分区间选择不同结果差很多相位定义或周期区间起点选择不一致对比两种区间下的波形相位需要同时调整信号的起始相位定义波形看起来很简单为什么高频分量还有跳变、尖角、不对称都会产生丰富高频观察衰减速度与信号光滑程度的关系保留的谐波数要到满足误差要求为止初学者最容易犯的错误是在做代码验证时把数值积分区间、信号周期定义、傅里叶系数公式中的归一化因子三者分开写结果互相不匹配。比如把一个周期为 (T) 的信号放在 ([0, T)) 上却在 ([-T/2, T/2]) 上做积分如果信号本身不对称就会导致系数错误。11. 工程实践启示与学习建议11.1 从理论到频谱分析在工程里真正拿到手的信号往往不是连续的解析表达式而是一串采样点。对采样数据做频谱分析时使用的手法叫做离散傅里叶变换也就是DFT。但我们依然需要理解傅里叶级数因为DFT看到的就是一个周期延拓信号的离散频谱结构。频谱图中每条谱线对应的频率间隔换算成模拟频率后就是基频的整数倍这个概念来自傅里叶级数。用有限点做FFT时频谱泄漏、栅栏效应、跳变导致的高频分量都可以从傅里叶级数与周期延拓角度理解。做机械故障诊断时轴承损坏会产生特征频率的振动增量频谱图上对应位置会出现新的谱线。这些谱线本质上是振动信号周期分量在频域的体现。没有傅里叶级数里“离散谱线”的概念很难解释为什么一个“非严格周期”的振动信号也会在某些频率点形成明显峰值。实际中设备转速波动、噪声干扰会让谱线变宽但分析思路仍是先找基频再看谐波和边带。电力系统和音频处理里谐波分析是另一个直接应用。理想50Hz工频应当是单一频率正弦波但非线性负载会让电流变成近似周期但失真的波形展开后就会包含150Hz、250Hz等高次谐波。傅里叶级数告诉你这些谐波分量的幅度和相位是如何由原始波形决定的。治理谐波的核心就是看哪次谐波超限、由谁产生然后加对应频率的滤波装置。11.2 学习建议学习傅里叶级数时建议按照下面顺序做一次完整验证手工推导一个方波的系数得到 (4/(n\pi)) 的奇数项结果。用 Python 的数值积分求同样信号的前10个系数对比理论值。分别用前5项、前20项、前100项重建波形观察逼近程度和振铃位置变化。把信号的时域整体平移再计算系数对比频谱是否变化确认只改变相位谱。这套流程做完很多看似抽象的定理会转化成可操作的经验。比如你会直观感受到为什么信号越“陡”需要的谐波越多为什么只看幅度谱会丢掉部分信息为什么间断点是傅里叶级数的薄弱环节。12. 总结与下一步连续周期信号的傅里叶级数是信号与系统这门课里真正承上启下的内容。往上它把“任何波形都能分解成正弦波”这件事变成数学工具往下它把频谱、带宽、谐波、滤波器设计这些工程概念串在一起。学完这篇之后你应该能独立完成这样几件事给定一个具体周期信号能用三角形式和复指数形式写出展开式直接看出一个波形里有没有偶次谐波根据波形是否平滑判断高频分量衰减的快慢在代码里重建波形时解释吉布斯现象而不是把它当成数值错误。下一步建议按两条线延伸一是把周期推广到无穷大学习傅里叶变换和它的基本性质二是从连续过渡到离散学习离散傅里叶变换与FFT、频谱泄漏、窗函数。两条线都建立在这篇文章的基本概念上。之前学过的正交分解、投影、谱线、截断误差这些词到后面你会不断遇到所以在第一阶段把概念吃透后面会顺畅得多。
返回列表