前言
为了描述线性时不变系统(Linear Time Invariant),一般来说有两种方法,第一种是将输入信号分解为一组延时脉冲的线性组合,从而得到LTI系统的表达式,这种方式一般称为卷积。第二种是将输入分解为复指数,得到复指数的线性组合,通过傅里叶分析来表示LTI系统。
时不变性
线性就简要略过,如有不懂请自行百度下即可。这里需要重点讲述下时不变性,因为这条性质在卷积中有非常重要的作用。
时不变性的含义指的是系统的当前状态与信号的起始时间无关,它规定了任何给定的输入和输出之间的关系。如果我们使得输入产生位移,则输出也会产生相应的位移。
具体来说
连续信号:
x
(
t
)
→
y
(
t
)
x(t)\rightarrow y(t)
x(t)→y(t)
对应
x
(
t
−
t
0
)
→
y
(
t
−
t
0
)
x(t-t_{0})\rightarrow y(t-t_{0})
x(t−t0)→y(t−t0)
对于离散信号来说,
x
[
n
]
→
y
[
n
]
x[n]\rightarrow y[n]
x[n]→y[n]
对应
x
(
n
−
n
0
)
→
y
(
n
−
n
0
)
x(n-n_{0})\rightarrow y(n-n_{0})
x(n−n0)→y(n−n0)
这里首先要做的就是将时不变性理解就好。
如何描述一个系统
一个基本方法是尝试把连续时间信号或离散时间信号分解为一组基本信号,那我们该选择什么样的基本信号呢?我们已知的基本信号有脉冲信号,单位阶跃信号灯?我们该选择的信号应该满足哪些特质?
答案是我们选择的这组基本信号,要能在一定程度上为分析提供方便。因此,我们选择的基本信号,对于输入,只需要经过简单的计算就能得出输出。当我们这样做的时候,可以看到有两类输入特别适合这个方法,一类是延时脉冲,一类是复指数信号。
如何用脉冲信号得到系统的表达式以及如何用卷积表达LTI系统。
1.离散时间系统
1.1 如何用加权脉冲序列表示离散时间信号
如图所示的离散时间信号,如何使用加权脉冲序列表示呢。假设x[n]如下图:
可以将
x
[
n
]
x[n]
x[n]看成一系列延迟了的脉冲信号。
x
[
n
]
=
x
[
0
]
δ
[
n
]
+
x
[
1
]
δ
[
n
−
1
]
+
x
[
−
1
]
δ
[
n
+
1
]
+
.
.
.
x[n]=x[0]\delta[n]+x[1]\delta[n-1]+x[-1]\delta[n+1]+...
x[n]=x[0]δ[n]+x[1]δ[n−1]+x[−1]δ[n+1]+...
=
∑
k
=
−
∞
+
∞
x
[
k
]
δ
[
n
−
k
]
=\sum_{k=-\infty }^{+\infty }x[k]\delta [n-k]
=k=−∞∑+∞x[k]δ[n−k]
这个公式有什么用处呢?它的用处在于将序列分解成了延时脉冲的一个线性组合。因此,如果我们讨论的是线性系统,那么这个线性组合所对应的响应就是各个延时脉冲信号的响应的线性组合。如果我们将某延时脉冲的响应记为
h
k
[
n
]
h_{k}[n]
hk[n],那么,这个系统的响应为
y
[
n
]
=
∑
k
=
−
∞
+
∞
x
[
k
]
h
k
[
n
]
y[n]=\sum_{k=-\infty }^{+\infty }x[k]h_{k}[n]
y[n]=k=−∞∑+∞x[k]hk[n]
δ
[
n
−
k
]
→
h
k
[
n
]
\delta[n-k] \rightarrow h_{k}[n]
δ[n−k]→hk[n]
此时,输入信号x[n]的各个值仅仅变成了加权系数。
现在,再来加上一个条件,系统是时不变的。
k时刻的脉冲对应的响应就是脉冲信号从0时刻位移到k时刻对应的响应完全一样。对应公式如下:
h
k
[
n
]
=
h
0
[
n
−
k
]
h_{k}[n]=h_{0}[n-k]
hk[n]=h0[n−k]
一般情况下我们很少用到
h
0
[
n
]
h_{0}[n]
h0[n],而是将其简写为
h
[
n
]
h[n]
h[n],其就是系统的单位脉冲响应。
最后,我们得到的结果就是,LTI系统的输出可以用如下的总和公式来表示:
y
[
n
]
=
∑
k
=
−
∞
+
∞
x
[
k
]
h
[
n
−
k
]
y[n]=\sum_{k=-\infty }^{+\infty} x[k]h[n-k]
y[n]=k=−∞∑+∞x[k]h[n−k]
其中h[n-k]是n=k时的脉冲信号所对应的响应。通常将这个表达式称为卷积和。
上述就是我们思考问题的方法,对于一个一般序列,我们分别考虑每一个单独的样本,这里面的每一个都作用于系统,由于线性特性,系统的响应就是这些单个响应的总和。
这就是在离散时间系统中分析的方法,事实上看,这在连续时间系统中也同样适用。
2 连续时间系统
我们可以在一开始将一个连续时间信号分解成一系列任意窄的矩形。当这些窄矩形的面积趋向于0时,近似度就越来越好。当这些矩形越来越窄时,每个矩形就越接近于一个近似脉冲。
首先定义一个函数
δ
Δ
(
t
)
=
1
Δ
\delta _{\Delta }(t)=\frac{1}{\Delta}
δΔ(t)=Δ1
为什么要定义这个函数呢,可以思考一下,后面会给出答案。
x
(
t
)
=
x
(
0
)
δ
Δ
(
t
)
Δ
+
x
(
Δ
)
δ
Δ
(
t
−
Δ
)
Δ
+
x
(
−
Δ
)
δ
Δ
(
t
+
Δ
)
Δ
+
.
.
.
x(t)=x(0)\delta _{\Delta }(t)\Delta+x(\Delta)\delta _{\Delta }(t-\Delta)\Delta+x(-\Delta)\delta _{\Delta }(t+\Delta)\Delta+...
x(t)=x(0)δΔ(t)Δ+x(Δ)δΔ(t−Δ)Δ+x(−Δ)δΔ(t+Δ)Δ+...
x
(
t
)
=
∑
k
=
−
∞
+
∞
x
(
k
Δ
)
δ
Δ
(
t
−
k
Δ
)
Δ
x(t)=\sum_{k=-\infty }^{+\infty} x(k\Delta)\delta _{\Delta }(t-k\Delta)\Delta
x(t)=k=−∞∑+∞x(kΔ)δΔ(t−kΔ)Δ
x
(
t
)
=
lim
Δ
→
0
∑
k
=
−
∞
+
∞
x
(
k
Δ
)
δ
Δ
(
t
−
k
Δ
)
Δ
x(t)=\lim_{\Delta\rightarrow0}\sum_{k=-\infty }^{+\infty} x(k\Delta)\delta _{\Delta }(t-k\Delta)\Delta
x(t)=Δ→0limk=−∞∑+∞x(kΔ)δΔ(t−kΔ)Δ
=
∫
−
∞
+
∞
x
(
τ
)
δ
(
t
−
τ
)
d
τ
=\int_{-\infty }^{+\infty}x(\tau )\delta (t-\tau)d\tau
=∫−∞+∞x(τ)δ(t−τ)dτ
上面这个积分经常被称作为筛选积分,它指的是如果将一个时间函数x(t)代入这个积分,当脉冲信号沿时间轴移动时,将会再次得到x(t)。整体看上去的过程就像是我们已经得到了一个时间函数x(t),然后我们又一一系列复杂的方式用它表示它自己。也许有人会问,这么做的目的是什么?吃饱了撑的吗?
这么做的原因是我们想要利用线性特性以加权延时脉冲的线性组合来表示时间函数。
对应的输出y(t)表达为:
y
(
t
)
=
∫
−
∞
+
∞
x
(
τ
)
h
τ
(
t
)
d
τ
y(t)=\int_{-\infty }^{+\infty}x(\tau ) h_{\tau} (t) d\tau
y(t)=∫−∞+∞x(τ)hτ(t)dτ
其中,
h
τ
(
t
)
h_{\tau}(t)
hτ(t)对应于
τ
\tau
τ时刻所产生的脉冲信号的脉冲响应。
和离散时间信号情况相似,如果系统是时不变系统,那么
h
τ
(
t
)
=
h
0
(
t
−
τ
)
=
h
(
t
−
τ
)
h_{\tau}(t)=h_{0}(t-\tau)=h(t-\tau)
hτ(t)=h0(t−τ)=h(t−τ)
y
(
t
)
=
∫
−
∞
+
∞
x
(
τ
)
h
(
t
−
τ
)
d
τ
y(t)=\int_{-\infty }^{+\infty}x(\tau ) h(t-\tau) d\tau
y(t)=∫−∞+∞x(τ)h(t−τ)dτ
这个公式告诉我们输入输出和脉冲响应之间的关系。
好,到目前为止,我们已经成功做到能利用线性和时不变性将系统表示成0时刻的脉冲信号经过该系统后的响应,这对于一个LTI系统,这其实是相当神奇的。
这意味着如果你知道一个在t=0或n=0时的脉冲信号的响应,然后根据离散时间系统或连续时间系统的卷积和或卷积积分,可以得到对于任意输入的响应。
例题
1离散时间序列的卷积
x
[
n
]
=
{
1
,
0
<
=
n
<
=
4
0
,
o
t
h
e
r
}
x[n]=\begin{Bmatrix} 1, 0<=n<=4 \\ 0, other \end{Bmatrix}
x[n]={1,0<=n<=40,other}
单位脉冲响应为
h
[
n
]
=
{
α
n
,
0
<
=
n
<
=
6
0
,
o
t
h
e
r
}
h[n]=\begin{Bmatrix} \alpha^{n}, 0<=n<=6 \\ 0, other \end{Bmatrix}
h[n]={αn,0<=n<=60,other}
让求两个信号的卷积,即求y[n]的表达式。假设
α
\alpha
α大于0.
答:
首先我们可以画出两个信号的示意图。
该如何去求卷积呢?首先,再次回到我们的卷积求和公式,
y
[
n
]
=
∑
k
=
−
∞
+
∞
x
[
k
]
h
[
n
−
k
]
y[n]=\sum_{k=-\infty }^{+\infty} x[k]h[n-k]
y[n]=k=−∞∑+∞x[k]h[n−k]
现在来看第一项,x[k]与x[n]毫无区别,仅仅是换了变量表达式。
第二项呢,我们可以这样理解,首先将h[n]无差别变换为h[k],再将h[k]反转为h[-k],此时如果我们将h[-k]向右移动n个单位,则会得到h[-(k-n)]=h[n-k],则刚好就是卷积和公式中的第二项。这里我就不将图详细画出。我们可以想象一下,首先将h[n]进行反转,然后平移到最左边负无穷远处(对应n为负无穷),然后随着n的逐渐增大,h[n-k]逐渐向右平移,h[n-k]与x[k]的相交状态一共会有三种。第一种状态是两者毫无相交状态 ,此时卷积和为0.第二种是部分相交状态,卷积和不为0.随着n的增大,最后两者又会处于一种非相交状态,卷积和为0.因此,我们共可分三种状态来考虑。
(1)区间一 n<0
此时x[k]与h[n-k]无任何相交,对应y[n]=0;
(2)区间二 0<=n<=4,这里将第二种相交状态再次进行了细分。
这里为什么药将区间划分为[0,4]呢,答案很简单,因为在这个区间里面,x[k]的值恒为1,非常方便计算。此时h[n-k]是一种什么状态呢,我们通过想象可以知道,h[n-k]有一部分进入了进入了区间[0,4],还有一部分则在x负半轴上。
这里为了书写公式方便,使用分号;对应不同的区间情况。
h
[
n
−
k
]
=
α
n
−
k
,
0
<
=
k
<
=
n
;
0
,
o
t
h
e
r
h[n-k]=\alpha^{n-k},0<=k<=n;0,other
h[n−k]=αn−k,0<=k<=n;0,other
x
[
k
]
h
[
n
−
k
]
=
h
[
n
−
k
]
=
α
n
−
k
,
0
<
=
k
<
=
n
;
0
,
o
t
h
e
r
x[k]h[n-k]=h[n-k]=\alpha^{n-k},0<=k<=n;0,other
x[k]h[n−k]=h[n−k]=αn−k,0<=k<=n;0,other
因此,在该区间内,
y
[
n
]
=
y[n]=
y[n]=
【参考资料】:
1 bilibili视频,祖师爷奥本海姆讲《信号与系统》,网址https://www.bilibili.com/video/BV1CZ4y1j7hs?p=4。