已知两个信号x(t)=e^(-t)u(t)和h(t)=te^(-t/2)u(t),分别画出x(t),h(t)和卷积y(t)=x(t)*h(t)的波形,以及代码
时间: 2024-12-10 11:39:09 浏览: 18
已知信号 \( x(t) = e^{-t} \cdot u(t) \) 和 \( h(t) = t \cdot e^{-\frac{t}{2}} \cdot u(t) \),这里 \( u(t) \) 表示单位阶跃函数,\( x(t) \) 是指数衰减的冲激响应,而 \( h(t) \) 则是一个延迟且强度随时间增加的线性衰减信号。
这两个函数都是非负的,在时间域上,\( x(t) \) 在 \( t=0 \) 有突然的变化,然后逐渐衰减;而 \( h(t) \) 初始值为零,之后随着 \( t \) 的增加而上升,达到峰值后再逐步下降。
卷积的结果 \( y(t) = x(t) * h(t) \) 可以理解为 \( x(t) \) 向左移动并与 \( h(t) \) 相乘,然后积分得到的。由于 \( h(t) \) 具有延迟特性,所以 \( y(t) \) 的起始点会滞后于 \( x(t) \),并且在 \( t=0 \) 点会有 \( x(0) \cdot h(0) \) 的高峰。
为了可视化这些波形并计算卷积,我们通常可以使用数学软件如Matlab、Python(NumPy和SciPy库)、或者在线绘图工具(如Wolfram Alpha),下面给出一个简单的Python代码示例,假设你已经安装了`numpy`和`matplotlib`:
```python
import numpy as np
import matplotlib.pyplot as plt
# 定义函数
def x_t(t):
return np.exp(-t)
def h_t(t):
return t * np.exp(-t / 2)
def convolution(x, h):
return np.convolve(x, h, mode='same')
# 创建时间数组
t = np.linspace(0, 5, 1000)
# 绘制原始信号
plt.figure()
plt.plot(t, x_t(t), label='x(t)')
plt.plot(t, h_t(t), label='h(t)', linestyle='--')
plt.legend()
plt.title('Original signals')
# 计算并绘制卷积结果
y_t = convolution(x_t, h_t)
plt.figure()
plt.plot(t, y_t, label='y(t)')
plt.xlabel('Time (s)')
plt.ylabel('Amplitude')
plt.legend()
plt.title('Convolution result y(t) = x(t) * h(t)')
plt.show()
```
这个代码会生成两幅图,一幅显示 \( x(t) \) 和 \( h(t) \),另一幅展示它们的卷积 \( y(t) \)。
阅读全文