声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1992|回复: 0

[FFT] 漫谈傅立叶变换——复数到底是个什么东西?

[复制链接]
发表于 2018-1-5 16:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
  说的广义一点,"复数"是一个"概念",不是一种客观存在。

  什么是"概念"? 一张纸有几个面? 两个,这里"面"是一个概念,一个主观对客观存在的认知,就像"大"和"小"的概念一样,只对人的意识有意义,对客观存在本身没有意义(康德:纯粹理性的批判)。把纸条的两边转一下相连接,变成"莫比乌斯圈",这个纸条就只剩下一个"面"了。概念是对客观世界的加工,反映到意识中的东西。

  数的概念是这样被推广的:什么数x使得x2=-1? 实数轴显然不行,(-1)×(-1)=1。那么如果存在一个抽象空间,它既包括真实世界的实数,也能包括想象出来的x2=-1,那么我们称这个想象空间为"复数域"。那么实数的运算法则就是复数域的一个特例。为什么1×(-1)=-1? +-符号在复数域里面代表方向,-1就是"向后,转!"这样的命令,一个1在圆周运动180度以后变成了-1,这里,直线的数轴和圆周旋转,在复数的空间里面被统一了。

  因此,(-1)×(-1)=1可以解释为"向后转"+"向后转"=回到原地。那么复数域如何表示x2=-1呢? 很简单,"向左转","向左转"两次相当于"向后转"。由于单轴的实数域(直线)不包含这样的元素,所以复数域必须由两个正交的数轴表示--平面。很明显,我们可以得到复数域乘法的一个特性,就是结果的绝对值为两个复数绝对值相乘,旋转的角度=两个复数的旋转角度相加。

  高中时代我们就学习了迪莫弗定理。为什么有这样的乘法性质? 不是因为复数域恰好具有这样的乘法性质(性质决定认识),而是发明复数域的人就是根据这样的需求去弄出了这么一个复数域(认识决定性质),是一种主观唯心主义的研究方法。为了构造x2=-1,我们必须考虑把乘法看为两个元素构成的集合:乘积和角度旋转。

  因为三角函数可以看为圆周运动的一种投影,所以,在复数域,三角函数和乘法运算(指数)被统一了。我们从实数域的傅立叶级数展开入手,立刻可以得到形式更简单的,复数域的,和实数域一一对应的傅立叶复数级数。因为复数域形式简单,所以研究起来方便----虽然自然界不存在复数,但是由于和实数域的级数一一对应,我们做个反映射就能得到有物理意义的结果。

  那么傅立叶变换,那个令人难以理解的转换公式是什么含义呢? 我们可以看一下它和复数域傅立叶级数的关系。

  什么是微积分,就是先微分,再积分,傅立叶级数已经作了无限微分了,对应无数个离散的频率分量冲击信号的和。傅立叶变换要解决非周期信号的分析问题,想象这个非周期信号也是一个周期信号: 只是周期为无穷大,各频率分量无穷小而已(否则积分的结果就是无穷)。那么我们看到傅立叶级数,每个分量常数的求解过程,积分的区间就是从T变成了正负无穷大。而由于每个频率分量的常数无穷小,那么让每个分量都去除以f,就得到有值的数----所以周期函数的傅立叶变换对应一堆脉冲函数。

  同理,各个频率分量之间无限的接近,因为f很小,级数中的f,2f,3f之间几乎是挨着的,最后挨到了一起,和卷积一样,这个复数频率空间的级数求和最终可以变成一个积分式:傅立叶级数变成了傅立叶变换。注意有个概念的变化:离散的频率,每个频率都有一个"权"值,而连续的F域,每个频率的加权值都是无穷小(面积=0),只有一个频率范围内的"频谱"才对应一定的能量积分。频率点变成了频谱的线。

  因此傅立叶变换求出来的是一个通常是一个连续函数,是复数频率域上面的可以画出图像的东西? 那个根号2π又是什么? 它只是为了保证正变换反变换回来以后,信号不变。我们可以让正变换除以2,让反变换除以π,怎么都行。慢点,怎么有"负数"的部分,还是那句话,是数轴的方向对应复数轴的旋转,或者对应三角函数的相位分量,这样说就很好理解了。有什么好处? 我们忽略相位,只研究"振幅"因素,就能看到实数频率域内的频率特性了。

  我们从实数(三角函数分解)——>复数(e和π)——>复数变换(F)——>复数反变换(F₋₁)——>复数(取幅度分量)——>实数,看起来很复杂,但是这个工具使得,单从实数域无法解决的频率分析问题,变得可以解决了。

  两者之间的关系是: 傅立叶级数中的频率幅度分量是a1~an,b1~bn,这些离散的数表示频率特性,每个数都是积分的结果。而傅立叶变换的结果是一个连续函数: 对于f域每个取值点a1~aN(N=无穷),它的值都是原始的时域函数和一个三角函数(表示成了复数)积分的结果----这个求解和级数的表示形式是一样的。不过是把N个离散的积分式子统一为了一个通用的,连续的积分式子。

  复频域,大家都说画不出来,但是我来画一下!因为不是一个图能够表示清楚的。我用纯中文来说:

  1、画一个x,y轴组成的平面,以原点为中心画一个圆(r=1)。再画一条竖直线: (直线方程x=2),把它看成是一块挡板。

  2、想象,有一个原子,从(1,0)点出发,沿着这个圆作逆时针匀速圆周运动。想象太阳光从x轴的复数方向射向x轴的正数方向,那么这个原子运动在挡板(x=2)上面的投影,就是一个简谐振动。

  3、再修改一下,x=2对应的不是一个挡板,而是一个打印机的出纸口,那么,原子运动的过程就在白纸上画下了一条连续的sin(t)曲线!

  上面3条说明了什么呢? 三角函数和圆周运动是一一对应的。如果我想要sin(t+x),或者cos(t)这种形式,我只需要让原子的起始位置改变一下就可以了:也就是级坐标的向量,半径不变,相位改变。

  傅立叶级数的实数展开形式,每一个频率分量都表示为AnCos(nt)+BnSin(nt),我们可以证明,这个式子可以变成sqr(An2+Bn2)sin(nt+x)这样的单个三角函数形式,那么:实数值对(An,Bn),就对应了二维平面上面的一个点,相位x对应这个点的相位。实数和复数之间的一一对应关系便建立起来了,因此实数频率唯一对应某个复数频率,我们就可以用复数来方便的研究实数的运算:把三角运算变成指数和乘法加法运算。

  但是,F变换仍然是有限制的(输入函数的表示必须满足狄义赫立条件等),为了更广泛的使用"域"变换的思想来表示一种"广义"的频率信息,我们就发明出了拉普拉斯变换,它的连续形式对应F变换,离散形式就成了Z变换

  离散信号呢? 离散周期函数的F级数,项数有限,离散非周期函数(看为周期延拓以后仍然是离散周期函数),离散F级数,仍然项数有限。离散的F变换,很容易理解----连续信号通过一个周期采样滤波器,也就是频率域和一堆脉冲相乘。时域取样对应频域周期延拓。为什么? 反过来容易理解了,时域的周期延拓对应频率域的一堆脉冲。

  两者的区别:FT[f(t)]=从负无穷到正无穷对[f(t)exp(-jwt)]积分LT[f(t)]=从零到正无穷对[f(t)exp(-st)]积分 (由于实际应用,通常只做单边Laplace变换,即积分从零开始) 具体地,在Fourier积分变换中,所乘因子为exp(-jwt),此处,-jwt显然是为一纯虚数;而在laplace变换中,所乘因子为exp(-st),其中s为一复数:s=D+jw,jw是为虚部,相当于Fourier变换中的jwt,而D则是实部,作为衰减因子,这样就能将许多无法作Fourier变换的函数(比如exp(at),a>0)做域变换。

  而Z变换,简单地说,就是离散信号(也可以叫做序列)的Laplace变换,可由抽样信号的Laplace变换导出。ZT[f(n)]=从n为负无穷到正无穷对[f(n)Z^(-n)]求和。Z域的物理意义: 由于值被离散了,所以输入输出的过程和花费的物理时间已经没有了必然的关系(t只对连续信号有意义),所以频域的考察变得及其简单起来。

  我们把(1,-1,1,-1,1,-1)这样的基本序列看成是数字频率最高的序列,他的数字频率是1Hz(数字角频率2π),其他的数字序列频率都是N分之1Hz,频率分解的结果就是0-2π角频率当中的若干个值的集合,也是一堆离散的数。由于时频都是离散的,所以在做变换的时候,不需要写出冲击函数的因子

  离散傅立叶变换到快速傅立叶变换----由于离散傅立叶变换的次数是O(N2),于是我们考虑把离散序列分解成两两一组进行离散傅立叶变换,变换的计算复杂度就下降到了O(NlogN),再把计算的结果累加O(N),这就大大降低了计算复杂度。

  再说一个高级话题: 小波。在实际的工程应用中,前面所说的这些变换大部分都已经被小波变换代替了。

  什么是小波?先说什么是波:傅立叶级数里面的分量,sin/cos函数就是波,sin(t)/cos(t)经过幅度的放缩和频率的收紧,变成了一系列的波的求和,一致收敛于原始函数。注意傅立叶级数求和的收敛性是对于整个数轴而言的,严格的。

  不过前面我们说了,实际应用FFT的时候,我们只需要关注部分信号的傅立叶变换然后求出一个整体和就可以了,那么对于函数的部分分量,我们只需要保证这个用来充当砖块的"波函数",在某个区间(用窗函数来滤波)内符合那几个可积分和收敛的定义就可以了,因此傅立叶变换的"波"因子,就可以不使用三角函数,而是使用一系列从某些基本函数构造出来的函数族,只要这个基本函数符合那些收敛和正交的条件就可以了。

  怎么构造这样的基本函数呢?sin(t)被加了方形窗以后,映射到频域是一堆无穷的散列脉冲,所以不能再用三角函数了。我们要得到频率域收敛性好的函数族,能覆盖频率域的低端部分。说的远一点,如果是取数字信号的小波变换,那么基础小波要保证数字角频率是最大的2π。

  利用小波进行离频谱分析的方法,不是像傅立叶级数那样求出所有的频率分量,也不是向傅立叶变换那样看频谱特性,而是做某种滤波,看看在某种数字角频率的波峰值大概是多少。可以根据实际需要得到如干个数字序列。

  我们采用(0,f),(f,2f),(2f,4f)这样的倍频关系来考察函数族的频率特性,那么对应的时间波形就是倍数扩展(且包含调制,所以才有频谱搬移)的一系列函数族。频域是窗函数的基本函数,时域就是钟形函数。当然其他类型的小波,虽然频率域不是窗函数,但是仍然可用:因为小波积分求出来的变换,是一个值,例如(0,f)里包含的总能量值,(f,2f)里面包含的总能量值。所以即使频域的分割不是用长方形而是其他的图形,对于结果来说影响不大。

  同时,这个频率域的值,它的分辨率密度和时域小波基函数的时间分辨率是冲突的(时域紧频域宽,时域宽频域紧),所以设计的时候受到海森堡测不准原理的制约。Jpeg2000压缩就是小波:因为时频都是局部的,变换结果是数值点而不是向量,所以,计算复杂度从FFT的O(NlgN)下降到了O(N),性能非常好。

  用中文说了这么多,基本的思想已经表达清楚了,为了"研究方便",从实数傅立叶级数展开,到创造了复数域的傅立叶级数展开,再到傅立叶变换,再扩展到拉式变换,再为了时频都离散的情况简化为Z变换,全部都用一根主线联系起来了。

  本文来源于新浪moneybolight的博客(2011-06-08)

回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-1 09:16 , Processed in 0.101898 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表