
简介这份资源是面向通信工程、电子信息工程等专业本科生与研究生的信号与系统综合实验报告聚焦连续时间LTI系统的时域与频域分析及滤波器设计适合具备一定理论基础、希望借助Matlab完成仿真验证的学习者。内容围绕稳定系统的零极点设计展开涵盖直接、级联、并联三种实现结构的信号流图与特性对比并延伸到阶跃响应、参数微变敏感性、周期信号频谱分析、LTI滤波器设计以及音频信号获取与频谱分析等环节配有实验步骤、代码实现与结果分析。资源包共1个docx文件约2.62MB以实验报告文档形式完整呈现理论推导与Matlab仿真过程。目前已有1303人学习可帮助读者理解系统函数零极点分布与频率特性、稳定性之间的关系掌握不同结构对参数变化的敏感程度并积累滤波器设计与音频频谱分析的实操思路。1. 从一份“跑不通”的实验报告说起连续时间LTI系统综合实验到底要交付什么信号与系统这门课理论推导能写满几页纸一到 MATLAB 仿真就翻车这是通信、电子信息类专业学生做综合实验时最常见的状态。这份基于 MATLAB 的连续时间 LTI 系统综合实验要解决的不是“会不会调用 freqs”这种表层问题而是把时域分析、频域分析、零极点分布、三种实现结构、滤波器设计、音频信号处理串成一条完整链路。它适合正在做信号与系统课设、综合实验报告或者要交一份能答辩的完整方案的本科生和研究生。整套方案的核心交付物是一个稳定可分析的 4~6 阶系统、三套实现结构的对比结论、一个能滤掉指定频率分量的滤波器以及一段真实音频的频谱分析。2. 需求拆解与总体设计四个实验模块如何串成一条分析链2.1 先把实验目的翻译成可验收的交付项原始实验目的写了四条听起来都很“教学语言”但落到交付上其实对应四类可以检查的产物。第一类是系统本身一个 4~6 阶连续时间 LTI 系统系统函数里至少含一对靠近虚轴的共轭复数极点且系统稳定。第二类是分析结果时域冲激响应、阶跃响应频域幅频响应、相频响应以及零极点图。第三类是对比结论直接、级联、并联三种结构在参数微扰下的敏感性差异。第四类是应用验证设计一个滤波器对含两个频率分量的周期信号滤波再用真实音频走一遍采集、频谱分析流程。我一般会把这四类产物画成一条链系统建模 → 时域频域仿真 → 结构敏感性对比 → 滤波器设计与音频验证。每一环的输出是下一环的输入比如零极点位置决定了幅频响应形状幅频响应又决定了滤波器能不能滤掉 2 rad/s 那个分量。这样写报告时逻辑是顺的答辩时被问到“为什么这个极点要放这里”你能直接指回需求。2.2 系统函数与零极点的手工设计实验要求设计一个稳定系统至少一对共轭复数极点靠近虚轴。原始方案给出的系统函数是$$ H(s)\frac{2.8s1.99}{(s^20.2s0.01)(s1)(s2)} $$分母展开后是 4 阶满足 4~6 阶要求。关键在于 $s^20.2s0.01$ 这一对极点解出来是 $s-0.1\pm j0$实部 -0.1非常靠近虚轴虚部为 0 说明它落在实轴上严格说不是共轭复数对。这里其实是原始报告的一个小瑕疵如果要做“靠近虚轴的共轭复数极点”更稳妥的写法是把这一项改成 $s^20.2s1.01$极点变成 $-0.1\pm j1$实部仍是 -0.1虚部 ±1既靠近虚轴又是共轭对幅频响应会在 $\omega1$ 附近出现明显峰值后面分析零极点与频率特性的关系时现象更清楚。我一般会先手算极点位置再写代码因为答辩时老师很可能让你口述“极点在哪、为什么稳定”。所有极点实部为负-0.1、-1、-2系统稳定靠近虚轴的那对极点贡献了低频段的主谐振。这一步想清楚后面所有图都有了解释的锚点。2.3 三种实现结构的职责划分直接型、级联型、并联型不是三个随便选的选项它们对应三种不同的系数组织方式敏感性差异就藏在这里。直接型把分子分母系数整体存放一个系数微调会同时影响所有极点级联型把系统拆成多个二阶节相乘每个二阶节只管一对零极点并联型拆成多个二阶节相加同样局部化。原始方案用tf2sos做直接到级联、用tf2zp加zp2tf做零极点往返这个思路是对的但代码里zp2tf(z,p,k)得到的其实是原系统并没有真正构造并联结构这是很多报告里容易糊弄过去的地方。我的做法是级联用tf2sos得到二阶节矩阵并联则手动把每个二阶节写成部分分式再相加或者至少用residue做部分分式展开来体现并联的数学含义。结构不同后面做参数微扰时才能看出谁更“抗造”。3. 时域与频域仿真从冲激响应到阶跃响应的完整代码链3.1 冲激响应与幅频相频的符号计算原始方案用ilaplace求冲激响应、fourier求频谱这是符号计算路线优点是表达式干净缺点是遇到高阶系统容易算不动。我一般会双轨走符号算一遍拿解析式数值再用impulse、freqs验证一遍。下面这段是可复现的数值版本比纯符号更稳% 系统系数分母按 s^4, s^3, s^2, s^1, s^0 排列 b [0 0 0 2.8 1.99]; a [1 2.2 3.41 0.62 0.035]; % 冲激响应与阶跃响应 t 0:0.01:60; figure; subplot(2,1,1); impulse(b,a,t); title(冲激响应 h(t)); subplot(2,1,2); step(b,a,t); title(阶跃响应 g(t)); % 幅频与相频 w -6:0.01:6; H freqs(b,a,w); figure; subplot(2,1,1); plot(w,abs(H)); title(幅频响应 |H(jw)|); subplot(2,1,2); plot(w,angle(H)); title(相频响应);freqs的第三个参数是频率向量范围取 -6 到 6 是因为系统的主要谐振在 $\omega1$ 附近扫太宽会把细节压扁。impulse和step的时间向量取到 60 秒是因为靠近虚轴的极点实部只有 -0.1时间常数约 10 秒衰减慢截太短看不到稳态。这里有个血泪经验如果时间向量只取到 10冲激响应看起来像发散的其实是还没衰减完答辩时被追问“系统稳不稳定”就尴尬了。3.2 阶跃信号通过系统前后的频谱变化实验要求分析阶跃信号通过系统前后的频谱总结滤波特性。阶跃信号的频谱是 $1/(j\omega)\pi\delta(\omega)$经过系统后乘上 $H(j\omega)$。数值上可以直接用freqs算系统响应再和输入频谱逐点相乘w 0.01:0.01:6; % 避开 0 点的冲激 H freqs(b,a,w); F_step 1./(1j*w); % 阶跃信号频谱忽略直流冲激项 Y H .* F_step; % 输出频谱 figure; subplot(2,1,1); plot(w,abs(F_step)); title(输入阶跃频谱); subplot(2,1,2); plot(w,abs(Y)); title(输出频谱);这段代码的关键在w从 0.01 开始而不是 0因为阶跃频谱在 0 点有冲激数值上没法直接表示避开零点只画连续部分报告里说明一句“直流分量单独讨论”即可。从输出频谱能看出低频段被保留$\omega1$ 附近因为那对靠近虚轴的极点出现抬升高频段被 $(s1)(s2)$ 的极点压下去。这就是“滤波特性与零极点分布关系”的实证——极点靠近虚轴的地方幅频抬升极点远离虚轴的地方幅频衰减。3.3 参数微扰下的结构敏感性对比这是整个基础部分最能拉开报告质量的一环。原始方案把分母常数项从 0.035 改成 0.01变化量约 71%远超实验建议的万分之一到 5%而且只改了直接型系数级联和并联的对比代码逻辑是断的。我的做法是统一微扰幅度比如把所有结构里对应同一个极点的系数改动 1%然后对比零极点漂移和阶跃响应差异% 原始系统 b [0 0 0 2.8 1.99]; a [1 2.2 3.41 0.62 0.035]; % 级联结构分解为二阶节 [sos, g] tf2sos(b, a); % 对直接型分母常数项做 1% 微扰 a1 a; a1(end) a1(end) * 1.01; % 对级联结构最后一个二阶节的常数项做 1% 微扰 sos1 sos; sos1(end,end) sos1(end,end) * 1.01; [b2, a2] sos2tf(sos1, g); t 0:0.01:80; figure; subplot(2,2,1); pzmap(b,a); title(原始零极点); subplot(2,2,2); pzmap(b,a1); title(直接型微扰后); subplot(2,2,3); pzmap(b2,a2); title(级联型微扰后); subplot(2,2,4); step(b,a,t); hold on; step(b,a1,t); step(b2,a2,t); title(阶跃响应对比); legend(原始,直接微扰,级联微扰);sos2tf把微扰后的二阶节还原成整体传递函数才能和直接型放在同一尺度下比较。跑完你会发现直接型微扰后极点位置漂移更明显阶跃响应稳态值也有可见偏差级联型因为只动了一个二阶节其他节的极点纹丝不动整体响应变化小得多。这个结论就是报告里“不同实现结构对参数改变敏感性”的核心论据比空泛地说“级联精度高”有说服力得多。4. 滤波器设计与音频验证从零极点配置到真实信号落地4.1 用零极点配置设计一个带阻型滤波器拓展部分要求设计一个 LTI 连续系统作为滤波器对 $f(t)\cos(t)\cos(2t)$ 滤波滤掉部分频率分量。原始方案给的滤波器是$$ H(s)\frac{s^2-0.2s1.97}{s^20.2s1.01} $$零点在 $0.1\pm j1.4$极点在 $-0.1\pm j1.4$。零点在右半平面、极点在左半平面且虚部相同这种“零点极点关于虚轴对称”的配置会在 $\omega1.4$ 附近形成陷波。但输入信号分量是 $\omega1$ 和 $\omega2$陷波中心 1.4 卡在中间两个分量都滤不干净。这是原始方案里比较隐蔽的问题——零极点图画出来很漂亮但滤波效果对不上信号频率。我一般会先看输入信号的频率分量再反推零极点该放哪。要滤掉 $\omega2$ 保留 $\omega1$就把零点放在虚轴上 $\pm j2$ 附近极点放在左半平面同样虚部位置% 陷波中心 2 rad/s零点在 ±j2极点在 -0.1±j2 z [2j; -2j]; p [-0.12j; -0.1-2j]; k 1; [b, a] zp2tf(z, p, k); w 0:0.01:5; H freqs(b, a, w); figure; subplot(2,1,1); plot(w, abs(H)); title(幅频响应); subplot(2,1,2); plot(w, angle(H)); title(相频响应);zp2tf把零极点转回传递函数系数k1是增益实际报告里可以根据通带增益归一化调整。零点在虚轴上意味着该频率处幅频严格为 0极点实部 -0.1 决定陷波宽度实部越靠近 0 陷波越窄。这样设计出来$\omega2$ 被压掉$\omega1$ 基本无损通过滤波效果和设计意图能对上。4.2 卷积求输出与稳态频谱验证设计完滤波器要用冲激响应和输入信号卷积得到输出。符号计算路线是拉氏变换相乘再反变换数值路线是conv或者lsim。我倾向用lsim因为它直接给数值解不用处理符号反变换的收敛域问题t 0:0.01:40; f cos(t) cos(2*t); [y, ~] lsim(tf(b,a), f, t); % 取后段稳态数据做频谱 idx t 20; y_ss y(idx); Fs 1/0.01; N 2^nextpow2(length(y_ss)); Y fft(y_ss, N); f_axis (0:N-1)*(Fs/N); figure; subplot(2,1,1); plot(t, y); title(滤波输出 y(t)); subplot(2,1,2); plot(f_axis(1:N/2), abs(Y(1:N/2))); title(稳态输出频谱); xlabel(Hz);idx t 20是截取稳态的关键前 20 秒包含瞬态直接做 FFT 会把瞬态分量混进频谱看起来像多了很多杂散频率。稳态频谱里应该只剩 $\omega1$ 对应的谱线$\omega2$ 被压到很低这就是“验证滤波器实现了预期效果”的直接证据。报告里把输入频谱和输出频谱并排放对比一目了然。4.3 音频信号的采集、频谱分析与常见参数应用设计部分用audiorecorder录音、audiowrite存文件、audioread读回、fft做频谱。原始方案采样率设 8000 Hz录音 3 秒。这里要注意采样定理8000 Hz 采样率能无混叠分析的最高频率是 4000 Hz人声主要能量在 300~3400 Hz够用但如果要分析音乐或高频成分8000 就不够得提到 44100。rec audiorecorder(8000, 16, 1); % 8kHz, 16bit, 单声道 recordblocking(rec, 3); y getaudiodata(rec); audiowrite(audio_demo.wav, y, 8000); [y, fs] audioread(audio_demo.wav); N 2^nextpow2(length(y)); Y fft(y, N); f_axis (0:N-1)*(fs/N); figure; subplot(2,1,1); plot(y); title(语音波形); subplot(2,1,2); plot(f_axis(1:N/2), abs(Y(1:N/2))); title(语音频谱); xlabel(Hz);audiorecorder三个参数分别是采样率、位深、通道数单声道足够做频谱分析。fft之前补零到 2 的幂次是为了加速f_axis只画前半段是因为实信号频谱对称。报告里分析频谱特点时可以指出语音能量集中在低频、高频衰减快这和前面系统滤波的“低频保留高频衰减”现象能呼应上整份报告的逻辑就闭环了。5. 避坑与排查这类实验最容易翻车的五个点5.1 极点位置算错导致“稳定系统”其实不稳定现象零极点图画出来极点好像都在左半平面但阶跃响应一直往上飘。原因分母系数排列顺序和roots期望的顺序不一致或者手工展开分母时符号写错。解决用roots(a)单独打印极点实部确认全部小于 0展开分母时用conv逐级相乘而不是手算减少符号错误。5.2 频率向量范围选错把谐振峰压没了现象幅频响应看起来一条平线看不出靠近虚轴极点该有的峰值。原因freqs的频率范围取太大比如 -100 到 100谐振峰在 1 附近被压缩成一个点。解决先roots看极点虚部频率范围取虚部的 3~5 倍比如虚部是 1就取 -6 到 6。5.3 参数微扰幅度失控导致对比失去意义现象改了一个系数后系统直接发散三种结构全乱没法比较敏感性。原因微扰量取了 50% 以上或者改的是主导极点对应的系数。解决统一微扰幅度在 1% 左右且只改一个系数改完先isstable或看极点实部确认没跑出左半平面。5.4 滤波器零极点与信号频率对不上现象设计完滤波器输入两个频率分量输出还是两个都在。原因陷波中心频率和要滤掉的信号分量频率不一致比如信号是 2 rad/s陷波放在 1.4 rad/s。解决先算输入信号各分量的角频率零点虚部直接对准要滤掉的频率极点虚部相同、实部取小负值控制带宽。5.5 音频频谱分析混入瞬态或混叠现象语音频谱图上一堆看不懂的杂散峰。原因录音开头有环境突变或按键声或者采样率低于信号最高频率导致混叠。解决分析前截掉前 0.1~0.2 秒采样率按信号最高频率的 2 倍以上选取语音场景 8000 Hz 起步音乐场景 44100 Hz。6. 验收与答辩怎么把四类产物讲成一条完整证据链验收这份实验我一般不看代码有多长看四件事能不能对上。第一系统极点实部全负、至少一对靠近虚轴零极点图和幅频响应的峰值位置能互相解释。第二三种结构的参数微扰对比有统一幅度、有零极点漂移图、有阶跃响应叠图结论能落到“级联局部化、直接型耦合强”上。第三滤波器零点频率和输入信号要滤掉的分量频率一致输出稳态频谱里该分量被压下去。第四音频频谱的采样率、分析频段、能量分布说得清。答辩时最容易被问的三个问题提前准备好答案为什么这个极点要靠近虚轴答制造谐振峰验证零极点与幅频关系为什么级联型更抗参数变化答每个二阶节只管一对零极点系数改动局部影响滤波器零点为什么放虚轴上答虚轴上零点使该频率幅频严格为零实现陷波。把这三问答顺基本就稳了。下面这张表可以贴在报告最后一页做自查验收项合格标准对应图系统稳定性所有极点实部 0零极点图谐振特性幅频在极点虚部附近有峰幅频响应结构敏感性同幅度微扰下直接型漂移更大零极点对比图滤波有效性目标分量被压制 10 dB 以上输出稳态频谱音频分析采样率满足 2 倍最高频率语音频谱图从那以后我每次带这类综合实验都强制先手算极点、再写仿真、最后拿稳态数据做频谱三步缺一步报告就会在答辩时露馅。希望帮到你。本文还有配套的精品资源点击获取