ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

信号与系统实验报告:MATLAB实现连续时间信号与系统分析

信号与系统实验报告:MATLAB实现连续时间信号与系统分析

简介:这份《信号与系统》实验报告来自广东工业大学信息工程学院,面向电子信息类专业学生及需要完成同类课程实验的学习者,用于系统梳理MATLAB环境下的信号分析与系统仿真实践。报告围绕连续与离散时间信号展开,涵盖基本信号生成与波形绘制、卷积运算求解LTI系统响应、Z变换与离散卷积、采样量化影响分析,以及傅里叶级数、傅里叶变换、拉普拉斯变换和系统频率特性等频域内容,并配有实验目的、实验内容与结果图,便于对照理解理论计算与仿真验证的对应关系。资源包为1个docx文档,压缩后约1.68MB,结构完整、章节清晰,可直接作为实验参考与复习提纲。目前已有1257人学习下载,适合希望借助现成报告快速掌握MATLAB信号处理操作、查漏补缺并提升数值计算能力的学生使用。

1. 信号与系统实验报告:为什么工科生都绕不开这份“信号翻译指南”

如果你翻开一本工科教材,看到满页的积分符号、复数指数和波形图,大概率会撞上“信号与系统”这门课。它研究的是“信号怎么变、系统怎么处理信号”这一对核心关系。而这份《信号与系统》实验报告,就是把课本上那些抽象公式,用 MATLAB 一行行代码变成看得见的波形图。打个比方,课本告诉你“卷积是系统对输入信号的加权叠加”,但你看不到它长什么样;实验报告则让你亲手敲下conv函数,看着两个波形“卷”成一个新波形。这份来自某高校信息工程学院的 92 页实验报告,覆盖了连续时间信号表示、卷积运算、傅里叶级数、拉普拉斯变换、Z 变换等十四个章节,每个实验都配有代码、结果图和分析。它解决的不是“信号与系统是什么”这种入门问题,而是“这些公式在 MATLAB 里到底怎么跑出来”的落地困惑。对电子信息类学生来说,这份报告就是一份可复现的“信号翻译指南”——把数学语言翻译成代码语言,再把代码结果翻译回物理意义。

2. 连续时间信号在 MATLAB 里到底怎么“画”出来

2.1 从公式到波形:为什么需要“表示”这一步

课本上的连续时间信号,比如 (2\cos(3t+\pi/4)),是一个数学表达式。但表达式本身不直观——你很难一眼看出它的振幅是 2、角频率是 3、初相位是 (\pi/4)。实验报告做的第一件事,就是把这个表达式“翻译”成 MATLAB 能执行的代码,再让代码输出一张波形图。这个过程叫“信号的 MATLAB 表示”。

为什么非要走这一步?因为后续所有分析——卷积、傅里叶变换、拉普拉斯变换——都建立在“你能把信号画出来”的基础上。如果连一个余弦信号的波形都画不对,后面分析系统的频率响应就无从谈起。实验报告里用t = -pi/12:0.01:2*pi定义时间轴,用y = 2*cos(3*t+pi/4)计算幅度,再用plot(t,y)出图。这三行代码对应了三个认知层次:时间范围决定你看到信号的哪一段,采样间隔决定波形光滑程度,绘图命令决定你能否观察趋势。

提示:时间轴的起点和终点不是随便选的。如果只取0到2*pi,你会漏掉负半轴的信息;如果采样间隔太大,波形会变成折线。

2.2 复信号的实部、虚部、模和辐角:一个信号拆成四张图

实验报告里有一个容易被忽略但极其重要的内容:复信号的表示。比如 (f(t)=2+e^{j\pi t/4}+e^{j\pi t/2}),这是一个复数信号。MATLAB 不能直接“画”一个复数,但可以分别画出它的实部、虚部、模和辐角。报告里用subplot(2,2,1)到subplot(2,2,4)把四张图拼在一起,分别对应real(y)、imag(y)、abs(y)、angle(y)。

为什么要拆成四张图?因为复信号在通信和信号处理里无处不在,而实部对应“同相分量”,虚部对应“正交分量”,模对应“幅度”,辐角对应“相位”。一个复信号携带的信息,比一个实信号多一倍。如果你只盯着实部看,就会漏掉相位信息——而相位在调制解调、滤波器设计中往往是决定性的。实验报告用axis([-5,10,-2,2])这样的命令固定坐标范围,目的是让四张图在同一尺度下对比,避免视觉误导。

2.3 矩形脉冲与阶跃信号:用代码“造”出理想波形

实验报告里还有一个典型任务:产生幅度为 1、周期为 1、占空比为 0.5 的矩形脉冲。代码是y = 0.5*square(2*pi*t,50)。这里square是 MATLAB 的信号生成函数,第二个参数50表示占空比 50%。但报告里还出现了另一种写法:y = t.*((t >= 0) - (t >= 1)),这是用逻辑运算“手工”构造矩形脉冲。

两种写法有什么区别?square函数方便,但它是“黑匣子”——你不知道内部怎么处理边界。逻辑运算写法虽然笨,但每一步都透明:(t >= 0)产生一个从 0 开始为真的逻辑数组,(t >= 1)产生从 1 开始为真的逻辑数组,两者相减就得到一个在[0,1)区间内为 1、其余为 0 的窗函数。再乘以t,就得到t[u(t)-u(t-1)]这个信号。这种“手工构造”的方法在后续卷积和滤波实验中反复出现,因为很多信号没有现成函数,必须自己用逻辑运算拼出来。

3. 卷积、时移、反褶:信号运算里的“易混三兄弟”

3.1 时移、反褶、尺度变换:谁先谁后差别很大

实验报告第三章专门讲连续时间信号的时移、反褶和尺度变换。这三个操作单独看都不难:时移是 (f(t)) 变成 (f(t-1)),反褶是 (f(t)) 变成 (f(-t)),尺度变换是 (f(t)) 变成 (f(2t))。但组合起来就容易翻车。比如 (f(2-t)),到底是先反褶再时移,还是先时移再反褶?

报告里用functl(t-1)、functl(2-t)、functl(2*t+1)、functl(4-t/2)四个例子把这个问题讲透了。关键原则是:所有变换都是对自变量 (t) 做的,不是对函数值做的。(f(2-t)) 可以拆成两步:先把 (t) 替换成 (-t) 得到 (f(-t)),再把 (-t) 替换成 (2-t),相当于把 (f(-t)) 右移 2 个单位。如果你反过来先右移再反褶,结果会完全不同。实验报告用axis([-2,5,-1.2,2.2])这样的坐标范围把变换后的波形框住,方便对比。

注意:时移和反褶的顺序不能随意交换。先反褶再时移,和先时移再反褶,得到的波形关于纵轴的位置不同。

3.2 卷积运算:为什么“卷”出来的波形能验证系统特性

卷积是信号与系统里最核心的运算之一。实验报告第四章专门做连续时间信号的卷积运算,第五章做连续时间 LTI 系统的时域分析。卷积的数学定义是一个积分:(y(t)=\int x(\tau)h(t-\tau)d\tau)。这个积分在课本上看起来抽象,但在 MATLAB 里可以用conv函数直接算。

报告里的做法是:先定义输入信号 (x(t)) 和系统冲激响应 (h(t)),再用conv(x,h)得到输出 (y(t))。但这里有一个坑:conv算的是离散卷积,而连续卷积需要乘以采样间隔dt。如果忽略这一步,得到的幅度会差一个dt倍。实验报告里虽然没有显式写出这个修正,但从结果图的幅度可以反推出采样间隔的影响。卷积的意义在于:它把“系统对输入信号的响应”变成了一个可计算的积分,而 MATLAB 让这个积分变成了几行代码。

3.3 奇分量与偶分量:一个信号拆成两半

实验报告 3.3.3 节讲信号的奇分量和偶分量。任何信号都可以分解成偶分量和奇分量之和:(f(t)=f_e(t)+f_o(t)),其中 (f_e(t)=[f(t)+f(-t)]/2),(f_o(t)=[f(t)-f(-t)]/2)。报告里用fliplr函数把信号翻转,再分别做加法和减法。

这个分解有什么用?在系统分析里,偶分量对应系统的“对称响应”,奇分量对应“反对称响应”。如果一个系统是线性的,它对偶分量的响应也是偶的,对奇分量的响应也是奇的。实验报告用subplot(2,2,1)到subplot(2,2,4)把原信号、偶分量、奇分量画在一起,目的是让你直观看到:偶分量关于纵轴对称,奇分量关于原点对称。这个性质在后续傅里叶变换的对称性分析里会反复用到。

4. 常见误区:这些概念最容易搞混

4.1 连续信号与离散信号:不是“连不连续”的问题

初学者最容易把“连续时间信号”理解成“波形连续不断的信号”,把“离散时间信号”理解成“波形断断续续的信号”。这个理解是错的。连续和离散的区别在于自变量 (t) 的取值方式:连续时间信号的自变量是实数,离散时间信号的自变量是整数。一个方波信号在时间上是“断”的,但它仍然是连续时间信号,因为 (t) 可以取任意实数。实验报告里第二章讲连续信号,第十二章讲离散信号,两者的 MATLAB 表示方式不同:连续信号用plot(t,y),离散信号用stem(n,y)。

4.2 傅里叶级数与傅里叶变换:周期与非周期的分水岭

实验报告第六章讲周期信号的傅里叶级数,第七章讲傅里叶变换。很多学生搞不清两者的关系。简单说:傅里叶级数只适用于周期信号,它把周期信号分解成一系列离散频率的正弦波之和;傅里叶变换适用于非周期信号,它把非周期信号分解成连续频率的频谱密度。周期信号的频谱是离散的谱线,非周期信号的频谱是连续的曲线。实验报告里用fft函数计算频谱,但fft算的是离散傅里叶变换,需要根据采样率和信号长度换算成实际频率。

4.3 拉普拉斯变换与 Z 变换:一个管连续,一个管离散

实验报告第十章讲拉普拉斯变换,第十四章讲 Z 变换。这两个变换的关系,类似于连续信号和离散信号的关系。拉普拉斯变换把连续时间信号从时域变到复频域((s) 域),Z 变换把离散时间信号从时域变到 (z) 域。拉普拉斯变换的收敛域是 (s) 平面上的带状区域,Z 变换的收敛域是 (z) 平面上的环形区域。实验报告第十一章讲连续 LTI 系统的零极点分析,第十四章讲离散 LTI 系统的 Z 域分析,两者的零极点图看起来相似,但坐标平面不同。

4.4 时域分析与频域分析:不是二选一,而是互补

实验报告第五章讲时域分析,第八章讲频域分析。有些学生以为频域分析比时域分析“高级”,其实两者是互补的。时域分析告诉你系统对每个时刻的输入如何响应,频域分析告诉你系统对不同频率的成分如何放大或衰减。一个滤波器在时域上可能是一个卷积积分,在频域上就是一个乘法。实验报告里用freqs函数计算连续系统的频率响应,用freqz函数计算离散系统的频率响应,两者的输出都是幅度和相位曲线。

4.5 采样定理:不是“采样率越高越好”

实验报告第十二章涉及离散时间信号的表示,其中隐含了采样定理。采样定理说:采样率必须大于信号最高频率的两倍,否则会发生混叠。但采样率不是越高越好——采样率越高,数据量越大,计算越慢。实验报告里用stem函数画离散信号,如果采样率太低,正弦波会变成锯齿波;如果采样率太高,数据点密集到看不出离散特征。关键是找到“刚好够用”的采样率。

5. 什么时候用这份实验报告,什么时候别用

这份实验报告最适合的场景,是你已经学过信号与系统的理论课,但不知道这些公式在 MATLAB 里怎么落地。比如老师讲了卷积的数学定义,你理解了积分公式,但让你用代码算一个卷积,你无从下手。这时候翻到实验报告第四章,看conv函数怎么用、时间轴怎么定义、结果图怎么画,就能把理论和实践接上。另一个场景是期末复习:报告里每个实验都有“实验目的”和“实验结果分析”,你可以对照这些文字快速回忆每个章节的核心知识点。

但这份报告不适合两种人。第一种是完全没有信号与系统基础的人。报告里的代码默认你已经知道什么是冲激信号、什么是阶跃信号、什么是 LTI 系统。如果你连 (u(t)) 表示单位阶跃函数都不知道,直接看代码会一头雾水。第二种是想找“标准答案”的人。实验报告里的代码和结果图是特定参数下的输出,不是通用模板。比如t = -pi/12:0.01:2*pi这个时间轴只适合画 (2\cos(3t+\pi/4)),换一个信号就要重新选范围。如果你直接复制代码去跑自己的信号,大概率会翻车。

提示:实验报告里的axis命令是“事后调整”的结果。先画图,发现波形被截断或留白太多,再回头改axis范围。不要一开始就猜坐标范围。

我自己的习惯是:拿到任何一个信号表达式,先写三行代码——定义时间轴、计算函数值、画图。然后根据波形调整时间轴范围和坐标范围。如果波形不对,先检查时间轴是不是覆盖了信号的关键区间,再检查函数表达式有没有写错括号和点乘。这套流程走下来,大部分“画不出来”的问题都能定位。希望帮到你。

本文还有配套的精品资源,点击获取

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进