LTI系统时频分析实战:卷积、傅里叶与极点响应的MATLAB验证
2026/9/17 18:31:58 网站建设 项目流程

简介:本资源是华南理工大学《信号与系统》课程配套的第二份实验报告,面向电子信息、通信工程等专业本科生,聚焦离散傅里叶变换(DFT)与快速傅里叶变换(FFT)在频谱分析中的核心应用。报告系统覆盖DFT原理、参数选取(如点数N对分辨率与泄漏的影响)、误差来源识别(混叠、截断、窗函数选择)、补零与非矩形窗优化等关键实践环节,并通过8组MATLAB实操案例(含多频信号分离、指数衰减序列分析、相位谱绘制等)深化理论理解。压缩包为单个480KB的docx文档,内容完整包含实验目的、详细代码、图像结果、对比分析及结论总结,结构清晰便于复现与拓展。目前已有302人学习下载,适合课程复习、实验预习、MATLAB信号处理入门及频谱分析方法巩固。

1. 信号与系统实验报告二:不是交作业的模板,而是理解卷积、傅里叶变换与系统响应关系的实操锚点

华南理工大学《信号与系统》课程的实验报告二,通常聚焦于连续时间系统的时域与频域联合分析——它不是对课本公式的机械复现,而是要求学生亲手用 MATLAB 或 Python 构建典型信号(如矩形脉冲、指数衰减、正弦调制)、搭建一阶/二阶线性时不变(LTI)系统模型,并通过数值计算验证:同一个系统,为何在时域看是卷积响应,在频域看却是乘积响应?为什么阶跃响应的上升时间、冲激响应的振荡特性,能直接映射到系统函数极点的位置?这份报告真正考察的,是能否把抽象的 $ H(s) $、$ h(t) $、$ Y(j\omega) $ 三者打通,让数学表达式在代码中“活”起来。适合刚学完拉普拉斯变换、正在建立系统函数直觉的大二学生,也适合需要快速复现经典 LTI 分析流程的工程实践者——你不需要从零推导公式,但必须清楚每行代码在对应哪个物理环节。


2. 用 MATLAB 实现连续 LTI 系统的时域仿真:从微分方程到数值解的完整链路

2.1 明确实验目标:以一阶 RC 低通电路为基准建模

实验报告二最常指定的系统是一阶 RC 低通滤波器,其微分方程为
$$ RC \frac{dy(t)}{dt} + y(t) = x(t) $$
对应系统函数 $ H(s) = \frac{1}{RCs + 1} $,时间常数 $ \tau = RC $。选择该系统是因为它结构简单、解析解明确($ h(t) = \frac{1}{RC}e^{-t/(RC)}u(t) $),便于验证数值结果的正确性。常见错误是直接套用lsim函数却不检查输入信号采样率是否满足奈奎斯特准则——当输入为 10 kHz 正弦信号而采样率仅设为 1 kHz 时,结果必然失真。因此,采样率必须高于信号最高频率的 5 倍以上,这是本节所有仿真的前提。

2.2 构建信号源:三种典型输入的生成与参数控制

实验要求对比阶跃、冲激、正弦三类输入下的系统响应。注意:MATLAB 中没有真正的“冲激”,需用窄脉冲近似。以下代码生成符合实验规范的信号:

% 参数设定(按实验指导书常见值) fs = 10000; % 采样率 10 kHz,确保覆盖音频段 T = 0.1; % 总时长 0.1 秒 t = 0:1/fs:T-1/fs; % 时间向量 % 1. 单位阶跃信号 u(t) x_step = double(t >= 0); % 2. 近似单位冲激 δ(t):宽度为 1 个采样点、面积为 1 的矩形脉冲 x_impulse = zeros(size(t)); x_impulse(1) = fs; % 幅度 = fs,保证 ∫δ(t)dt ≈ 1 % 3. 1 kHz 正弦信号,幅值 1,初相 0 f_in = 1000; x_sin = sin(2*pi*f_in*t);

提示x_impulse(1) = fs是关键。因为数值积分用矩形法,单点高度 × 宽度(1/fs)= 面积,故高度必须为fs才使面积≈1。若设为1,则实际冲激强度仅为1/fs,导致后续h(t)幅度严重偏低。

2.3 求解系统响应:ode45lsim的适用边界与精度对比

对一阶微分方程,既可用数值 ODE 求解器ode45,也可用控制系统工具箱的lsim。二者本质一致,但接口和默认行为不同:

% 方法一:用 ode45 直接解微分方程 dy/dt = (x - y)/(RC) RC = 0.001; % 1 ms 时间常数 ode_fun = @(t, y, x_val) (x_val - y) / RC; y_ode = zeros(size(t)); y_ode(1) = 0; % 初始状态为 0 for k = 2:length(t) [t_span, y_out] = ode45(@(t,y) ode_fun(t,y,x_step(k)), ... [t(k-1), t(k)], y_ode(k-1)); y_ode(k) = y_out(end); end % 方法二:用 lsim(推荐,更稳定且支持多输入) sys = tf(1, [RC, 1]); % H(s) = 1/(RC*s + 1) [y_lsim, t_lsim] = lsim(sys, x_step, t);
对比项ode45方式lsim方式
适用场景自定义非线性系统、需嵌入复杂逻辑时标准 LTI 系统,强调可复现性与教学规范
精度控制依赖odesetRelTol/AbsTol内置自适应步长,对阶跃不敏感
初值设置必须显式传入y0默认零初始状态,lsim(sys,x,t,y0)可指定
实验报告要求较少采用,易因步长选择不当产生振荡华工实验指导书明确推荐,结果更易对标

注意lsim返回的t_lsim可能与输入t长度不同(因内部重采样),务必用t_lsim绘图,否则横轴错位。若需严格对齐,应使用t作为lsim输入并接受其内部插值。

2.4 验证冲激响应:从数值解反推系统函数极点位置

实验报告二的核心验证点之一,是通过数值求得的h(t)推导出系统极点。对一阶系统,h(t) = (1/RC)e^{-t/RC},取对数后应为直线:

% 用冲激输入得到数值 h(t) [y_h, ~] = lsim(sys, x_impulse, t); h_num = y_h / fs; % 归一化:因 x_impulse 面积为 1,y_h 即 h(t) 近似值 % 对 h(t) 取自然对数(避开 t=0 处 log(0)) t_valid = t(2:end); h_valid = h_num(2:end); log_h = log(h_valid); % 线性拟合 log(h) = -t/RC + log(1/RC) p = polyfit(t_valid, log_h, 1); estimated_tau = -1/p(1); % 斜率 = -1/τ estimated_pole = -1/estimated_tau; % 极点 s = -1/τ fprintf('估计时间常数 τ = %.6f s,极点位置 s = %.3f\n', estimated_tau, estimated_pole);

此步骤将抽象的“极点决定衰减快慢”具象为一条拟合直线的斜率——学生能亲眼看到log(h(t))如何随t线性下降,从而建立极点实部与响应速度的定量联系。若拟合 R² < 0.999,说明x_impulse宽度不够或采样率不足,需调整x_impulse(1) = fs并提高fs


3. 频域分析实战:用 FFT 解析系统频率响应,定位带宽与相位失真

3.1 从时域响应y(t)到频域Y(jω):FFT 参数设置的三大陷阱

实验报告二要求绘制系统输出的幅频/相频特性。直接对y_lsim调用fft很容易出错,关键在于三点:

  1. 补零长度必须是 2 的幂次:避免 FFT 算法效率下降及频谱泄漏;
  2. 单边谱需乘 2(除 DC 和 Nyquist 分量):因 FFT 输出双边谱,能量被平分;
  3. 频率轴必须用fs校准f = (0:N-1)*fs/N给出的是从 0 到fs的频率,但实际有效带宽为0fs/2
N_fft = 2^nextpow2(length(y_lsim)); % 补零至最近 2 的幂 Y_fft = fft(y_lsim, N_fft); P2 = abs(Y_fft/N_fft); % 归一化幅度 P1 = P2(1:N_fft/2+1); % 单边谱 P1(2:end-1) = 2*P1(2:end-1); % 除 DC 和 Nyquist 外乘 2 f = fs*(0:(N_fft/2))/N_fft; % 正确频率轴 % 绘制幅频特性(对数坐标) figure; semilogx(f, 20*log10(P1)); xlabel('Frequency (Hz)'); ylabel('Magnitude (dB)'); title('Output Spectrum of Step Response'); grid on;

提示:若f轴最大值显示为fs(如 10 kHz),但实际只关心0~5 kHz,应在xlim([1 5000])后再加grid on,否则网格线会延伸至无效高频区,干扰判断。

3.2 理论频率响应|H(jω)|的解析计算与数值 FFT 结果对齐

一阶低通的理论幅频响应为
$$ |H(j\omega)| = \frac{1}{\sqrt{1 + (\omega RC)^2}} $$
将其与 FFT 结果叠加绘图,是验证仿真实验可靠性的黄金标准:

omega_theory = 2*pi*f(1:end-1); % 排除 Nyquist 点 H_theory = 1 ./ sqrt(1 + (omega_theory * RC).^2); % 叠加绘图(FFT 结果需转换为理论量纲) hold on; semilogx(f(1:end-1), 20*log10(H_theory), 'r--', 'LineWidth', 1.5); legend('FFT of y(t)', '|H(j\omega)| (Theory)');

当两条曲线在f < fs/10区域完全重合,说明仿真设置合理;若在f > fs/5处出现偏差,即暴露了采样率不足问题——此时fs至少需提升至 50 kHz。

3.3 -3 dB 带宽测量:用插值法精确定位截止频率

实验报告二明确要求标出-3 dB带宽。手动找点误差大,应使用线性插值:

mag_dB = 20*log10(P1); mag_ref = max(mag_dB) - 3; % -3 dB 参考值 % 在幅频曲线上找到最接近 mag_ref 的两个点 idx_low = find(mag_dB(1:end-1) >= mag_ref & mag_dB(2:end) < mag_ref, 1); if isempty(idx_low), error('No -3dB point found'); end % 线性插值求精确 f_c f_c = interp1(mag_dB(idx_low:idx_low+1), f(idx_low:idx_low+1), mag_ref); fprintf('Measured -3dB bandwidth: %.1f Hz\n', f_c);

该方法比findpeaks更稳健,尤其当mag_dB存在噪声波动时。华工实验报告评分细则中,“带宽测量误差 < 2%” 是高分关键项,插值法可轻松达标。


4. 系统稳定性与因果性验证:从冲激响应衰减性到 ROC 判断

4.1 冲激响应绝对可积性检验:数值积分判定 BIBO 稳定性

BIBO 稳定性的充要条件是 $ \int_{-\infty}^{\infty} |h(t)| dt < \infty $。对数值h_num,需验证其离散积分收敛:

% 计算数值积分 ∫|h(t)|dt integral_h = sum(abs(h_num)) * (1/fs); % 矩形法积分 % 理论值:对一阶系统 ∫₀^∞ (1/RC)e^{-t/RC} dt = 1 fprintf('Numerical integral of |h(t)|: %.6f (theoretical: 1.0)\n', integral_h); if integral_h < 1.05 && integral_h > 0.95 disp('→ System is BIBO stable (numerically verified)'); else warning('Integral deviates >5%% — check h(t) truncation or sampling'); end

integral_h远大于 1(如 10),说明h_num截断过早(t时长不足),应延长T5*RC以上;若远小于 1,说明x_impulse强度不足或fs过低。

4.2 因果性验证:检查h(t)是否在t<0区域严格为零

因果系统要求h(t) = 0fort < 0。数值上,检查h_num的前 10 个点:

h_neg = h_num(1:10); if all(abs(h_neg) < 1e-12) disp('→ System is causal (h(t) ≈ 0 for t<0)'); else fprintf('Non-causal component detected: max|h(t<0)| = %.2e\n', max(abs(h_neg))); end

注意lsim默认生成因果响应,但若误用filtfilt(零相位滤波)或手动构造非因果h(t),此处会报警。实验报告中若出现非因果警告,需回溯系统模型是否引入了未来时刻依赖。

4.3 ROC(收敛域)的隐式体现:从h(t)形态反推 s 域收敛区域

虽然实验报告二不显式要求画 ROC 图,但h(t)的形态直接揭示 ROC:

  • h(t)为右边信号(如e^{-at}u(t), a>0),ROC 为Re{s} > -a
  • h(t)为左边信号(如-e^{at}u(-t), a>0),ROC 为Re{s} < a
  • h(t)为双边信号(如e^{-a|t|}),ROC 为-a < Re{s} < a

对本实验的一阶 RC 系统,h_num严格为正且单调衰减,即h(t) = e^{-t/RC}u(t),故 ROC 为Re{s} > -1/RC。在报告中写明此结论,比单纯抄写公式更能体现对拉普拉斯变换本质的理解。


5. 实验报告二的高分技巧:图表标注、误差分析与物理意义解读

5.1 图表必须包含的四要素:坐标轴物理量、单位、理论曲线、关键点标注

华工《信号与系统》实验报告评分表中,“图表规范性”占 20 分。合格图表需同时满足:

  • 横轴标注t (s)f (Hz),纵轴标注y(t)|Y(jω)| (dB)
  • 所有曲线注明图例(如'Step Response','Theoretical H(jω)');
  • 在幅频图中标出-3 dB点,用text(f_c, mag_ref, '\leftarrow f_c')箭头标注;
  • 冲激响应图中用stem绘制离散点,并叠加plot(t, (1/RC)*exp(-t/RC), 'r:')理论曲线。

缺失任一要素,均会被扣分。切忌用xlabel('Time')这类无单位标签。

5.2 误差来源分析模板:从采样率到数值算法的三层归因

高分报告必有误差分析段落,不能只写“存在误差”。应分层说明:

误差层级具体原因对结果的影响改进方法
采样层fs = 10 kHz导致f > 5 kHz频谱混叠高频分量失真,f_c测量偏高提高fs至 50 kHz
算法层lsim内部插值引入相位偏移正弦响应相位角误差 ±2°改用ode45并固定步长
截断层t时长仅0.1 s,未覆盖h(t)尾部被截断,积分值偏低延长T0.005 s(5×τ)

此表格直接对应实验指导书中的“误差讨论”要求,阅卷教师可快速定位学生是否真做实验。

5.3 物理意义解读:把数学结果翻译成电路语言

最后一段结论不能止步于“验证了理论”。例如:

“测得f_c ≈ 159 Hz,与理论值1/(2πRC) = 159.15 Hz高度一致,说明该 RC 电路的实际带宽由电阻R与电容C的乘积唯一决定。当输入信号频率超过f_c,输出幅度将以 -20 dB/decade 衰减,这正是低通滤波器抑制高频噪声的物理基础。实验中观察到阶跃响应上升时间t_r ≈ 2.2τ,印证了‘带宽越宽,响应越快’的工程权衡——设计音频放大器时,需在f_ct_r间折中。”

这种将f_ct_rτ关联到具体电路元件与工程约束的表述,是区分“完成实验”与“理解系统”的分水岭。

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询