本次内容,承接自我的上个博客,上次通过正交基概念的引入,我们讲解了一个非常重要的信号分解的内容,有需要了解的请看第一节
有同学也许有疑问,为什么要对信号做这样的分解,分解之后的意义又在哪呢? 本篇文章首先会回答这么一个问题。
解决的问题主要是这样几个:
一、分解之后得到的简单信号,也就是我在第一节中提到的正交基,
对于这些信号,它们具有的一个良好的性质是,经过线性时不变系统
具有形式的不变性,仅仅是在原信号的基础上有了幅度上的加权或相
位上的偏移。
二、利用LTI系统的线性,可以通过简单信号作用于系统得到的输出,
再把复杂信号分解成简单信号的线性组合,系统对复杂信号的响应不
就迎刃而解了吗?
上面这段话,也许有同学还不是太明白,我们慢慢解释。中小学阶段,我们接触最多的,也是乘法运算,加法运算,而针对这两种运算,我们可以把噪声分为乘性噪声和加性噪声。但是卷积是什么样的一个运算呢?相比大家当初在学习加法运算和乘法运算,都有一些简单的生活中的应用,例如几块钱之类的,在这里,我想用尽量通俗的例子,让大家理解信号系统中,卷积这一数学运算存在的物理意义。
一句话概括说来就是:”瞬时行为的持续性后果“。下面举这样一个例子:对于我们人来说,是一个系统,或者说是一个整体,而体重,是我们这个系统的一个输出,假设我连续吃了好几个冰淇淋,理想情况下,我会因为几个冰淇凌的摄入而增大体重,那么问题是,我们怎么衡量体重的变化呢?下面这张图给出一个冰淇凌引发的“后果”。
那么问题来了,我如果以很快的速度摄入了好几个冰淇凌,怎么衡量这个体重变化这个问题呢?很显然,我体重的变化应该是不同时刻摄入不同冰淇凌对于体重影响的一个叠加,假设上面单个冰淇凌对我体重的作用函数为
f
(
t
)
f(t)
f(t),我在
t
1
t_{1}
t1
≠
0
\neq0
=0时,又摄入的冰淇凌的作用可以看作
f
(
t
−
t
0
)
f(t-t_{0})
f(t−t0),那么更加抽象理解,假设我摄入冰淇凌的单位(个),随时间的变化规律是
g
(
t
)
g(t)
g(t),那么在
t
1
t_{1}
t1时刻摄入的冰淇凌对我的体重
w
w
w的影响应该表现为
g
(
t
1
)
✖
f
(
t
−
t
1
)
g(t_{1})✖f(t-t_{1})
g(t1)✖f(t−t1),将时间为无穷,我的体重
w
w
w可以写作
当然,上面卷积的概念,是从一个例子给出的,卷积这种运算十分适用于线性时不变系统,通过卷积运算,结合我上次谈到的简单的基本信号,我们可以处理一大类求解系统响应的问题。
下面不失一般性,我们给出复指数信号和三角信号和离散指数信号经过线性时不变系统之后的变化。
类似的,我们给出离散卷积的定义
类似的,当离散型指数信号,经过线性时不变系统时,我们有
从连续时间傅里叶级数到连续时间傅里叶变换
在这里,我想给出有关所有从傅里叶级数到傅里叶变换的核心思想,主要有以下几点:
①周期从有限到无限
②系数形成的离散谱由于谱线间隔的缩小,从离散谱到连续谱。
③傅里叶复系数与傅里叶变换的关系
以往有些同学,对于傅里叶正变换和反变换的表达式或者系数有疑问,现在我对此做出解释
还是用到傅里叶复系数的第二个式子,我们直接利用③定义得出傅里叶正变换,而反变换怎么表示呢?就需要利用到这个公式了,式子中的
F
n
F_{n}
Fn我们利用③得到
当周期足够大时,
w
0
w_{0}
w0变为
d
w
dw
dw,由此我们得到傅里叶反变换的定义式
从离散时间傅里叶级数到离散时间傅里叶变换
大家对于上一节的这个公式还应该有一点印象,任何周期序列,都可以分解成离散复指数信号,如下图
好了,类似连续时间的傅里叶变换,此时傅里叶变换与傅里叶复系数的关系变成了
上面的式子,就是我们经常看到的离散时间傅里叶变换的定义,是不是和连续时间傅里叶变换如出一辙呢?
从离散时间傅里叶变换到离散傅里叶变换
很遗憾的是,对于模拟信号的庞大的计算量来说,计算机只能处理有限的样点,对于离散时间傅里叶变换,虽然时域信号有限长,但是频谱确实模拟的(取值连续),显然不符合工程上计算机处理的要求。现在我们怎么处理呢?这个问题的主要矛盾在于,频域的频谱函数是取值无限的,那么我们自然想到在频域采样,类似连续信号的采样带来频谱的周期延拓,很自然,我们知道,频域采样带来的是时域的周期延拓,那么显然,我们工程上做的是对实际序列周期延拓在做的傅里叶变换(只有这样才能保证频域是离散的,是计算机能够处理的),在前面离散傅里叶变换时,我们没有指出的一点时,频谱是以
2
π
2\pi
2π为周期的,因此,我们只需要对这么长的周期进行频域采样即可。由此,我们给出离散傅里叶变换DFT的定义式,如下图所示
大家可以观察一下,上面的式子中做了N次复数乘法,和N-1次复数加法,计算一个频点处的信息就需要这么多的计算量,显然是不太现实的,经过多年的发展,利用复指数信号的周期性,科学家们提出了傅里叶快速算法FFT(Fast Fourier Transform),本质上就是对于DFT运算量过大这一问题的工程解决,具体而言有基时(DIT-FFT)和基频(DIF-FFT),还有一些其他的快速算法,本质上都是利用周期性等良好的性质大大减少运算量。让信号处理从理论走向了现实。以后有机会进一步介绍FFT及其算法原理,敬请关注!