文章目录
为什么工程代码里根本“不实现” δ 函数?——从积分公式到 Python 工程实现
在学习 信号处理 / 控制系统 / 拉普拉斯变换 时,经常会看到类似公式:
∫ − ∞ + ∞ δ ( τ − 3 ) e − s τ d τ = e − 3 s \int_{-\infty}^{+\infty} \delta(\tau-3)e^{-s\tau} d\tau = e^{-3s} ∫−∞+∞δ(τ−3)e−sτdτ=e−3s
很多教材和博客直接给出结果,却没有解释一个工程人员真正关心的问题:
δ(τ−3) 到底是怎么“积分”的?在 Python 代码里应该怎么实现?
一、工程中遇到的真实困惑
初学时很容易产生如下误解:
δ(τ−3) 是不是在 τ=3 处“无限大”?
那积分是不是要算一个奇怪的面积?
于是有人尝试在代码中写:
def delta(t):
if t == 3:
return float('inf')
return 0
👉 这是完全错误的工程思路。
二、一个必须接受的工程结论
δ 在工程代码中不是函数,而是一种规则或触发机制。
工程中:
- ❌ 不实现 δ 函数本身
- ✅ 只实现 δ 在积分、卷积和系统中的等价效果
三、δ 在工程中的真实含义
数学上有一个核心规则:
∫ δ ( t − a ) f ( t ) d t = f ( a ) \int \delta(t-a)f(t)dt = f(a) ∫δ(t−a)f(t)dt=f(a)
工程解释只有一句话:
在时刻 a,对信号取一次值。
四、工程中正确的实现方式
方法 1:直接取值(最推荐)
def delta_integral(f, a):
return f(a)
import numpy as np
signal = lambda t: np.exp(-2*t)
print(delta_integral(signal, 3))
方法 2:连续系统仿真(高斯近似)
import numpy as np
def delta_gaussian(t, a, eps):
return np.exp(-(t-a)**2/eps**2)/(np.sqrt(np.pi)*eps)
方法 3:离散系统中的 δ
import numpy as np
d = np.zeros(20)
d[10] = 1
五、δ 卷积在工程中的含义
理论:
x ( t ) ∗ δ ( t − T ) = x ( t − T ) x(t) * \delta(t-T) = x(t-T) x(t)∗δ(t−T)=x(t−T)
工程实现:
y = np.roll(x, shift)
六、工程总结
- δ 积分 → 取值
- δ 卷积 → 延迟
- δ 在代码中 → 索引 / 触发
δ 是理论与工程之间的翻译桥梁,而不是一个需要实现的函数。
1071

被折叠的 条评论
为什么被折叠?



