一篇文章入门傅里叶变换

文章目录

  • 傅里叶变换
    • 欧拉公式
    • 傅里叶变换
      • 绕圈记录法
      • 质心记录法
      • 傅里叶变换公式
        • 第一步:旋转的表示
        • 第二步:缠绕的表示
        • 第三步:质心的表示
        • 最终步:整理积分限和系数
  • 参考文献

傅里叶变换

在学习傅里叶变换之前,我们先来了解一下欧拉公式。顺便说一下,『欧拉公式』在世界上最伟大的十个公式中排第二名,而『傅里叶变换』在世界上最伟大的十个公式中排第七名。

欧拉公式

在数学中,对于数的集合,在一维数轴上,加法操作可以视为沿着数轴的平移,而乘法操作则可以视为数轴上的伸缩变化。具体来说:

  • 加法:在一维数轴上,给一个数加上另一个数,相当于将该数在数轴上向右(或向左,如果是负数)平移相应的距离
  • 乘法:在一维数轴上,将一个数乘以另一个数,则相当于将该数在数轴上按比例伸缩

在二维平面上,如果我们想将一个点(比如 ( 1 , 0 ) (1,0) (1,0))移动到另一个点,可以先在横轴方向上平移,再在纵轴方向上平移即可实现。
除了平移外,也可以利用伸缩和旋转来达到同样的效果。伸缩操作即为点的倍乘,但旋转该如何表达呢?

  1. 仅使用旋转,就可以将 ( 1 , 0 ) (1,0) (1,0)变换到 ( − 1 , 0 ) (-1,0) (1,0)
  2. 在复平面中,存在一个定义: − 1 = i × i -1=i\times i 1=i×i → \rightarrow 当单位 i i i表示旋转 90 ° 90° 90°时,进行两次相同的操作即可从 ( 1 , 0 ) (1,0) (1,0)变换到 ( − 1 , 0 ) (-1,0) (1,0)
  3. 如果一次 i i i操作是逆时针旋转 90 ° 90° 90°,正好会落在二维平面y轴上的 ( 0 , 1 ) (0,1) (0,1),该点距离原点的长度为单位长度
  4. 如果 y y y轴自带虚数单位,如 i , 2 i , 3 i ⋯ i,2i,3i\cdots i,2i,3i,即可通过伸缩和旋转表示二维平面上的所有点

请大家思考一个问题: i i i为什么可以表示旋转?
我们来看一下旋转的定义:旋转是沿着一个圆弧运动的过程
可以通过泰勒展开式得到一个完美的桥梁,用来说明 i i i可以表示旋转的原因
e x = 1 + x + 1 2 ! x 2 + 1 3 ! x 3 + ⋯ s i n ( x ) = x − 1 3 ! x 3 + 1 5 ! x 5 + ⋯ c o s ( x ) = 1 − 1 2 ! x 2 + 1 4 ! x 4 + ⋯ \begin{gathered} e^x=1+x+\frac1{2!}x^2+\frac1{3!}x^3+\cdots \\ sin(x)=x-\frac1{3!}x^3+\frac1{5!}x^5+\cdots \\ cos(x)=1-\frac1{2!}x^2+\frac1{4!}x^4+\cdots \end{gathered} ex=1+x+2!1x2+3!1x3+sin(x)=x3!1x3+5!1x5+cos(x)=12!1x2+4!1x4+ ⇒ \Rightarrow 代入 x = i θ x=i\theta x=iθ得: e i θ = 1 + i θ + 1 2 ! ( i θ ) 2 + 1 3 ! ( i θ ) 3 + 1 4 ! ( i θ ) 4 + 1 5 ! ( i θ ) 5 + ⋯ = ( 1 − θ 2 2 ! + θ 4 4 ! + ⋯ ) + i ( θ − θ 3 3 ! + θ 5 5 ! + ⋯ ) = c o s ( θ ) + i s i n ( θ ) \begin{aligned} e^{i\theta}& =1+i\theta+\frac1{2!}(i\theta)^2+\frac1{3!}(i\theta)^3+\frac1{4!}(i\theta)^4+\frac1{5!}(i\theta)^5+\cdots \\ &=(1-\frac{\theta^2}{2!}+\frac{\theta^4}{4!}+\cdots)+i(\theta-\frac{\theta^3}{3!}+\frac{\theta^5}{5!}+\cdots) \\ &=cos(\theta)+isin(\theta) \end{aligned} eiθ=1+iθ+2!1(iθ)2+3!1(iθ)3+4!1(iθ)4+5!1(iθ)5+=(12!θ2+4!θ4+)+i(θ3!θ3+5!θ5+)=cos(θ)+isin(θ)
在这里插入图片描述
e i θ e^{i\theta} eiθ表示一个圆心在原点,半径为1的单位圆 ⇒ \Rightarrow e i θ e^{i\theta} eiθ等价于一种旋转, θ \theta θ为旋转角的度数

傅里叶变换

傅里叶变换是一个分解声音的过程,其公式为: F ( f ) = ∫ − ∞ ∞ g ( t ) e − 2 π i f t d t F(f)=\int_{-\infty}^{\infty}g(t)e^{-2\pi ift}dt F(f)=g(t)e2πiftdt
乍一看这个公式,肯定是看不懂的,我们需要对其进行分解,然后逐步进行理解
既然傅里叶变换是一个分解声音的过程,我们来看一下什么是声音。
声音的气压是一个随时间以正弦函数形态不断震荡的图像
假设,一个标准音A的频率是440Hz,则其每秒钟振动440次;另外一个低音D的频率是240Hz,则其每秒钟振动240次。如果两个音同时发生,产生的气压随时间变化的曲线就是把所有时间点的振幅加起来
而傅里叶变换,就是从一段随时间变化的气压曲线中,找到组成该气压曲线的原始气压曲线
假设我们有一个每秒钟3拍子的声音信号,它的图像如下(Intensity为强度),我们只关注前面的4.5秒
在这里插入图片描述

绕圈记录法

绕圈记录法:同一事物的不同角度 → \rightarrow 下面的动图是最关键的一步,是【看到】傅立叶变换的核心部分
请添加图片描述

  1. 把黄色曲线缠绕到一个圆上,大小是原本信号的振幅
  2. 圆周围的图像由白色的箭头绘制而成,速度可变,上图中的白色箭头移动速度是每秒钟转过半圈
  3. 此时,有两个频率在起作用,一个是信号的频率:3次震荡/秒;另一个是图像缠绕中心圆的频率,为0.5圈/秒。第二个频率可以自由改变,相当于一个变量,下面的动图直观的展现了缠绕速度变化时的可视化表现

请添加图片描述
从最开始的 0.79圈/秒一直变化到1.55圈/秒,再到最后的恰好是3圈/秒,和原来的信号3次震荡/秒相同,此时会出现一个非常稳定的图像
其实,我们只是把一个水平的轴缠绕到一个单位圆上,并用另一个速度的记录标尺(白色箭头)来画图,从另一个角度(维度)来看我们的信号

质心记录法

质心记录法:新维度的特征提取
我们可以发现,在上面动图中,当白色箭头记录的速度在某些特定的值时,画出来的图形非常稳定、形态清晰
我们在上面提到了一个可以自由改变的转圈速度,我们可以将这个可变化的转圈速度作为傅里叶变换中的自变量
至于输出是什么,我们可以观察下面的动图。当图像很混沌(没有规律,混乱的)时候,图像基本关于原点对称;稳定时,其实是“头重脚轻”的。描述“头重脚轻”最好的方法是使用质心,下面的动图直观展现了质心特征对图像特征的描述能力(红色点为质心)
请添加图片描述
考虑到质心是一个二维坐标,为了简洁和直观,取质心的横坐标来表示质心的特征
现在,我们可以得到傅里叶变换的输入和输出:

  • 输入(横坐标):白色箭头的绕圈速度
  • 输出(纵坐标):质心位置的横坐标

按照上面的说明来记录绘出图像,记录每个缠绕频率(速度)对应的质心位置(在横坐标等于零点处有一个很大的值,只是因为原来的图像没有关于横轴对称,有一个偏移量)
请添加图片描述
我们可以看到,新图像的横坐标写的是频率(Frequency),即缠绕圆圈的速度
我们已经得到一个可以用来表示信号频率的工具,把它应用到两个声音的组合图像中看看效果:
请添加图片描述

傅里叶变换公式

我们已经通过这样一个缠绕机器完成了时域到频域的转换
请添加图片描述
如何使用数学语言表达这个转圈记录机制呢?

第一步:旋转的表示

上述所有动图中的旋转之所以能够表示,是基于复平面上的指数函数原理,结合泰勒展开公式来实现的
请添加图片描述

更进一步,指数函数中,以 e e e为底的函数有着特殊的性质,如下面动图所示, e 2 π i t e^{2\pi it} e2πit表示的是一秒钟一圈的旋转方程,可以通过频率 f f f控制旋转的速度,图中为 1 10 \frac{1}{10} 101
请添加图片描述

第二步:缠绕的表示

在傅立叶变换中,我们规定旋转是顺时针的,所以需要先加一个符号。假设原来的函数是 g ( t ) g(t) g(t),将两者的幅值相乘就能得到缠绕图像 g ( t ) e − 2 π i f t g(t)e^{-2\pi ift} g(t)e2πift
请添加图片描述

第三步:质心的表示

那如何表示质心这一概念呢?有一种解决问题的途径是演绎推理,先从简单的特例出发,推广到一般,最后证明正确性即可
考虑如何求一个正方形的质心位置,我们只需在边框上取 n n n个等距离分布的点,并且算这几个点的位置的平均值。那么推广到一般情况,也使用类似的采样点的方式解决,如下面动图所示(紫红色的点即采样点),得到 1 N ∑ k = 1 N g ( t k ) e − 2 π i f t k \frac1N\sum_{k=1}^Ng(t_k)e^{-2\pi iftk} N1k=1Ng(tk)e2πiftk
请添加图片描述

随着采样点的增加,需要使用积分来求解这个问题,如下面动图所示,得到 1 t 2 − t 1 ∫ t 1 t 2 g ( t ) e − 2 π i f t d t \frac1{t_2-t_1}\int_{t_1}^{t_2}g(t)e^{-2\pi ift}dt t2t11t1t2g(t)e2πiftdt
请添加图片描述

最终步:整理积分限和系数

看到常数项系数 1 t 2 − t 1 \frac1{t_2-t_1} t2t11,如果忽略表达倍数关系的系数,对应的含义也会发生变化,不再是质心,而是信号存在的时间越久,位置是质心位置乘以一个倍数,它的值就越大。持续时长为3秒,那么新的位置就是原来质心位置的三倍;持续时长为6秒,就是原来的6倍
一般傅立叶变换公式的上下限是正负无穷,那它的几何直观是什么呢?
请添加图片描述

参考文献

1、傅里叶变换
2、泰勒公式
3、形象展示傅里叶变换

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/459902.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于uniapp微信小程序的校园二手书交易系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…

Spring 框架环境搭建

一、环境要求 JDK版本: JDK1.7及以上版本 Spring版本: Spring5.x版本 二、新建Maven项目 1. 创建 Maven 的普通 Java 项⽬ 2.设置项目坐标 3.设置项目的Maven环境 4.设置项目的名称和存放的工作空间 三、调整项目环境 1.修改JDK版本 properties&g…

前端 eslint 配置,以及在git提交之前自动format

目录 1、配置eslint步骤 1、eslint安装配置步骤 2、配置scripts步骤 3、测试eslint 2、配置git-hook1、安装环境2、最终效果 众所周知,前端项目可以在报很多error的情况下运行。但是良好的代码规范仍然有利于项目的开发维护,这里提供我的规范&#xff0c…

SpringBoot篇(运维实用篇 - 临时属性)

目录 一、临时属性设置 1. 简介 2. 属性加载优先级 那是否还有其他的配置方式呢? 3. 知识小结 二、开发环境中使用临时属性 1. 如何操作 2. 知识小结 3. 思考 三、配置文件分类 1. 简介 2. 4个级别 3. 为什么设计多种配置文件? 一个典型的应…

基于vue框架的的汇生活家居商城的设计与实现bdjlq(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能:商品分类,商品信息,用户 开题报告内容 开题报告 项目名称:基于Vue框架的汇生活家居商城的设计与实现 一、项目背景与意义 随着互联网技术的不断发展和普及,电子商务已成为现代商业的重要组成部分。家居商城作…

免费可离线的AI抠图工具(鲜艺AI抠图 )免费下载

鲜艺AI抠图是一款使用Tauri 2 和RMBG-1.4 开发并免费提供的AI抠图工具,它能够快速去除图片背景,并支持本地和在线图片处理。: 极速AI抠图: 基于最新的AI技术,能够精准识别图像中的前景和背景,实现快速抠图…

面试经典 150 题.P27. 移除元素(002)

本题来自:力扣-面试经典 150 题 面试经典 150 题 - 学习计划 - 力扣(LeetCode)全球极客挚爱的技术成长平台https://leetcode.cn/studyplan/top-interview-150/ 题解: class Solution {public int removeElement(int[] nums, int…

标准正态分布的数据 tensorflow 实现正态分布图,python 编程,数据分析和人工智能...

登录后复制 import tensorflow as tfimport matplotlib.pyplot as plt# 设置随机种子以获得可重复的结果tf.random.set_seed(42)# 生成正态分布的数据# mean0 和 stddev1 表示生成标准正态分布的数据# shape(1000,) 表示生成1000个数据点data tf.random.normal(mean0, stddev1…

13.音乐管理系统(基于SpringBoot + Vue)

目录 1.系统的受众说明 ​​​​​​​ 2 需求分析 2.1用例图及用例分析 2.1.1 用户用例图及用例分析 2.1.2 管理员用例图及用例分析 2.2 系统结构图和流程图 2.2.1 音乐播放器的系统流程图(图2.2.1-1) 2.2.2 系统功能表(表2.2.2…

iOS调试真机出现的 “__llvm_profile_initialize“ 错误

一、错误形式&#xff1a; app启动就崩溃&#xff0c;如下&#xff1a; Demo__llvm_profile_initialize:0x1045f7ab0 <0>: stp x20, x19, [sp, #-0x20]!0x1045f7ab4 <4>: stp x29, x30, [sp, #0x10]0x1045f7ab8 <8>: add x29, sp, #0x100x1…

[Linux] linux 软硬链接与动静态库

标题&#xff1a;[Linux] linux 软硬链接与动静态库 个人主页水墨不写bug &#xff08;图片来源于网络&#xff09; /** _oo0oo_* o8888888o* 88" . "88* (| -_- |)* …

[mysql]相关子查询

相关子查询 相关子查询的概述 我们前面把单行子查询和多行子查询就已经说完了,我们现在要把继续把相关子查询的内容给大家说明白,因为之前用的都是不相关子查询的案例, 我们来谈一谈相关子查询,记住单行子查询和多行子查询是可以进行相关子查询,只是我们刚才写的案例都是相关…

【C++】—— priority_queue :平衡效率与秩序的算法利器

去感受一棵草、一缕风、一场日落&#xff0c;去重新触摸真正的生活。 ——高盛元 目录 1、优先级队列 1.1什么是优先级队列 1.2 priority_queue 的使用 1.3 仿函数 2、priority_queue 的模拟实现 2.1整体框架接口 2.2插入&&向上调整 2.2删除&&向下调整…

AI与低代码的碰撞:企业数字化转型的新引擎

引言 在当今的商业环境中&#xff0c;企业数字化转型已从选择题变成了必答题。面对日益复杂的市场竞争和不断变化的客户需求&#xff0c;传统的开发模式常常显得力不从心——开发周期冗长、技术门槛高、成本居高不下&#xff0c;企业很难快速响应市场变化。而在这种背景下&…

智慧用电监控装置:引领0.4kV安全用电新时代

在智能科技日新月异的今天&#xff0c;电力安全与管理正迎来一场前所未有的革新。为0.4kV以下TT、TN系统打造的智慧用电在线监控装置不仅重新定义了电力监控的边界&#xff0c;更为建筑安全用电筑起了一道坚不可摧的防线。 装置集成了单、三相交流电精确测量、四象限电能计量、…

【Linux内核揭秘】深入理解命令行参数和环境变量

文章目录 命令行参数什么是命令行参数main函数的参数 环境变量什么是环境变量常见的环境变量PATHHOMESHELLPWDOLDPWD 本地变量总结 命令行参数 什么是命令行参数 形如这样的命令后面带的选项就是命令行参数。 首先我们要了解一下命令行参数的原理。 我们知道像ls,mkdir,touch等…

leetcode57:插入区间

给你一个 无重叠的 &#xff0c;按照区间起始端点排序的区间列表 intervals&#xff0c;其中 intervals[i] [starti, endi] 表示第 i 个区间的开始和结束&#xff0c;并且 intervals 按照 starti 升序排列。同样给定一个区间 newInterval [start, end] 表示另一个区间的开始和…

探熵科技|以科技赋能销售,创造卓越业绩。

发展 在当今时代&#xff0c;AI 和大数据技术迅猛发展&#xff0c;各行业与大数据技术的融合已成为推动企业发展的重要力量。 天眼销 探熵科技作为一家专注于商业数据服务的专业公司&#xff0c;始终致力于为企业和个人提供高质量的数据解决方案。我们凭借深厚的技术实力和对…

Nginx+Lua脚本+Redis 实现自动封禁访问频率过高IP

1 、安装OpenResty 安装使用 OpenResty&#xff0c;这是一个集成了各种 Lua 模块的 Nginx 服务器&#xff0c;是一个以Nginx为核心同时包含很多第三方模块的Web应用服务器&#xff0c;使用Nginx的同时又能使用lua等模块实现复杂的控制。 &#xff08;1&#xff09;安装编译工具…

批量剪辑视频软件源码搭建全解析,支持OEM

一、引言 在当今数字化内容创作的时代&#xff0c;视频制作的需求呈爆发式增长。无论是社交媒体上的短视频创作者&#xff0c;还是专业的视频制作团队&#xff0c;都面临着大量视频剪辑的任务。批量剪辑视频软件应运而生&#xff0c;它能够显著提高视频剪辑的效率&#xff0c;满…