![[信号与系统个人笔记]第二章 连续时间信号与系统的时域分析](http://pic.xiahunao.cn/yaotu/[信号与系统个人笔记]第二章 连续时间信号与系统的时域分析)
[信号与系统个人笔记]第二章 连续时间信号与系统的时域分析1. 引言时域分析的核心思想在信号与系统中时域分析是最直观的分析方法。它直接在时间维度上研究信号的变化规律以及系统对信号的响应。本章将我们从基础的信号表示开始逐步深入到系统的卷积积分等高级概念。作为编程讲师我会在关键概念后附带 Python 代码示例帮助你通过编程实践理解抽象理论。## 2. 连续时间信号的基本表示### 2.1 常见信号类型连续时间信号可以用数学函数 ( x(t) ) 表示其中 ( t ) 是连续的时间变量。常见的信号包括-单位阶跃信号( u(t) \begin{cases} 0, t 0 \ 1, t \geq 0 \end{cases} )-单位冲激信号( \delta(t) )具有筛选性质 ( \int_{-\infty}^{\infty} x(t) \delta(t-t_0) dt x(t_0) )-指数信号( e^{at} )其中 ( a ) 为复数### 2.2 信号的基本运算包括时移、反折、尺度变换等。例如时移信号 ( x(t - t_0) ) 表示将原信号向右平移 ( t_0 ) 个单位。## 3. 系统的描述与线性时不变LTI系统### 3.1 系统的基本性质系统是将输入信号 ( x(t) ) 映射为输出信号 ( y(t) ) 的载体。重点研究线性时不变LTI系统它满足-线性对输入的叠加响应等于各自响应的叠加-时不变输入延迟导致输出同样延迟### 3.2 系统建模LTI 系统可以用微分方程描述例如一阶 RC 电路的微分方程( \frac{dy(t)}{dt} \frac{1}{RC} y(t) \frac{1}{RC} x(t) )。## 4. 卷积积分LTI系统的核心工具### 4.1 卷积的定义对于 LTI 系统输出 ( y(t) ) 等于输入 ( x(t) ) 与系统冲激响应 ( h(t) ) 的卷积[y(t) x(t) * h(t) \int_{-\infty}^{\infty} x(\tau) h(t-\tau) d\tau]这体现了系统的记忆性当前输出是过去所有输入的加权和。### 4.2 卷积的计算步骤1. 将 ( h(\tau) ) 反折为 ( h(-\tau) )2. 平移得到 ( h(t-\tau) )3. 计算重叠区域的积分### 4.3 编程示例数值卷积模拟以下 Python 代码演示如何用离散近似计算两个连续信号的卷积。pythonimport numpy as npimport matplotlib.pyplot as pltdef numerical_convolution(x, h, dt): 使用数值方法近似计算连续信号的卷积 参数: x: 输入信号数组 h: 冲激响应数组 dt: 采样间隔 返回: y: 卷积结果数组 t: 对应的时间轴 # 计算卷积结果长度 len_y len(x) len(h) - 1 y np.zeros(len_y) # 实现卷积对于每个时间点计算加权和 for n in range(len_y): for k in range(len(x)): if n - k 0 and n - k len(h): y[n] x[k] * h[n - k] # 生成时间轴假设信号从t0开始 t np.arange(0, len_y * dt, dt) return y, t# 示例矩形脉冲与指数衰减信号的卷积dt 0.01 # 采样间隔t np.arange(0, 5, dt)# 输入信号宽度为1的矩形脉冲x np.where((t 0) (t 1), 1, 0)# 系统冲激响应指数衰减h np.exp(-t) * (t 0) # 因果系统# 计算卷积y, t_conv numerical_convolution(x, h, dt)# 绘制结果plt.figure(figsize(10, 4))plt.plot(t_conv, y, b-, label卷积输出 y(t))plt.xlabel(时间 t (秒))plt.ylabel(幅度)plt.title(数值卷积结果矩形脉冲通过指数系统)plt.grid(True)plt.legend()plt.show()代码注释解释-numerical_convolution函数模拟连续卷积的离散版本用双重循环实现加权和。- 矩形脉冲作为输入指数衰减作为系统响应输出反映了系统对脉冲的平滑效果。## 5. 系统的零输入响应与零状态响应### 5.1 分解原理对于 LTI 系统总响应可以分解为-零输入响应仅由初始状态引起与输入无关-零状态响应仅由输入引起初始状态为零这体现了线性系统的可分离性。### 5.2 求解方法零输入响应通过求解齐次微分方程得到零状态响应通过卷积积分得到。两者之和即为全响应。## 6. 冲激响应与阶跃响应### 6.1 冲激响应 ( h(t) )当输入为单位冲激信号 ( \delta(t) ) 时系统的输出即为冲激响应 ( h(t) )。它是系统特性的完整描述。### 6.2 阶跃响应 ( s(t) )阶跃响应是单位阶跃输入下的输出与冲激响应关系为( s(t) \int_{-\infty}^{t} h(\tau) d\tau )。### 6.3 编程示例冲激响应与阶跃响应的关系验证以下代码验证冲激响应与阶跃响应的积分关系。pythonimport numpy as npimport matplotlib.pyplot as pltdef impulse_response(t): 示例系统一阶低通滤波器的冲激响应 h(t) e^{-t} u(t) return np.exp(-t) * (t 0)def step_response_via_integration(h, t, dt): 通过积分冲激响应计算阶跃响应 参数: h: 冲激响应数组 t: 时间轴 dt: 采样间隔 返回: s: 阶跃响应数组 s np.zeros_like(t) for i in range(len(t)): # 从负无穷积分到当前时间点离散累积 s[i] np.trapz(h[:i1], t[:i1]) # 使用梯形积分 return s# 创建时间轴dt 0.01t np.arange(0, 5, dt)# 计算冲激响应h impulse_response(t)# 计算阶跃响应s step_response_via_integration(h, t, dt)# 理论上的阶跃响应对于 h(t)e^{-t}u(t)s(t)1-e^{-t}s_theoretical 1 - np.exp(-t)# 绘制对比plt.figure(figsize(12, 5))plt.subplot(2, 1, 1)plt.plot(t, h, r-, label冲激响应 h(t))plt.xlabel(时间 t)plt.ylabel(幅度)plt.title(冲激响应)plt.grid(True)plt.legend()plt.subplot(2, 1, 2)plt.plot(t, s, b-, label数值积分得到的阶跃响应)plt.plot(t, s_theoretical, g--, label理论阶跃响应)plt.xlabel(时间 t)plt.ylabel(幅度)plt.title(阶跃响应验证)plt.grid(True)plt.legend()plt.tight_layout()plt.show()代码注释解释-impulse_response定义了一个简单系统的冲激响应。- 通过np.trapz实现数值积分验证 ( s(t) \int_{-\infty}^{t} h(\tau) d\tau ) 的关系。- 理论上阶跃响应为 ( 1 - e^{-t} )与实际结果完美吻合。## 7. 高级应用卷积的工程意义### 7.1 信号平滑与滤波卷积在信号处理中用于设计滤波器。例如使用矩形窗函数与信号卷积可实现移动平均滤波抑制高频噪声。### 7.2 系统辨识通过测量输入输出信号可以反卷积得到系统的冲激响应从而分析系统特性。这在通信和控制系统中有重要应用。## 8. 总结本章从连续时间信号的基本表示出发逐步深入到 LTI 系统的时域分析核心——卷积积分。通过零输入响应与零状态响应的分解我们理解了系统动态的完整描述。两个 Python 代码示例分别演示了数值卷积的实现和冲激响应与阶跃响应的关系验证将抽象理论转化为可操作的编程实践。理解这些基础概念是为后续频域分析如傅里叶变换奠定坚实基石的关键。在实际工程中时域分析是调试系统、设计滤波器的第一步掌握它意味着你能从时间角度洞察信号的流动与变换。