zoukankan      html  css  js  c++  java
  • [傅里叶变换及其应用学习笔记] 二十六. 高维傅里叶变换的推导

    高维意味着函数中有多个变量,典型的高维傅里叶应用为图像处理。

    一个二维图像的亮度(灰度)可以用$f(x_1,x_2)$来表示,以lena为例,图像平面作为$x_1,x_2$平面,灰度作为$z$轴,形成一个三维曲面

     Fourier 26_lena_2           Fourier 26_lena         Fourier 26_3

         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]
    View Code

     

     

    从一维傅里叶变换到二维傅里叶变换

    一维傅里叶变换的公式如下

    $displaystyle{ mathcal{F}f(s) = int_{-infty}^{infty}e^{-2pi ist}f(t)dt }$

    其中有变量$s,t$,变换中与这些变量相关的部分有$f(t),mathcal{F}f(s)$以及$e^{-2pi ist}$

     

    二维傅里叶变换里面,变量$s,t$都变成了如下二维变量

    空间变量(spatial variable)

    $underline{x} = (x_1,x_2)$

    频率变量

    $underline{xi} = (xi_1,xi_2)$

    注:我们在讨论一维傅里叶变换的时候采用的是以时间作为单位的时域,但是在二维(N维)傅里叶变换的时候采用的是空间为单位的空域。

     

    那么二维空域函数就可以写成

    $f(underline{x}) = f(x_1,x_2)$

    二维频域函数就写成

    $mathcal{F}f(underline{xi} = mathcal{F}f(xi_1,xi_2))$

    复指数中的乘积$st$就变成$underline{x}$与$underline{xi}$的内积(把$underline{x},underline{xi}$看作向量)

    $underline{x}cdot underline{xi} = x_1xi_1+x_2xi_2$

    那么复指数$e^{-2pi ist}$变成

    $e^{-2pi i(underline{x}cdot underline{xi})} = e^{-2pi i(x_1xi_1+x_2xi_2)}$

     

     

    有了以上的变量替换,二维傅里叶变换有如下形式

    向量形式

    $displaystyle{ mathcal{F}f(underline{xi}) = int_{mathbb{R}^2}e^{-2pi i(underline{x}cdot underline{xi})}f(underline{x})dunderline{x} }$

    分量形式

    $displaystyle{ mathcal{F}f(xi_1,xi_2) = int_{-infty}^{infty}int_{-infty}^{infty}e^{-2pi i(x_1xi_1+x_2xi_2)}f(x_1,x_2)dx_1dx_2 }$

     

     

    N维傅里叶变换

    $egin{matrix}
    underline{x} &= &(x_1,x_2,…,x_n)\
    underline{xi} &= &(xi_1,xi_2,…,xi_n)\
    underline{x}cdot underline{xi} &= &x_1xi_1+x_2xi_2+…+x_nxi_n
    end{matrix}$

    向量形式

    $displaystyle{ mathcal{F}f(underline{xi}) = int_{mathbb{R}^n}e^{-2pi i(underline{x}cdot underline{xi})}f(underline{x})dunderline{x} }$

    分量形式

    $displaystyle{ mathcal{F}f(xi_1,xi_2,…,xi_n) = underbrace{int_{-infty}^{infty}…int_{-infty}^{infty}}_{n}e^{-2pi i(x_1xi_1+x_2xi_2+...+x_nxi_n)}f(x_1,x_2,...,x_n)dx_1dx_2…dx_n }$

     

    傅里叶逆变换

    $displaystyle{ mathcal{F}^{-1}g(underline{x}) = int_{mathbb{R}^n}e^{2pi i(underline{x}cdot underline{xi})}g(underline{xi})dunderline{xi} }$

     

     

     

    深入理解

    在前面一维傅里叶变换类比到二维傅里叶变换的时候,复指数有以下过渡

    $e^{2pi ist} quad ightarrow quad e^{2pi i(underline{x}cdotunderline{xi})}$

    其中的$st$为什么会变成了$underline{x}cdotunderline{xi}$这种内积的形式呢?

    下面将从一维复指数开始分析,后会过渡到二维复指数。

     

    一维复指数

    在一维傅里叶级数的分析时,我们讲到任何周期为1的函数都能表达成复指数的形式如下

    $f(t) = displaystyle{ sum_{k=-infty}^{infty}C_ke^{2pi ikt} }$

    其中分解成无限个复指数分量,傅里叶正逆变换是把周期取极限后再做调整的结果。

    现在我们试着在坐标轴上描绘出某个复指数。

    取$k=1$,即有$h(t) = e^{2pi it}$,其中变量为t。不过由于它为复指数,我们无法在实坐标轴上把完整的图像画出来,但是我们注意到,该函数有如下性质

    $h(t+1) = e^{2pi i(t+1)} = e^{2pi it}e^{2pi i}=e^{2pi it} = h(t)$

    $e^{2pi it} = 1 qquad for t=0,pm 1,pm 2,…$

    可以画出下图

    image

    可以看到尽管我们不能完整画出该复指数的图像,但是可以看到它每间隔1都会回到原来的位置,是一个周期为1的振荡函数(曲线)。

     

    如此类推

    • $e^{2pi ikt}$就是周期为$frac{1}{k}$(频率为$k$)的振荡函数,任意只含有一个变量t的函数$f(t)$都能由无数个这种不同频率的振荡函数组合得到。

     

    二维复指数

    按照上面分析一维复指数的思路,我们来分析二维复指数$e^{2pi i(underline{x}cdotunderline{xi})}$

    取固定的$underline{xi} = (1,1)$,即

    $underline{x}cdotunderline{xi} = x_1+x_2$

    当$underline{x}cdotunderline{xi} = 0,pm1,pm2…$时,有

    $e^{2pi i(underline{x}cdotunderline{xi})} = 1$

    此时该复指数的值为1,在图像上表示就是振荡到1的位置

    image

     

    图上的斜线分别为

    $x_1+x_2 = 0,pm1,pm2…$

    他们有着相同的法向量$(1,1)$,即

    $underline{xi} = (xi_1,xi_2)$

    他们之间的距离为

    $distance=frac{frac{1}{xi_1}frac{1}{xi_2}}{sqrt{frac{1}{xi_1^2}+frac{1}{xi_2^2}}} = frac{frac{1}{xi_1xi_2}}{sqrt{frac{xi_1^2+xi_2^2}{xi_1^2xi_2^2}}} = frac{1}{sqrt{xi_1^2+xi_2^2}} = frac{1}{left | xi ight |}$

     

    因此,结合前面坐标图像,有这样的描述:

    • $e^{2pi i(underline{x}cdotunderline{xi})}$是一个法向量为$underline{xi} = (xi_1,xi_2)$周期为$frac{1}{left | xi ight |} = frac{1}{sqrt{xi_1^2+xi_2^2}}$的振荡函数(曲面)。

    通过修改$underline{xi}$,可以得到不同的法向量与不同周期的二维复指数$e^{2pi i(underline{x}cdotunderline{xi})}$,无限的这类复指数可以组合成包含两个变量的任意函数$f(underline{x}) = f(x_1,x_2)$,即三维曲面。

  • 相关阅读:
    「Baltic2015」Network
    noip模拟赛 蒜头君的排序
    noip模拟赛 蒜头君的兔子
    codevs2171 棋盘覆盖
    noip模拟赛 蒜头君的坐骑
    noip模拟赛 蒜头君的树
    noip模拟赛 蒜头君打地鼠
    noip模拟赛 密码
    noip模拟赛 轰炸
    noip模拟赛 毁灭
  • 原文地址:https://www.cnblogs.com/TaigaCon/p/5152084.html
Copyright © 2011-2022 走看看