介绍

傅里叶变换是数学中最深刻的见解之一,但不幸的是,它的意义被埋在一些荒谬的方程中。傅里叶变换是一种把东西分解成正弦波的方法。这个名字来自一个数学家叫傅里叶。

在数学术语中,傅里叶变换是一种将信号转换成其组成成分和频率的技术。

傅里叶变换不仅广泛应用于信号(无线电、声学等)处理,而且广泛应用于图像分析等领域。边缘检测、图像滤波、图像重建和图像压缩。一个例子:透射电镜图像的傅里叶变换有助于检查样本的周期性。数据的傅里叶变换可以扩展分析样本的可访问信息。

为了更好地理解它,考虑一个信号x(t):

如果我们对另一个信号做同样的事情,选择相同的时刻,然后测量它的振幅。

考虑另一个信号y(t):

当我们同时发出这两种信号或者把它们加起来会发生什么?

当我们在同一时刻发出这两个信号时,我们得到一个新的信号,它是这两个信号的振幅之和。这是因为这两个信号被加在一起了。

将两个信号相加:z(t) = x(t) + y(t)

如果我们只有一个信号(它是x(t)和y(t)的和)我们能恢复到原始信号x(t)和y(t)吗?

是的。这就是傅里叶变换的作用。它接收一个信号并把它分解成组成它的频率。

在我们的例子中,傅里叶变换将信号z(t)分解成它的组成频率,就像信号x(t)和y(t)一样。傅里叶变换的作用是把我们从时域移到频域(不理解没关系)。

如果有人想知道,如果我们想从频域回到时域呢?我们可以通过使用傅里叶反变换(IFT)来做到这一点。

你需要知道的数学。

时域内的任何连续信号都可以用无穷级数的正弦信号来唯一地表示出来。

这是什么意思?

这意味着,如果我们有一个由某个函数x(t)产生的信号那么我们就可以得到另一个函数f(t)

因此,无论信号有多强,我们都可以找到一个函数f(t),该函数是无限多个正弦曲线之和,实际上可以完美地代表信号。

现在,现在出现的问题是,如何在上式中找到系数,因为这些值将决定输出的形状,从而决定信号的形状。

因此,为了获得这些系数,我们使用傅立叶变换,并且傅立叶变换的结果是一组系数。因此,我们X(w)用来表示傅立叶系数,它是频率的函数,是通过求解以下积分得到的:

傅里叶变换表示为不定积分:

X(w):傅立叶变换

x(t):傅立叶逆变换

傅里叶变换和反傅里叶变换同时,当我们实际解上面的积分时,我们得到了这些复数其中a和b对应于我们要求的系数。

连续傅立叶变换将无限持续时间的时域信号转换成由无限数量的正弦波组成的连续频谱。实际上,我们处理的是离散采样的信号,通常以固定间隔,有限的持续时间或周期性地进行。为此,经典傅里叶变换算法可以表示为离散傅里叶变换(DFT),该函数将函数的等距样本的有限序列转换为离散时间的等距样本的等长序列傅里叶变换:

这就是离散傅里叶变换。我们可以做这个计算它会产生一个复数形式为a + ib其中傅立叶级数有两个系数。

现在,我们知道了如何对信号进行采样以及如何应用离散傅立叶变换。我们想做的最后一件事是,我们想摆脱复数,i因为在mllib或systemML里的欧拉公式不支持复数,该复数指出:

所以,如果我们把欧拉公式代入傅里叶变换方程并求解,它会产生实部和虚部。

正如您所看到的,X由a+ib或a-ib格式的复数组成。如果你解出上面的方程你会得到傅里叶系数a和b。

现在如果你把a和b的值代入f(t)的方程那么你就可以根据它的频率来定义一个信号。

在一般实践中,我们使用快速傅立叶变换(FFT)算法,该算法将DFT递归地划分为较小的DFT,从而大大减少了所需的计算时间。DFT的时间复杂度为2N,而FFT 的时间复杂度为2NlogN

为什么用余弦和正弦函数表示信号?

虽然Sine和Cosine函数最初是基于直角三角形定义的,但在当前情况下,从那种角度看并不是最好的事情。您可能已经被教会认识到正弦函数是“斜边对立的”,但是现在是时候有一点不同的观点了。

考虑单位圆:

在笛卡尔平面上。假设通过原点的直线与轴在逆时针方向上成角度θ,则直线与圆的交点为(cosθ,sinθ)。

想一想。这种观点与较早的观点相关吗?这两个定义是相同的。

假设我们通过使θ线性增加开始旋转直线。你会得到这样的东西:

正弦和余弦函数在某些情况下可以说是最重要的周期函数:

SHM振荡器中位移,速度和加速度如何随时间变化的周期性函数是正弦函数。每个粒子都有波动的性质,反之亦然。这是德布罗意的波粒对偶。波始终是某种物理量的正弦函数。声音本身就是一种压力扰动,它通过能够压缩和膨胀的物质介质传播。它是声波在某一点上的压强,它随时间呈正弦变化。

傅立叶变换的收敛

如果一个点以恒定的速度绕圆运动,则其在地面上方的高度将跟踪正弦函数。点移动的速度对应于频率,圆的半径对应于振幅。

再增加1个圆,

再添加2个圆,

再添加9个圆;

人工智能中的傅立叶变换

傅立叶变换是线性函数,可引起非线性。使用卷积。

2个信号的乘积的傅立叶变换是2个信号的卷积。

令x(t)和y(t)是两个具有卷积X(t)* Y(t)的函数,并且F表示傅立叶变换,则

F{x(t).y(t)} = X(t)*Y(t)

请记住,时域中的卷积是频域中的乘法。这就是傅立叶变换主要用于机器学习,尤其是深度学习算法的方式。

我将以卷积神经网络为例;

CNN中90%的计算都是卷积,并且有许多方法可以降低这种计算的强度,其中之一是快速傅立叶变换(FFT)。

代替卷积,输入和滤波器矩阵通过FFT转换到频域,以进行乘法。然后,通过逆FFT(IFFT)将输出转换回时域。

FFT的另一用途是可用于降维或特征提取。

当数据集中的每个样本都是信号(时间序列或图像等)时,它可能包含数千个样本。但是它们实际上可能只对应于傅立叶域中的几个点(特别是如果存在一定的周期性)。这大大简化了问题。

有时使用傅立叶域可能会提供平移不变性。也就是说,即使信号之间存在滞后,这种方差也不会影响它们在傅立叶域中的表示。

傅立叶变换的Python实现

可以使用numpy和scipy python库完成FFT的最简单实现。

结论

FFT用于数字记录、采样、加法合成和基音校正软件。

FFT的重要性来自于这样一个事实:它使得在频域工作与在时间域或空间域工作在计算上同样可行。好了,这就是这篇文章的全部内容,希望你们喜欢。

傅里叶变换复数形式的实部代表什么_「趣味数学」傅里叶变换及其在人工智能中的应用...相关推荐

  1. python求正方体体积_「高中数学」简单几何体的面积与体积相关知识点整理+例题...

    一.知识要点 (一)圆柱.圆锥.圆台的侧面积 将侧面沿母线展开在平面上,则其侧面展开图的面积即为侧面面积. 1.圆柱的侧面展开图--矩形 圆柱的侧面积 2.圆锥的侧面展开图--扇形 圆锥的侧面积 3. ...

  2. client中周期性边界_「微评」增加艺术品在投资组合中的比例 推进国家艺术软实力...

    艺术品作为一种兼具收藏属性和投资属性的物品,其最初被人们所接受的是其收藏属性.在进入二十一世纪后,其投资属性才逐渐显现.艺术品的双重属性增加了其投资价值,再叠加显著的顺周期性,艺术品能够在经济向好时为 ...

  3. 切比雪夫不等式例题讲解_「高中数学」柯西不等式,最全解析,高考必备,搞定最后十分...

    知识无价,关注点赞 柯西(Cauchy,Augustin-Louis,1789-1857)是法国数学家.力学家.27岁成为巴黎综合工科学校教授,并当选为法国科学院 院士. 他的一生获得了多项重要的成果 ...

  4. 求数的绝对值一定是正数_「口袋数学」绝对值的几何意义探究及应用,培优课程...

    哈喽,大家好!我们又见面了,欢迎继续关注[轩爸辅导]的[口袋数学].日更[每日一学][每日一练],帮助孩子日积月累,考出好的成绩.配套辅导,哪里不会学哪里,哪里出错练哪里,帮助孩子提高效率. 从数轴上 ...

  5. redis 清空缓存_「镜头回放」简直了!spring中清除redis缓存导致应用挂死

    异常场景 springWeb应用一直运行正常,同事最近反应,每次版本更新完毕,刷新缓存,就会导致应用挂死.只有重启redis应用才恢复正常. 项目概况 springWeb项目,常用配置表做了redis ...

  6. 二维动画作品_「咻动画」二维动画制作中角色造型的设计要点

    关于二维动画可能就算不是动画行业的小伙伴们都多多少少都有所了解,近年来其在宣传片制作上面越来越受用.不少企业抛开传统保守的宣传片表现形式转而尝试动画制作宣传片,我们都知道在动画制作从脚本策划到输出成片 ...

  7. java unix 时间戳_「unix时间戳」Unix时间戳和Java中的时间戳的区别 - seo实验室

    unix时间戳 前言 最近在使用阿里的日志服务时,遇到了一些Timestamp的坑,所以特意做了了解并整理了一下.在这之前首先得介绍一下Unix时间戳:unix时间戳是从1970年1月1日(UTC/G ...

  8. cv曲线面积的意义_「初中数学」与反比例函数有关的面积专题

    [知识储备] 1.双曲线y=K/x上有一点P,S△POA=1/2|K|,S矩形PAOB=|K|(PA⊥x轴于点A,PB⊥y轴于点B). 2.xy=K,设P点坐标为(x,y).通常以此设双曲线上点的坐标 ...

  9. mysql insert 嵌套_「insert语句」数据库插入insert语句中添加嵌套查询select - seo实验室...

    insert语句 示例: insert into mytable(X,Y,Z) Values((SELECT X from basetable WHERE ID = 8),(SELECT Y from ...

最新文章

  1. Matlab数据的可视化 -- 茎干图
  2. Ajax.net显示错误信息
  3. while((ch=getchar())!=EOFch != '\n');消除非法输入
  4. python udp 传输文件_python网络编程:UDP方式传输数据
  5. C#软件winform程序安装包制作及卸载程序制作
  6. 知道一点怎么设直线方程_【初中数学】反比例函数策略(二) ——构造方程法...
  7. 性能调优:理解Set Statistics Time输出
  8. CSS定位 position
  9. [Java] 蓝桥杯 BEGIN-3 入门训练 圆的面积
  10. Executor框架(转载)
  11. Windows10下安装MySQL8.0
  12. 阿里P9工程师指定面试复习资料
  13. PAAS平台7#215;24小时可用性应用设计
  14. mysql怎么查询两页数据_mysql分页查询踩坑报告
  15. MapGIS矢量数据的误差校正
  16. 关于顶级域名、二级域名、子域名的问题
  17. KRC跨境商城系 拍卖系统 竞拍系统 商城系统 虚拟支付源码
  18. Linux 2:vim,编译与调试,进程
  19. 说话技巧 为人处事
  20. 深入理解矩阵的特征值和特征向量

热门文章

  1. linux DSA 开发(一)
  2. 中鑫吉鼎|家庭成长期如何进行理财规划
  3. 68_推荐书单并附下载地址
  4. java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Workbook] with root cause
  5. 360浏览器查看服务器响应内容,360浏览器怎么看3个月以前的浏览记录?
  6. 服务器被植入挖矿木马的心酸过程
  7. 阿里云服务器被入侵执行MoneroOcean(门罗币)挖矿脚本
  8. PSPACE完全性学习笔记
  9. 英特尔至强融核助力国家海洋局探索超算应用
  10. 【2022年第一期 CANN训练营学习笔记】进阶班应用开发课 大作业1-开发DVPP应用,输入,输出都是JPEG图片,且分辨率不同