• 详解傅立叶变换,看这一文足矣!


    从听到傅立叶变换这个名词后到现在已经四年了,这次终于对傅立叶变换有了一个基本的初步了解。记录一下,这个傅立叶变换也同时记录了我本科到研究生的四年,一路以来跌跌撞撞,没想到最后还是入了图像的坑

    数字图像处理——傅立叶变换

    欧拉公式

    对于一个复平面(对于欧几里得平面而言,把实数作为x轴,虚数作为y轴)

    images

    若在复平面上存在一个单位圆,所以在单位圆上的点可以表示为 cos ⁡ θ + sin ⁡ θ ⋅ i \cos\theta+\sin\theta\cdot i cosθ+sinθi

    对于泰勒公式:
    e x = 1 + x + 1 2 x 2 + 1 6 x 3 + ⋯ + 1 n ! x n = ∑ i = 0 n 1 i ! x i sin ⁡ x = x − 1 6 x 3 + 1 120 x 5 + ⋯ + ( − 1 ) 2 k − 1 ( 2 k − 1 ) ! x 2 k − 1 = ∑ i = 1 n ( − 1 ) i − 1 ( 2 i − 1 ) ! x 2 i − 1 cos ⁡ x = 1 − 1 2 x 2 + 1 24 x 4 + ⋯ + ( − 1 ) k ( 2 k ) ! x 2 k = ∑ i = 0 n ( − 1 ) i ( 2 i ) ! x 2 i

    ex=1+x+12x2+16x3++1n!xn=i=0n1i!xisinx=x16x3+1120x5++(1)2k1(2k1)!x2k1=i=1n(1)i1(2i1)!x2i1cosx=112x2+124x4++(1)k(2k)!x2k=i=0n(1)i(2i)!x2i" role="presentation" style="position: relative;">ex=1+x+12x2+16x3++1n!xn=i=0n1i!xisinx=x16x3+1120x5++(1)2k1(2k1)!x2k1=i=1n(1)i1(2i1)!x2i1cosx=112x2+124x4++(1)k(2k)!x2k=i=0n(1)i(2i)!x2i
    exsinxcosx=1+x+21x2+61x3++n!1xn=i=0ni!1xi=x61x3+1201x5++(2k1)!(1)2k1x2k1=i=1n(2i1)!(1)i1x2i1=121x2+241x4++(2k)!(1)kx2k=i=0n(2i)!(1)ix2i
    x = θ i x=\theta i x=θi,则可得 e θ i = cos ⁡ θ + sin ⁡ θ ⋅ i e^{\theta i}=\cos \theta+\sin \theta \cdot i eθi=cosθ+sinθi

    则单位圆存在如下表示:

    images (1)

    傅立叶级数

    对于傅立叶级数表示如果存在周期为 T T T的函数,那它一定可以由一组正弦和余弦函数表示,即:
    f ( x ) = a 0 + ∑ n = 1 ∞ ( a n sin ⁡ 2 π n T x + b n cos ⁡ 2 π n T x ) f(x)=a_0+\sum_{n=1}^\infty(a_n\sin\frac{2\pi n}{T}x+b_n\cos\frac{2\pi n}{T}x) f(x)=a0+n=1(ansinT2πnx+bncosT2πnx)
    同时因为欧拉公式 e θ i = cos ⁡ θ + sin ⁡ θ ⋅ i e^{\theta i}=\cos \theta+\sin \theta \cdot i eθi=cosθ+sinθi,所以
    { e θ i = cos ⁡ θ + sin ⁡ θ ⋅ i e − θ i = cos ⁡ θ − sin ⁡ θ ⋅ i ⇒ { cos ⁡ θ = e θ i + e − θ i 2 sin ⁡ θ = e θ i − e − θ i 2 i

    {eθi=cosθ+sinθieθi=cosθsinθi" role="presentation" style="position: relative;">{eθi=cosθ+sinθieθi=cosθsinθi
    \Rightarrow
    {cosθ=eθi+eθi2sinθ=eθieθi2i" role="presentation" style="position: relative;">{cosθ=eθi+eθi2sinθ=eθieθi2i
    {eθi=cosθ+sinθieθi=cosθsinθi{cosθ=2eθi+eθisinθ=2ieθieθi
    带入傅立叶级数可得:
    f ( x ) = a 0 + ∑ n = 1 ∞ ( a n e 2 π n T x ⋅ i + e − 2 π n T x ⋅ i 2 + b n e 2 π n T x ⋅ i − e − 2 π n T x ⋅ i 2 i ) = a 0 + ∑ n = 1 ∞ ( a n e 2 π n T x ⋅ i + e − 2 π n T x ⋅ i 2 − b n e 2 π n T x ⋅ i − e − 2 π n T x ⋅ i 2 ⋅ i ) = a 0 + ∑ n = 0 ∞ ( a n − b n ⋅ i 2 e 2 π n T x ⋅ i + a n + b n ⋅ i 2 e − 2 π n T x ⋅ i )
    f(x)=a0+n=1(ane2πnTxi+e2πnTxi2+bne2πnTxie2πnTxi2i)=a0+n=1(ane2πnTxi+e2πnTxi2bne2πnTxie2πnTxi2i)=a0+n=0(anbni2e2πnTxi+an+bni2e2πnTxi)" role="presentation" style="position: relative;">f(x)=a0+n=1(ane2πnTxi+e2πnTxi2+bne2πnTxie2πnTxi2i)=a0+n=1(ane2πnTxi+e2πnTxi2bne2πnTxie2πnTxi2i)=a0+n=0(anbni2e2πnTxi+an+bni2e2πnTxi)
    f(x)=a0+n=1(an2eT2πnxi+eT2πnxi+bn2ieT2πnxieT2πnxi)=a0+n=1(an2eT2πnxi+eT2πnxibn2eT2πnxieT2πnxii)=a0+n=0(2anbnieT2πnxi+2an+bnieT2πnxi)

    c 0 = a 0 , c n = a n − b n ⋅ i 2 , c − n = a n + b n ⋅ i 2 c_0=a_0,c_n=\frac{a_n-b_n\cdot i}{2},c_{-n}=\frac{a_n+b_n\cdot i}{2} c0=a0,cn=2anbni,cn=2an+bni,则
    f ( x ) = ∑ n = − ∞ c n e 2 π n T x ⋅ i f(x)=\sum_{n=-\infty}c_ne^{\frac{2\pi n}{T}x\cdot i} f(x)=n=cneT2πnxi
    其中 c n c_n cn为傅立叶级数的系数,它代表原始函数 f ( x ) f(x) f(x)在特定频率 n n n处的强度

    对于 f ( x ) f(x) f(x),此时等号左右两侧同时乘上 e − 2 π n T x ⋅ i e^{-\frac{2\pi n}{T}x\cdot i} eT2πnxi,则
    e − 2 π n T x ⋅ i × f ( x ) = e − 2 π n T x ⋅ i × ∑ n = − ∞ c n e 2 π n T x ⋅ i e^{-\frac{2\pi n}{T}x\cdot i}\times f(x)=e^{-\frac{2\pi n}{T}x\cdot i}\times\sum_{n=-\infty}c_ne^{\frac{2\pi n}{T}x\cdot i} eT2πnxi×f(x)=eT2πnxi×n=cneT2πnxi
    在一个周期 T T T内进行积分:
    ∫ 0 T f ( x ) e − 2 π n T x ⋅ i d x = ∫ 0 T e − 2 π n T x ⋅ i × ∑ n = − ∞ c n e 2 π n T x ⋅ i d x = ∫ 0 T ∑ n = − ∞ c n e 2 π n ′ T x ⋅ i d x

    0Tf(x)e2πnTxidx=0Te2πnTxi×n=cne2πnTxidx=0Tn=cne2πnTxidx" role="presentation" style="position: relative;">0Tf(x)e2πnTxidx=0Te2πnTxi×n=cne2πnTxidx=0Tn=cne2πnTxidx
    0Tf(x)eT2πnxidx=0TeT2πnxi×n=cneT2πnxidx=0Tn=cneT2πnxidx
    对于 e 2 π n ′ T x ⋅ i e^{\frac{2\pi n'}{T}x\cdot i} eT2πnxi在一个周期内积分,即考虑 e 2 π ( n − m ) T x ⋅ i e^{\frac{2\pi (n-m)}{T}x\cdot i} eT2π(nm)xi在一个周期上积分

    n = m n=m n=m时, e 2 π ( n − m ) T x ⋅ i = e 0 = 1 e^{\frac{2\pi (n-m)}{T}x\cdot i}=e^0=1 eT2π(nm)xi=e0=1,此时
    ∫ 0 T e 2 π n ′ T x ⋅ i d x = T \int_0^Te^{\frac{2\pi n'}{T}x\cdot i}dx=T 0TeT2πnxidx=T
    n ≠ m n\not=m n=m时, e 2 π n ′ T x ⋅ i = cos ⁡ 2 π n ′ T x + sin ⁡   2 π n ′ T x ⋅ i e^{\frac{2\pi n'}{T}x\cdot i}=\cos \frac{2\pi n'}{T}x+\sin\ \frac{2\pi n'}{T}x\cdot i eT2πnxi=cosT2πnx+sin T2πnxi,此时
    ∫ 0 T e 2 π n ′ T x ⋅ i d x = ∫ 0 T ( cos ⁡ 2 π n ′ T x + sin ⁡   2 π n ′ T x ⋅ i ) d x = ∫ 0 T cos ⁡ 2 π n ′ T x d x + i ∫ 0 T sin ⁡   2 π n ′ T x d x = 0

    0Te2πnTxidx=0T(cos2πnTx+sin 2πnTxi)dx=0Tcos2πnTxdx+i0Tsin 2πnTxdx=0" role="presentation" style="position: relative;">0Te2πnTxidx=0T(cos2πnTx+sin 2πnTxi)dx=0Tcos2πnTxdx+i0Tsin 2πnTxdx=0
    0TeT2πnxidx=0T(cosT2πnx+sin T2πnxi)dx=0TcosT2πnxdx+i0Tsin T2πnxdx=0
    所以:
    ∫ 0 T f ( x ) e − 2 π n T x ⋅ i d x = ∫ 0 T e − 2 π n T x ⋅ i × ∑ n = − ∞ c n e 2 π n T x ⋅ i d x = ∫ 0 T ∑ n = − ∞ c n e 2 π n ′ T x ⋅ i d x = c n T , n = n ′
    0Tf(x)e2πnTxidx=0Te2πnTxi×n=cne2πnTxidx=0Tn=cne2πnTxidx=cnT,n=n" role="presentation" style="position: relative;">0Tf(x)e2πnTxidx=0Te2πnTxi×n=cne2πnTxidx=0Tn=cne2πnTxidx=cnT,n=n
    0Tf(x)eT2πnxidx=0TeT2πnxi×n=cneT2πnxidx=0Tn=cneT2πnxidx=cnT,n=n

    可得
    c n = 1 T ∫ 0 T f ( x ) e − 2 π n T x ⋅ i d x c_n=\frac{1}{T}\int_0^T f(x)e^{-\frac{2\pi n}{T}x\cdot i}dx cn=T10Tf(x)eT2πnxidx
    对于三角函数 A sin ⁡ ( ω x + φ ) A\sin(\omega x+\varphi) Asin(ωx+φ)中周期为 T = 2 π ω T=\frac{2\pi}{\omega} T=ω2π,相位为 φ \varphi φ,振幅为 A A A,频率为 Δ f = 1 T \Delta f=\frac{1}{T} Δf=T1

    在复平面中
    c n × e 2 π n T x ⋅ i = c n × ( cos ⁡ 2 π n T x + sin ⁡ 2 π n T x ⋅ i ) c_n\times e^{\frac{2\pi n}{T}x\cdot i}=c_n\times (\cos\frac{2\pi n}{T}x+\sin\frac{2\pi n}{T}x\cdot i) cn×eT2πnxi=cn×(cosT2πnx+sinT2πnxi)
    所以频率为 Δ f = T 2 π n \Delta f= \frac{T}{2\pi n} Δf=2πnT,振幅为 c n c_n cn

    傅立叶变换

    连续型

    当周期 T T T趋向于无穷大时,函数不再是周期的,而是在整个实数轴上定义。此时频率 Δ f = 1 T → 0 \Delta f= \frac{1}{T}\rightarrow0 Δf=T10,这意味着频率变得连续,而不再是离散的。当 T → ∞ T\rightarrow\infty T时, ω = 2 π n T \omega=\frac{2\pi n}{T} ω=T2πn,则可以将 n Δ f n\Delta f nΔf替换为一个连续的频率。于是,我们从傅立叶级数系数 c n c_n cn 得到傅立叶变换:
    { c n = 1 T ∫ 0 T f ( x ) e − 2 π n T x ⋅ i d x T = ∞ ⇒ F ( ω ) = 1 2 π ∫ − ∞ + ∞ f ( x ) e − ω x ⋅ i d x , ω = 2 π n T

    {cn=1T0Tf(x)e2πnTxidxT=" role="presentation" style="position: relative;">{cn=1T0Tf(x)e2πnTxidxT=
    \Rightarrow F(\omega)=\frac{1}{2\pi}\int_{-\infty}^{+\infty}f(x)e^{-\omega x\cdot i}dx\quad,\omega=\frac{2\pi n}{T} {cn=T10Tf(x)eT2πnxidxT=F(ω)=2π1+f(x)eωxidx,ω=T2πn

    离散型

    已知连续型的傅立叶变换为 F ( ω ) = 1 2 π ∫ − ∞ + ∞ f ( x ) e − ω x ⋅ i d x F(\omega)=\frac{1}{2\pi}\int_{-\infty}^{+\infty}f(x)e^{-\omega x\cdot i}dx F(ω)=2π1+f(x)eωxidx

    当我们考虑离散的信号时,而不是连续的信号,我们需要使用离散傅立叶变换(Discrete Fourier Transform, DFT)。给定一个离散信号序列 x [ n ] x[n] x[n],其DFT为 X [ k ] X[k] X[k],定义如下:

    X [ k ] = ∑ n = 0 N − 1 x [ n ] ⋅ e − j 2 π k n N X[k] = \sum_{n=0}^{N-1} x[n] \cdot e^{-j \frac{2\pi kn}{N}} X[k]=n=0N1x[n]ejN2πkn
    其中:

    • x [ n ] x[n] x[n] 是在时域中的离散信号。
    • X [ k ] X[k] X[k] 是在频域中的离散频率响应。
    • N N N 是信号的总长度或总样本数。
    • k k k 是离散频率的索引,范围从 0 0 0 N − 1 N-1 N1
  • 相关阅读:
    Flutter查漏补缺1
    Graph RAG: 知识图谱结合 LLM 的检索增强
    PMP项目管理证书是什么?有什么用?
    Spring - IoC 容器之拓展点 BeanPostProcessor
    网页开发——淘宝首页导航
    【毕业设计】深度学习水果识别系统 - python CNN
    (Java)设计模式:创建型
    【picgo】【typora】自己服务器搭建自定义图床
    Eureka注册中心
    Springboot----项目整合微信支付(获取支付二维码)
  • 原文地址:https://blog.csdn.net/qq_43309286/article/details/134065656