前言

傅立叶分析的作用是把一个函数变成一堆三角函数的和的形式,也就是分解。首先引入的是傅立叶级数,Fourier级数的作用是把函数变为可数无限个三角函数的和,而且这些三角函数的频率都是某个基频的整数倍。如果这个基频无限趋近于0,那么在极限的情况下这函数的参数(频率)就连续了,将连续时域函数映射到连续的频域函数的变换就是标准的傅立叶变换。

由于工程采集的信号大多都是离散的,把时域离散化以后不可能在得到连续的频域函数,所以在频域上也不连续了,这种离散时域序列到离散频域序列的变换称之为离散傅立叶变换(DFT),然后有人开发出了快速计算的快速傅立叶变换(FFT)。

以上介绍的每一种Fourier变换都有其逆变换。

Fourier级数

考虑一下,假设存在2个序列,还有一个数字

现在有一个时域上变化的函数。这个函数可以表达为如下的形式:

这就是傅立叶级数,傅立叶变换最基础的形式。上式中和式的形式或许并不直观,如果画出一部分或许会直观一些。

如图所示,是从圆频率为1rad/s~10rad/s的正弦信号的合集。


空间上的Fourier级数展开

考虑傅立叶级数,首先考虑周期函数在上的展开,但是在展开之前,需要做几个计算和证明。

计算就不计算了,这个是一样的)。

积分过程略,得到。

这样就求出了上的范数,就是

那么正交基不妨使用构成。

然而我并不知道这个集合是不是正交的基,需要证明啊!

下面证明如下的积分关系成立:

其中,,可以的很轻松得到:2,4,5的正确性,关键在于1,3,6的证明上。

证明了以上六个等式,也就等同证明了空间的一组正交基。

首先我们都造:

辣么两个加一下就得到:

减一下就得到:

的时候,上面那俩货上积分是0可以用肉眼看出。

看不出的……呵呵

最后证明1式,首先假设,很轻松就证明了,然后的时候,函数是奇函数,所以在相对原点对称的区间上积分是0。

证完收工。

现在我们搞到了这么一组正交基:

下面就要用它分解函数了,也就是计算这些系数。

这是个求平均值的操作应该很好理解。

以上两个公式应该也没有理解上的困难,但是有两个细节,第一个,为什么的系数使用和直流量(或者叫平均值)一样的,而不是使用,因为这个本质上是和基做内积的时候,时候的特殊情况。

其次,为何前面的系数是,其实是为了匹配形式:

我们的三角函数基都是带的,如果需要不带,那么系数就要乘以,本来求系数很干脆:

这样表达式就要写成:

如果让新的系数成为系数,那么就可以得到直接乘sin和cos的简洁形式,这个时候积分式变为:

两个相乘以后就得到了

空间上的Fourier级数展开

如果我们把上面那个宽度为的区域平移会发生什么?

答:毛线都不会发生。

那么我们需要改变什么呢?

答:改一下积分的上下限就可以了。以的求法为例,原来的式子需要改为:

其它的以此类推都一样,没有任何变化。

之所以敢这么搞,是因为推导出正交基的六个等式的对错没有因为增加了这个发生变化,其引理自然也不变化。

空间上的Fourier级数展开

这个变化好像就在问:如果区间拉伸了怎么办?

函数的定义域(区间)拉伸了,那么我们把基也一起拉伸就OK了。

那么,问题来了:怎么拉伸呢?

很简单,先直接抻长了:

然后保证范数是1就可以了。

范数的计算和上面范数的计算几乎是一毛一样的,所以在此略过直接说结果:

空间上满足:

的参数的求取公式如下:


Fourier级数的最终自由形态:空间上的级数展开

有了上面两份推导,现在可以正式得出更加一般的展开:

这个时候,区间的长度是,等同于刚才,那么带入得到从参数换为函数的变换如上所示。

这个时候参数的求取是这样的:

这样就结束了,我们得到了一种在任意有限区间对函数进行展开的方法,这样我们就可以开发出一些更加奇葩的东西,比如对一个函数使用Fourier基进行分段拟合。

Trick:

在对函数进行人肉傅立叶级数展开的时候,如果区间关于原点对称,首先观察函数的形式,如果是奇函数,那么cos的部分(含直流分量)就可以不看了:一定没有~

如果是偶函数,那么sin的部分就可以不用看了。

大道至简:Fourier级数的复指数形式

由著名的欧拉公式:

其中,在许多场合一般使用j代替i,但是实际上一般定义,但是由于的两个共轭的结果就是,所以上述关系一般用不到,只是在做一些说明的时候为了方便使用j代替-i。

我们不妨设,那么就可以得到Fourier的复指数形式:

从三个公式变成一个公式,果然身心都愉悦了好多呢,但是这么变换为什么是有效的呢?

以下证明分两步走,第一步,证明为什么欧拉公式形状这么诡异但是是对的。第二,为什么能用复数吧sin和cos结合起来。

关于欧拉公式的证明:

首先把指数函数和两个三角函数进行Taylor展开:

然后令可以推导出下式:

就这么愉快的证明了。

那么为什么复数可以用来把两个函数糅合到一起呢?

因为在复平面上,实数轴和虚数轴是垂直的。

而且,我们以三角函数过零,且导数大于0的点为相位的0点,那么在的时候,sin的相位是0,而cos的相位是90°,也就是

那么,如果sin的相位是-90°,那么cos的相位就是0°,这是一个相对的关系,并无绝对。我们继续分析,其实是一条三维空间的螺旋线:

除了有在复平面上能直接表示相位的良好性质以外,还是一个合格的复周期函数呢~那么我们不妨抛弃从旧版傅立叶到新版傅立叶的映射,重构整个证明吧!

现在我们新建规范正交基:,我们来证明它是规范正交的。

根据内积的定义好像,但是在复数下这是错误的!

复数下面其实是:

这样就可以用共轭消除虚数部分了,得到的范数才是真实的。

话说指数函数真的是一个专业对抗求导积分500年的函数,它的积分更容易,在此不证明了,直接给出结论:它的范数是,所以上面给出的正交基是规范的。

那么还不知道正交不正交呢(然而我就急着叫他规范正交基了)。

的时候可以得到函数积分为0,如果的时候就反常了,然而并不是很难解,直接常数项积分谁都会,得到,就是上面的结论。(一不小心还是证明了不想写的东西)

其实这个时候傅立叶级数已经脱胎换骨了,从根本上换了一套基,也就从原来的实数领域推广成了更为广阔的复数领域,但是形式却更加的简洁了。

Fourier分析基础(一)——Fourier级数的更多相关文章

  1. Fourier分析基础(二)——由级数导出连续Fourier变换

    此处推导参考(照抄) A First Course in Wavelets with Fourier Analysis Second Edition, Albert Boggess& Fran ...

  2. 为什么Fourier分析?

    本文旨在给出Fourier分析的几个动机. 目录 波动方程 热导方程 Lapalce变换 求和公式 表示论 特征理论 参考资料 波动方程 考虑一维的波动方程最简单的边值问题$$u(x,t), x\in ...

  3. 老李分享:《Java Performance》笔记1——性能分析基础 1

    老李分享:<Java Performance>笔记1——性能分析基础   1.性能分析两种方法: (1).自顶向下: 应用开发人员通过着眼于软件栈顶层的应用,从上往下寻找性能优化的机会. ...

  4. 算法设计与分析基础 (Anany Levitin 著)

    第1章 绪论 1.1 什么是算法 1.2 算法问题求解基础 1.2.1 理解问题 1.2.2 了解计算设备的性能 1.2.3 在精确解法和近似解法之间做出选择 1.2.4 算法的设计技术 1.2.5 ...

  5. 网站分析基础及KPI实践

    一:网站分析是什么? 网站分析(Web Analytics)即网站访客行为分析,通过对网站数据进行定量和定性的分析,来不断驱动和提高访问者在网站中的体验,并将访客转化为你的商业目标(在线及离线KPI) ...

  6. RE-1 逆向分析基础

    逆向分析基础 0x01-0x0C 本笔记使用汇编指令为x86架构下汇编指令,ARM架构汇编指令不做介绍 0x01. 关于RE 逆向工程(Reverse Engineering RE) 逆向分析方法: ...

  7. Makefile分析基础

    http://blog.csdn.net/ghostyu/article/details/6866863 在我前一篇写的[ linux驱动学习(一)Makefile基础]中,Makefile写的中规中 ...

  8. 精尽 MyBatis 源码分析 - 基础支持层

    该系列文档是本人在学习 Mybatis 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释(Mybatis源码分析 GitHub 地址.Mybatis-Spring 源码分析 GitHub ...

  9. LR之性能分析基础

    1.判断测试结果有效性 2.分析要点提示 3.Analysis主要提供的6大类分析图 4.分析流程

随机推荐

  1. MAC 调整Launchpad 图标大小

    1.调整每一列显示图标数量 defaults write com.apple.dock springboard-rows -int 7 2.调整每一行显示图标数量 defaults write com ...

  2. posix第二篇-----linux 锁机制

    1 简介 锁机制(lock) 是多线程编程中最常用的同步机制,用来对多线程间共享的临界区(Critical Section) 进行保护. Pthreads提供了多种锁机制,常见的有: 1) Mutex ...

  3. JAVA语法题

    import java.util.*; public class Birthdays { public static void main(String[] args){ Map<Friends, ...

  4. CodeForces 621B Wet Shark and Bishops

    记录一下每个对角线上有几个,然后就可以算了 #include<cstdio> #include<cstring> #include<cmath> #include& ...

  5. 手机访问pc网站,自动跳转到手机网站

    <script type='text/javascript'> var browser = { versions: function () { var u = navigator.user ...

  6. (简单) POJ 3268 Silver Cow Party,Dijkstra。

    Description One cow from each of N farms (1 ≤ N ≤ 1000) conveniently numbered 1..N is going to atten ...

  7. [iOS] 响应式编程开发-ReactiveCocoa(二)

    RAC实现图片下载功能 在实现异步RAC下载图片的过程中,需要注意以下几点: • 通过 NSURLConnection 对象的 +(RACSignal *)rac_sendAsynchronousRe ...

  8. Keil MDK下如何设置非零初始化变量(转)

    源:Keil MDK下如何设置非零初始化变量 一些工控产品,当系统复位后(非上电复位),可能要求保持住复位前RAM中的数据,用来快速恢复现场,或者不至于因瞬间复位而重启现场设备.而keil mdk在默 ...

  9. Java设计模式遵循的七大原则

    最近几年来,人们踊跃的提倡和使用设计模式,其根本原因就是为了实现代码的复用性,增加代码的可维护性.设计模式的实现遵循了一些原则,从而达到代码的复用性及增加可维护性的目的,设计模式对理解面向对象的三大特 ...

  10. 增量式PID的stm32实现(转)

    源:增量式PID的stm32实现,整定过程 首先说说增量式PID的公式,这个关系到MCU算法公式的书写,实际上两个公式的写法是同一个公式变换来得,不同的是系数的差异. 资料上比较多的是: 还有一种是: ...