时间:2026-08-13 来源:FPGA_UCY 关于我们 0
这是「FPGA教学落地」系列的第5篇。前4篇讲了数字逻辑、计算机组成原理、嵌入式系统、数字信号处理,这一篇聊信号与系统——EE专业公认的「天书」课程,如何用FPGA让它落地。
为什么信号与系统越学越「虚」?
很多高校老师看到的画面:学生在卷积积分的大题上写得满满当当,公式一字不差,换元、积分、分段函数,步步到位。翻到后面一道应用题:「已知一个系统的冲激响应h(t),输入信号x(t)如图所示,画出系统输出y(t)的波形。」大部分学生空着,或者画了一个完全不沾边的波形。
很多老师应该也遇到有大二学生跑来问:「老师,这课学的卷积、傅里叶变换,到底有什么用?」他们能背公式,能算题,但不知道这些数学工具描述的是什么样的物理过程。
信号与系统被EE专业学生公认为「天书」——公式多、推导难、学了不知道能干嘛。传统教学沿着「 理论推导 → Matlab仿真 → 考试 」三阶段走,学生在第一阶段被公式淹没,第二阶段看到Matlab画出的波形觉得是「魔法」,第三阶段考完就忘。整个课程学完,学生脑子里留下的是一堆公式,而不是一个「系统」的概念。
这门课不是教数学,而是教「系统思维」 。FPGA的价值,不是帮学生算卷积,而是让他们「看到」卷积在硬件里是怎么发生的。
核心痛点:不是公式太难,是学生看不到「系统」
痛点一: 卷积是信号与系统的核心概念,但也是学生理解的最大障碍。不是公式记不住——卷积积分的公式就写在课本第3章,学生能背能算。真正的问题是: 卷积在时域里到底描述了什么物理过程? 为什么输入信号和系统的冲激响应做卷积,就得到了输出?
在课堂上用幻灯片画过无数次「滑动、相乘、积分」的示意图,但学生眼里看到的还是一个静态的公式,而不是一个动态的过程。
痛点二: 连续时间和离散时间的衔接是另一个断层。传统教材先讲连续时间信号与系统(卷积积分、傅里叶变换、拉普拉斯变换),再讲离散时间(卷积和、DTFT、Z变换)。学生刚在连续域里建立了直觉,一到离散域又觉得是全新的知识。
更关键的是,连续到离散的桥梁—— 采样定理 ——往往被放在教材最后,学生已经疲惫,而且缺乏直观的实验手段:老师说「采样频率要大于2倍信号最高频率」,学生点头,但不知道采样不足时「混叠」长什么样。
痛点三: 仿真无直觉是Matlab实验的普遍问题。信号与系统课配套的实验往往是Matlab仿真:生成信号、画频谱、设计滤波器。学生在Matlab里调参数、跑脚本,波形出来了,但不知道这些数值是从哪里来的。仿真成了「调参游戏」——改个参数,波形变了,但为什么变?不知道。Matlab的仿真环境太「魔法」——学生看不到信号是怎么被采样、怎么被量化的,只知道输入一段代码,出来一幅图。
痛点四: 硬件脱节让信号与系统成了「空中楼阁」。这门课是EE专业的理论基础,但往往不和硬件实验结合。学生学完傅里叶变换,不知道FFT在硬件里怎么实现;学完采样定理,没见过ADC采样的过程;学完系统函数,不知道一个实际的滤波器电路长什么样。信号与系统成了纸上谈兵——考完试,公式还给了老师,学生脑子里没有一个实际的系统概念。
FPGA如何重构信号与系统的学习逻辑
FPGA不是用来「实现」信号与系统算法的,而是用来「观测」信号与系统过程的 。综合众多高校的课程大纲,个人觉得可以用三层递进的学习逻辑。
第一层:从静态数学到动态硬件过程
卷积不是单纯 “计算” 出来的,而是一步步 “滑动” 形成的。
在FPGA平台上做了一个简单的卷积演示:用拨码开关输入两个离散序列,用按键控制「滑动」步长,用LED阵列显示每一步的乘法结果和累加和。学生按一下按键,看到一个序列「滑动」一格,对应位置的数值相乘,乘积累加到输出。连续按几次按键,学生能亲眼看到卷积的计算过程——它不是黑板上的积分公式,而是一个信号「滑过」另一个信号,逐点相乘、累加的动态过程。
这个演示不需要学生写Verilog代码。可以直接提供预置的卷积演示IP核,学生只需要配置输入序列,控制滑动步长,观察输出变化。重点是「看到」卷积的过程,而不是「实现」卷积算法。对于信号与系统课来说,理解「是什么」比「怎么实现」更重要。
第二层:从纸面示意图到真实可观测现象
采样定理是信号与系统的一个关键知识点,但也是最抽象的。课本上画着一幅示意图:一个连续时间正弦波,用稀疏的采样点去采样,重建出来的波形和原始波形完全不同——这就是混叠。但示意图是静态的,学生看不到「动态」的混叠过程。
用FPGA可以让学生亲手「看到」混叠。用FPGA平台的DDS(直接数字频率合成)IP核生成一个正弦波,频率可以通过拨码开关调节。用板载ADC(模数转换器)以固定频率采样这个正弦波,采样后的数据送到ILA(集成逻辑分析仪)观察。当正弦波频率低于采样频率的一半时,ILA里看到的采样序列能完美重建出原始正弦波;当正弦波频率超过采样频率的一半时,ILA里看到的采样序列重建出来的是一个低频虚假波形——这就是混叠现象。
学生亲手调节输入信号频率,亲眼看到混叠从无到有的过程,比在黑板上讲十遍「采样频率要大于2倍信号最高频率」都管用。
第三层:从孤立知识点到完整系统思维
信号与系统不是孤立的知识点,而是一套描述「系统」的思维框架。传统教学把卷积、傅里叶变换、拉普拉斯变换、Z变换当作独立的知识点来讲,学生学完只知道「这部分考什么题型」,不知道这些数学工具是在描述同一个东西: 系统对输入信号的响应 。
用FPGA可以搭建一个完整的信号链演示系统:信号生成(DDS) → 采样(ADC) → 滤波(FIR/IIR) → 重建(DAC,数模转换器)。学生在平台上能看到一个完整的「系统」:输入信号从哪来,经过哪些处理,输出信号去哪了。每一个环节都对应信号与系统课的一个知识点:信号生成对应「常用信号」,采样对应「采样定理」,滤波对应「系统函数」和「频率响应」,重建对应「插值」。
更重要的是,学生能在平台上「破坏」这个系统。把采样频率调低,观察混叠;把滤波器截止频率调高,观察高频噪声通过;把重建插值倍数调低,观察重建波形的失真。通过这些「破坏实验」,学生能理解每一个系统参数为什么要这么选——这不是公式推导出来的,而是「看到」系统响应后直观理解到的。
分层实验体系:低代码、重观测、重体验
信号与系统课在大二下或大三上开设,学生往往还没学FPGA设计。因此,配套FPGA实验的设计理念应该是「 低代码、重观测、重体验 」——
低代码 :实验以「使用」IP核为主,不是「设计」IP核。学生不需要写Verilog实现卷积或滤波器,只需要学会调用现成的IP核,配置参数,观察现象。降低编程门槛,让信号与系统课本身成为主角,FPGA只是观测工具。
重观测 :充分利用FPGA的可观测性。ILA(集成逻辑分析仪)能实时抓取FPGA内部的信号波形,学生能看到「仿真里看不到」的真实硬件行为。比如,在Matlab仿真里,滤波器就是一个函数;在FPGA里,滤波器是一个有延迟、有流水线、有定点量化的真实硬件模块——这些「非理想因素」正是信号与系统课要讲的「实际系统」和「理想模型」的差距。
重体验 :每个实验都能看到「现象」,不是跑通代码就结束。比如卷积实验,不是让学生写一个卷积函数跑通就完事,而是让他们调节输入信号,观察输出波形的变化,理解「系统」对不同输入的响应。
基于这个设计理念,可以按照如下的路径尝试,14周的信号与系统+FPGA实验路径(假设课程总学时48,其中实验12学时):
周次
实验内容
核心知识点
观测目标
信号生成与显示
常用信号(正弦、方波、锯齿波)
看到信号在硬件里的数值表示
卷积动态演示
卷积的定义与物理意义
看到卷积的「滑动、相乘、累加」过程
采样与混叠观测
采样定理、混叠现象
亲手看到混叠现象
离散傅里叶变换直观理解
看到时域信号对应的频谱
滤波器频率响应实测
系统函数、频率响应
看到不同频率信号通过滤波器后的变化
完整信号链搭建
看到一个完整「系统」的信号流
注:实验均基于FOR-1平台的预置IP核(DDS、ADC、FFT、FIR、ILA等),学生无需从零编写Verilog代码。
学情分层建议:双一流及重点院校可完成全部实验内容,额外增加信号链综合探究、多场景信号观测等拓展任务;普通本科院校聚焦卷积动态演示、采样混叠验证、时域 / 频域对照三大核心实验,夯实基础概念;偏软件类专业可完全弱化硬件编程环节,以 IP 核调用、波形观测、现象分析为主要学习目标。
这套实验路径的核心思路:每一项实验都紧扣课程核心知识点,做到 “可观、可感”。学生结业后,留在脑海中的不再是枯燥公式,而是一次次真实观测到的物理现象 —— 这也正是信号与系统课程的教学初衷。
两大经典实验:从「验证」到「探究」 实验1:观测卷积的动态滑动过程——读懂LTI系统的核心
这个实验的设计初衷,是让学生「看到」卷积的物理过程。传统教学里,卷积是一个公式:y(t) = x(t) * h(t) = ∫x(τ)h(t-τ)dτ。学生能算,但不知道这个积分描述的是什么。
比如:设计一个「卷积演示器」:用拨码开关输入一个离散序列x(代表输入信号),用另一组拨码开关输入序列h(代表系统的冲激响应)。按动按键,x在h上「滑动」——每一步,对应位置的数值相乘,乘积送到累加器,累加结果就是当前输出y。用LED阵列显示x、h、乘积序列、累加和,学生能一步步看到卷积的计算过程。
这个实验的关键是「动态」——卷积不是一次性算出来的,而是一步步「滑出来」的。学生能看到:当x滑动到不同位置时,输出y是怎么变化的;能看到卷积的「时延」属性——系统的输出相对于输入有一个延迟;还能看到卷积的「线性」属性——输入放大一倍,输出也放大一倍。
教学建议 :这个实验不要一次性全讲完。第一次课只让学生观察「滑动」过程,理解卷积的物理意义;第二次课再让学生调节h(系统的冲激响应),观察不同系统对同一个输入的处理结果。这样分层推进,学生能逐步建立「系统」的概念。
实验2:采样与重建实测——亲手验证奈奎斯特采样定理
这个实验的设计初衷,是让学生亲手「看到」混叠现象。采样定理是信号与系统课的一个重点,但也是最抽象的。课本上说「采样频率要大于2倍信号最高频率」,学生背下来,但不知道采样不足时到底会发生什么。
比如:用DDS IP核生成一个正弦波,频率可以通过拨码开关连续调节。用ADC以固定频率Fs采样这个正弦波,采样后的数据送到ILA观察。学生可以先设一个低频正弦波(比如500Hz),Fs设为2000Hz(满足采样定理),在ILA里看到采样序列能完美重建原始正弦波。然后,学生把正弦波频率调高到超过1000Hz(比如1200Hz),Fs还是2000Hz(不满足采样定理),在ILA里看到的采样序列重建出来的是一个800Hz的虚假正弦波——这就是混叠。
这个实验的关键是「亲手调节、亲眼看到」。学生能调节输入信号频率,观察混叠从无到有的过程;能理解「混叠不是计算错误,而是采样不足时物理现象的必然结果」;还能进一步思考:在实际应用中(比如通信系统),怎么避免混叠?怎么设计抗混叠滤波器?
教学建议 :这个实验可以设计一个「探究性」的环节——不告诉学生混叠是什么,只让他们调节输入频率,观察ILA里的波形变化,让他们自己发现「咦,怎么输出频率变了?」然后引导他们用采样定理解释这个现象。探究式学习比验证式学习更能激发学生的学习兴趣。
FPGA凭借其硬件并行特性和ILA(集成逻辑分析仪)等工具,可以在不影响系统运行的情况下,实时抓取和显示硬件内部任意节点的信号波形。这意味着,学生不仅能“看到”输入和输出,更能“透视”到系统内部的每一个关键环节:可以看到卷积的乘累加过程、可以看到傅里叶变换中数据的流水线处理、甚至可以看到采样率不满足奈奎斯特频率时频谱的实时变化。
这种 深入到寄存器传输级的动态观测能力 ,并同时允许学生自由修改底层硬件逻辑,是其他工具都无法同时提供的。不仅能帮学生吃透抽象概念,也能直接作用于应试备考:面对卷积波形绘制、混叠现象判断、系统响应分析等高频考题,学生不再靠死记硬背或主观猜测,依托实验中亲眼观测的现象就能准确作答,有效降低失分率与课程挂科率。
这门课不是终点,而是起点
信号与系统不是一门孤立的课程。它是EE专业课程体系的「枢纽」——前接数字逻辑(硬件基础),后接数字信号处理(FFT、滤波器设计)、嵌入式系统(FPGA+CPU)、通信原理(调制解调)。
用FPGA作为「硬件底座」,可以让这些课程形成一个有机的体系:在数字逻辑课里,学生学会了FPGA的基本操作;在信号与系统课里,学生用FPGA「看到」抽象的数学概念;在数字信号处理课里,学生用FPGA实现FFT、滤波器;在嵌入式系统课里,学生用FPGA搭建完整的处理系统;在通信原理课里,学生用FPGA实现调制解调。
这不是简单地把FPGA塞进每一门课,而是用FPGA的可观测性,让每一门课的理论知识都能「落地」。学生学完整个EE课程体系,脑子里不只是一堆公式和知识点,而是一个个「看到过」的物理过程——这才是工程教育的目标。
一个小手段,FPGA远程仿真调试
考虑到学生可能需要在宿舍里复习实验、或者因故错过实验课,很多高校实验平台数量不足,等情况,可以添加一个远程调试器,学生就可以远程操作实验室里的FPGA开发板,做完整的实验。
你在信号与系统教学中,还遇到过哪些难解的知识点?欢迎留言交流。