一、转载自如何直观形象、生动有趣地给文科学生介绍傅里叶变换?
从数学的角度,提供一个形象有趣的解释。理解傅里叶变换的钥匙是理解基♂,它能让你重新认识世界。
1. 什么是基?
假设一个科研所有四个所长(一正三副),四个所长各司其职,把整个科研所的事物管理得井井有条。这四个所长,少一个,单位的工作无法顺利展开,多一个碍手碍脚事倍功半,他们四人一道就组成了科研所的一个"基"。 一个单位的基可能不是唯一的,四个人换换位置工作也能展开,调走一个人再换一个人来顶替,单位亦可以正常运转,但是4这个数是不能变化的(数学语言:空间的维数固定不变)。 总结:一组基,就是足够能描述、表达某类事物的最少的一小撮元素们。
2. 基只有一种形式吗?
我们把科研所的日常事务换成感情,把四个所长换成语言字典重新来叙述。 假设你爱上了一个人,需要向她表达感情。这时就需要一套表达感情的工具——语言。如果使用汉语,你可以说"我爱你",如果使用英文,你可以说"I love you"。汉语的所有词汇构成了一个集合,英语的所有词汇也构成了一个集合,它们都可以描述感情、感觉、事物和知识,它们是两套不同的描述系统,分别有自己的基。总结:描述事物的基可以有很多套。
3. 如何构造一组基?
汉语的词汇量很大,有很多重复意义的词,比如我爱你就可以重新表述为:"俺爱你","我爱侬","我想和你困觉"等等。我们把汉语词汇中所有同意的词只保留一个(数学语言:使线性无关),留下来的词汇量较少的词典就是汉语的一个基,里面的每一个词被称作基函数。它的特点是:所有汉语能描述的思想都可以用从这个较小的词汇本中挑出的一些词汇(基函数)经过精心安排(加权相加)来描述,并且只有一种描述方式(数学语言:若基固定,则对应系数/坐标确定),因为我们已经去掉了所有冗余的、近似的词汇,因此不存在一个事物在一个基下有两种不同表示法存在。总结:一套基中的元素很多,足够描述事物,只要从中挑出一些你需要的,按某种方式组合在一起即可,一套基中的元素很少,以至于这种描述事物的方法是唯一的。
4. 不同基之间有什么联系?
给定两个不同的语言,给出两个不同语言的小字典(两组基),我们都可以分别用唯一的方式表达同一思想(函数、点),这两种表示法之间可以相互转换(数学语言:坐标变换)。"I love you"和"我爱你"可以相互转化。总结:给定一个基,我们就可以用这组基表达事物,也可以用它来翻译用其他基描述的事物,不同基下的表示可以相互转换。
5. 什么是傅里叶变换?
大家还记得三角函数sin和cos吗,就是那种波浪形状的函数,一个波浪的的宽度可以是不同的,既可以像跳大绳一样宽,也可以像电炉丝一样窄(数学语言:频率不同)。把这些三角函数放到一起组成一个字典,就恰好是连续函数的一组基:任何一个连续函数,都可以唯一表示成一群三角函数相叠加。然而每个三角函数的分量有轻有重,相加的时候有的要拉高点,有的要压低点,有的干脆不用(数学语言:加权系数不同)。到底是哪些三角函数呢,各个三角函数的分量如何呢?找到它们的过程,被称为傅里叶变换。举几个例子:下面两个图,左上角是某个函数(信号)的样子,它等于1000个震荡的三角函数相加,中间一列从下往上是这1000个三角函数中第0、1、2、3个,以及中间6、30、160、800个相加的样子,注意好几个三角函数加在一起就不再像是三角函数了。右边一列从下往上是把这些三角函数叠加在一起,1000个加在一起和原函数完全一样,但是前40个三角函数函数加在一起和原函数已经很相似了。从这几个例子可以看出,把一系列震荡的三角函数按照傅里叶系数(权值)进行缩放再加起来,大概40个三角函数加到一起,就和原来的函数长得差不多了,无论原来的那个函数长的有多么奇特。因此我们说:蚂蚁也能撼大树,三角函数多了加到一起,多奇怪的连续函数我长的都能和你是一个样。
总结:给你一个函数,找到它的傅里叶变换,就是找到一堆系数,每一个系数对应一个不同频率的三角函数,这些三角函数分别按各自的系数改变振幅(数学语言:确定坐标),然后叠加在一起,恰好就与原来那个函数相等。因此,四个处长是一组基,能维持一个单位的运转,处理各种问题;一套简化的汉语词典是一组基,什么样的情感它都能找到唯一的表达语句;一堆三角函数是一组基,什么样的连续函数都可以用一大堆三角函数叠加获得,找到这种表示的过程叫做傅里叶变换。
6. 傅里叶变换有什么用?
摆弄一系列三角函数,让这个多点那个少点,有一个酷炫的名字,叫“频域处理”, 你去了美国,不知道白宫怎么走,你问翻译:白宫怎么走?翻译跑到街上问美国人:Where is the White House? 这叫傅里叶变换。美国路人说:"go straight and turn right"。这叫频域处理。翻译听完给你说:直走,右拐就到了。这叫逆傅里叶变换。总结:傅里叶变换的作用,就是把一个函数或者信号在三角函数基下转化为一堆系数,摆弄这些系数、实现一定功能有时比直接摆弄原信号方便,最后再做个逆傅里叶变换,信号就得到了某种处理。
7. 傅里叶变换与压缩、简化表示
从第5小节我们知道了基变换的一个用处:压缩信号。
原始信号需要用1000个点来表示,但是其实只需要40个三角函数系数就可以表示出大概。大家天天都会遇到的JPG图片就是干这个事的,一张800*600的彩色照片,如果保存成非压缩的BMP图像格式,需要占据1.4M存储空间,如果保存成JPG格式,大概50K就够了。
JPG能压缩得这么厉害,诀窍就在于它用了一组特别的基(小波基),使用特别少的基函数就可以把原始图像表示得八九不离十,在这里频域处理就是把绝大多数基函数前面的系数直接置0。为什么能这么干呢?因为小波基有很强的表达能力,我们总能选取极少的几个小波基函数就能拼出任意一个给定的图像的大概,然后即使抛弃剩下那些大量边角料,也不太会对视觉效果造成什么影响。
说到这里你肯定一头雾水,咱们再来做个类比来说说基的压缩能力。想象这样一个故事:女主角出生在孤儿院,和男主角相遇但是被抛弃,生下一个女儿,她后来做了个变性手术,穿越回到过去和还是女儿身的自己啪啪啪,带着女儿再次穿越到自己被收养时的孤儿院把婴儿抛弃在那。如果你缺乏语言能力,比如你是一条狗,你怎样让另一条狗理解孤儿院、男、女、啪啪啪、抛弃、爱情这些真实世界中极度复杂的概念?你能做的最好的重述就是雇一男一女和一个时光机,把故事演一遍,对方还不一定能懂。语言能够在短短的一段话里就描述出这一个复杂的故事,因为它抛弃了大量细节,只保留最重要的信息:如果说真实世界每一个对象(物体、故事、情感)是一个函数,那么语言就是一组新的基,在这组基下,每一个基函数(词汇)都具有高强的描述能力,复杂的对象可以用聊聊几笔进行描述、压缩、传递,让人类能够高效地交流,快速地学习。
一个海岸有多少粒沙子?多少滴海水?一幅800*600像素的图像就能捕获你在海边嬉戏的靓影,只用了48万个基函数,如果你用JPG格式存储,调动的基函数还会更少。普通非压缩位图数字图像的基函数长的都一样:在一颗像素是白色(1),在其他所有像素都是黑色(0)——一个基就是一根孤零零的矩形棍子,其对应的系数就是对应像素的颜色值,真彩色的系数有约1600万种。
傅里叶变换和这幅图中的变换非常类似,只不过基函数不是一颗像素,而是震荡的三角函数。所有三角函数Asin(ax+b)也可以由一个三角函数sin(x)通过改变频率a,相位b和振幅A来获得,这种情况很有意思:一组基中所有的基函数都是由一个基函数经过简单地平移、拉伸或改变振幅获得。它的实质是另一种意义上的压缩:我们用一个基函数(数学语言:母函数)通过简单形变来生成其他基函数,再用它们一起表示更复杂的元素。我们不需要拉来一头牛一只羊来表示这里有一头牛一只羊,我们只需要用许多个基本元素,每一个都差不多,就能近似表示复杂的场景。这一思想的一个有趣的应用是游戏Minecraft,在这里基函数是一些等大立方体块,把它们拼在一起则组成了复杂世界的近似:
这里这个图和上面用40个三角函数近似一维信号、一堆像素近似二维物体是完全类似的,这里是用立方体近似三维世界。同样是对真实世界的近似描述,我们可以用一堆抽象词汇、用像素、用立方体块,也可以用三角函数形状的“块”,使用彼此近似但略微不同的基函数,我们就可以对无比复杂的真实世界的对象进行压缩、近似。三角函数基唯一的奇怪之处在于它是震荡的,看着不萌。压缩的缺点是无法反向恢复,可以从一幅图像变换到另一幅,但是不能从一幅图像恢复真实世界。但是没人想捧着真实世界,人们需要的恰恰是对真实世界的高度凝练地表示。
8. 频域处理能干啥?
如果你不懂英文,一个妙龄少女对你说:Hi. I love you. Are you free tonight?你会回复她:姑娘你能不能不要说鸟语?滚回美帝玩泥巴吧。如果你懂英语,就会发现姑娘说的东西其实是有某种意义的,可以进一步处理。在某些领域,傅里叶变换后的系数非常有用,我们前面已经举了傅里叶变换能够压缩数据的例子,下面再举几个其他例子。为了显示方便,举一个二维的例子,见下图:
原始图像中含有噪声,因为噪声往往是细小的雪花点,属于图像高频分量,因此我们把图像首先做傅里叶变换,然后把变换后的三角函数前的系数中属于高频的部分全部去掉(置0),然后再做逆傅里叶变换,我们发现图像中的细节(噪声点)减少了。这就是频率域去噪的基本原理。在音频处理中,不同人对于同一个音节发出的声音,其傅里叶变换后的系数是不同的,并且可能每个人的模式是稳定的,就像指纹一样,那么傅里叶变换后的系数就可以来识别、合成某个人的声音,把某个人的发音中的某些系数进行调整,就变成了另一个人发音;所有人对于不同词汇的发音的傅里叶变换系数也可能具有某些固定模式,利用这些模式可以发展声音的理解技术,比如Siri。现在政府监督电话敏感词,再也不是找接线员一个个听了,而是用电脑自动监听,如果发现某人的通讯中敏感词频率较高,再派专人处理。
9. 还有哪些基我们可能听过,但是不曾认识到?
多项式基:多项式多了,啥稀奇古怪的函数都能表示,不信你试试泰勒展开式有多好用就知道了。小波基:傅里叶基(三角函数)的改进,可以进行局部控制。
B-样条基:多项式基的改进,可以进行局部控制,画家画画用的就是这东西。一幅800600的图像,我们既可以认为它是一幅抽象的图像,也可以认为它是一个由800600个基函数(一个基函数是某一颗像素值为1,其他所有像素值为0的图像)进行加权相加获得的一个坐标表示。
========================认真的分割线==========================
感谢知友指出错误:
- 乓乒球指出“基的维数”这一说法是错误的,正确的说法是基张成(描述)的空间的维数。
- cc hao指出JPG格式使用的是离散余弦变换,不是小波变换,JPG2000使用的才是小波变换。
二、转载自傅里叶分析之掐死教程(完整版)更新于2014.06.06
1.时域和频域
从我们出生,我们看到的世界都以时间贯穿,股票的走势、人的身高、汽车的轨迹都会随着时间发生改变。这种以时间作为参照来观察动态世界的方法我们称其为时域分析。而我们也想当然的认为,世间万物都在随着时间不停的改变,并且永远不会静止下来。但如果我告诉你,用另一种方法来观察世界的话,你会发现世界是永恒不变的,你会不会觉得我疯了?我没有疯,这个静止的世界就叫做频域。先举一个公式上并非很恰当,但意义上再贴切不过的例子:
在你的理解中,一段音乐是什么呢?
这是我们对音乐最普遍的理解,一个随着时间变化的震动。但我相信对于乐器小能手们来说,音乐更直观的理解是这样的:
好的!下课,同学们再见。是的,其实这一段写到这里已经可以结束了。上图是音乐在时域的样子,而下图则是音乐在频域的样子。所以频域这一概念对大家都从不陌生,只是从来没意识到而已。在时域,我们观察到钢琴的琴弦一会上一会下的摆动,就如同一支股票的走势;而在频域,只有那一个永恒的音符。
2.正弦波
正弦波就是一个圆周运动在一条直线上的投影。所以频域的基本单元也可以理解为一个始终在旋转的圆。
3.正弦波的叠加
在这几幅图中,最前面黑色的线就是所有正弦波叠加而成的总和,也就是越来越接近矩形波的那个图形。而后面依不同颜色排列而成的正弦波就是组合为矩形波的各个分量。这些正弦波按照频率从低到高从前向后排列开来,而每一个波的振幅都是不同的。一定有细心的读者发现了,每两个正弦波之间都还有一条直线,那并不是分割线,而是振幅为0的正弦波!也就是说,为了组成特殊的曲线,有些正弦波成分是不需要的。这里,不同频率的正弦波我们成为频率分量。
好了,关键的地方来了!!如果我们把第一个频率最低的频率分量看作“1”,我们就有了构建频域的最基本单元。对于我们最常见的有理数轴,数字“1”就是有理数轴的基本单元。有了“1”,还要有“0”才能构成世界,那么频域的“0”是什么呢?cos(0t)就是一个周期无限长的正弦波,也就是一条直线!所以在频域,0频率也被称为直流分量,在傅里叶级数的叠加中,它仅仅影响全部波形相对于数轴整体向上或是向下而不改变波的形状。
介绍完了频域的基本组成单元,我们就可以看一看一个矩形波,在频域里的另一个模样了:
其实是从另一个方向看过去的侧面图
可以发现,在频谱中,偶数项的振幅都是0,也就对应了图中的彩色直线。振幅为0的正弦波。
4.傅里叶分析究竟是干什么用的?
先说一个最直接的用途。无论听广播还是看电视,我们一定对一个词不陌生——频道。频道频道,就是频率的通道,不同的频道就是将不同的频率作为一个通道来进行信息传输。下面大家尝试一件事:
先在纸上画一个sin(x),不一定标准,意思差不多就行。不是很难吧。好,接下去画一个sin(3x)+sin(5x)的图形。别说标准不标准了,曲线什么时候上升什么时候下降你都不一定画的对吧?好,画不出来不要紧,我把sin(3x)+sin(5x)的曲线给你,但是前提是你不知道这个曲线的方程式,现在需要你把sin(5x)给我从图里拿出去,看看剩下的是什么。这基本是不可能做到的。
但是在频域呢?则简单的很,无非就是几条竖线而已。所以很多在时域看似不可能做到的数学操作,在频域相反很容易。这就是需要傅里叶变换的地方。尤其是从某条曲线中去除一些特定的频率成分,这在工程上称为滤波,是信号处理最重要的概念之一,只有在频域才能轻松的做到。
再说一个更重要,但是稍微复杂一点的用途——求解微分方程。(这段有点难度,看不懂的可以直接跳过这段)微分方程的重要性不用我过多介绍了。各行各业都用的到。但是求解微分方程却是一件相当麻烦的事情。因为除了要计算加减乘除,还要计算微分积分。而傅里叶变换则可以让微分和积分在频域中变为乘法和除法,大学数学瞬间变小学算术有没有。
5.相位谱
通过时域到频域的变换,我们得到了一个从侧面看的频谱,但是这个频谱并没有包含时域中全部的信息。因为频谱只代表每一个对应的正弦波的振幅是多少,而没有提到相位。基础的正弦波A.sin(wt+θ)中,振幅,频率,相位缺一不可,不同相位决定了波的位置,所以对于频域分析,仅仅有频谱(振幅谱)是不够的,我们还需要一个相位谱。那么这个相位谱在哪呢?我们看下图,这次为了避免图片太混论,我们用7个波叠加的图。
在完整的立体图中,我们将投影得到的时间差依次除以所在频率的周期,就得到了最下面的相位谱。所以,频谱是从侧面看,相位谱是从下面看。下次偷看女生裙底被发现的话,可以告诉她:“对不起,我只是想看看你的相位谱。”
注意到,相位谱中的相位除了0,就是Pi。因为cos(t+Pi)=-cos(t),所以实际上相位为Pi的波只是上下翻转了而已。对于周期方波的傅里叶级数,这样的相位谱已经是很简单的了。另外值得注意的是,由于cos(t+2Pi)=cos(t),所以相位差是周期的,pi和3pi,5pi,7pi都是相同的相位。人为定义相位谱的值域为(-pi,pi],所以图中的相位差均为Pi。
最后来一张大集合:
6.指数形式的傅里叶变换(这部分没看懂……)