当前位置:首页 > 公众号精选 > TsinghuaJoking
[导读]最近两周的信号与系统课程,我们在卓大大的带领下学习了傅里叶变换的定义和相关内容。由于我对有关内容所代表的数学含义很感兴趣,最近在上课的时候便想了一些与傅里叶变换相关的内容,包括一些有关性质从数学或者物理角度进行理解的思路。这里我把我自己最近

最近两周的信号与系统课程,我们在卓大大的带领下学习了傅里叶变换的定义和相关内容。由于我对有关内容所代表的数学含义很感兴趣,最近在上课的时候便想了一些与傅里叶变换相关的内容,包括一些有关性质从数学或者物理角度进行理解的思路。这里我把我自己最近的一些想法做一个简单的整理,方便日后重新理解,如有可能也希望能帮助一些同学对傅里叶变换这一神奇的知识点有一些别样的理解方式。先行指出:由于我只是将我自己真实的思路写下,但有时会缺乏严格的数学证明,有时甚至是一些“感性”的认识,所以难免会有不严谨、不合理之处。希望老师和同学们能够批评指正。

引入:从线性空间的基底讲起

相信线性空间大家都不会陌生,大一年级我们用了一年的时间与之做艰苦的斗争。距离我们最近的一次提到线性空间,我的记忆是在微积分(2)的最后,也就是傅里叶级数分解。还记得当时微积分老师的说法是:和泰勒级数不同,傅里叶级数是从另外一个截然不同的角度对函数这个概念进行审视,也就是从函数所在的线性空间当中来看。老师证明了 的函数族是一组正交函数系,也就是在某种内积的定义之下,两个函数的内积为0。之后的一个定理(具体叫什么我忘记了。。)证明了满足一定连续性条件的周期函数都能分解成正余弦函数之和的形式。

这里的正交,我简易地理解为垂直,也就是和空间向量正交的概念类比。我们是否可以这样想象:如果我们定义一个函数的线性空间,空间中的每一个点,或者说每一个向量都对应一个「函数」,而比如在傅里叶级数分解的条件下, 等函数是这个线性空间的一组「基底」,那么能够进行傅里叶级数分解的函数就都能够和这个函数空间中的点进行对应,也就是说表示成我们熟知的傅里叶级数分解的形式:

这里我们所选择的一组基底显然是一组正交基,其个数是无穷多维,也就是说这个函数空间和我们所处的空间很不一样,有无穷维!但是,这个空间其实不难理解,说到底还是一个线性、平整的空间而已。我们将这组正交基进行归一化,我们很容易构造出一组「标准正交基」,也就是原来的正余弦函数除以本身的“模长”(注意,这里的模长是在我们所考虑的函数空间中的向量的模长,而不是其作为一个数字的绝对值。在后面考虑到复数域的时候尤其要注意这一点)。

这里先提一句标准正交基。 ,这里X是在这组标准正交基下的坐标, 。这是我们线性代数里学过的内容。如果我们在这里利用函数空间的标准正交基分解,我们会得到:


这里,c和d是在标准正交基下的向量系数,而前面的矩阵则是一组标准正交基。另外再复习一个概念,就是两组基底之间的「基变换矩阵」(具体的名字我也忘记了。。。在家没带线代书,先用这个名字替代一下吧),也就是一组基底乘上一个矩阵能够得到另一组基底,这个矩阵可称之为基变换矩阵。特别的,如果两组基底都是标准正交基,那么这两组基底之间的基变换矩阵是一个「正交矩阵」

从时域到频域

接下来就要进入“美妙”的信号领域了。。。首先,借用之前在知乎看到的一种说法,我用我自己的语言复述一遍:「信号的时域和频域下的表示可以看做同一个向量在两组不同的基底之下的坐标。」

下面进行简单的讨论,首先对时域对应的一组基底进行说明。在时域离散条件下,这个命题相对来说很好理解。如函数 ,可以看成基底为 ,坐标为 的向量。也就是说,时域离散条件下,只需将不同位置的脉冲信号拆成单位脉冲信号与幅值的叠加就行了。

如果推广到连续情况下,我们很自然的会想到连续信号的单位冲激函数。也就是说,我们把 作为一组基底,这里  取所有实数。而对应的系数,很自然的就是 的数值。但这里要注意一点:在基底是连续的条件下,内积的定义不应是对应项简单的直接相乘再相加,而应该是在积分的意义下取得的。

下图对这种时域上的基底进行了简单说明。

之后我们进入重头戏——频域。首先还是要强调时域中基底分解的一点:在时域上进行基底分解,基底中的每一个基向量都是一个函数。同样,在频域中,我们的基底也是一组正交函数,也就是我们熟悉的   函数。注意,这里的函数也是一个关于t的函数,而ω的作用是确定函数本身的一个量,作用类似于时域中  的作用。在离散条件下,就是我们所讨论过的傅里叶级数分解,坐标对应的数值应当为对应项的系数;而在连续条件下,这组基底对应的坐标即为傅里叶变换之后得到的对应频率下函数的取值。这里的连续条件下,也要在积分的意义下求基底与坐标的内积。

我们在某种意义上也可以这样想:傅里叶变换使得一个信号在时域这组基底表示下的坐标变成了在频域这组基底表示下的坐标,如果在几何空间中就是乘上一个两组基底之间的一个基变换矩阵。那么傅里叶变换就是时域坐标和频域坐标两组基底之间的基变换矩阵,如果加上归一化条件,傅里叶变换则可以看做是一个正交阵。为了便于沟通时域和频域,我们可以构建一根假想的轴。

首先来看复平面。根据欧拉公式,我们知道 是一个模长为1的向量,端点落在单位圆上,这个向量会随着时间的增加而以匀速旋转,ω越大旋转速度越快。我们假设有好多好多这样的复平面,每个平面内都有一个这样的向量,其角速度各不相同。我们按照顺序将这些复平面叠起来,用一根角速度轴数值串起来,那么我们会得到一个在三维空间中不断转动的轴。在0时刻,所有复平面内的每个向量都等于1,而当时间开始运转,除了角速度等于0的那张平面里的向量始终等于1,不发生转动,其他每个向量都会按照各自的角速度发生旋转,离角速度原点越远,旋转越快。另外我们还能看出, 对应的两个向量旋转速度相同,但方向相反。

这根轴具体应该怎么用呢?可以想到,「我们将每一个旋转的向量与信号频谱中对应频率的系数相乘,然后对全频谱这样的向量相加(连续情况便是积分),即可得到复平面内原来信号随时间的变化情况。这种相乘的实际效果体现在:对单位向量的长度进行倍乘,倍乘的系数为 幅度谱的对应值,之后再进行一个旋转,旋转角度为相位谱的对应角度,可以正向也可以反向。而所有向量相加(积分)的实质便是傅里叶级数求和(傅里叶逆变换)」

我们用这根旋转的轴会很容易地理解负频率的实际物理意义。同时,也会方便后面傅里叶变换一些性质的直观理解。

傅里叶变换及其性质

下面,我们用之前讨论过的一些东西来解释傅里叶变换的一些性质。

奇偶虚实特性

课堂上老师讲过,实信号的频谱幅度谱是一个偶函数,而相位谱是一个奇函数。这是为什么呢?

因为原始信号为实信号,也就是 乘上旋转轴对应的向量始终在实数范围内。我们知道,旋转轴上挂着的单位向量旋转速度除了彼此相对于角速度原点对称的两个向量之外,各不相同。所以我们直觉上可以猜想(实际上也很容易证明):如果要求信号为实信号,那么必须要求每一组的 对应的两个向量乘上对应的系数再加和必须为实数,或者说,如果1Hz的信号出现了虚数,那么无论其他频率的信号怎么努力也都无法消除1Hz的信号在虚数上的频率。也就是说: 为实数。因此,我们可以得到 互为共轭,也就是实信号的频谱共轭对称。

那么,如果信号为奇函数或者偶函数,频谱所表现出的虚奇函数以及偶实函数的特性又该如何解释呢?

先从偶函数开始。信号为偶函数,也就是指在时间原点前后 位置,对应信号的值相同,且为实数。由于时间原点的时候,所有单位向量都指向1,也就是每个单位向量都处在相位为0的位置。如果傅里叶频谱上有一处含有虚信号,那么必定会给对应的频率添加附加相位,情况类似于由 变成了 ,这样便会使得信号不再满足时间上的偶对称性。所以,频谱应当为实函数。再加上共轭对称的条件,便会推导出偶实函数的结论。

之后我们来讨论奇函数。奇函数信号的原点处为0,且原点前后的数值相反。和刚才的分析类似,如果频谱有实数分量的话,便有某个频率的向量初始相位不为90度,也就是不能满足信号的奇对称性。

时域微分与积分特性

其实这两个特性从数学式子上观察更为直观,但是用旋转轴的方法也可以给出解释。由于信号是所有频率信号分量的加和,因此对信号求微分或者积分,可以转换成对每一个频率的信号进行微分和积分。以微分为例,由于每个信号的解析式为 ,因此信号对时间的微分就是 ,然后将多出来的系数与原来的频域结合即可得到新的信号的频域,即原频域前面加上一个 。而积分相对于微分的区别在于, 的信号为恒定的F(0),对全时域积分会产生一个冲激信号,因此信号积分的频谱会多出一个冲激信号项。

时移特性和频移特性

时移特性指将信号向左或者向右移动,频域的变化。这一点当然可以通过公式运算得到。我们也试着用上面的旋转轴来尝试一下直观理解。

假设一个信号在时间上延迟 ,我们以时间原点作为观察点。原本情况下,在 时所有单位向量都等于1,而在延迟(即时移)的情况下,  的时候才有所有向量都等于1。那么从0到 这段时间,难道说这些单位向量就不转动了吗?肯定不是,这些向量无论在何时何地都会按照自己的固有速度进行转动。所以,为了让 的时候所有向量都等于1,我们必须给一个转动的提前量,即改变 时的信号的相位。这个信号相位的改变量是让所有向量经过  时间之后全部走完,也就是这个附加的相位应该与频率呈负线性关系。而最终这种相位的附加值会反应到频谱上,即让频谱乘上  。同样的,信号向左时移也可以用同样的方式得到。这就解释了时移特性。

至于频移特性,我们一方面可以通过傅里叶变换和逆变换形式大体相同这一点来得到对应结论,但这就又用到了数学。我们尽量不用公式,这样有助于理解实际的物理含义。假设频谱向右移动m,那么相当于原本应当作用在频率为 的向量上的频域系数 最终作用到了频率为 的向量上,可以认为整体信号的旋转速度“加快”了(这里实际上不准确,因为正频率部分加快了,但是负频率部分减慢了。这里只是为了方便大家直观上理解),相对于原有的信号,原本的本来应当作用在一个转的慢的向量上的系数换乘到了转的快的向量上,这种快慢之间的差距会造成相同系数对应的向量之间会产生一个随着时间流逝而线性增大的相位差,这个相位差可以知道,就是 。这对于每一个向量都成立,那么作用到整体信号上,便是整体信号添加一个相位差,即新信号的时域会在原来基础上乘一个  。这就解释了频移特性。

卷积定理

傅里叶变换中一个非常重要的知识便是卷积定理。然而用上面的模型很难直观地解释卷积定理,我们不得不另辟蹊径,用另外的方式来理解时域的卷积等于频域的乘积。

首先需要理解卷积本身干了一件什么事情。我们了解的最多的卷积的作用,也是目前我们唯一学过的卷积的作用,就是已知单位冲激响应和LTI系统的输入信号,求解输出信号的运算。其本质即是将输入信号按照之前时域基底分解的方法进行分解,然后对每一个冲激信号分别求其响应,最后在时域上叠加。我们要牢牢把握住这个定义来理解后面的变换。

之前说过,时域和频域只是同一个信号在不同正交基底下的两个不同坐标。既然上面卷积的第一步是将信号按照时域分解,那么我们现在尝试对信号从频域这组基底上进行描述。

首先考虑单位冲击响应这一物理概念。这个概念描述了系统输入是单位冲激信号的输出。我们知道,单位冲激信号的频谱实际上是覆盖全频域的恒为1。这里我们假设单位冲击响应的频谱为 。这里我们注意到,这个系统实际上是一个线性时不变系统,也就是说,这个系统的输出信号的频率只可能取输入信号所有可能的频率,并且不同频率的信号之间不会互相影响。所以重新审视单位冲击响应的频谱,实际上是对不同频率输入信号的频率响应,甚至可以说是这个LTI系统的“波特图”,只不过坐标轴是线性的而非对数而已。

这样我们会发现,卷积在傅里叶变换的作用下成为乘积便是很显然的:将输入信号按照频域展开(运算上便是进行傅里叶变换),然后对于每一个频率的输入信号,都直接乘上H(ω)中对应的系数(也就是这个频率对应的放大倍数),便可得到输出信号对应频率的系数,从全频率考虑便是相当于单位冲击响应的频谱与输入信号的频谱相乘,即可得到输出信号的频谱。这里如果从代数的角度考虑,如果把LTI系统看做对输入信号进行一个线性变换(也就是乘一个变换矩阵),那么这个矩阵是可“对角化”的,并且将其对角化所需要乘的可逆矩阵即是傅里叶变换,空间基底由时域的“单位冲激信号正交函数族”变成了频域的“旋转向量正交函数族”,而这个矩阵的特征值便是这个系统在各个输入信号频率的放大倍数,也是单位冲激响应的频域上的函数值。(刚刚又稍微想了一下,如果把傅里叶变换对信号做的变化看做矩阵A的话,那么 ,I为单位阵,这个可以通过傅里叶变换的对称性推出。算是一种更为特殊的性质吧)

最后

本来这一部分我最初想放一些自己最初没有想清楚的问题,希望和大家一起讨论,但是在总结上面东西的同时,我发现自己原来那些问题竟然都想通了。看来尽管整理这一篇乱七八糟的东西花了好多时间,但是也是一个沉淀知识,使思维系统化的一个过程。由于自己水平有限,写的东西肯定有不合理之处,但是希望自己总结的东西能够对大家有所帮助。。尽管做题用上面的想法来做会很慢,但是我认为加深对知识本身的理解是比熟练度更为重要的(尝试为自己菜找借口)

最后最后,因为自己在整理的时候是以第一人称视角,是在已知自己结论的基础上进行整理,可能有些推导结论的地方,大家以第三视角来看会有些迷惑。。。如果大家有疑问或者改正意见,欢迎大家批评指正!

免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

北京2023年8月31日 /美通社/ -- 进入2023年,ChatGPT推动世界步入一个全新时代——大模型时代,它不仅引发了AI产业的整体升级换代,同时也让各种大模型层出不穷,背后的关键原因在于,大模型能普遍提升生产力...

关键字: 模型 向量 开源 GP

Python由荷兰数学和计算机科学研究学会的吉多·范罗苏姆于1990年代初设计,作为一门叫做ABC语言的替代品。 Python提供了高效的高级数据结构,还能简单有效地面向对象编程。

关键字: python 函数 对象编程

测试数据综合分析的绝佳工具,深受工程师和研究员欢迎

关键字: 后处理分析软件 向导 函数

由上图中可以知道进程地址空间中最顶部的段是栈,代码中调用函数、定义局部变量(但不包含static修饰的变量)或声明的类的实例等等都要使用栈空间,当函数执行完(也就是程序执行超过了这个函数的作用范围的时候),操作系统会把该...

关键字: 进程地址 局部变量 函数

传统傅里叶变换的分析方法你已经非常熟悉了,特别是快速傅里叶变换(FFT)的高效实现给数字信号处理技术的实时应用创造了条件,从而加速了数字信号处理技术的发展。

关键字: 傅里叶变换 数字信号

以下内容中,小编将对成像光谱仪的相关内容进行着重介绍和阐述,希望本文能帮您增进对成像光谱仪的了解,和小编一起来看看吧。

关键字: 成像光谱仪 光谱仪 傅里叶变换

星标/置顶 公众号,硬核文章第一时间送达!链接| https://zhuanlan.zhihu.com/p/274473971题很多,先上题后上答案,便于大家思考问题点:1、C和C的特点与区别?2、C的多态3、虚函数实现...

关键字: 腾讯 函数 进程 AI

程序接口是操作系统为用户提供的两类接口之一,编程人员在程序中通过程序接口来请求操作系统提供服务。面向过程语言最基本的单元是过程和函数。

关键字: 程序接口 过程 函数

星标「嵌入式大杂烩」,一起进步!链接:https://www.cnblogs.com/jozochen/p/8541714.html一、问题复现稳定复现问题才能正确的对问题进行定位、解决以及验证。一般来说,越容易复现的问...

关键字: 嵌入式开发 函数 代码 寄存器

基本上,没有人会将大段的C语言代码全部塞入main()函数。更好的做法是按照复用率高、耦合性低的原则,尽可能的将代码拆分不同的功能模块,并封装成函数。C语言代码的组合千变万化,因此函数的功能可能会比较复杂,不同的输入,常...

关键字: 函数 PEN C语言代码 C语言程序
关闭
关闭