微分方程和差分方程的区别与联系

前言

微分方程和差分方程的知识我们应该都知道,因为在数字信号处理中微分方程涉及了模拟滤波器,差分方程涉及了数字滤波器。但是有时会搞不清楚,或者说会在概念上混淆。虽然在做算法过程中可能不会受到太大影响,但是这种基础知识我们是有必要搞清楚的,这是算法人员的基本素养。下面就分别来讲讲微分方程、差分方程以及它们之间的区别和联系。

同时,在网上看到的关于它们的文章也只是粗略的对比,讲的也并不准确。

微分方程

我们从高等数学的知识知道,微分方程是求解未知函数的,同时它的基本元素是导数,也就是说是导数的函数,而真正求解的是未知函数,比如数字信号处理中的线性常系数微分方程的模拟滤波器:
file (1)
它是模拟滤波器的一种。我们知道既然是导数,肯定是连续变量,这里就是连续时间信号,而再进一步就是拉普拉斯变换:
file (2)
当 s = jw,就是连续时间信号的傅里叶变换。这是连续时间信号的一整套知识体系。

使用差分方程来逼近微分方程(其中一种)

从高等数学的知识知道,导数本质上是信号值的差除以时间的差,并对它进行求极限,那么从这点,我们就可以推得使用极限形式的表达式来替换导数是可行的,但是如果直接用极限,不就等于导数了吗,这样意义不大。另外,信号可分为连续时间信号和离散时间信号,所以可以用离散时间信号来替代连续时间信号,而求得一个近似值,这就是所谓的逼近了。接触过 IIR 滤波器的读者,对导数逼近设计 IIR 滤波器的方法应该并不陌生,其中就使用了这个原理。
一阶导数的替换公式如下(式(1)的左边):
file (3)
其中等式左边是时间的一阶导数,而 T 是采样周期。
二阶导数的替换公式如下:
file (4)
如此,就可得到任意阶的差分等式替换(这里就不具体说了,在导数逼近设计 IIR 滤波器的方法中有详细讲解)。

差分方程

数字信号处理中,线性常系数差分方程的 IIR 滤波器是这样的:
file (5)
它是一个递归函数,那么我们现在提出问题了:式(1)和式(5)能对应起来吗?答案是肯定的

因为从式(3)和式(4)知,如果对式(1)所有阶数的导数进行替换,再对产生的式子进行重新排列,就会得出式(5)的结果,所不同的是系数而已,而系数就是我们需要求的。

相对应的,差分方程是对离散数据的操作,也就是离散时间信号,对应的就是 z 变换。当然当 z = exp(jw),就是离散时间的傅里叶变换。

结论

本篇举例讲解了微分方程和差分方程的基本关系,它们都是对应在时间域上,前者是连续时间变量,后者是离散时间变量;前者是拉普拉斯变换,后者是 z 变换。这些知识如果都理解透了,我们有时候会觉得这个很有趣,更会觉得这些显得都很和谐 ^_^

追求梦想,做最好的自己