为了进一步阐述傅里叶系列,本章引入了新的知识点,
信号与系统里面的惯例写法:
连续信号:x(t)
离散时间信号:x(nT)
离散信号:x[n]
连续频域:
离散频域:X[n]
以上,n都是整数,其他数是实数。
时域信号都用小写,频域信号都用大写,离散信号用[],非离散信号用()
1. LTI( Linear Time Invariant)
我们只讨论LTI,为什么? 1. 难,一般人研究不了;2. LTI足以应付大部分系统。需要注意的是,如果你在非LTI系统中,那么LTI的特性万万不要轻易使用。
1.1 先看linear
线性,就是线性代数里面的线性。数学家喜欢用公式描述线性变换。
连续信号:
对于一个系统,
离散信号:(把上面的连续信号换成离散信号)
对于一个系统,
线性的概念,数学上就是输入乘以标量,输出也乘以标量;对于信号来说,输入信号幅度变大多少倍,输出信号也变大多少倍;
线性的概念,还有一个就是叠加的概念;把两个或多个信号叠加,系统的响应等于原先各个信号响应的叠加。
1.2 时不变(Time-invariant)
时不变系统就是系统的响应不依赖于当前的时间。打个比方,我在早晨9点打开电脑,电脑开机,这个响应,跟我晚上10点开机的响应是一样的;电脑不会因为开机的时间不同而响应不同,这就叫时不变。再打个比方,我上午9点开机,系统正常开机;晚上开机的时候,因为电脑进水,开机失败,这样的系统就变成了时变系统了;系统因为时间不一样,对于同一个输入,响应不一样。
数学家还是喜欢用简单就是美的公式描述:
信号
对应的
信号
离散域的时不变也有的地方称为移不变。
当然了,有人会从哲学的高度讲“人不能两次踏入同一条河流”来否认时不变系统。确实,真正的时不变系统只存在于数学公式,现实世界从来都没有严格的时不变系统,因为长期的看,好的必然变坏,生的必然要死去;所以一般都是假设,短期内,系统是时不变系统。
对于系统的其他特性,暂时先不描述,因为暂时没有用到,需要用的时候再描述。
2.
2.1 离散域
先看看离散域的
按照定义,对于离散序列x[n], 很容易得到
更进一步,把上面的1换成任意整数:
显然我们可以看到
因为
来来回回,上面的公式写的就是信号
2.2 连续域
当把这个离散域定义得极好信号扩展到连续函数的时候,似乎很难实现。如何定义对于只在0点有值,非0点都是0的函数?在数学上,似乎是一个可去间断点定义成这个样子。这样的定义对于连续函数来说,显然是没有物理意义的。按照这样的定义,函数的能量是0。在连续域里面,因为只有一个可去间断点,所以能量为0。好了,数学家们经过深思熟虑,给了下面的定义:
显然,它是有能量的,但这也是一个相当变态的定义,从积分意义上讲,函数的面积是1,但是它的宽是0,所以这个函数的高应该是无穷大。想象一下,在时间轴上,一个函数, 从
对于这样的函数,在物理上如何实现,又要用极限大法了。定义一个矩形或者是三角形,然后让它的底边长度趋向于0。显然,物理上不存在这样的信号。
在离散域,
通过
有了
通过采样和量化,连续的模拟信号变成了离散的数字信号,可以通过数字信号的处理方法进行处理,处理完后,再由数字信号重构称模拟信号,这整个过程就是数字信号处理过程。
3.卷积
终于讲到卷积了。卷积好像也是一个学习的难点。
卷积的介绍,还是先从离散域考虑。
3.1 离散卷积
回到2.1节里面描述的公式:
关注这个公式,第一项和第二项的系数和是n,也就是序列x[n]的n,然后等式右边经过卷积运算,k没有了,最后只剩下n。
在此基础上,把序列x[n]输入到系统H,得到的输出是y[n];假设
代入
因为是线性系统,
记
其中h[n]为系统对
下面从字面上解读一下这个公式。
在解读卷积公式之前,先厘清概念,概念不厘清,永远都是稀里糊涂的。
h[n]是表示一个序列还是序列中某个特定的项。对于n的不同理解,卷积的理解也完全不一样。当把h[n]看成一个特定项的时候,有了网上的各种非常精彩的解释,比如掷色子/打肿脸等,核心都是反折,平移,相乘,累加。我再简单重复一遍。
3.1.1 y[n],h[n]标识为某个特定项
在这个前提下,我们举个简单的例子,想象一下下面的图中的输入信号x[n],系统的冲击响应是h[n]。
在这个系统中,输入信号有3个有效值,x[0],x[1],x[2]分别表示时刻0,时刻1和时刻2的输入;冲击响应有两个h[0]和h[1],h[0]表示系统0延迟的响应,h[1]表示系统延迟为1的响应。
step 0,计算y[0],我们只需要关注x[0]信号的h[0]的响应x[0]h[0],输入在0时刻,延时为0,所以系统在0时刻的响应y[0]=x[0]h[0];(这里注意到信号的输入时刻与delay的时刻之和为0)
step 1,计算y[1],我们需要关注系统在0时刻的输入x[0]信号,它有一个延迟为1的响应x[0]h[1];系统在1时刻的输入x[1]信号,它有一个延迟为0的响应x[1]h[0];没有其他信号的响应能满足在时刻1有输出,所以y[1]=x[0]h[1]+x[1]h[0](这里注意到信号的输入时刻与delay的时刻之和为1)
step 2,计算y[2],0时刻的输入,由于没有delay为2的响应,所以0输入就不用考虑了;对于时刻1的输入,它的0 delay的响应,显然不会在时刻2到达系统,而对于它的1 delay的响应则对y[2]有贡献x[1]h[1];对于时刻2的输入,它的0 delay的响会在时刻2有输出有贡献,贡献值是x[2]h[0];此外没有其他信号的响应能满足在时刻2有输出,所以y[2]=x[1]h[1]+x[2]h[0](这里注意到信号的输入时刻与delay的时刻之和为2)
step3,以此类推,我们可以得到y[3]=x[2]h[1]+x[3]h[0]。
更进一步,对于时刻n,对该时刻有贡献的响应是...,
3.1.2 y[n],h[n]标识为序列
- 在这里,n是一个变量,所以x[n]是一个序列,其他的符号,比如x[k],就认为是某个特定的项。
- 有了第一条,我们再看x[n-k],这就是把序列x[n]延时k个单位;相反,x[n+k]就是x[n]序列提前。
再来看公式
举个栗子
对于某个系统,冲击响应是
依旧使用上面的x[n],然后
从上面的图中,我们可以看到,x[0]h[n-0]计算得到的是y[0]和y[1]的一部分,x[1]h[n-1]计算得到的是y[1]和y[2]的一部分。可见,在不同前提条件下,对同一个公式我们有不同的理解。真正理解后,其实会发现,两种理解本质是一样的。
换个视角
对于输入时h[n],冲击响应是x[n]的系统,它的输出y[n]是什么?
相当于我们再次复习了一遍图解的过程,大家欣喜的看到
这就是卷积的交换律。
其实,数学家不需要画这么多图,数学家最擅长的就是公式变换,且看:
简单就是美,数学家从来不需要多余的东西。
另外,对于长度是M和N的序列,卷积后,长度是M+N-1,比如上面的例子,M=2,N=3,卷积后序列有效长度是4。证明很简单,对于长度为M的序列,它需要delay (0次,1次,...,N-1次),最终长度就是M+N-1。
下面再看连续域
3.2 连续卷积
3.2.1 定义
这个小节,我们从定义出发。
对于系统H,
相应的,对于
在2.2小节,我们得到了
因为我们的系统是线性的,
又因为我们的系统是时不变的,并且
上面的公式就是连续域的卷积公式。
3.2.2 离散到连续,运用极限大法
更进一步,如果系统是因果系统(在没有输入的情况下,没有输出,这样的系统就是因果系统),因果系统的t时刻的输出不取决于t时刻之后的输入。
在因果系统下,
这个公式可以这样记忆:系统某个时刻的输入
这个记忆方法,其实,跟我在3.1.2中描述离散卷积的方法,一样。
下次再撩。