一篇文章入门傅里叶变换

ops/2024/10/30 10:26:12/

文章目录

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

傅里叶变换

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

欧拉公式

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

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

在二维平面上,如果我们想将一个点(比如 ( 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.ppmy.cn/ops/129550.html

相关文章

ubuntu df -h分配的磁盘空间小于物理磁盘

1. 检查卷组的可用空间 运行以下命令查看卷组的大小和空闲空间: vgdisplay或者: sudo vgs看一下是否有多余的空间未分配给逻辑卷。 2. 扩展逻辑卷 假设 ubuntu--vg-ubuntu--lv 是你想扩展的逻辑卷名称,运行以下命令将空闲空间分配到该逻…

OBOO鸥柏丨液晶拼接大屏分布式基本管理系统架构显示技术曝光

鸥柏分布式(WControl)分布式集中管控系统软件坐席功能输入/输出节点可将音视频信号转换成网络信号进行远程传输,KVM服务器极致的客户端体验操控,支持各大主流操作系统及国产操作系统,OBOO鸥柏液晶拼接大屏,触摸屏查询一体机&#…

Django入门教程——用户管理实现

第六章 用户管理实现 教学目的 复习数据的增删改查的实现。了解数据MD5加密算法以及实现模型表单中,自定义控件的使用中间件的原理和使用 需求分析 系统问题 员工档案涉及到员工的秘密,不能让任何人都可以看到,主要是人事部门进行数据的…

基于langchain框架的智能PDF问答(一)创建向量数据库

首先安装langchain,安装完之后就可以开始我们的步骤了 pip install langchain第一步 我们可以先创建一个Python文件,用于将PDF加载到我们本地的向量数据库中 一、读取文档 加载PDFX需要用到文本加载器,导入PyPDFLoader这个函数 #读取文档 from langchain.documen…

怎么实现电脑控制100台手机,苹果手机群控系统不用越狱实现新突破

今天来给大家介绍一款软件——手机群控。 什么是手机群控?就是将多台手机同时连接至一台电脑,集中控制管理。 对于苹果iOS免越狱中控,此前一直是个难题。 毕竟iOS系统封闭性极强,且苹果官方限制了USB的传输类型,只允…

SELS-SSL/TLS

一、了解公钥加密(非对称加密) 非对称加密中,用于加密数据的密钥与用于解密数据的密钥不同。私钥仅所有者知晓,而公钥则可自由分发。发送方使用接收方的公钥对数据进行加密,数据仅能使用相应的私钥进行解密。 你可以将…

uniapp 如何调用音频

uniapp调用音频 button点击 <view><button click"startPlay">开始播放</button></view>方法实现 startPlay() { const innerAudioContext uni.createInnerAudioContext();innerAudioContext.src /static/sounds/oqc.mp3;innerAudioContex…

Python | Leetcode Python题解之第515题在每个树行中找最大值

题目&#xff1a; 题解&#xff1a; class Solution:def largestValues(self, root: Optional[TreeNode]) -> List[int]:if root is None:return []ans []q [root]while q:maxVal -inftmp qq []for node in tmp:maxVal max(maxVal, node.val)if node.left:q.append(n…