美文网首页自然科普人工智能
傅里叶级数与傅里叶变换

傅里叶级数与傅里叶变换

作者: 酷酷的群 | 来源:发表于2021-04-22 15:25 被阅读0次

    本文有关三角函数的描述很多,忘记高中知识的可以从这个链接复习下各个概念:振幅、周期、相移和频率

    一、从简单变换到傅里叶级数

    如下图所示,在笛卡尔坐标系中,由于我们定义了一组基e_x=(1,0),e_y=(0,1),因此坐标系中的所有点才能够被一个坐标唯一地表示:

    简单变换

    这样的好处是有了坐标以后,点与点之间就不再是相互孤立的存在,也就有了距离的关系。这个过程就是一种变换,即把坐标变换到坐标系中。

    这种简单的变换是将空间中的点使用一组基来表示,点是基的加权累加,而类比到函数中,对于一个函数,我们期待使用一组基函数来表示。傅里叶级数与傅里叶变换就是用来办到这件事的方法,其中傅里叶级数能够将任意周期函数表示成一组基函数依照各自的系数的累加,而傅里叶变换针对的是非周期函数

    首先阐述傅里叶级数,它可以将任意周期函数分解为简单震荡函数(正弦函数和余弦函数,这些函数作为基函数)的加和。具体地,对于周期为T的周期函数f(t),可以分解为三角函数的组合:

    f(t)=a_{0}+\sum_{n=1}^{+\infty }\left [a_{n}cos(n\omega t)+b_{n}sin(n\omega t)\right ]

    这里的w=\frac {2\pi }{T},称为基频率。类比笛卡尔坐标系,a_0,a_n,b_n就相当于坐标,而1,cos(n\omega t),sin(n\omega t)就相当于基向量,不同的是,1,cos(n\omega t),sin(n\omega t)是一组函数,而基向量是一组向量,笛卡尔坐标系使用基向量来表示点,傅里叶级数使用基函数来表示周期函数。

    这里保留一个疑问:在上面对任意周期函数f(t)的分解公式中,这里的1,cos(n\omega t),sin(n\omega t)这些基函数都是没有相位的,也就是说这些基函数在坐标系中都是关于y轴对称的,那么在f(t)不关于y轴对称时,这些关于y轴对称的基函数们真的能够通过线性组合得到一个不关于y轴对称的周期函数吗?这一点是很难直观想象的,在下面的章节中我们会证明这件事。

    本节类比了笛卡尔坐标系与傅里叶级数,首先对变换有一个简单的概念,接下来的章节会介绍更多的细节。

    二、傅里叶级数

    1. 三角函数系

    一个三角函数系为:

    \left \{1,sin(\omega x),cos(\omega x),sin(2\omega x),cos(2\omega x),\cdots ,sin(n\omega x),cos(n\omega x),\cdots \right \}

    注意1也可以看做一个函数,其实也就是cos(0\omega x),由于sin(0\omega x)=0,所以我们就不管它了。另外这里的\omega也就是上面提到的基频率,可以看到这个基频率的大小由要分解的函数f(t)的周期T决定的,也就是说使用傅里叶级数分解周期函数时不同周期的函数要使用不同的三角函数系来作为基函数。

    在笛卡尔坐标系中,基向量满足的性质是不同的基向量之间两两正交(内积为0),相同的基向量内积为1。假设两个基向量vm,用下标表示基向量的维度,则他们的内积就是对应的维度相乘之后的累加:

    v\cdot m=v_{1}m_{1}+v_{2}m_{2}+\cdots +v_{n}m_{n}=0

    傅里叶级数的基函数之间也有类似的性质,基向量之间的内积是以累加的方式计算的,类似的,基函数之间的内积是以积分的形式计算的。同样类似的,不同基函数之间的内积为0,同一基函数的内积为一个正数。

    首先,如果从三角函数系中任意取两个函数f(x),g(x)(当然也包括1这个函数),有:

    \int_{-\pi }^{\pi }f(x)g(x)\mathrm{d}x=0

    比如:

    \int_{-\pi }^{\pi }sin(4\omega x)cos(7\omega x)\mathrm{d}x=0\\ \int_{-\pi }^{\pi }1\cdot sin(9\omega x)\mathrm{d}x=0\\ \int_{-\pi }^{\pi }sin(\omega o9px)cos(\omega x)\mathrm{d}x=0

    另外三角函数系中两个相同的函数之间的内积为一个正数,比如:

    \int_{-\pi }^{\pi }1\cdot 1\mathrm{d}x=2\pi \\ \int_{-\pi }^{\pi }sin(n\omega x)sin(n\omega x)\mathrm{d}x=\pi \\ \int_{-\pi }^{\pi }cos(n\omega x)cos(n\omega x)\mathrm{d}x=\pi

    1. 傅里叶级数的直观理解
    • 矩形波的分解

    以一个周期矩形波为例,难以想象的是这个矩形波是可以被傅里叶级数分解的。下图中展示了多个正弦函数如何逐步组合成为一个矩形波,随着震荡函数的增加,它们最终就可以组成一个矩形波:

    矩形波的分解

    注意这里只有正弦函数而没有余弦函数,这里的正弦函数并非指的是前面对f(t)的分解公式里的正弦函数,公式里的正弦函数是没有相位的,而这里说的正弦函数是有相位的。我们之前说任意周期函数都可以由正弦和余弦函数累加而组成,这里的正弦函数和余弦函数是没有相位的,而事实上我们只需要有相位的正弦函数就可以组成任意的周期函数了。下图也同样展示了这些有相位的正弦波组合成矩形波的过程:

    矩形波的分解

    这里的正弦波之间还有一些直线,这些直线其实也是正弦波,只不过振幅为0,这说明组成一个周期函数时,可能一些成分是不需要的。

    • 频谱

    上面的图立体地展示了正弦波组合成周期函数的过程,如果我们从侧面来看这个立体图,也就得到了所谓的频谱(Spectrum)

    频谱的由来

    其实也就相当于以这些正弦波的频率做横轴,振幅做竖轴得到图像:

    频谱

    现在再重新来看一个周期函数的立体分解图,也就是说从正面来看看到的是时域(Time Domain)的图像,而从侧面来看看到的就是频域(Frequency Domain)图像:

    时域与频域
    • 相位谱

    频谱记录了正弦波的频率和振幅,但没有记录相位信息,同样的我们可以以频率为横轴,相位为纵轴构建一个相位谱(phase spectrum)

    相位谱

    利用频谱和相位谱就可以记录所有的组成一个周期函数的正弦函数了。最终,放一张集合图:

    综合
    1. 傅里叶级数的由来

    现在我们解释下面这个式子的由来,也顺便回答第一个章节留下的疑问:

    f(t)=a_{0}+\sum_{n=1}^{+\infty }\left [a_{n}cos(n\omega t)+b_{n}sin(n\omega t)\right ]

    利用带有相位的正弦函数可以组合成任意的周期函数,当然这里的基频率还是\omega =\frac{2\pi }{T},这个过程用公式可以表示为:

    f(t)=\sum_{{\color{Red}{n=0}}}^{+\infty }A_{n}sin(n\omega t+\varphi _{n})

    利用和角公式进行一些变换:

    f(t)=\sum_{{\color{Red}{n=0}}}^{+\infty }A_{n}sin(n\omega t+\varphi _{n})\\ =\sum_{n=0}^{+\infty }A_{n}[sin(n\omega t)cos(\varphi _{n})+cos(n\omega t)sin(\varphi _{n})]\\ =\sum_{n=0}^{+\infty }[A_{n}cos(\varphi _{n})sin(n\omega t)+A_{n}sin(\varphi _{n})cos(n\omega t)]\\ =A_{0}cos(\varphi _{0})\underset{=0}{\underbrace{sin(0\omega t)}}+\underset{记作a_{0}}{\underbrace{A_{0}sin(\varphi _{0})}}\underset{=1}{\underbrace{cos(0\omega t)}}+\sum_{{\color{Red}{n=1}}}^{+\infty }[\underset{记作b_{n}}{\underbrace{A_{n}cos(\varphi _{n})}}sin(n\omega t)+\underset{记作a_{n}}{\underbrace{A_{n}sin(\varphi _{n})}}cos(n\omega t)]\\ =a_{0}+\sum_{n=1}^{+\infty }\left [a_{n}cos(n\omega t)+b_{n}sin(n\omega t)\right ]

    最终得到了我们之前说过的傅里叶级数,同时也解释了前面留下的疑问。

    1. 求解傅里叶级数的系数

    对于一个周期函数f(t),如何求它分解为傅里叶级数后的系数a_0,a_n,b_n呢?同样类比笛卡尔坐标系,一个坐标点与一个基向量做内积就可以得到这个坐标点在这个基向量上的系数,那么一个周期函数只需要与一个基函数做积分,也就可以得到对应的系数。那么首先求a_0a_0对应的基函数为cos(0t)):

    \int_{0}^{T}f(t)cos(0t)\mathrm{d}t=\int_{0}^{T}\left (a_{0}+\sum_{n=1}^{+\infty }\left [a_{n}cos(n\omega t)+b_{n}sin(n\omega t)\right ]\right )cos(0t)\mathrm{d}t \\ =\int_{0}^{T}a_{0}cos(0t)\mathrm{d}t+\int_{0}^{T}\sum_{n=1}^{+\infty }[a_{n}\underset{积分为0}{\underbrace{cos(n\omega t)cos(0t)}}+b_{n}\underset{积分为0}{\underbrace{sin(n\omega t)cos(0t)}}]\mathrm{d}t\\ =a_{0}T

    那么就有:

    a_{0}=\frac{1}{T}\int_{0}^{T}f(t)\mathrm{d}t

    然后求a_n,对应的基函数为cos(n\omega t)

    \int_{0}^{T}f(t)cos(n\omega t)\mathrm{d}t=\int_{0}^{T}\left (a_{0}+\sum_{m=1}^{+\infty }\left [a_{m}cos(m\omega t)+b_{m}sin(m\omega t)\right ]\right )cos(n\omega t)\mathrm{d}t\\ =\int_{0}^{T}a_{0}cos(n\omega t)\mathrm{d}t+\int_{0}^{T}\sum_{m=1}^{+\infty }a_{m}cos(m\omega t)cos(n\omega t)\mathrm{d}t+\int_{0}^{T}\sum_{m=1}^{+\infty }b_{m}sin(m\omega t)cos(n\omega t)\mathrm{d}t \\ =\int_{0}^{T}a_{n}cos(n\omega t)cos(n\omega t)\mathrm{d}t \\ =\int_{0}^{T}a_{n}cos^{2}(n\omega t)\mathrm{d}t\\ =\int_{0}^{T}a_{n}\frac{1+cos(2n\omega t)}{2}\mathrm{d}t\\ =a_{n}\frac{T}{2}

    那么就有:

    a_{n}=\frac{2}{T}\int_{0}^{T}f(t)cos(n\omega t)\mathrm{d}t

    最后用类似的方法求得b_n

    b_{n}=\frac {2}{T}\int_{0}^{T}f(t)sin(n\omega t)\mathrm{d}t

    1. 欧拉公式与傅里叶级数

    首先有欧拉公式如下:

    e^{i\theta }=cos(\theta )+isin(\theta )

    可以简单的将欧拉公式理解为复数的另一种表示形式,e^{i\theta }看做复数。为了能够化简傅里叶级数的表达形式,我们需要应用到欧拉公式。

    \theta =n\omega t以及\theta =-n\omega t时,根据欧拉公式有:

    e^{in\omega t}=cos(n\omega t)+isin(n\omega t)\\ e^{-in\omega t}=cos(n\omega t)-isin(n\omega t)

    那么:

    cos(n\omega t)=\frac{e^{in\omega t}+e^{-in\omega t}}{2}\\ sin(n\omega t)=\frac{e^{in\omega t}-e^{-in\omega t}}{2i}

    将这两项代入傅里叶级数,并进行整理:

    f(t)=a_{0}+\sum_{n=1}^{+\infty }\left [a_{n}\frac{e^{in\omega t}+e^{-in\omega t}}{2}+b_{n}\frac{e^{in\omega t}-e^{-in\omega t}}{2i}\right ] \\ ={\color{Red}{a_{0}}}+\sum_{n=1}^{+\infty }\left (\frac{a_{n}-ib_{n}}{2}\right )e^{in\omega t}+\sum_{{\color{Blue}{n=1}}}^{{\color{Blue}{+\infty }}}\left (\frac{{\color{Blue}{a_{n}}}+i{\color{Blue}{b_{n}}}}{2}\right ){\color{Blue}{e^{-in\omega t}}}\\ ={\color{Red}{\sum_{n=0}^{0}a_{n}e^{in\omega t}}}+\sum_{n=1}^{+\infty }\left (\frac{a_{n}-ib_{n}}{2}\right )e^{in\omega t}+\sum_{{\color{Blue}{n=-1}}}^{{\color{Blue}{-\infty }}}\left (\frac{{\color{Blue}{a_{-n}}}+i{\color{Blue}{b_{-n}}}}{2}\right ){\color{Blue}{e^{in\omega t}}}\\ =\sum_{-\infty }^{+\infty }{\color{Green}{c_{n}}}e^{in\omega t}

    其中:

    当n=0时,c_{n}=a_{0}\\ 当n=1,2,3,\cdots 时,c_{n}=\frac{a_{n}-ib_{n}}{2}\\ 当n=-1,-2,-3,\cdots 时,c_{n}=\frac{a_{-n}+ib_{-n}}{2}

    上一小节我们求得了系数a_0,a_n,b_n,现在将这些系数代入经过欧拉公式变换后的傅里叶级数。首先,当n=0时:

    c_{n}=a_{0}\\ =\frac{1}{T}\int_{0}^{T}f(t)\mathrm{d}t\\ =\frac{1}{T}\int_{0}^{T}f(t)e^{-i0\omega t}\mathrm{d}t

    n=1,2,3,\cdots时:

    c_{n}=\frac{a_{n}-ib_{n}}{2}\\ =\frac{\frac{2}{T}\int_{0}^{T}f(t)cos(n\omega t)\mathrm{d}t-i\frac{2}{T}\int_{0}^{T}f(t)sin(n\omega t)\mathrm{d}t}{2}\\ =\frac{1}{T}\int_{0}^{T}f(t)[cos(n\omega t)-isin(n\omega t)]\mathrm{d}t\\ =\frac{1}{T}\int_{0}^{T}f(t)e^{-in\omega t}\mathrm{d}t

    n=-1,-2,-3,\cdots时:

    c_{n}=\frac{a_{-n}+ib_{-n}}{2} \\ =\frac{\frac{2}{T}\int_{0}^{T}f(t)cos(-n\omega t)\mathrm{d}t+i\frac{2}{T}\int_{0}^{T}f(t)sin(-n\omega t)\mathrm{d}t}{2} \\ =\frac{1}{T}\int_{0}^{T}f(t)[cos(n\omega t)-isin(n\omega t)]\mathrm{d}t\\ =\frac{1}{T}\int_{0}^{T}f(t)e^{-in\omega t}\mathrm{d}t

    可见对于任意的n,所有的c_n的表达式都是一样的,总结一下,傅里叶级数最终可以写为:

    f(t)=\sum_{n=-\infty }^{+\infty }{c_{n}e^{in\omega t}},其中c_{n}=\frac{1}{T}\int_{0}^{T}f(t)e^{-in\omega t}\mathrm{d}t

    上面的式子也就说明,任意的一个周期为t的周期函数,都可以使用一组c_n来表示它。也就是说,在时域内(t,f(t))可以唯一地确定函数f(t),而在频域内,函数f(t)(n,c_n)来唯一确定,这就是从时域到频域的转换,如下图:

    时域与频域

    上图右边纵轴c_n其实是个复数,可以理解为应该有两个维度,一个实部,一个虚部,但是这里为了简单画图,就把它画成了实数,但其实它是个复数。

    三、傅里叶变换

    傅里叶变换针对非周期函数,一个非周期函数可以看做周期无限大的函数。同样的以\omega作为基频率,满足\omega =\frac{2\pi }{T},当T\rightarrow +\infty时,\omega \rightarrow 0,又有\omega =(n+1)\omega -n\omega =\Delta \omega,因此\Delta \omega \rightarrow 0

    在这里我们将c_n写作从-\frac{T}{2}\frac{T}{2}的积分:

    c_{n}=\frac{1}{T}\int_{-\frac{T}{2}}^{\frac{T}{2}}f(t)e^{-in\omega t}\mathrm{d}t

    那么对于非周期函数f(t)来说有:

    f(t)=\lim_{T\rightarrow +\infty }\sum_{n=-\infty }^{+\infty }{c_{n}e^{in\omega t}}\\ =\lim_{T\rightarrow +\infty }\sum_{n=-\infty }^{+\infty }\frac{1}{T}\int_{-\frac{T}{2}}^{\frac{T}{2}}f(t)e^{-in\omega t}\mathrm{d}t\cdot e^{in\omega t} \\ =\lim_{\Delta \omega \rightarrow 0}\sum_{n=-\infty }^{+\infty }\frac{\Delta \omega }{2\pi }\int_{{\color{Red}{-\infty }}}^{{\color{Red}{+\infty }}}f(t)e^{-in\omega t}\mathrm{d}t\cdot e^{in\omega t}

    从下图中可以看做,当\Delta \omega \rightarrow 0时,虽然n为离散的量,但是n\omega会变成一个连续的量:

    从离散到连续

    注意\Delta \omega =\omega,另外我们令W=n\omega,那么我们有:

    f(t)=\lim_{\omega \rightarrow 0}\sum_{{\color{Red}{n}}=-\infty }^{+\infty }\frac{{\color{Red}{\omega }}}{2\pi }\int_{-\infty }^{+\infty }f(t)e^{-in\omega t}\mathrm{d}t\cdot e^{in\omega t}\\ =\int _{-\infty }^{+\infty }\frac{1}{2\pi }\left (\int_{-\infty }^{+\infty }f(t)e^{-iWt}\mathrm{d}t\right )e^{iWt}\mathrm{d}W\\ =\frac{1}{2\pi }\int _{-\infty }^{+\infty }\left (\int_{-\infty }^{+\infty }f(t)e^{-iWt}\mathrm{d}t\right )e^{iWt}\mathrm{d}W

    注意这里的\int_{-\infty }^{+\infty }f(t)e^{-iWt}\mathrm{d}t是对t进行积分,因此它是关于W的函数,定义:

    F(W)=\int_{-\infty }^{+\infty }f(t)e^{-iWt}\mathrm{d}t

    F(W)就是f(t)傅里叶变换,将F(W)代入f(t)得:

    f(t)=\frac{1}{2\pi }\int _{-\infty }^{+\infty }F(W)e^{iWt}\mathrm{d}W

    f(t)就是傅里叶变换的逆变换

    参考资料

    ref:【GCN】万字长文带你入门 GCN——公众号:阿泽的学习笔记
    ref:傅里叶变换一步步详细推导
    ref:傅里叶分析之掐死教程(完整版)

    相关文章

      网友评论

        本文标题:傅里叶级数与傅里叶变换

        本文链接:https://www.haomeiwen.com/subject/txeqzktx.html