MATLAB验证连续时间LTI系统冲激响应与建模

发布时间:2026/9/19 17:22:34
MATLAB验证连续时间LTI系统冲激响应与建模 简介本资源为华南理工大学《信号与系统》课程配套实验报告三面向电子信息、通信工程等专业本科生及信号处理初学者聚焦离散傅里叶变换DFT在模拟信号频谱分析中的核心应用与工程实践难点。报告通过三大实验模块系统展开一是指数衰减信号的DFT参数设计与FFT误差分析强调抽样间隔、截断长度与采样频率对频谱精度的影响二是周期信号频谱分析中分析长度必须为整周期倍的关键原则验证三是含双频余弦的实际信号在Hamming窗与Kaiser窗下的分辨率对比实验明确最小谱峰间隔Δf与信号长度Tp的定量关系Δf1/Tp。资源为1个457KB的Word文档.doc内容完整覆盖实验目的、原理、MATLAB代码、图像结果与深度讨论结构清晰、推导严谨、代码可直接复现。目前已有571人学习下载是理解DFT工程实现细节、掌握频谱泄露抑制与参数优化方法的优质实操参考。1. 信号与系统实验报告三不是交作业而是用 MATLAB 验证连续时间系统的时域特性与冲激响应建模能力“华南理工大学信号与系统实验报告三”这个标题在校园内常被学生当作一次课程任务的代号但真正拉开实验箱、敲完lsim和impulse命令后才会发现它本质是一次对连续时间 LTI 系统建模—求解—验证闭环能力的实操检验。本实验不依赖硬件电路板核心是用 MATLAB 构建微分方程描述的系统如 RLC 串联电路、机械阻尼系统通过数值求解验证理论推导的冲激响应 $h(t)$ 是否与实际零状态响应一致。适合已掌握拉普拉斯变换、卷积积分、系统函数 $H(s)$ 概念的大二/大三电类、自动化、通信专业学生——你不需要背公式但必须能从微分方程写出传递函数再用tf或ss对象驱动仿真。实验难点不在代码长度而在初始条件处理、数值解与解析解的误差来源识别、以及单位阶跃/冲激输入在离散仿真中的等效实现方式。本文不提供标准答案只还原一线教师布置该实验时真正关注的技术落点。2. 用 MATLAB 实现连续时间 LTI 系统建模从微分方程到tf对象的三步转化2.1 明确实验典型系统结构RLC 串联电路作为贯穿案例实验报告三最常指定的物理模型是 RLC 串联电路其电压-电流关系由二阶常系数线性微分方程描述$$ L \frac{d^2 i(t)}{dt^2} R \frac{di(t)}{dt} \frac{1}{C} i(t) \frac{d v_s(t)}{dt} $$其中 $v_s(t)$ 为激励源常取单位阶跃或单位冲激$i(t)$ 为回路电流系统输出。注意此处输出选电流而非电容电压直接影响后续传递函数形式。华南理工教材《信号与系统》第 3 版第 4 章例 4.5 明确采用此设定因此建模时不可擅自替换输出变量。提示若题目给定的是电容电压 $v_C(t)$ 为输出则微分方程需重写为关于 $v_C(t)$ 的二阶方程传递函数分子将含 $s$ 项零点位置改变——这是学生高频出错点务必核对题干输出定义。2.2 将微分方程转化为传递函数 $H(s)$代数推导与 MATLAB 验证并行对上述 RLC 方程两边做单边拉氏变换设零初始条件得$$ L s^2 I(s) R s I(s) \frac{1}{C} I(s) s V_s(s) \quad \Rightarrow \quad H(s) \frac{I(s)}{V_s(s)} \frac{s}{L s^2 R s \frac{1}{C}} $$以典型参数 $R2\Omega, L1\text{H}, C0.5\text{F}$ 为例代入得$$ H(s) \frac{s}{s^2 2s 2} $$此即系统传递函数。在 MATLAB 中需将其转化为tf对象以便后续仿真% 定义系统参数严格对应题设 R 2; L 1; C 0.5; % 手动计算传递函数分子分母系数按 s 降幂排列 num [1 0]; % s 的系数s^1 0*s^0 den [L R 1/C]; % s^2 R*s 1/C → [1, 2, 2] % 创建传递函数对象 sys tf(num, den);2.2.1 为什么不用ode45直接解微分方程——tf对象的不可替代性初学者易陷入“既然有微分方程就该用ode45数值求解”的误区。但实验报告三的核心目标是验证系统时域特性与传递函数理论的一致性而非单纯求数值解。tf对象封装了系统全部频域与复频域信息可直接调用impulse,step,lsim等函数生成理论响应曲线并支持pole,zero,damp等分析指令。若仅用ode45则无法自动关联极点位置、阻尼比、自然频率等关键指标丧失实验教学意图。2.3 构建tf对象后的基础验证检查极点、零点与稳定性创建sys后必须立即执行三项基础验证否则后续仿真结果不可信% 1. 查看极点决定系统稳定性与响应形态 poles pole(sys); disp(系统极点); disp(poles); % 2. 查看零点影响响应起始斜率与超调 zeros zero(sys); disp(系统零点); disp(zeros); % 3. 计算阻尼比与无阻尼振荡频率用于分类响应类型 [wn, zeta, p] damp(sys); disp(阻尼比 ζ ); disp(zeta); disp(无阻尼自然频率 ωn ); disp(wn);对于H(s) s/(s^2 2s 2)运行结果应为极点$-1 \pm j1$共轭复根实部为负 → 稳定零点$s 0$位于原点 → 冲激响应起始值为 0阻尼比 $\zeta 0.707$$\omega_n \sqrt{2} \approx 1.414$ → 欠阻尼二阶系统注意若pole(sys)返回正实部极点说明参数输入错误如1/C写成C或微分方程列错必须回溯修正。MATLAB 不会主动报错但后续impulse曲线将发散导致实验结论失效。3. 用impulse和lsim生成并对比系统响应解决离散采样与理论解析解的匹配问题3.1 生成理论冲激响应 $h(t)$impulse函数的正确调用与时间向量设置impulse(sys)默认绘制 0~10 秒响应但实验要求精确对比解析解需手动控制时间向量t并获取数值响应数据% 设定高精度时间向量避免 aliasing t 0:0.001:5; % 步长 1ms覆盖 5 秒足够观察衰减 % 调用 impulse 获取数值 h(t) 数据 [h_t, t_out] impulse(sys, t); % 验证 t_out 与 t 严格一致MATLAB 有时会微调 if ~isequal(t_out, t) warning(impulse 返回时间向量与输入不一致使用 t_out); t t_out; end3.1.1 关键参数解析t步长为何必须 ≤ 0.001 秒冲激响应 $h(t)$ 在欠阻尼系统中含 $e^{-\sigma t} \sin(\omega_d t)$ 项本例 $\sigma 1$, $\omega_d 1$。根据奈奎斯特采样定理最高频率成分 $\omega_d$ 对应周期 $T 2\pi$需采样频率 $f_s 2\omega_d/(2\pi) \approx 0.318$ Hz → 采样间隔 $ 3.14$ 秒这显然错误。实际应按包络衰减时间常数判断$e^{-t}$ 在 $t4$ 时衰减至 $e^{-4} \approx 0.018$故需在 $[0,4]$ 内密集采样。步长 0.001 秒确保每周期至少采样 6280 点可准确捕捉正弦振荡细节。若用t0:0.01:5步长 10msh_t将严重失真与解析解偏差超 20%。3.2 推导并绘制解析解 $h(t)$手算与符号计算双重验证本例 $H(s) s/(s^2 2s 2)$部分分式分解后反变换得$$ h(t) e^{-t} \left( \cos t - \sin t \right) u(t) $$在 MATLAB 中用符号工具箱验证syms s t; H_s s / (s^2 2*s 2); h_sym ilaplace(H_s, s, t); h_analytic matlabFunction(h_sym); % 转为数值函数 % 计算解析解在相同 t 上的值 h_a h_analytic(t);3.2.1 解析解与数值解的误差量化用 RMS 误差评估仿真精度将impulse输出h_t与解析解h_a在相同t上对比计算均方根误差RMSrms_error sqrt(mean((h_t - h_a).^2)); fprintf(冲激响应 RMS 误差 %.2e\n, rms_error);合格标准rms_error 1e-3。若大于此值需检查t步长是否过大见 3.1.1sys是否为连续时间对象isct(sys)应返回1是否误用c2d进行了离散化实验报告三严禁离散化3.3 用lsim求解任意输入下的零状态响应单位阶跃与三角波的实践差异lsim是验证系统线性时不变性的核心工具。实验常要求输入 $x(t) u(t)$单位阶跃和 $x(t) \text{tri}(t)$三角波二者响应形态差异极大% 单位阶跃输入注意MATLAB 的 step 输入默认为 u(t)但 lsim 需显式构造 u_t ones(size(t)); % u(t) 在 t0 为 1 % 三角波输入0~2 秒线性上升2~4 秒线性下降其余为 0 x_tri zeros(size(t)); idx_rise t 0 t 2; idx_fall t 2 t 4; x_tri(idx_rise) t(idx_rise)/2; % 斜率 0.5 x_tri(idx_fall) 1 - (t(idx_fall)-2)/2; % 斜率 -0.5 % 分别仿真 [y_step, ~] lsim(sys, u_t, t); [y_tri, ~] lsim(sys, x_tri, t);3.3.1 为什么lsim的输入向量长度必须与t严格一致lsim(sys, u, t)要求u是长度为length(t)的列向量MATLAB 按t(i)时刻施加u(i)幅值。若u长度不匹配MATLAB 报错Input vector length must match time vector length。常见错误是用u heaviside(t)符号函数直接传入因heaviside返回符号对象而非数值向量。必须用ones(size(t))或double(t0)显式构造。4. 实验报告三的三大高危陷阱参数单位、初始条件、图形标注规范4.1 参数单位陷阱电容值C0.5F是理想化设定实际需换算为标准单位题目给出的C0.5F是教学简化真实电容多为 μF 级但学生易忽略单位一致性。若误将C0.5当作0.5μF则1/C 2e6den [1, 2, 2e6]导致极点实部巨大过阻尼impulse响应呈指数快衰减与理论预期完全不符。解决方案所有参数必须按 SI 单位制输入并在代码注释中明确标注% 参数说明SI 单位 % R 2 % 电阻单位欧姆 (Ω) % L 1 % 电感单位亨利 (H) % C 0.5 % 电容单位法拉 (F) ← 注意非 μF4.2 初始条件陷阱impulse和step默认零初始条件lsim可设非零初值实验报告三明确要求“零状态响应”故impulse,step,lsim均需保证初始状态为零。但lsim支持指定初始状态向量x0% 错误未指定 x0MATLAB 默认 x0[0;0]但需显式声明以防误解 [y, t_out, x] lsim(sys, u_t, t, [0; 0]); % x0 [i(0); di/dt(0)] [0;0] % 若题目要求非零初值如 i(0)1, di/dt(0)0则 x0_nonzero [1; 0]; [y_nonzero, ~, ~] lsim(sys, u_t, t, x0_nonzero);提示tf对象无状态变量lsim内部将其转为状态空间ss模型。x0维度等于系统阶数本例为 2顺序为[x1; x2]对应状态变量选择如x1i,x2di/dt。务必查阅ss(sys)输出确认状态定义。4.3 图形标注规范华南理工实验报告对图表的硬性要求实验报告三评分细则中图表占 30% 分值具体要求横轴必须标注t (s)纵轴标注物理量及单位如i(t) (A)多曲线图需用legend区分字体大小 ≥12解析解与数值解对比图必须添加grid on和xlabel,ylabel冲激响应图需标出峰值时间t_p和稳态值本例为 0合规绘图示例figure; plot(t, h_t, b-, LineWidth, 1.5); hold on; plot(t, h_a, r--, LineWidth, 1.5); xlabel(t (s), FontSize, 12); ylabel(h(t) (A), FontSize, 12); title(冲激响应 h(t)数值解实线vs 解析解虚线, FontSize, 13); legend(impulse(), 解析解, Location, best); grid on; set(gca, FontSize, 11);5. 进阶技巧用lsim验证卷积积分及impulse结果的物理量纲校验5.1 用lsim输出验证卷积定理$y(t) x(t) * h(t)$实验报告三常要求证明卷积定理。可利用conv函数计算数值卷积与lsim结果对比% 计算 x(t)*h(t) 数值卷积注意conv 输出长度为 length(x)length(h)-1 y_conv conv(u_t, h_t) * (t(2)-t(1)); % 乘以 dt 实现积分近似 % 截取与 t 等长的部分卷积首尾有延拓取中间段 len_match length(t); y_conv_trunc y_conv(1:len_match); % 与 lsim 结果对比 rms_conv sqrt(mean((y_step - y_conv_trunc).^2)); fprintf(卷积积分 RMS 误差 %.2e\n, rms_conv);若rms_conv 1e-3则验证成功。关键点conv结果需乘以dt即t(2)-t(1)才等效于积分 $\int x(\tau)h(t-\tau) d\tau$否则量纲错误u_t无量纲h_t单位 Aconv输出单位 A·s乘dts后得 A。5.2impulse输出的物理量纲校验从单位冲激的定义出发单位冲激 $\delta(t)$ 定义为 $\int_{-\infty}^{\infty} \delta(t) dt 1$量纲为 $[t]^{-1}$如 s⁻¹。而impulse(sys)仿真中MATLAB 将 $\delta(t)$ 近似为高度 $1/dt$、宽度 $dt$ 的矩形脉冲故h_t的量纲应为输出物理量 / 输入物理量 × 时间。本例输入为电压 $v_s(t)$V输出为电流 $i(t)$A故 $h(t)$ 单位为 A/V·s S·s西门子·秒。校验方法max(abs(h_t))应与理论峰值 $|h(t_p)| e^{-t_p}|\cos t_p - \sin t_p|$ 量级一致本例 $t_p \approx 0.785$ s理论峰值 ≈ 0.32 A/V·s。若max(h_t)为 320说明dt未参与归一化需检查impulse调用是否遗漏时间向量。提示impulse(sys, t)自动完成归一化impulse(sys)默认时间向量则内部使用dt0.01但不透明。为可控性始终显式传入t。将h_t乘以t(2)-t(1)后其积分 $\sum h_t \cdot dt$ 应近似等于系统直流增益 $H(0)$。本例 $H(0) 0$故 $\int_0^\infty h(t) dt \approx 0$可计算sum(h_t)*(t(2)-t(1))验证结果应在1e-4量级。本文还有配套的精品资源点击获取

关于本文作者

来自尧图内容编辑团队

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

尧图内容编辑团队

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

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

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

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

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

网站改版的5个关键决策

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

获取专属建站方案

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

立即免费咨询