当前位置: 首页 > news >正文

TIE算法具体求解-为什么是泊松方程和傅里叶变换

二维泊松方程的通俗理解

二维泊松方程 是偏微分方程的一种形式,通常用于描述空间中某个标量场(如位相场、电势场)的分布规律。其一般形式为:

∇ 2 ϕ ( x , y ) = f ( x , y ) \nabla^2 \phi(x, y) = f(x, y) 2ϕ(x,y)=f(x,y)

其中:

  • ϕ ( x , y ) \phi(x, y) ϕ(x,y) 是需要求解的标量场,例如 TIE 方程中的相位分布。
  • f ( x , y ) f(x, y) f(x,y) 是已知的源项,表示某种驱动或者分布,如光强的变化率。
物理直观:

二维泊松方程的物理意义可以通过类比来理解:

  • 热传导 ϕ ( x , y ) \phi(x, y) ϕ(x,y) 表示温度分布, f ( x , y ) f(x, y) f(x,y) 是热源强度分布。
  • 重力势 ϕ ( x , y ) \phi(x, y) ϕ(x,y) 表示引力势, f ( x , y ) f(x, y) f(x,y) 是质量密度分布。
  • 光学相位:在 TIE 中, ϕ ( x , y ) \phi(x, y) ϕ(x,y) 是光场的相位分布, f ( x , y ) f(x, y) f(x,y) 是由光强变化产生的“驱动力”。

换句话说,泊松方程将一种“局部变化”( ∇ 2 ϕ \nabla^2 \phi 2ϕ)与“全局驱动力”( f ( x , y ) f(x, y) f(x,y))联系起来。


TIE 转化为泊松方程的形式

对于 TIE 方程:

∂ I ( x , y , z ) ∂ z = − λ 2 π ∇ ⊥ ⋅ ( I ( x , y , z ) ∇ ⊥ ϕ ( x , y , z ) ) \frac{\partial I(x, y, z)}{\partial z} = -\frac{\lambda}{2\pi} \nabla_\perp \cdot \left( I(x, y, z) \nabla_\perp \phi(x, y, z) \right) zI(x,y,z)=2πλ(I(x,y,z)ϕ(x,y,z))

可以将其重写为泊松方程的形式:

∇ ⊥ ⋅ ( I ( x , y ) ∇ ⊥ ϕ ( x , y ) ) = − 2 π λ ∂ I ∂ z \nabla_\perp \cdot \left( I(x, y) \nabla_\perp \phi(x, y) \right) = -\frac{2\pi}{\lambda} \frac{\partial I}{\partial z} (I(x,y)ϕ(x,y))=λ2πzI

g ( x , y ) = I ( x , y ) ∇ ⊥ ϕ ( x , y ) g(x, y) = I(x, y) \nabla_\perp \phi(x, y) g(x,y)=I(x,y)ϕ(x,y) 引入后,有:
∇ ⊥ ⋅ g ( x , y ) = − 2 π λ ∂ I ∂ z \nabla_\perp \cdot g(x, y) = -\frac{2\pi}{\lambda} \frac{\partial I}{\partial z} g(x,y)=λ2πzI

进一步转化为标准泊松方程形式:
∇ 2 ϕ ( x , y ) = f ( x , y ) I ( x , y ) \nabla^2 \phi(x, y) = \frac{f(x, y)}{I(x, y)} 2ϕ(x,y)=I(x,y)f(x,y)
其中 f ( x , y ) = − 2 π λ ∂ I ∂ z f(x, y) = -\frac{2\pi}{\lambda} \frac{\partial I}{\partial z} f(x,y)=λ2πzI


傅里叶变换求解泊松方程

1. 为什么用傅里叶变换解泊松方程?

泊松方程涉及 空间梯度(如 ∇ 2 \nabla^2 2,即拉普拉斯算子)。傅里叶变换在数学上有一个重要特性:

  • 微分变为乘法:在频域中,拉普拉斯算子 ∇ 2 \nabla^2 2 对应的是空间频率平方的乘积 − k x 2 − k y 2 -k_x^2 - k_y^2 kx2ky2
  • 这使得方程从微分方程变成代数方程,简化了求解过程。
2. 傅里叶变换的过程

泊松方程:
∇ 2 ϕ ( x , y ) = f ( x , y ) \nabla^2 \phi(x, y) = f(x, y) 2ϕ(x,y)=f(x,y)

对两边做傅里叶变换(记为 F \mathcal{F} F),得:
F ( ∇ 2 ϕ ) = F ( f ) \mathcal{F}(\nabla^2 \phi) = \mathcal{F}(f) F(2ϕ)=F(f)

利用傅里叶变换的性质, F ( ∇ 2 ϕ ) = − ( k x 2 + k y 2 ) ⋅ F ( ϕ ) \mathcal{F}(\nabla^2 \phi) = -(k_x^2 + k_y^2) \cdot \mathcal{F}(\phi) F(2ϕ)=(kx2+ky2)F(ϕ),因此:
− ( k x 2 + k y 2 ) Φ ( k x , k y ) = F ( k x , k y ) -(k_x^2 + k_y^2) \Phi(k_x, k_y) = F(k_x, k_y) (kx2+ky2)Φ(kx,ky)=F(kx,ky)

其中:

  • Φ ( k x , k y ) \Phi(k_x, k_y) Φ(kx,ky):相位 ϕ ( x , y ) \phi(x, y) ϕ(x,y) 在频域中的表示。
  • F ( k x , k y ) F(k_x, k_y) F(kx,ky) f ( x , y ) f(x, y) f(x,y) 在频域中的表示。

解得:
Φ ( k x , k y ) = − F ( k x , k y ) k x 2 + k y 2 \Phi(k_x, k_y) = -\frac{F(k_x, k_y)}{k_x^2 + k_y^2} Φ(kx,ky)=kx2+ky2F(kx,ky)

3. 避免分母为零的问题

k x 2 + k y 2 = 0 k_x^2 + k_y^2 = 0 kx2+ky2=0 时(即零频点处),分母为零。这通常对应光场整体的平均相位,这一部分可以忽略或通过设定边界条件解决。例如,直接将零频点处的值置为零:

Φ ( 0 , 0 ) = 0 \Phi(0, 0) = 0 Φ(0,0)=0

4. 逆傅里叶变换回到空间域

通过逆傅里叶变换( F − 1 \mathcal{F}^{-1} F1),将 Φ ( k x , k y ) \Phi(k_x, k_y) Φ(kx,ky) 转换回相位分布:
ϕ ( x , y ) = F − 1 ( Φ ( k x , k y ) ) \phi(x, y) = \mathcal{F}^{-1}(\Phi(k_x, k_y)) ϕ(x,y)=F1(Φ(kx,ky))


总结:为什么可以这么做

  1. 傅里叶变换的优点

    • 将复杂的微分操作转化为频域中的简单乘法,显著简化了解泊松方程的计算难度。
    • 频域方法特别适合求解涉及大范围数据的连续问题,如图像中的相位分布。
  2. 数学上的严谨性

    • 傅里叶变换和逆变换是完全可逆的,保证了从空间域到频域再回到空间域的信息一致性。
  3. 频率分析的物理意义

    • 相位梯度和强度变化在本质上是一种空间频率特征,而傅里叶变换就是对这种频率信息的自然表示。

通过傅里叶变换解泊松方程,不仅是数值上的优化,更是利用了物理和数学上的深层对应关系。

相关文章:

TIE算法具体求解-为什么是泊松方程和傅里叶变换

二维泊松方程的通俗理解 二维泊松方程 是偏微分方程的一种形式,通常用于描述空间中某个标量场(如位相场、电势场)的分布规律。其一般形式为: ∇ 2 ϕ ( x , y ) f ( x , y ) \nabla^2 \phi(x, y) f(x, y) ∇2ϕ(x,y)f(x,y) 其…...

postman中获取随机数、唯一ID、时间日期(包括当前日期增减)截取指定位数的字符等

在Postman中,您可以使用内置的动态变量和编写脚本的方式来获取随机数、唯一ID、时间日期以及截取指定位数的字符。以下是具体的操作方法: 一、postman中获取随机数、唯一ID、时间日期(包括当前日期增减)截取指定位数的字符等 获取…...

【计算机网络】实验3:集线器和交换器的区别及交换器的自学习算法

实验 3:集线器和交换器的区别及交换器的自学习算法 一、 实验目的 加深对集线器和交换器的区别的理解。 了解交换器的自学习算法。 二、 实验环境 • Cisco Packet Tracer 模拟器 三、 实验内容 1、熟悉集线器和交换器的区别 (1) 第一步:构建网络…...

flink学习(14)—— 双流join

概述 Join:内连接 CoGroup:内连接,左连接,右连接 Interval Join:点对面 Join 1、Join 将有相同 Key 并且位于同一窗口中的两条流的元素进行关联。 2、Join 可以支持处理时间(processing time)和事件时…...

HTTP协议详解:从HTTP/1.0到HTTP/3的演变与优化

深入浅出:从头到尾全面解析HTTP协议 一、HTTP协议概述 1.1 HTTP协议简介 HTTP(HyperText Transfer Protocol,超文本传输协议)是互联网上应用最广泛的通信协议之一。它用于客户端与服务器之间的数据传输,尤其是在Web…...

张量并行和流水线并行在Transformer中的具体部位

目录 张量并行和流水线并行在Transformer中的具体部位 一、张量并行 二、流水线并行 张量并行和流水线并行在Transformer中的具体部位 张量并行和流水线并行是Transformer模型中用于提高训练效率的两种并行策略。它们分别作用于模型的不同部位,以下是对这两种并行的具体说…...

WEB开发: 丢掉包袱,拥抱ASP.NET CORE!

今天的 Web 开发可以说进入了一个全新的时代,前后端分离、云原生、微服务等等一系列现代技术架构应运而生。在这个背景下,作为开发者,你一定希望找到一个高效、灵活、易于扩展且具有良好性能的框架。那么,ASP.NET Core 显然是一个…...

【论文阅读】Federated learning backdoor attack detection with persistence diagram

目的:检测联邦学习环境下,上传上来的模型是不是恶意的。 1、将一个模型转换为|L|个PD,(其中|L|为层数) 如何将每一层转换成一个PD? 为了评估第𝑗层的激活值,我们需要𝑐个输入来获…...

Gooxi Eagle Stream 2U双路通用服务器:性能强劲 灵活扩展 稳定易用

人工智能的高速发展开启了飞轮效应,实施数字化变革成为了企业的一道“抢答题”和“必答题”,而数据已成为现代企业的命脉。以HPC和AI为代表的新业务就像节节攀高的树梢,象征着业务创新和企业成长。但在树梢之下,真正让企业保持成长…...

【计算机网络】实验2:总线型以太网的特性

实验 2:总线型以太网的特性 一、 实验目的 加深对MAC地址,IP地址,ARP协议的理解。 了解总线型以太网的特性(广播,竞争总线,冲突)。 二、 实验环境 • Cisco Packet Tracer 模拟器 三、 实…...

如何在Spark中使用gbdt模型分布式预测

这目录 1 训练gbdt模型2 第三方包python环境打包3 Spark中使用gbdt模型3.1 spark配置文件3.2 主函数main.py 4 spark任务提交 1 训练gbdt模型 我们可以基于lightgbm快速的训练一个gbdt模型,训练相对比较简单,只要把训练样本处理好,几行代码可…...

Qt-5.14.2 example

官方历程很丰富,modbus、串口、chart图表、3D、视频 共享方便使用 Building and Running an Example You can test that your Qt installation is successful by opening an existing example application project. To run an example application on an Android …...

virtualbox给Ubuntu22创建共享文件夹

1.在windows上的操作,创建共享文件夹Share 2.Ubuntu22上的操作,创建共享文件夹LinuxShare 3.在virtualbox虚拟机设置里,设置共享文件夹 共享文件夹路径:选择Windows系统中你需要共享的文件夹 共享文件夹名称:挂载至wi…...

GPT打字机效果—— fetchEventSouce进行sse流式请求

EventStream基本用法 与 WebSocket 不同的是,服务器发送事件是单向的。数据消息只能从服务端到发送到客户端(如用户的浏览器)。这使其成为不需要从客户端往服务器发送消息的情况下的最佳选择。 const evtSource new EventSource(“/api/v1/…...

SpringBoot 在线家具商城:设计考量与实现细节聚焦

第4章 系统设计 市面上设计比较好的系统都有一个共同特征,就是主题鲜明突出。通过对页面简洁清晰的布局,让页面的内容,包括文字语言,或者视频图片等元素可以清晰表达出系统的主题。让来访用户无需花费过多精力和时间找寻需要的内容…...

每日速记10道java面试题07

其他资料: 每日速记10道java面试题01-CSDN博客 每日速记10道java面试题02-CSDN博客 每日速记10道java面试题03-CSDN博客 每日速记10道java面试题04-CSDN博客 每日速记10道java面试题05-CSDN博客 每日速记10道java面试题06-CSDN博客 目录 1.线程的生命周期在j…...

前端面试热门题(二)[html\css\js\node\vue)

Vue 性能优化的方法 Vue 性能优化的方法多种多样,以下是一些常用的策略: 使用v-show替换v-if:v-show是通过CSS控制元素的显示与隐藏,而v-if是通过操作DOM来控制元素的显示与隐藏,频繁操作DOM会导致性能下降。因此&am…...

mvc基础及搭建一个静态网站

mvc asp.net core mvc环境 .net8vscode * Asp.Net Core 基础* .net8* 前辈* .net 4.9 非跨平台版本 VC* 跨平台版本* 1.0* 2.0* 2.1* 3.1* 5* 语言* C#* F# * Visual Basic* 框架* web应用* asp应用* WebFrom* mvc应用* 桌面应用* Winform* WPF* Web Api api应用或者叫服务* …...

AOSP的同步问题

repo sync同步时提示出错: error: .repo/manifests/: contains uncommitted changesRepo command failed due to the following UpdateManifestError errors: contains uncommitted changes解决方法: 1、cd 进入.repo/manifests cd .repo/manifests2、执行如下三…...

HarmonyOS4+NEXT星河版入门与项目实战(23)------实现手机游戏摇杆功能

文章目录 1、案例效果2、案例实现1、代码实现2、代码解释4、总结1、案例效果 2、案例实现 1、代码实现 代码如下(示例): import router from @ohos.router import {ResizeDirection } from @ohos.UiTest import curves...

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例&#xff1a;使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例&#xff1a;使用OpenAI GPT-3进…...

在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module

1、为什么要修改 CONNECT 报文&#xff1f; 多租户隔离&#xff1a;自动为接入设备追加租户前缀&#xff0c;后端按 ClientID 拆分队列。零代码鉴权&#xff1a;将入站用户名替换为 OAuth Access-Token&#xff0c;后端 Broker 统一校验。灰度发布&#xff1a;根据 IP/地理位写…...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 &#xff08;一&#xff09;概念解析 TRS&#xff08;Total Return Swap&#xff09;收益互换是一种金融衍生工具&#xff0c;指交易双方约定在未来一定期限内&#xff0c;基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?

在大数据处理领域&#xff0c;Hive 作为 Hadoop 生态中重要的数据仓库工具&#xff0c;其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式&#xff0c;很多开发者常常陷入选择困境。本文将从底…...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store&#xff1a; 我们在使用异步的时候理应是要使用中间件的&#xff0c;但是configureStore 已经自动集成了 redux-thunk&#xff0c;注意action里面要返回函数 import { configureS…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)

前言&#xff1a; 在Java编程中&#xff0c;类的生命周期是指类从被加载到内存中开始&#xff0c;到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期&#xff0c;让读者对此有深刻印象。 目录 ​…...

Golang——7、包与接口详解

包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...

Ubuntu系统复制(U盘-电脑硬盘)

所需环境 电脑自带硬盘&#xff1a;1块 (1T) U盘1&#xff1a;Ubuntu系统引导盘&#xff08;用于“U盘2”复制到“电脑自带硬盘”&#xff09; U盘2&#xff1a;Ubuntu系统盘&#xff08;1T&#xff0c;用于被复制&#xff09; &#xff01;&#xff01;&#xff01;建议“电脑…...