方波信号的傅里叶分解与合成:MATLAB实验与吉布斯现象解析

发布时间:2026/9/19 19:02:43
方波信号的傅里叶分解与合成:MATLAB实验与吉布斯现象解析 简介信号与系统课程中关于信号分解与合成实验的完整报告文档适合电子信息类本科在读学生、备考或开展信号处理实验的初学者使用。内容依托实验五任务涵盖方波与三角波信号的分解、各次谐波提取与再合成并给出示波器观测结果、傅里叶级数系数比例验证及原理总结可帮助读者快速理解有源带通滤波器选频、谐波幅度相位匹配等核心环节。压缩包为单份docx文档共1个文件大小589KB排版结构与实验流程直接对应便于查看和打印。该资源已被447人浏览学习说明其对同类实验有现实参考价值。读者拿到后可直接对照其中的实验记录、波形说明和结论要点形成自己的实验报告同时借助方波、三角波频谱差异的分析提升对信号分解与合成基本原理的掌握。1. 信号分解与合成实验一条亲手走通的时域到频域回路把方波拆开再装回去中间隔着的就是傅里叶级数。这个实验的核心动作只有两个先按频率把信号拆成不同振幅和相位的正弦分量再把有限项分量重新叠回时域波形。看起来像是在验证数学公式但它真正想让你理解的是工程里每天都在用的那件事——任何实际系统都是带限的你拿到的永远不是原信号而是它在有限带宽下的重构结果。读这一章的读者无论你是正在做实验报告、备考信号与系统还是想补傅里叶分析的直觉都值得把这条“时域→频域→时域”的回路亲手走通它比背十遍变换对都有用。2. 从傅里叶级数到吉布斯现象分解与合成的理论边界做实验之前先回答一个问题为什么一个周期矩形波可以被拆成一组正弦信号的加权和而且是唯一的一组如果拆法不唯一合成结果就谈不上“还原”。这一章把傅里叶级数的适用条件、方波的系数特征和吉布斯现象摆清楚后面写代码时才不会只看波形不问依据。2.1 周期信号为什么能拆成三角级数傅里叶级数的底气来自正交性。在区间 $(t_0, t_0T)$ 上三角函数系 ${1, \cos(n\omega_0 t), \sin(n\omega_0 t)}$$n1,2,\dots$满足两两正交任意两个不同函数的乘积在一个周期内积分为零只有自身与自身相乘时积分不为零。这意味着每个正弦分量在“信号空间”里都占据独立的坐标轴把周期信号往这些坐标轴上投影得到的就是各次谐波的幅度系数。对实周期信号 $x(t)$傅里叶级数写成$$x(t) a_0 \sum_{n1}^{\infty}\left[a_n\cos(n\omega_0 t) b_n\sin(n\omega_0 t)\right]$$其中 $\omega_0 2\pi/T$系数为$$a_n \frac{2}{T}\int_{t_0}^{t_0T} x(t)\cos(n\omega_0 t),dt, \qquad b_n \frac{2}{T}\int_{t_0}^{t_0T} x(t)\sin(n\omega_0 t),dt$$$a_0$ 对应直流分量。正交性保证系数唯一合成时分量之间不会互相污染。实验里常出现的错误是只把几个谐波幅度加起来忘了每项前面的 $\frac{4}{\pi}$ 这类归一化系数结果合成波形的幅度明显偏小根源就是没从系数公式出发而是靠猜。对于幅度为 $\pm 1$ 的周期方波套用 $b_n$ 公式可得 $b_n \frac{2}{n\pi}(1 - \cos n\pi)$。当 $n$ 为奇数时 $b_n \frac{4}{n\pi}$偶数时为 0。所以方波频谱只有奇次谐波且幅度按 $1/n$ 衰减。这个衰减速度决定了重构方波难度不小虽然系数幅度不断变小但谐波数量多跳变沿需要大量高频分量才能“立”起来。2.2 收敛条件与方波的特殊地位并非所有周期信号都能安全地做傅里叶展开。狄利克雷条件给出三条限制信号在一个周期内只有有限个极值点、有限个第一类间断点且绝对可积。周期方波恰好满足这三个条件所以它成了分解实验的首选对象。三角波、锯齿波同样满足但方波的间断点最尖锐合成时的行为也最具代表性。收敛这件事要在两种点上分开看。在信号连续点上部分和随 $N \to \infty$ 收敛于 $x(t)$在间断点处级数收敛到跳变的中点也就是 $\frac{x(t_0^) x(t_0^-)}{2}$。用 MATLAB 画方波时跳变处经常出现一个竖线或过冲代码里如果不对 $t0$ 这类点做特殊处理画出来的图在跳变点附近形态会和手算结果对不上。2.3 吉布斯现象过冲不会随着 N 增大而消失有限项合成时跳变沿附近会出现固定幅度的振铃这就是吉布斯现象。关键结论是无论把截断阶数 $N$ 提高到多大过冲幅度都不会趋于零。方波跳变幅度为 2从 $-1$ 到 $1$过冲量约为跳变高度的 $8.95%$也就是峰峰值约 $0.179$。随着 $N$ 增大过冲区域不断向跳变点压缩波形看起来越来越“陡”但过冲的绝对高度基本不变。下表总结了几种常见周期信号的系数衰减与收敛表现写报告时可以用来对比论证。信号类型傅里叶系数衰减间断点合成时最明显的现象方波$1/n$有吉布斯过冲约 8.95%三角波$1/n^2$无收敛快少量阶次即贴合锯齿波$1/n$有跳变处同样出现过冲半波整流$1/n^2$有导数不连续直流分量必须保留系数的衰减速度决定了“截断误差”的主导形式。$1/n$ 的衰减意味着每提高一倍的谐波次数只减少一半的残余能量所以方波需要较多谐波才能让波形边缘看起来像样$1/n^2$ 的衰减则快得多三角波用前 510 次谐波就基本看不出差别了。3. MATLAB 最小实现方波逐次谐波分解与合成理论归理论落到实验报告上最核心的产出就是一张“不同谐波阶次叠加逼近方波”的图。下面这套代码在 MATLAB 里可以直接跑通生成合成对比图和能量收敛曲线覆盖实验五最常见的两个要求。建议不要直接复制了事逐行看清楚再改参数。3.1 完整代码一个文件跑出分解合成主图% 实验五周期方波的傅里叶分解与合成 % 参数定义 T 2*pi; % 方波周期基波角频率 w0 1 w0 2*pi/T; % 基频 fs 5000; % 每周期采样点数决定波形平滑度 t linspace(-2*T, 2*T, 4*fs1); % 时间轴显示 4 个周期 % 理想方波幅度 -1 square_wave sign(sin(w0*t)); % 需要观察的截断谐波阶次从 1 到 21 N_list [1 3 5 9 21]; legend_label {理想方波}; figure(Position, [100 100 900 500]); hold on; plot(t, square_wave, k, LineWidth, 1.5); % 黑色理想方波 for N N_list f_series zeros(size(t)); % 每次从零开始重新叠加 for n 1:2:N % 只取奇次谐波 f_series f_series (4/pi) * (1/n) * sin(n*w0*t); end plot(t, f_series, LineWidth, 1); legend_label{end1} sprintf(N%d, N); end legend(legend_label, FontSize, 9, Location, northeast); xlabel(时间 t); ylabel(幅度); title(方波信号的傅里叶合成奇次谐波逐次逼近); grid on; axis([-2*T 2*T -1.6 1.6]);这段代码把合成过程画成一组曲线N1只有基波是一条正弦N3开始出现方波轮廓到N21时波形边缘已经比较陡但跳变处仍能看出振铃。1:2:N这个步长写法只遍历奇数下标因为偶数次谐波的傅里叶系数本来为 0加进去也只会增加计算量。4/pi*(1/n)是对应 $n$ 次奇次谐波的幅度系数来自 $b_n 4/(n\pi)$。zeros(size(t))保证每组 $N$ 都从空信号开始累加避免上一次循环的残留污染结果。3.2 代码逻辑说明为什么循环步长是 2方波分解实验最容易写错的地方是把循环写成for n 1:N把偶次项也算进去。偶次谐波系数为 0结果虽然不变但计算时间翻倍且代码表达不准确。更隐蔽的错误是幅度系数漏写 $\pi$比如直接写(1/n)*sin(...)合成波形幅度会明显小于 1因为傅里叶系数的归一化被丢了。这里还涉及一个相位问题。上面代码用的是 $\sin(n\omega_0 t)$对应的是奇函数方波起点为 0形状关于原点对称。如果把 $\sin$ 全部换成 $\cos$合成出来的波形相位偏了 90 度结果完全是另一条曲线不再是方波。实验报告里一般要求画出“分解出的基波、三次谐波、五次谐波单独波形”再画“叠加后的合成波形”。单次谐波的画法是在循环体内单独成图或者把每次的f_series存成矩阵再拆分。3.3 用能量收敛曲线验证分解的完整性波形趋近只说明视觉上的相似报告里还需要一个量化指标。帕塞瓦尔定理给出周期信号的平均功率等于各谐波分量平均功率之和。对幅度为 $\pm 1$ 的方波总平均功率为 1前 $N$ 次谐波的累计功率占比可以直接计算。N_max 100; n_odd 1:2:N_max; a_n 4./(pi*n_odd); % 各奇次谐波幅度 pow_odd 0.5 * a_n.^2; % 单次谐波的平均功率 pow_total 1; % 幅度 -1 方波的平均功率 cum_pct cumsum(pow_odd) / pow_total * 100; figure; plot(n_odd, cum_pct, o-); xlabel(谐波阶次 n); ylabel(累计能量占比 (%)); title(有限项谐波合成的能量收敛); grid on;cumsum是 MATLAB 的累计和函数逐项把前 $N$ 项功率加起来。0.5*a_n.^2来自正弦信号平均功率公式幅度为 $A$ 的正弦平均功率是 $A^2/2$。运行后可以看到$N1$ 时能量只占约 81%$N9$ 时约 96%到 $N21$ 时约 98%。这个收敛速度说明少量谐波就能捕获大部分能量但剩下那 2% 的能量正好对应跳变沿的“陡峭程度”所以视觉上依然能看出振铃。4. 参数设置与易错点采样率、截断阶数、相位对齐MATLAB 仿真看似没有硬件约束但时间轴点数、截断阶数和相位选择会直接改变实验结果。实验报告里如果波形“不对劲”九成出在这三类参数上。这一章把每个参数的影响和推荐值列清楚照着排查能少走弯路。4.1 时间轴与采样点数先保证波形不发“毛边”linspace(-2*T, 2*T, 4*fs1)里fs是每周期采样点数整段信号共 4 个周期点数设为4*fs1是为了让首尾对应同一个相位。若fs太小比如 50合成后的高频谐波在图上会呈明显折线看起来像噪声叠加容易误判为算法错误。仿真时建议每周期至少 2000 点上面代码用 5000 点曲线足够平滑。还有个细节容易被忽略sign(sin(w0*t))在 $t0$、$t\pm\pi$ 等跳变点处sin的数值可能是一个很小的非零值而不是严格 0导致理想方波在跳变处出现一个窄脉冲。严格的方波在跳变点应该定义为中点值 0但绘图时单点差异几乎不可见。如果想严谨可以在生成square_wave后加一行square_wave(abs(square_wave)1) 0把跳变处强制归零。4.2 截断阶数 N 的选择不是越大越好N 太小波形圆角明显N 太大叠加循环变慢且吉布斯过冲依然存在。实验里常用取法是 $N1,3,5,9,21$用五条曲线展示渐进过程。工程上选 $N20\sim50$ 里任意一个奇数即可能量占比都在 98% 以上。下面这张表可以直接用于报告中的参数说明。谐波阶次 N累计能量占比合成波形特征181.1%正弦幅度约 1.27明显不是方波390.1%顶部变平跳变处出现第一个过冲593.3%上升沿变陡振铃范围收紧996.3%视觉上已接近方波顶部微有起伏2198.2%近似方波跳变沿仍有约 8.95% 过冲需要特别说明的是上表的能量占比是在幅度为 $\pm 1$ 的方波、且使用理论系数时得到的。如果代码里系数算错能量占比曲线也会偏离这些值。报告里写结论时应当以自己运行cum_pct得到的实际数值为准表格只能作为量级参考。4.3 相位对齐合成失真的隐藏原因傅里叶级数每一项都带有确定的初始相位。方波分解中所有奇次谐波相位一致都是 0合成时才能对齐跳变位置。如果误用cos函数代替sin每个谐波都被平移 90 度合成结果会变成完全不同的波形。这个错误在图形上非常明显原本关于原点对称的方波会变成类似偶对称的形状且跳变位置错位。排查方法很简单——单独画一次 $N1$ 的基波检查它是不是过原点上升的正弦如果是余弦形态说明相位基准已经错了。4.4 仿真与硬件实验箱的差异部分学校要求用 DSP 或实验箱做这组实验合成的效果和 MATLAB 仿真会有差异。硬件系统的采样率、DAC 位数、低通滤波器相频特性都会影响各次谐波的幅度和相位。特别是滤波器即使幅度响应平坦相频特性也会让不同频率的谐波产生不同延迟结果波形跳变沿两侧出现不对称振铃。遇到这种情况不要误以为是理论错了要检查信号链中每一级的相位延迟。报告里如果能写出“仿真理想条件下吉布斯过冲为 8.95%实物链路中因模拟滤波器相频失真过冲左右不对称”比单纯抄结论更有说服力。5. 报告收尾帕塞瓦尔验证、图表规范与结论写法实验报告的分数差距往往不在实验过程而在最后那几页的验证与结论。这一章给出可以直接用的验证代码和报告写作套路。5.1 用帕塞瓦尔定理量化合成误差写完合成主图和能量收敛曲线后再加一个误差验证计算前 $N$ 次谐波重构信号与理想方波的平均绝对误差MAE。N_test [1 3 5 9 21 51 101]; for N N_test f zeros(size(t)); for n 1:2:N f f (4/pi) * (1/n) * sin(n*w0*t); end mae mean(abs(f - square_wave)); fprintf(N%3d, MAE%.4f\n, N, mae); endMAE 会随 N 增大而下降但下降速度越来越慢。这组数字放进报告表格里和能量占比配合使用能量占比说明“高频分量虽小但不可忽略”MAE 说明“时域误差的收敛趋势”。两列数据都来源于同一个合成过程逻辑上是自洽的。5.2 图表规范与结论里必须有数据信号与系统实验报告最忌贴一张没坐标标签的图。我的建议是每个图至少做到四点横纵坐标标明物理量和单位时间 t、幅度多条曲线必须有图例不同 N 用不同颜色或线型区分吉布斯过冲处加一个局部放大子图直观显示过冲大小。结论部分不要只写“验证了傅里叶级数”。更合理的是写当 N21 时能量占比约 98%时域波形与理想方波的 MAE 约为某个值跳变沿处过冲约为 0.179约为跳变高度的 8.95%符合理论值继续增大 N 过冲不消失仅向跳变点压缩。这样写每个数字都指向你的实验数据既说明你理解了原理也说明你关注了实验细节这份报告的信息量就出来了。本文还有配套的精品资源点击获取

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询