尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

信号与系统复习:傅里叶级数到采样定理的专题突破与Python验证

信号与系统复习:傅里叶级数到采样定理的专题突破与Python验证 不少同学复习信号与系统时都经历过这样一种“无效刷题”题目刷了不少今天做错的题明天换个数、换个波形又错了看到答案觉得自己会了合上书却写不出第一步。问题不在题量而在你一直用“做题数量”掩盖“框架缺失”。尤其是傅里叶这一大块如果只记公式、不建立频谱直觉做十道题和做一道题几乎没有区别。第二周复习的核心任务是把傅里叶级数、傅里叶变换、采样定理、相关函数这四条主线彻底打通。每天两题不是让你少做而是让你把每道题都当作一次“框架检查”做完之后能不能讲清楚这题考的是哪个知识点、用哪个性质、为什么不用另一个性质本文会给出第二周的专题地图、每日两题设计思路、核心知识拆解以及用 Python 做数值验证的完整代码让你把抽象公式变成看得见的频谱图。1. 第二周复习定位从“看题眼熟”到“会画频谱”第一周的复习通常集中在信号基本运算、冲激函数与阶跃函数、系统性质等基础概念上。这些内容的特点是“零散但好理解”计算量不大背一背性质就能应付很多选择题。但进入第二周你会明显感觉到知识密度上来了因为傅里叶分析把时域、频域、周期、非周期、连续、离散全部串在了一起题型也从“判断题”变成了“计算题画图题综合应用题”难度突然跃升。无效刷题的人在第二周最容易出现三种状态拿到题目先翻公式抄完公式就往里代完全不看题目给的是周期信号还是非周期信号画频谱图时横坐标是频率还是角频率、纵坐标是幅度还是功率谱都写不清楚做完题只对答案错了就改个数字从不复盘“我到底卡在哪一步”。如果你也中招那第二周就别追求刷满多少题了。更合理的做法是每天只解决一个必考专题用两道题分别完成“概念自检”和“综合应用”。这两道题不在于多而在于它们能否逼你完成一次完整的“时域到频域”切换。第二周结束的时候你应当具备一个核心能力看到一个时间波形能在脑中大致画出它的频谱形状看到一个频谱表达式能反推出时域波形的大体特征。2. 第二周专题地图与每日两题设计先看第二周整体安排。如果第一周是 Day 1 到 Day 7那么第二周就是 Day 8 到 Day 14。每一天对应一个必考专题每天两题一题做基础概念检查一题做综合应用或真题变式训练。天数专题内容题1概念建立题题2综合应用/真题变式题可检验的能力Day 8周期信号傅里叶级数给定周期矩形脉冲写三角形式和指数形式展开式并画频谱已知频谱线的位置和幅度反推时域信号的周期与波形级数系数与频谱图互相翻译Day 9傅里叶级数性质与 Parseval 定理判断奇偶函数的级数展开特点写出直流分量计算周期信号的平均功率并说明需要多少次谐波才能近似善用对称性和能量关系Day 10傅里叶变换定义与常见变换对从定义求门函数频谱画出 sa 函数波形给定分段信号求傅里叶变换并判断是否存在变换定义与收敛条件Day 11傅里叶变换性质使用时移、频移、尺度变换求组合信号的频谱求调制信号 x(t)cos(ω0t) 的频谱并画图性质组合的灵活使用Day 12采样定理给定信号最高频率和采样频率判断是否混叠画抽样谱用内插公式恢复信号或求最大采样间隔采样过程与频谱搬移Day 13相关函数与能量谱/功率谱求自相关函数 Rxx(τ)画能量谱已知相关函数/R(0)求信号能量或平均功率时域统计量与频域谱密度转换Day 14第二周综合复盘闭卷完成傅里叶专题小测整理错题画全周知识框架图全周掌握度每日两题的具体操作建议按下面的节奏来题1控制在 5 到 10 分钟不翻书、不查公式。如果画不出频谱或写不出定义说明这部分概念还没建立标记为“漏洞点”。题2控制在 20 到 25 分钟可以查公式但必须完整写出过程不能只写答案。这一步训练的是“从题干条件到方法选择”的反射能力。无论对错做完后都要做三句话复盘我卡在哪一步缺哪个公式或图形直觉下次看到什么关键词应该激活哪个知识点复盘比做题重要。你每天真正要留下的不是两道题的答案而是那个“卡住你的地方”。3. Day 8-9傅里叶级数——从公式到频谱图傅里叶级数看起来是“背公式”实际考的是“系数计算”和“频谱图”之间的翻译能力。很多同学把三角形式的 an、bn 背得很熟但一到指数形式就乱了原因是没有理解两种形式只是同一个信号的两种表示频谱图的本质是“用谱线告诉你有哪些频率分量、每个分量有多大”。周期信号 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_02\pi/T直流分量 a_0 是周期内的平均值。指数形式则更简洁$$x(t)\sum_{n-\infty}^{\infty}F_n e^{jn\omega_0 t}$$$$F_n\frac{1}{T}\int_{T}x(t)e^{-jn\omega_0 t}dt$$注意 F_n 一般是复数幅度谱是 |F_n|相位谱是 F_n 的相角。三角形式和指数形式之间有关系F_n(a_n-jb_n)/2F_{-n}(a_njb_n)/2所以看到指数形式频谱图中负频率谱线时不要惊讶负频率是数学表示不是物理上真的存在“负频率信号”。最典型的例题是周期矩形脉冲宽度为 τ、幅度为 A、周期为 T。它的指数形式系数为$$F_n\frac{A\tau}{T}\cdot \frac{\sin(n\omega_0\tau/2)}{n\omega_0\tau/2}\frac{A\tau}{T}\text{Sa}\left(\frac{n\omega_0\tau}{2}\right)$$这个结果说明周期矩形脉冲的频谱是离散谱谱线包络是 sa 函数形状。画频谱图时要注意三个地方第一直流分量是 Aτ/T第二第一个过零点在 \omega2\pi/\tau 处也就是第 T/τ 根谱线附近没有值第三谱线的间隔是 \omega_0包络过零点由脉冲宽度 τ 决定而不是周期 T 决定。这个区分考研经常会考题目会故意把 τ 和 T 写在一起问“谱线变密还是变疏”本质上考的就是你对带宽和谱线间隔两个概念的理解。Day 9 的重点则是傅里叶级数的性质。偶函数只有直流项和余弦项奇函数只有正弦项奇谐函数只含奇次谐波。这些结论可以大大减少计算量。另外周期信号的平均功率可以用 Parseval 定理计算$$P\frac{1}{T}\int_{T}|x(t)|^2dta_0^2\frac{1}{2}\sum_{n1}^{\infty}(a_n^2b_n^2)\sum_{n-\infty}^{\infty}|F_n|^2$$这里真正容易踩的坑是三角形式中谐波幅度是 a_n、b_n但功率用的却是 a_n^2/2 和 b_n^2/2指数形式中 F_n 直接取模平方再求和。如果两个都算出来的结果不一致说明前面系数计算出错。还有一个常被忽略但很好用的概念吉布斯现象。用有限次谐波逼近方波/矩形脉冲时跳变点附近会出现过冲过冲幅度约为跳变值的 8.95%并且不会因为谐波次数增加而消失只是越来越靠近跳变点。如果考题给了一张“高频纹波过冲”的图问这是什么现象答案就是吉布斯现象而不是滤波器失真的问题。4. Day 10-11傅里叶变换与性质——会算不如会“看图”傅里叶级数处理的是周期信号傅里叶变换则将分析对象推广到非周期信号。定义式为$$X(\omega)\int_{-\infty}^{\infty}x(t)e^{-j\omega t}dt$$反变换则把频谱还原为时域波形。第二周复习到这里如果你的目标只是“会背公式”那还远远不够。更关键的是要把常用变换对记成“图像”门函数对应 sa 函数冲激信号对应常数频谱常数对应冲激频谱符号函数对应 1/jω阶跃函数对应 1/jωπδ(ω)。以门函数为例。门函数 g_τ(t) 在 |t|≤τ/2 时等于 1其他时刻为 0它的傅里叶变换是$$X(\omega)\tau\text{Sa}\left(\frac{\omega\tau}{2}\right)$$幅度谱是一个主瓣加多个旁瓣主瓣宽度和 τ 成反比。信号在时域越窄在频域就越宽时域越宽频域越窄。这个“宽度反比”关系是傅里叶分析最核心的直觉也是后面采样定理的基础。傅里叶变换性质中最容易被混淆的是时移和频移。时移性质$$x(t-t_0)\leftrightarrow X(\omega)e^{-j\omega t_0}$$它说明时间移位只改变相位谱不改变幅度谱。而频移性质$$x(t)e^{j\omega_0 t}\leftrightarrow X(\omega-\omega_0)$$它说明时域乘上复指数等于频谱搬移。实际做题时最典型的是调制信号$$x(t)\cos(\omega_0 t)\leftrightarrow \frac{1}{2}[X(\omega\omega_0)X(\omega-\omega_0)]$$这个式子几乎每个学校都考因为它直接联系到通信原理里的调幅。题目通常会给你一个低频信号 x(t)让你画出频谱搬移后的图。此时你只需要三笔先画 X(ω)再画搬移到 ±ω0 处的两个半幅度谱然后看有没有重叠。Day 11 还建议重点训练“综合性质”的组合使用。比如 x(at-b) 的频谱要先尺度变换再时移顺序不能反最后的结果是$$x(at-b)\leftrightarrow \frac{1}{|a|}X\left(\frac{\omega}{a}\right)e^{-j\omega b/a}$$做题时如果不想记可以先定义一个中间变量 y(t)x(t-b)再对 y(at) 做尺度变换这样更不容易错。给这一阶段一个做题反射链看到乘法想到卷积看到卷积想到乘法看到 e^{jω0t} 想到频移看到 t^n x(t) 想到频域微分看到 ∫ x(τ)dτ 想到频域除以 jω。把条件反射练出来选择题基本不用笔算大题也能快速判断方法。5. Day 12-13采样定理与相关函数——容易丢分的两块“边角大题”很多同学复习时喜欢主攻傅里叶变换却忽略了采样定理和相关函数。实际上这两块内容既是期末必考也是很多学校考研真题喜欢出“灵活小题”的位置。采样定理的物理含义并不复杂一个最高频率为 \omega_m 的带限信号只要采样频率 \omega_s≥2\omega_m就可以从采样信号中无失真恢复原信号。理想采样后的频谱是原频谱以 \omega_s 为周期进行周期延拓$$X_s(\omega)\frac{1}{T_s}\sum_{n-\infty}^{\infty}X(\omega-n\omega_s)$$做题时建议按三步走。第一步画出原信号频谱 X(ω)标出最高频率 \omega_m第二步画出采样后频谱 X_s(ω)看到 \omega_s 处有一个重复的频谱副本第三步判断相邻副本是否重叠不重叠就可以用理想低通滤波器取出中间一段恢复原信号。需要特别注意单位问题。如果题目说“最高频率 f_m5kHz”那么采样频率应该满足 f_s≥2f_m10kHz如果题目说“最高角频率 \omega_m10^4 rad/s”那么采样角频率应满足 \omega_s≥2\omega_m转换成频率后 f_s≥ω_m/π。很多同学把 \omega_m 和 f_m 混用导致采样频率差 2π 倍这是采样定理题目最冤枉的丢分点。信号恢复的公式也就是内插公式也是常考点$$x(t)\sum_{n-\infty}^{\infty}x(nT_s)\text{Sa}\left(\frac{\pi(t-nT_s)}{T_s}\right)$$看起来复杂但做题时主要是判断每个采样点上都有一个 sa 函数幅度是采样值所有 sa 函数叠加就恢复了原信号。画图题里你只需在采样点处标出信号值然后画一两个相邻采样点的 sa 波形示意即可。Day 13 的相关函数和谱密度本质上是把“能量/功率”这个统计量放到频域里看。非周期有限能量信号的能量谱密度$$G(\omega)|X(\omega)|^2$$自相关函数和能量谱密度是一对傅里叶变换对$$R_{xx}(\tau)\leftrightarrow G(\omega)$$所以求能量可以有两种方法时域积分 \int |x(t)|^2dt或者频域积分 \frac{1}{2\pi}\int |X(\omega)|^2d\omega。周期信号则用功率谱密度谱线只在离散频率点上有值。做题时遇到周期信号就写功率谱遇到有限能量非周期信号就写能量谱先把分类做对公式才不会用错。相关函数和卷积的区别也要看清楚卷积是 x(t)*h(t)自相关是 x(t) 与 x(tτ) 的乘积积分两者关系是 R_{xy}(τ)x(-τ)*y(τ)这一点是常见的辨析考点。6. Python 辅助验证把抽象公式变成可见图形复习信号与系统时最痛苦的往往不是不会算而是算完了不知道对不对。这里分享三个用 Python 做数值验证的示例代码均基于 NumPy 和 Matplotlib你可以直接复制到自己的 Python 环境中运行也可以在 Jupyter Notebook 里边运行边看效果。6.1 用傅里叶级数逼近方波观察吉布斯现象import numpy as np import matplotlib.pyplot as plt A 1.0 T 2 * np.pi # 设基波周期为 2π w0 2 * np.pi / T # 基波角频率这里等于 1 rad/s N 21 # 叠加到 21 次谐波 t np.linspace(-2 * np.pi, 2 * np.pi, 2000) # 标准方波0~π 为 A-π~0 为 -A奇函数所以级数只有正弦奇次谐波 x_fs np.zeros_like(t) for n in range(1, N 1, 2): x_fs (4 * A / (np.pi * n)) * np.sin(n * w0 * t) plt.figure(figsize(10, 4)) plt.plot(t, x_fs, labelfN {N}) plt.plot(t, np.sign(np.sin(t)) * A, --, label理想方波, alpha0.6) plt.xlabel(t (s)) plt.ylabel(x(t)) plt.title(方波的傅里叶级数逼近与吉布斯现象) plt.legend() plt.grid(True) plt.show()运行这段代码后你会看到黑色虚线是理想方波彩色曲线是 21 次谐波叠加后的结果。N 越大曲线越逼近方波但在跳变点附近始终存在一个过冲这个过冲幅度不会因为 N 增大而消失这就是吉布斯现象。复习时你可以手动计算 N1、N5、N50 的级数表达式再和程序输出对比检查自己算的系数是否正确。6.2 用数值积分验证门函数的频谱是 sa 函数import numpy as np import matplotlib.pyplot as plt def rect(t, tau2.0): # 门函数|t| tau/2 时为 1 return np.where(np.abs(t) tau / 2, 1.0, 0.0) t np.linspace(-8, 8, 20000) # 足够密的时域采样 omega np.linspace(-20, 20, 500) # 要计算的频率范围 X [] for w in omega: integrand rect(t) * np.exp(-1j * w * t) X.append(np.trapz(integrand, t)) # 数值积分 X np.array(X) plt.figure(figsize(10, 4)) plt.plot(omega, np.abs(X)) plt.xlabel(ω (rad/s)) plt.ylabel(|X(ω)|) plt.title(门函数频谱幅度理论值应为 |τ·Sa(ωτ/2)|) plt.grid(True) plt.show()代码里使用了数值积分近似计算傅里叶变换积分。门函数 τ2 时理论频谱是 2Sa(ω)所以幅度谱主瓣峰值应该在 2 附近第一旁瓣峰值比主瓣低不少。如果你运行后看不到明显的旁瓣可能是 t 的采样区间不够大或点数不够密试着把区间调大到 [-20,20]、点数增加到 50000。这个例子可以帮你验证手算的傅里叶变换结果特别是算完 sa 函数后画图确认一下过零点位置。6.3 采样定理验证用 sinc 内插恢复余弦信号import numpy as np import matplotlib.pyplot as plt fm 5 # 信号最高频率 5 Hz fs 20 # 采样频率 20 Hz满足 fs 2*fm Ts 1 / fs t np.linspace(0, 1, 1000) x np.cos(2 * np.pi * fm * t) # 模拟原始连续信号 n np.arange(0, 1, Ts) xn np.cos(2 * np.pi * fm * n) # 采样序列 # 用 sinc 内插恢复对应内插公式 x(t)Σx(nTs)·Sa(π(t-nTs)/Ts) t_interp np.linspace(0, 1, 1000) xr np.zeros_like(t_interp) for k, tk in enumerate(n): xr xn[k] * np.sinc((t_interp - tk) / Ts) plt.figure(figsize(10, 4)) plt.plot(t_interp, x, label原始信号, alpha0.7) plt.plot(t_interp, xr, --, labelsinc 内插恢复, alpha0.9) plt.stem(n, xn, linefmtr-, markerfmtro, basefmtr-, label采样点) plt.xlabel(t (s)) plt.ylabel(x(t)) plt.title(采样定理验证20 Hz 采样 5 Hz 余弦信号) plt.legend() plt.grid(True) plt.show()采样点用红色圆点标出黑色实线是原始信号蓝色虚线是 sinc 内插恢复结果。只要 fs 大于 2fm中间时段恢复曲线和原始信号基本重合如果采样频率低于 10Hz恢复出来就会是另一个频率的信号说明发生了混叠。这个程序特别适合用来验证采样定理计算题里的“最大采样间隔”和“最小采样频率”。需要提醒的是如果你使用的是较高版本的 NumPynp.trapz已被标记为旧接口可以用np.trapezoid替换计算结果是一样的。还有Python 验证适合做量化检查不代表可以替代手算考研答卷时该写的积分、频谱图、推导过程仍然要一步不落。7. 常见问题与排查思路傅里叶这块内容多且易混复习过程中出现问题很正常。关键是出现问题后能不能快速定位否则你会在同一个坑里反复掉下去。下面整理了几类高频问题可以对照自己的复习情况排查。问题现象可能原因排查方式解决方案级数系数算出来频谱图却画不对三角形式 an/bn 和指数形式 Fn 的换算关系混乱把 an、bn 代回公式再算 Fn(an-jbn)/2统一用指数形式重新计算一遍最后画时移性质用错频谱相位对不上把“信号左移”和“t 变成 t-t0”的方向搞反先画 x(t) 和 x(t-t0)看哪个在时间轴上右移用结论“时移只会给相位加 -ωt0”来检查采样定理判断题总是错混淆了频率 f_m 和角频率 ω_m看题干单位Hz 对应 fs≥2fmrad/s 对应 ωs≥2ωm做题第一步先把所有单位统一卷积定理会代公式但不会画卷积结果只记住结论没有建立 X(ω) 和 H(ω) 相乘的图像先分别画 X(ω)、H(ω)再画乘积复杂的卷积题先画频谱再反变换分不清能量谱和功率谱没判断信号是周期信号还是有限能量非周期信号周期信号能量无穷用功率谱非周期衰变信号用能量谱看题目给的是周期表达式还是有限时长信号数值程序显示过冲以为是程序写错对吉布斯现象理解不够知道傅里叶级数截断必然产生过冲不是代码 bug是数学现象考试答题时写结论即可用 sinc 内插恢复两端误差很大采样点数太少或时间窗有限增加采样序列长度观察中间段效果验证时重点看中间段两端有边界效应正常除了这些你还需要养成一个习惯凡是在题目里遇到“频谱”“带宽”“采样”“谱密度”这些词第一时间默问自己这道题的横坐标是角频率还是频率纵坐标是幅度还是功率。单位搞错了后面全白算。8. 最佳实践把“每日两题”变成能力闭环每日两题听起来很轻松但如果执行不到位很容易又退化回“随便做两道题对对答案”的老路。想要把两周时间真正用出效果建议给每天的学习加一个固定 SOP。第一步前 5 分钟闭卷做概念题。不翻书、不查公式、不看笔记拿出一张白纸画出频谱或写出定义式。如果画不出来说明这个知识点还没形成长期记忆等复习完当天专题后再重新闭卷画一遍。第二步用 20 分钟做综合题。允许查公式但必须把推导过程写完整。这 20 分钟里你要刻意训练“方法选择”看到时域相乘马上想到频域卷积看到频谱搬移马上想到调制看到低通滤波马上想到采样恢复。题目本身不重要重要的是你能不能回答“为什么用这个方法”。第三步用 10 分钟检查。检查频谱图的横纵坐标标注、单位、峰值位置、过零点检查系数是否有漏项检查直流分量是否为零。这一步看起来慢实际是提分最快的环节因为考试阅卷时过程分和图像分往往比最后答案分更稳定。第四步用 15 分钟复盘错题。不要写“我粗心了”这种无效记录而是写清楚这道题考的是哪个专题我卡在哪个公式或哪一步下次遇到什么关键词我要调用哪个知识每个错题解决后再想一想如果出题人把 x(t) 换成 x(t-t0)或者把采样频率减半这道题会怎么变除此之外建议你为每个专题做一张 A4 纸的“专题卡”。卡片内容不贪多只需要四块核心定义与公式、典型频谱图、常见题型、易错点。以“傅里叶变换性质”为例卡片正面写时移、频移、尺度、卷积、对偶这五个性质的公式背面画 x(t) 和 x(at-b) 的频谱变换示意。每天睡前花 10 分钟翻一遍当天的卡片比睡前刷手机有效得多。特别提醒一下和第二周的专题相关的内容不要和“刷真题套卷”混在一起。第二周还没有到做整套真题的时候因为你的知识体系还没有完整覆盖拉普拉斯变换、Z 变换、系统函数这些内容。硬做整套卷只会打击自信心。正确节奏是前四周做专题题后两周再做整套卷。专题题是挖一口井套卷是测水面积顺序不能反。9. 总结第二周结束后你该达到的状态第二周的复习不是把傅里叶级数和傅里叶变换的公式背熟就结束了。你需要确认自己达到这样几个状态第一拿到一个周期矩形脉冲能直接写出傅里叶级数系数并画出离散频谱第二拿到 x(t)cos(ω0t) 这样的表达式能立刻反应出频谱搬移第三给定信号最高频率和采样频率能在三秒钟内判断是否混叠并画出示意图第四看到“自相关函数”“能量谱”“功率谱”这些词能准确说出它们之间的关系和适用条件。如果这些状态还没有达到不要着急加题量回头再看一遍第二周的专题地图找出你在哪一个专题上卡住了。卡住的地方通常不是“公式忘了”而是“图像没形成”。傅里叶分析首先是一种图像思维频谱搬移是在画图采样恢复是在画图卷积定理也是在画图。把图像建立起来公式只是给图像配上文字说明。第三周开始你会进入拉普拉斯变换、Z 变换和系统函数的世界。从体系上看拉普拉斯变换是傅里叶变换的推广Z 变换是离散信号的对应工具傅里叶部分学扎实了后续很多内容只是把“频谱图”换成“零极点图”。所以第二周这两道题的量看起来少实际上是给后面所有章节省时间。每天花 50 分钟把一道概念题和一道综合题真的吃透30 天下来你累积的不只是会做的题而是一张能应对变式的信号与系统知识网。
返回列表