1.概述
写在最前。
经典的算法各有各的经典,番茄最近在做信号处理方面的研究,深有感触。以前只觉得这玩意有啥用啊,现在深以为耻,浅了浅了。
说在前面,要解释这个东西,实在是千人千言,我只是表达一下自己的想法,虽说算法这东西,不像兵法“运用之妙,存乎一心”,但是也确实有这么几分意思。扯淡结束,开始正篇。
PS:一家之言,不成方圆。益则纳之,损则弃之。
2.基函数与正交
2.1 基向量
“基”的这个概念,还是来自于数学,向量空间里有了“基向量”的概念。向量空间中任意一个元素,都可以唯一地表示成基向量的线性组合。那基向量有什么特征呢。“线性无关”,也就是不能相互表示,比如二维向量(1,0)和(0,1)是常用的一组基向量,再来一个(1,1)就不行了,因为(1,1) = (1,0)+(0,1)。可以证明n维向量空间中,任意n个线性无关的向量,均是该空间的一组基。
2.2 正交基与标准正交基
n维向量空间有多少组基呢?无数组,任意n个线性无关向量都是它的基。那这个线性表示还有个屁用啊,我们得搞点特殊的基呀,于是就有了正交基。那什么是正交基呢,在向量里面,说两个向量正交就是垂直。a向量和b向量正交,两个向量垂直,那么两个向量的内积为零。即

ps:公式不太好用,截图吧!
而如果两个向量的模长都是1,那这对基可就太好了,我们称这组好基友为单位正交基或标准正交基。那这对标准正交基好在哪?如果我们用这组好基友作为基底表示其他向量,不就相当于拿到了这个向量在这对基上的投影了么,这是啥呀,宝子,这就是坐标啊,坐标好不好,好到爆,我记得高中数学有很多内容都是基于坐标来做的。
由此,我们知道任何一个向量都可以分解成正交基函数的线性表示,举个二维向量的例子:(2,3) = 3*(0,1)+ 2*(1,0);这里的3和2就是向量(2,3)的在两个标准正交基上的投影,我们也称是它的坐标。

向量(2,3)在正交基向量(0,1)和(1,0)上的投影就是它的唯一标识,注意,唯一唯一,很重要。
2.3 标准正交基和正交基函数
说了这么多,这个跟傅里叶变换有什么关系。函数的本质实际上也是向量,可以理解为维数比较高的向量。哈哈哈,不好懂,我也讲不明白,得悟啊。存乎一心……
定义域是函数的有效空间,向量正交的概念拿到这里来,如果两个函数(比如f(x)和g(x))在他们的定义域(a,b)内乘积的积分等于0,那么就说这两个函数是正交函数,也就相当于向量里的垂直啦。
用公式表示的话就是:

定义好了正交,刚才说了函数是无穷维度的向量,那要表示一个函数,就需要无穷个基函数啦,假定无穷个函数,两两正交,我们称他们组成了一组正交函数集。你看,有了这玩意,我们又能愉快的搞函数的“投影”了。
2.4 傅里叶变换的正交函数集
三角函数为什么好玩,又是“积化和差”又是“和差化积”,又是跟复数能联系,又是巴拉巴拉,好像一堆东西都能跟三角函数联系起来,尤其是sin和cos这俩玩意。我也不懂,这狗东西好像啥函数都能通过它俩来表示啊,这话不是我说的,是法国数学家傅里叶他老人家说的,“任何周期函数都可以用正弦函数和 余弦函数构成的无穷级数来表示”。
正弦函数和余弦函数构成的无穷级数是什么呢?就是这个:

在这里当n=0是,实际上得到了1和0这两个常数,它也是三角函数(以下均特指“正弦”和“余弦”)的特殊表达,但是“1”一般把它单独拿出来作为常数。那么傅里叶说的这句话用数学公式怎么表达呢?
任意一个周期函数f(t),可以表示为:

前面向量坐标和“投影”的概念拿过来,实际上我们有了上面这个公式,函数f(t)就可以以三角函数无穷级数作为基函数(集)用系数“a0,an和bn”(n=1,2,3...)来唯一的表示了。
换句话说,函数的傅里叶变换实际上就是把这个函数用三角函数无穷级数来表示,也是这个函数在三角函数无穷级数构成的函数集上的投影(坐标)。
3. 傅里叶变换的物理意义
前面说了一堆,总算说清楚了傅里叶变换的数学意义,说白了就是函数的投影,这个有个专门的词叫“函数的线性表示”,一个意思。那这东西有什么用?
再来看这个公式,你一定还记得这个函数:

其中,A称为函数y的振幅,决定了y的峰峰值;w称为函数y的角频率,决定了y的周期,因为周期和频率是一对好基友,所以w就决定了y的频率;而φ是函数y的(初)相位,决定了函数的初始角度。
那么y这个函数用和差化积公式转换一下呢:

这不就是三角函数的当n=1时的级数表达么,再来看看傅里叶变换的表达式,不就变成了:
这不就是三角函数的当n=1时的级数表达么,再来看看傅里叶变换的表达式,不就变成了:

于是,傅里叶变换的物理意义可以这样理解:信号f(t)经过傅里叶变换,成为n个不同幅值不同频率不同初相位的
的函数,每个函数角频率nw唯一的对应着一个幅值An和初相位φn。如果把nw看做自变量,An是nw的因变量,这个函数的图像就是信号f(t)的幅频特性;如果把nw看做自变量,φn是nw的因变量,这个函数的图像是信号f(t)的相频特性。
4. 离散信号的傅里叶变换
数字信号总是离散的,想要把模拟量信号输入CPU进行处理,免不了使用模-数转换器(AD)。模拟量的信号连续,频率天马星空,一个小小的尖峰经过傅里叶变换后可以包含各种丰富的频率。以矩形波为例,一个脉冲矩形波的傅里叶变换后的幅频图符合抽样分布,其频率将扩展到无穷大。而无穷大是数字信号处理里面最讨厌的东西,我们不喜欢讨论无穷,无限,我们喜欢有限,再牛的AD总有一个采样上限,无限的东西就意味着我们无法进行数字信号处理。

因此,对于一个模拟量信号的转换,我们只需要拿到关注的信号频段就可以,举个例子。电力系统高频信号频率一般不超过3KHz,根据奈彻斯特采样定律,实际上我们最低用6KHz的AD就可以采集3KHz的频段。
好了,有了有限的采样频率,我们就可以愉快的理解离散信号的傅里叶变换啦。以番茄熟悉的电力信号为例,工频信号的频率50Hz,一个周波20ms,假定AD的采样频率是6.4KHz,则一个周波的采样点数为128点,假设x[n]是AD一个周波的采样点数,x[n]的点数为N=128;x[n]经过傅里叶变换后也是128点,因为傅里叶变换的图像的对称性,实际上0-63和64-128是镜像对称的,所以实际上我们只看0-63这几个点就可以了。根据奈彻斯特采样定律6.4kHz的采样频率可以采样信号的最大频率就是3.2kHz,所以0-63个点代表了0-3.2kHz的频率,则一个点代表3200/63的频率。
有了这个例子,我们matlab的fft函数就知道一个点代表的频率啦,注意哈,重要的事情再重复一遍,fft函数得出的结果是镜像对称的,镜像对称,这一点,只要把它的图像画出来一目了然。

5. MATLAB的FFT函数的一点理解
有个疑问困惑着年轻的番茄?为啥fft函数得到的结果是复数,a+bi的这种,需要用abs和angle分别获得幅值和相位。再回来看看这个公式,没有复数啊,什么原因。


6. 写在最后
番茄对于傅里叶变换的理解略显浅显,文章只是分享一下自己的理解,算是抛转引玉吧,如果有误的地方,还望大家指正。感谢,后面分享一篇傅里叶变换到短时傅里叶变换再到小波变换的文章,正在准备资料。你懂得。番茄向来没有计划,更新全看运气。
本文围绕傅里叶变换展开,先介绍基函数与正交概念,包括基向量、正交基、标准正交基和正交基函数,阐述傅里叶变换的正交函数集。接着说明其数学和物理意义,还探讨离散信号的傅里叶变换,结合电力信号举例。最后提及对MATLAB的FFT函数的疑问。
7313

被折叠的 条评论
为什么被折叠?



