[傅里叶变换及其应用学习笔记] 二十六. 高维傅里叶变换的推导
高维意味着函数中有多个变量,典型的高维傅里叶应用为图像处理。
一个二维图像的亮度(灰度)可以用来表示,以lena为例,图像平面作为平面,灰度作为轴,形成一个三维曲面
original image front of curve surface side of curve surface
一维傅里叶变换的作用是把二维平面上的曲线转换成频域表示,二维的傅里叶变换的作用就是把三维曲面转换成频域表示。
mathematica script:

data = Import["ExampleData/lena.tif"]; imageData = ImageData[data, "Byte"]; width = ImageDimensions[data][[1]]; height = ImageDimensions[data][[2]]; scaleParam = 5; scaledWidth = IntegerPart[width/scaleParam]; scaleHeight = IntegerPart[height/scaleParam]; size = width*height; scaledSize = scaledWidth*scaleHeight; red = 1; green = 2; blue = 3; image3d = Table[If[j == 3, imageData[[If[IntegerPart[i/width] > 0, IntegerPart[i/width], 1], If[Mod[i, width] > 0, Mod[i, width], 1], green]], If[j == 1, If[IntegerPart[i/width] > 0, IntegerPart[i/width], 1], If[Mod[i, width] > 0, Mod[i, width], 1]]], {i, size}, {j, 3}]; ListPlot3D[image3d, Mesh -> None, InterpolationOrder -> 3, ColorFunction -> GrayLevel]
从一维傅里叶变换到二维傅里叶变换
一维傅里叶变换的公式如下
其中有变量,变换中与这些变量相关的部分有以及
二维傅里叶变换里面,变量都变成了如下二维变量
空间变量(spatial variable)
频率变量
注:我们在讨论一维傅里叶变换的时候采用的是以时间作为单位的时域,但是在二维(N维)傅里叶变换的时候采用的是空间为单位的空域。
那么二维空域函数就可以写成
二维频域函数就写成
复指数中的乘积就变成与的内积(把看作向量)
那么复指数变成
有了以上的变量替换,二维傅里叶变换有如下形式
向量形式
分量形式
N维傅里叶变换
向量形式
分量形式
傅里叶逆变换
深入理解
在前面一维傅里叶变换类比到二维傅里叶变换的时候,复指数有以下过渡
其中的为什么会变成了这种内积的形式呢?
下面将从一维复指数开始分析,后会过渡到二维复指数。
一维复指数
在一维傅里叶级数的分析时,我们讲到任何周期为1的函数都能表达成复指数的形式如下
其中分解成无限个复指数分量,傅里叶正逆变换是把周期取极限后再做调整的结果。
现在我们试着在坐标轴上描绘出某个复指数。
取,即有,其中变量为t。不过由于它为复指数,我们无法在实坐标轴上把完整的图像画出来,但是我们注意到,该函数有如下性质
可以画出下图
可以看到尽管我们不能完整画出该复指数的图像,但是可以看到它每间隔1都会回到原来的位置,是一个周期为1的振荡函数(曲线)。
如此类推
-
就是周期为(频率为)的振荡函数,任意只含有一个变量t的函数都能由无数个这种不同频率的振荡函数组合得到。
二维复指数
按照上面分析一维复指数的思路,我们来分析二维复指数
取固定的,即
当时,有
此时该复指数的值为1,在图像上表示就是振荡到1的位置
图上的斜线分别为
他们有着相同的法向量,即
他们之间的距离为
因此,结合前面坐标图像,有这样的描述:
-
是一个法向量为周期为的振荡函数(曲面)。
通过修改,可以得到不同的法向量与不同周期的二维复指数,无限的这类复指数可以组合成包含两个变量的任意函数,即三维曲面。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架