信号分析——从傅里叶变化到FFT

我们眼中的世界就像皮影戏的大幕布,幕布的后面有无数的齿轮,大齿轮带动小齿轮,小齿轮再带动更小的。

在最外面的小齿轮上有一个小人——那就是我们自己。

我们只看到这个小人毫无规律的在幕布前表演,却无法预测他下一步会去哪。

而幕布后面的齿轮却永远一直那样不停的旋转,永不停歇。

——这就是对傅里叶世界观的描述。

你眼中看似落叶纷飞变化无常的世界,实际只是躺在上帝怀中一份早已谱好的乐章。

下面进入正式环节↓↓↓↓↓↓



傅里叶公式:

其中:

这就是鼎鼎大名的傅里叶公式!

简单的理解:

每一个信号,在某个特定的配方下,都可以由简单的正弦曲线组成。傅里叶男爵猜测任意周期函数都可以写成三角函数之和。具体需要多少呢?无数个!【嘿, 上帝才不会让你这么简单的就发现他】

(插入题外话:为什么是男爵呢?傅里叶大佬曾经跟着拿破仑混过)

傅里叶原理表明:任何连续测量的时序或信号,都可以表示为不同频率的正弦波信号的无限叠加。

而根据该原理创立的傅立叶变换算法利用直接测量到的原始信号,以累加方式来计算该信号中不同正弦波信号的频率、振幅和相位。

深入理解看这里:https://www.matongxue.com/madocs/619.html

为什么信号分析采用傅里叶变换?

时域信号在经过傅立叶变换的分解之后,变为了不同正弦波信号的叠加,我们再去分析这些正弦波的频率,可以将一个信号变换到频域。

有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。【时域频域下面就讲到了啦


如果通过表示

根据欧拉公式【欧拉公式的意义就是旋转啦】,有:

         

一个可以观察到旋转的频率,所以称为频域(Frequency domain);一个可以看到流逝的时间,所以称为时域(time domain)

动图在这里!:https://en.wikipedia.org/wiki/File:Fourier_series_square_wave_circles_animation.gif

所以时域、频域到底是啥?

时域

信号时域分析就是分析信号随时间的变化,比如24 小时体温监测图即体温随时间变化。

时域分析反映在图象上最明显的特征就是横轴以时间为变量,纵轴因描述的变量不同而不同。

记住横轴是时间就好啦!

频域

频率就是指单位时间内发生的次数,一般用 F 来表示。

日常生活中我们经常接触到一些频率的描述,比如听收音机时,要调频选台,其中调频,就是要调至某一频率;我们家用的电器上也经常标着 220V ,50Hz,而50Hz就是指频率为50赫兹。

频域分析反映在图象上自变量是频率,即横轴是频率,纵轴是该频率信号的幅度。

实际上频域和时域只是人们对信号分析的不同方法。 好啦, 脑子里记住两个坐标吧。

总的来说这就是他们的面貌啦, 下面继续深入。



时域转化为频域

首先的问题是为什么要转?

如图, 将时域信号经过一种非常有用的数学变换一傅里叶变换(1),就可转化到频域,得到信号的频谱 ,这就是频谱分析;

反过来 ,我们也可将频域信号通过逆傅里叶变换(2)转换成时域信号。

由时域变换到频域,我们也可以分析信号中包含的各种频率分量的幅值、功率、能量和相位关系,也就是分析信号的频谱特性。

既然通过信号的频域分析,可以知道信号含各个频率的成分多少,我们就可以设计滤波器的频率来抑制某些信号而放大另一些我们感兴趣的信号。

例如:噪音属于高频区域,将时域转换成频域, 在频域中去掉噪音所属的高频区, 再转换回来, 就可以去掉噪音了。

下面这张图立马看懂啦!!!

动图在这里!:https://en.wikipedia.org/wiki/File:Fourier_series_and_transform.gif



好啦, 下面可以讲FFT啦。

FFT是何方神圣?

FFT是离散傅立叶变换(DFT)的快速算法,可以将一个信号变换到频域。

首先介绍DFT(离散傅里叶变化)

【一大波公式即将来袭~~~不要怕, 挺好理解的, 看不懂也不怎么影响理解。】

对于点序列,它的离散傅里叶变换(DFT)为

其中是自然对数的底数,是虚数单位。

理解成矩阵变化吧。

这个式子很显然复杂度是O(N*N)

为啥要FFT?因为fast呀!


FFT(快速傅里叶变换)

FFT推导如下:

单位根:

在复平面上,以原点为圆心, 1为半径作圆,所得的圆叫做单位圆。

以原点为起点,单位圆的 n 等分点为终点,作 n 个向量。设所得的幅角为正且最小的向量对应的复数为 ωn ,称为 n 次单位根。

ωn为单位根 

对每一个ωn

单位根的性质

证明:

  • 它们表示的点(或向量)表示的复数是相同的

证明:

  • 它们表示的点关于原点对称,所表示的复数实部相反,所表示的向量等大反向

都等于1

最常用的 FFT 算法 —— Cooley-Tukey 算法。

设一个多项式A(x)

对比两个式子

现在我们就可以递归分治来搞FFT了

每一次回溯时只扫当前前面一半的序列,即可得出后面一半序列的答案

私聊:[email protected]

原文地址:https://www.cnblogs.com/hichens/p/11412297.html

时间: 2024-07-31 15:55:37

信号分析——从傅里叶变化到FFT的相关文章

【自动语音识别课程】第二课 语音信号分析

[传送门] [自动语音识别课程]第一课 统计语音识别介绍 原文地址:http://blog.csdn.net/joey_su/article/details/36414877 转载请注明出处,欢迎交流. 概述 针对ASR的语音信号分析 特征 频谱分析 倒谱分析 标准特征:MFCC和PLP分析 动态特征 第一课的结尾提到了语音识别的框图,下图展示了信号分析技术在语音识别系统中的位置: 我们先来认识下语音的产生过程: 语音是在发音器官和声道共同作用下产生的.说话时,声带振动发出具有一定周期特性(基音

傅里叶变化

1.欧拉公式 2.傅里叶级数:任何周期函数都可以转化成正弦函数和 2.1 三角函数表现形式   2.2 指数表现形式 (f(t) 是傅里叶的指数展开式子,Fn) 正弦波的实质是在圆周运动在一条直线上的投影 下图中一个复合信合可以有很多正弦函数叠加而成,并且从不同的方向看这些叠加函数,可以得到时域和频域函数. 3.傅里叶变换 3.1对于时域上非周期但是连续的函数转换为频域上非周期的连续的函数,可以使用傅里叶变化求解 3.2对于非连续的离散信号函数 3.2.1 DTFT离散时间傅里叶变换 (实现采样

语音信号分析

所谓的语音信号分析就是提取表征语音特征的信息,以进行后续的处理:语音识别.说话人识别等.语音特征信息及特征参数的提取.由于语音信号具有短时平稳特性,及在短时内特征参数稳定不变,一般时长为10~30ms,故通常将语音分帧处理,以获得稳定的特征参数.综上,对于一段语音信号,分析时通常表示为由每一帧特征参数组成的特征参数序列. 语音信号处理基本步骤: 端点检测(VAD)切除静音 1预滤波.采样.(A\D)转换 2编码(常用格式PCM ALAW MULAW) 3预处理:(处理已经数字化的信号) 预加重加

基于Qt的信号分析简单应用软件的设计

一.需求描述: 1.读取data.asc文件,分析其连续性: 2.绘制信号图像,并保存. 二.UI界面组成: 该应用的UI由以下几个控件组成: 3个PushButton:打开文件.图像保存.退出: 1个Combox:下拉框用于信号的选择: 1个Widget:用于确定绘图区域的坐标,并在Widget部件上绘制图像曲线. 3个Label:用于标注注释,及坐标轴 三.主要功能的实现 信号分析结果如下: 其中最主要的涉及信号数据的标准化处理,标准化处理计算公式: std=(当前信号值-此类信号的最小值)

HackRF实现无线门铃信号分析重放

文章特点:数据解码方面实在是没什么信心,存在分析错乱的可能性,所幸发出来共同探讨,恳请鞭策. 0x01 概述 这是一款工作在315Mhz频段的无线遥控门铃,根据查阅官方手册以及芯片信息,确定其采用了eV1527 百万组编码芯片.这是一款无线发码专用集成电路,采用 CMOS 工艺制造,拥有 20 位内码,可预烧 100 万组内码组合,发射频率支持315Mhz与433Mhz.本文仅对基于录制的信号波形图进行简单分析,详细发码结构可参考相关文档. EV1527芯片说明:http://www.sc-te

傅里叶:有关FFT,DFT与蝴蝶操作(转)

转载地址:http://blog.renren.com/share/408963653/15068964503(作者 :  徐可扬) 有没有!!! 其实我感觉这个学期算法最难最搞不懂的绝对不是动态规划啊!绝对是快速傅里叶变换啊!最近才弄懂有木有. 有不少人问我,于是干脆就写成日志吧. 首先明确一下基本概念吧,就三点,DFT,FFT,蝴蝶操作. DFT(离散傅里叶变换):书上写的最清楚的一句话叫做,向量y=(y0,y1,……yn-1)是系数向量a=(a0,a1,,……,an-1)的离散傅里叶变换,

基于STC12系列单片机的通用红外遥控信号分析程序(一)

前言 最近学51单片机学习到红外遥控解码与发送部分,开发板的相关教程只有NEC协议的解码,基本的解码套路是1838接收头输出管脚接单片机外部中断0,当接收到红外信号时产生下降沿触发中断,在中断函数中先延时9ms判断电平再延时4.5ms判断电平,从而跳过引导码:再分别延时560us.1690us左右不等的时间判断电平来解码“0”或“1”,直到结束:红外发送思路就是根据NEC协议及红外码值的二进制码分别控制高低电平,并延时相应的时间.但存在这么几个问题: 1. 解码逻辑写死在中断处理函数中,不方便扩

VTC Fsync_out信号分析

1.GUI配置 Vertical position的值289是根据Frame/Field 0 Vertical settings一栏中sync start来设置的. 数两个fsync_out 信号之间有多少个hblank: 得到两个fsync_out 信号之间的时间差为:2.69568ms 每两个hblank之间的信号时间间隔为:8.65us 则可以计算两个fsync_out 信号之间有2695.68/8.65=312个hblank(行) 如果: 2704.32/8.64 = 313 如果: 如

傅里叶变化性质