傅里叶变换本质及其公式解析

傅里叶变换的本质

傅里叶变换的公式为


可以把傅里叶变换也成另外一种形式:


可以看出,傅里叶变换的本质是内积,三角函数是完备的正交函数集,不同频率的三角函数的之间的内积为0,只有频率相等的三角函数做内积时,才不为0。

下面从公式解释下傅里叶变换的意义 因为傅里叶变换的本质是内积,所以f(t)和求内积的时候,只有f(t)中频率为的分量W才会有内积的结果,其余分量的内积为0。可以理解为f(t)在上的投影,积分值是时间从负无穷到正无穷的积分,就是把信号每个时间在w的分量叠加起来,可以理解为f(t)在
上的投影的叠加,叠加的结果就是频率为的分量,也就形成了频谱。

傅里叶逆变换的公式为

下面从公式分析下傅里叶逆变换的意义

傅里叶逆变换就是傅里叶变换的逆过程,在和求内积的时候,只有t 时刻的分量内积才会有结果,其余时间分量内积结果为0,同样积分值是频率从负无穷到正无穷的积分,就是把信号在每个频率在t时刻上的分量叠加起来,叠加的结果就是f(t)在t时刻的值,这就回到了我们观察信号最初的时域。

对一个信号做傅里叶变换,然后直接做逆变换,这样做是没有意义的,在傅里叶变换和傅里叶逆变换之间有一个滤波的过程。将不要的频率分量给滤除掉,然后再做逆变换,就得到了想要的信号。比如信号中掺杂着噪声信号,可以通过滤波器将噪声信号的频率给去除,再做傅里叶逆变换,就得到了没有噪声的信号。

优点:频率的定位很好,通过对信号的频率分辨率很好,可以清晰的得到信号所包含的频率成分,也就是频谱。
缺点:因为频谱是时间从负无穷到正无穷的叠加,所以,知道某一频率,不能判断,该频率的时间定位。不能判断某一时间段的频率成分。

例子:
平稳信号:x(t)=cos(2*pi*5*t)+cos(2*pi*10*t)+cos(2*pi*20*t)+cos(2*pi*50*t)

傅里叶变换的结果:

由于信号是平稳信号,每处的频率都相等,所以看不到傅里叶变换的缺点。

对于非平稳信号:信号是余弦信号,仍然有四个频率分量

傅里叶变换的结果:

由上图看出知道某一频率,不能判断,该频率的时间定位。不能判断某一时间段的频率成分。

短时傅里叶变换

傅里叶变换存在着严重的缺点,就是不能实现时频联合分析。傅里叶变换要从负无穷计算到正无穷,这在实际使用当中,跟即时性分析会有很大的矛盾。根据这一缺点,提出了短时傅里叶变换。后来的时间—频率分析也是以短时傅里叶变换为基础提出的。

为了弥补傅里叶变换的缺陷,给信号加上一个窗函数,对信号加窗后计算加窗后函数的傅里叶变换,加窗后得到时间附近的很小时间上的局部谱,窗函数可以根据时间的位置变化在整个时间轴上平移,利用窗函数可以得到任意位置附近的时间段频谱,实现了时间局域化。

短时傅里叶变换的公式为:

在时域用窗函数去截信号,对截下来的局部信号作傅立叶变换,即在t时刻得该段信号得傅立叶变换,不断地移动t,也即不断地移动窗函数的中心位置,即可得到不同时刻的傅立叶变换,这样就得到了时间—频率分析。
短时傅里叶变换的本质和傅里叶变换一样都是内积,只不过用
实现了局部信号的频谱分析。
短时傅里叶变换的另一种形式:

该式子表明在时域里)
优点:在傅里叶变换的基础上,增加了窗函数,就实现了时间—频率分析。

缺点:短时傅里叶变换使用一个固定的窗函数,窗函数一旦确定了以后,其形状就不再发生改变,短时傅里叶变换的分辨率也就确定了。如果要改变分辨率,则需要重新选择窗函数。短时傅里叶变换用来分析分段平稳信号或者近似平稳信号犹可,但是对于非平稳信号,当信号变化剧烈时,要求窗函数有较高的时间分辨率;而波形变化比较平缓的时刻,主要是低频信号,则要求窗函数有较高的频率分辨率。短时傅里叶变换不能兼顾频率与时间分辨率的需求。测不准原理告诉我们,不可能在时间和频率两个空间同时以任意精度逼近被测信号,因此就必须在信号的分析上对时间或者频率的精度做取舍。短时傅里叶变换受到测不准原理的限制,所以短时傅里叶变换窗函数的时间与频率分辨率不能同时达到最优。在实际使用时,根据实际情况选用合适的窗函数。

例子:
原始信号: 信号是余弦信号,有四个频率分量。

当窗函数选为:

时,短时傅里叶变换为:

由上图可以看出,时域的分辨率比较好,但是频率出现一定宽度的带宽,也就是说频率分辨率差;

当窗函数选择为:

时,短时傅里叶变换为:

由上图可以看出,频率的分辨率比较好,但是时域分辨率差,有点接近傅里叶变换。有上图可以看到短时傅里叶变换的缺点。

时间: 2024-12-24 02:22:59

傅里叶变换本质及其公式解析的相关文章

基于逆波兰表达式的公式解析器-算法和思路(一)

背景: 近期项目须要自己完毕Excel的公式解析和求值,在Java中能够使用POI解析Excel公式然后求值.可是项目须要JS端和Java后端均须要支持公式解析,所以就须要自己写一套了.事实上公式解析器整体上并不复杂.原理使用逆波兰表达式就可了. 难点: 1. 针对复杂的用户输入环境解析公式,须要注意公式书写不规范.大写和小写.空格等问题,甚至公式出错的推断. 2. 须要解决函数扩展.函数运行等问题. 3. 须要解决地址.地址范围取数,求值问题. 4. 处理括号带来的优先级提升. 5. 解决公式

JVM快速调优手册之四: 堆内存分配的CMS公式解析

JVM 堆内存组成 Java堆由Perm区和Heap区组成,Heap区由Old区和New区(也叫Young区)组成,New区由Eden区.From区和To区(Survivor)组成. Eden区用于存放新生成的对象.Eden中的对象生命不会超过一次Minor GC.Survivor Space 有两个,存放每次垃圾回收后存活的对象,即图的S0和S1.Old Generation Old区,也称老生代,主要存放应用程序中生命周期长的存活对象 公式 将EDEN与From survivor中的存活对象

JAVA实现EXCEL公式专题(一)——EXCEL公式分类与解析步骤

1)EXCEL公式分类 a. 数值: 从极端情况来说,数值也是一种最简单的公式如 A1=1; b. 简单函数:简单函数指的是参数只能是数值的函数,如公式A3(简单函数)=sum(A1:A2),,A1=1,A2=3; c. 复杂函数:复杂函数指的是参数中也存在函数的,如A4(复杂函数)=avg(A3,A1): d. 表达式:指的是四则运算表达式,如A5=(A4+A1)/A3; 在鄙人现有知识范围内,EXCEL公式函数不外乎以上四种情况. 2)EXCEL公式解析--递归 那上面最复杂的d类中的四则运

muParser公式库使用简介( 转)

muParser是一个跨平台的公式解析库,它可以自定义多参数函数,自定义常量.变量及一元前缀.后缀操作符,二元操作符等,它将公式编译成字节码,所以计算起来非常快. 当前版本V1.28,官方网址http://sourceforge.net/projects/muparser/,这里是关于该库使用交流https://sourceforge.net/forum/forum.php?forum_id=462843 它提供两种方式使用,一种是将它编译进你的程序中,使用C++类,另一种是将它编译成共享库,可

[傅里叶变换及其应用学习笔记] 二十七. 高维傅里叶变换,复习

这节课主要讲傅里叶变换的计算,由于高维傅里叶变换有多个变量,多重积分,因此在计算时会有较大的困难.不过某些函数会有较为简捷的计算方式,下面来分析两类这样的函数. 可分离函数 有一类函数的高维傅里叶变换能通过计算一系列低维傅里叶变换来得到,这类函数被称为可分离函数.(There's an important class of functions for which you can compute a higher-dimensional transform by computing a serie

如果动态的执行java脚本,这个在脚本公式配置的时候很方便

package com.bfrj.core.groovy; import java.util.HashMap; import java.util.Map; import org.jeecgframework.core.util.ApplicationContextUtil; import org.springframework.context.ApplicationContext; /** * 公式计算 * */ public class GroovyParse { /** * 公式解析计算 *

解析大型.NET ERP系统 设计异常处理模块

异常处理模块是大型系统必备的一个组件,精心设计的异常处理模块可提高系统的健壮性.下面从我理解的角度,谈谈异常处理的方方面面.我的设计仅仅限定于Windows Forms,供参考. 1 定义异常类型 .NET 框架定义很多异常类型,ERP系统中根据实际的需要,我们再增加一些自定义的异常类型. 数据库访问异常:LLBL Gen Pro已经定义几种常见的异常类型,常见的异常类型及其作用简介. ORMConcurrencyException     并发异常,更新实体时实体已经被删除,删除时有约束无法删

灰度图像--频域滤波 傅里叶变换之离散傅里叶变换(DFT)

学习DIP第23天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan,欢迎大家转载,发现博客被某些论坛转载后,图像无法正常显示,无法正常表达本人观点,对此表示很不满意.有些网站转载了我的博文,很开心的是自己写的东西被更多人看到了,但不开心的是这段话被去掉了,也没标明转载来源,虽然这并没有版权保护,但感觉还是不太好,出于尊重文章作者的劳动,转载请标明出处!!!! 开篇废话 一如既往的开篇废话,今天介绍离散傅里叶变换(DFT),学习到这,不敢说对傅里叶有多了解,

Java面试题上

1.面向对象的特征有哪些方面?答:面向对象的特征主要有以下几个方面:- 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面.抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么.- 继承:继承是从已有类得到继承信息创建新类的过程.提供继承信息的类被称为父类(超类.基类):得到继承信息的类被称为子类(派生类).继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段(如果不能理解请阅读阎宏博士的<Java与模式>或<设计模式精