我们上节课学习了

  1. 在离散有限维空间中,任何线性系统都是通过矩阵间的相乘得到的
  2. 在连续无限维空间中,任何线性系统都是通过对核函数的积分得到的

 

 

脉冲响应(impulse response)

 

级联线性系统(Cascading linear system)

 

Python中脉冲响应函数 脉冲响应函数表达式_Python中脉冲响应函数

如果$L$与$M$都是线性的,有

$w=MLv$

在连续无限维空间中

$\begin{align*}
MLv
&=M\left( \int_{-\infty}^{\infty}k(x,y)v(y)dy \right )\\
&\approx M\left( \sum_{i=-\infty}^{\infty}k(x,y_i)v(y_i)\Delta y_i \right )\\
&=\sum_{-\infty}^{\infty}M\left( k(x,y_i)v(y_i)\Delta y_i \right )\\
&=\sum_{-\infty}^{\infty}M_x \left( k(x,y_i)v(y_i)\Delta y_i \right ) \qquad M\ deal\ with\ the\ function\ that\ Lv\ ouput\ based\ on\ x \\
&\approx \int_{-\infty}^{\infty}M_x(k(x,y))v(y)dy
\end{align*}$

 

 

脉冲响应的定义

上述关于级联的讨论是为了引出下面的这个结论:

任何线性系统都由对核(函数)的积分得到,核(函数)就是该线性系统对脉冲函数的响应。(Any linear system is given by integration against a kernel (impulse response).)

 

推导过程如下:

$\begin{align*}
v(x)
&=(\delta * v)(x)\\
&=\int_{-\infty}^{\infty}\delta(x-y)v(y)dy \qquad(\delta\ shift\ property)
\end{align*}$

那么线性系统有如下表示

$\begin{align*}
Lv(x)
&=L\left( \int_{-\infty}^{\infty}\delta(x-y)v(y)dy \right )\\
&=\int_{-\infty}^{\infty}L_x\delta(x-y)v(y)dy
\end{align*}$

令$h(x,y) = L_x\delta(x-y)$,则有,

$\displaystyle{ Lv(x) = \int_{-\infty}^{\infty}h(x,y)v(y)dy }$

 

其中$h(x,y)$是该线性系统的核函数,它由$L_x\delta(x-y)$得到,同时他也是该线性系统的脉冲响应。

脉冲响应的定义如下

  • $\delta(x-y)$是位置在$y$上的脉冲,$L_x\delta(x-y)$表示了把脉冲输入到该线性系统,此时系统会做出响应,并输出脉冲响应$h(x,y)$。

 

 

 

Schwartz核函数定理

如果$L$是广义函数(分布)的一个线性算符,即$L$在符合叠加性原则的基础上将一个广义函数变换为另一个广义函数,那么就会存在唯一的核$k$,使得$Lv = <k,v>$

 

 

傅里叶变换的脉冲响应

当输入脉冲函数$\delta(x-y)$,傅里叶变换会输出

$h(x,y) = \mathcal{F}(\delta(x-y)) = e^{-2\pi ixy}$

另外,傅里叶变换的公式如下

$\mathcal{F}f(x) = \displaystyle{ \int_{-\infty}^{\infty}e^{-2\pi ixy}f(y)dy }$

它的核函数为

$k(x,y) = e^{-2\pi ixy}$

我们注意到,核函数与脉冲响应式一样的,其中有如下关系:

  • 如果一个线性算符能表示成对于$k(x,y)$与输入函数乘积的积分形式,那么$k(x,y)$就是脉冲响应了。
  • 反过来说,如果我们能得到线性系统的脉冲响应,就能通过对脉冲响应和输入函数的乘积进行积分来表达该线性系统的线性算符。

 

 

离散有限维线性系统的脉冲响应

在连续无限维的线性系统中,脉冲响应是线性系统对输入脉冲$\delta(x-y)$的响应。在离散有限维线性系统也同样是对输入脉冲序列的响应,用矩阵乘法的表达如下:

$A\cdot \left[ \underline{\delta}_0,\underline{\delta}_1,\underline{\delta}_2,...,\underline{\delta}_{n-1} \right]
=A\cdot\begin{bmatrix}
1 &0  &0  &...  &0 \\
0 &1  &0  &...  &0 \\
0 &0  &1  &...  &0 \\
\vdots &\vdots  &\vdots  &...  &\vdots \\
0 &0  &0  &...  &1
\end{bmatrix}=A$

 

 

脉冲响应的例子

开关

$Lv = \Pi v$

它的脉冲响应为

$h(x,y) = L\delta(x-y) = \Pi(x)\delta(x-y) = \Pi(y)\delta(x-y) \qquad(\delta\ sampling\ property)$

对脉冲响应与输入函数乘积的积分会得到开关的线性算符

$\begin{align*}
\int_{-\infty}^{\infty}h(x,y)v(y)dy
&=\int_{-\infty}^{\infty}\Pi(y)\delta(x-y)v(y)dy\\
&=\int_{-\infty}^{\infty}\delta(x-y)\left( \Pi(y)v(y) \right )dy\\
&=\left(\delta * (\Pi v) \right )(x) \qquad (\delta\ shift\ property)\\
&=\Pi(x)v(x)
\end{align*}$

这个结果证明了前面的结论是正确的

 

 

 

卷积,连续无限维线性时不变系统

引入时移符号$\tau$

$\tau_a v(x) = v(x-a)$。

 

假设有用卷积表达的线性系统如下

$Lv = h*v$

如果我们对输入$v$进行延时$a$

$\begin{align*}
L\tau_a v(x)
&= (h*\tau_av)(x)\\
&= \int_{-\infty}^{\infty}h(x-y)v(y-a)dy \\
&= \int_{-\infty}^{\infty}h(x-z-a)v(z)dz \qquad (letting\ z=y-a) \\
&= \int_{-\infty}^{\infty}\left(h(x-z)*\delta(x-a) \right )v(z)dz \qquad (\delta\ shift\ property)\\
&= \left(\int_{-\infty}^{\infty}h(x-z)v(z)dz \right )*\delta(x-a)\\
&= (h*v)(x-a)\\
&= \tau_a(h*v)(x)\\
&= \tau_aLv(x)
\end{align*}$

结果显示该线性系统输出的延时与输入的延时同为$a$,这被称为线性时不变系统(Linear Time Invariant System)。

结论是:

  • 如果一个线性系统是由卷积给定的,那么他就是时不变的。

 

反过来也是成立的:

  • 如果一个线性系统是时不变的,那么它一定是由卷积给定的。

证明过程如下:

任何连续无限维线性系统都有如下表示

$Lv = \displaystyle{ \int_{-\infty}^{\infty}L_x\delta(x-y)v(y)dy }$

我们令$h(x) = L_x\delta(x)$,就是线性系统对$\delta_0$进行脉冲响应。则有

$L_x\delta(x-y) = L_x(\tau_y\delta(x))$

如果$L$是时不变的,则输出与输入会有同一延时

$L_x\delta(x-y) = L_x(\tau_y\delta(x)) = \tau_y(L_x\delta(x)) = \tau_yh(x) = h(x-y)$

$Lv = \displaystyle{ \int_{-\infty}^{\infty}h(x-y)v(y)dy }$