美文网首页
通俗易懂的傅里叶级数和傅里叶变换(一)

通俗易懂的傅里叶级数和傅里叶变换(一)

作者: 胡文祥lyy | 来源:发表于2019-07-20 20:57 被阅读0次

    1, 什么是傅里叶级数

    什么是级数?

        级数是指将数列的项依次用加号连接起来的函数。举例就是:
    \sum_{n=1}^\infty 1/n^2=1/1^2+1/2^2+1/3^2+......+1/n^2
        这种由很多项相加的形式就是级数。

        对于函数就是如下这个形式:
    f(x)=u_1(x)+u_2(x)+...+u_n(x)

    如何用级数表达一个周期函数

        在工程中,我们经常会遇到各种各样的周期性的波形。这些波形很难找到一个函数去表达他,或者原函数无法很好的去分析波的特征。

    image.png

        所以我们需要找到一个函数g(x)去近似原函数f(x),而且这个g(x)有很好的特性,方便去做分析。

        法国数学家傅里叶就发现,任何周期函数都可以用正弦函数和余弦函数构成的无穷级数来表示。
        看一个动图来理解下这句话。


    Fourier_series_square_wave_circles_animation

        右边的波形就是由左边几个基础波形(三角函数)合成的。

        下面给出傅里叶级数的数学公式。
    f(x)= \frac{a_0}{2}+\sum_{n=1}^\infty (a_ncos(\frac{2\pi nx}{T}) +b_nsin(\frac{2\pi nx}{T}) )

    原函数f(x)就由无数个\sin,\cos组成的。这个公式理解起来也很简单,\frac{a_0}{2}是个常数项,因为正弦和余弦函数都是在0点位置上下波动,想要让其脱离0点,就必须加入\frac{a_0}{2}这个偏移项,当然你也可以理解为\frac{a_0}{2}\cos(0x)
    \sum_{n=1}^\infty (a_ncos(\frac{2\pi nx}{T}) +b_nsin(\frac{2\pi nx}{T}) )便是无数个sin和cos的组合,其中a_n,b_n就相当于上面动图中的\frac{4}{\pi },\frac{4}{3\pi },\frac{4}{5\pi },\frac{4}{7\pi } 代表着振幅,也就是圆半径的大小。\frac{2\pi n}{T}就相当于动图中的\theta前的系数1,3,5,7代表着频率,也就是圆转一圈用的速度。so,是不是很容易理解。
        \frac{2\pi n}{T}代表这频率,那其中的T代表着什么呢?T就是函数f(x)的周期,\frac{2\pi n}{T}的作用就是构建一个周期为T的波形,只是随着n的增大,波的频率越来越高。例如\sin(x),\sin(2x)都是周期2\pi的函数,只是\sin(2x)的最小周期不在是2\pi,所以其频率就变大了。

    image.png

        这里强调下,傅里叶级数是针对周期函数的,对于非周期的函数就是傅里叶变换了。

        很多博主在解读傅里叶级数的时候,上来就说时域,频阈,复频域,欧拉公式。其实那些都是在不同场景下的不同的表现形式,本质都是一样的。先理解了上面的公式,以此为基础进行展开,会更加容易理解。

    2,如何求解

        还记得我们的目标吗?找出一个函数g(x)去近似原函数f(x)g(x)样子已经有了:
    f(x)= \frac{a_0}{2}+\sum_{n=1}^\infty (a_ncos(\frac{2\pi nx}{T}) +b_nsin(\frac{2\pi nx}{T}) )

        我们只需要求出a_0,a_n,b_n就可以得到g(x)

        所以这里有个前提,我们在看下需要求解的波形:

    image.png

        对于原函数f(x)是什么样的我们并不知道,但我们知道f(x)在每个x处的取值,毕竟这个波是我们自己采样得到的。

    C_1= \frac{a_0}{2}+\sum_{n=1}^\infty (a_ncos(\frac{2\pi nx}{T}) +b_nsin(\frac{2\pi nx}{T}) )
    C_2= \frac{a_0}{2}+\sum_{n=1}^\infty (a_ncos(\frac{2\pi nx}{T}) +b_nsin(\frac{2\pi nx}{T}) )
    C_3= \frac{a_0}{2}+\sum_{n=1}^\infty (a_ncos(\frac{2\pi nx}{T}) +b_nsin(\frac{2\pi nx}{T}) )
    ......
    C_n= \frac{a_0}{2}+\sum_{n=1}^\infty (a_ncos(\frac{2\pi nx}{T}) +b_nsin(\frac{2\pi nx}{T}) )

        所以求解g(x)最简单得方法就是,构建n个g(x)=C_n方程等式,求解一个n元一次方程,如上面所示。这里C是常数,n得数量由自己定义。

        当然上面是小学生的解法,大家不要当真。
        在给大家介绍傅里叶级数的解之前,我们先看下周期为2\pi的傅里叶级数,令T=2\pi带入:
    f(x)= \frac{a_0}{2}+\sum_{n=1}^\infty (a_ncos(nx) +b_nsin(nx) )
    其对应的解为:
    a_0=\frac{1}{\pi }\int_{-\pi}^\pi f(x)dx
    a_n=\frac{1}{\pi }\int_{-\pi}^\pi f(x)cos(nx)dx
    b_n=\frac{1}{\pi }\int_{-\pi}^\pi f(x)fin(nx)dx

        想要求出这几个解,我们要先了解下三角函数的正交性,而理解三角函数的正交最好就是从周期为2\pi的函数开始。

    什么是正交?在线性代数中,正交就是两个向量垂直,如下图(A)。

    正交

    \begin{bmatrix}x_1 \\y_1 \\\end{bmatrix}\begin{bmatrix}x_2 \\y_2 \\\end{bmatrix} 正交,就表现为x_1*x_2+y_1*y_2=0,也就是两个向量的内积等于0

    而在函数上的正交就表现为积分的形式:
    \int_a^b f(x)*g(x)dx=0
    其中\int_a^b f(x)*g(x)dx 就是f(x),g(x)的内积,当其为零的时候就说明两个函数在a,b区间内正交。

    回到傅里叶级数,下面就是傅里叶级数中所有的三角函数集合。
    {{0,1,\sin(x),\cos(x),\sin(2x),\cos(2x).....\sin(nx),\cos(nx) }}

    任意两个三角函数一定条件下在 -\pi\pi之间是正交的,详细如下:
    \int_{-\pi} ^\pi\sin(nx)\cos(mx)dx=0
    \int_{-\pi} ^\pi\sin(nx)\sin(mx)dx=0 \quad\quad n\neq m
    \int_{-\pi} ^\pi\cos(nx)\cos(mx)dx=0 \quad\quad n\neq m
    \int_{-\pi} ^\pi\sin(nx)\sin(mx)dx=\pi \quad\quad n=m
    \int_{-\pi} ^\pi\cos(nx)\cos(mx)dx=\pi \quad\quad n=m

    关于其证明网上有很多,这里就不细说了。

    下面看如何利用上面的性质来接a_0,a_n,b_n

    将函数两边同时积分

    \int_{-\pi}^{\pi}f(x)dx=\int_{-\pi}^{\pi}\frac{a_0}{2}dx+\int_{-\pi}^{\pi}\sum_{n=1}^\infty a_n\cos(nx)dx+\int_{-\pi}^{\pi}\sum_{n=1}^\infty b_n\sin(nx)dx

    \frac{a_0}{2},a_n,b_n移到前面。
    \int_{-\pi}^{\pi}f(x)dx=\frac{a_0}{2}\int_{-\pi}^{\pi}dx+a_n\int_{-\pi}^{\pi}\sum_{n=1}^\infty \cos(nx)dx+b_n\int_{-\pi}^{\pi}\sum_{n=1}^\infty \sin(nx)dx
    其中 \int_{-\pi}^{\pi}\sum_{n=1}^\infty \cos(nx)dx,\int_{-\pi}^{\pi}\sum_{n=1}^\infty \sin(nx)dx 可以看成 \int_{-\pi}^{\pi}\sum_{n=1}^\infty 1*\cos(nx)dx,\int_{-\pi}^{\pi}\sum_{n=1}^\infty 1*\sin(nx)dx,根据前面的正交性,得到这两项都等于0,于是上面的函数就等于
    \int_{-\pi}^{\pi}dx=\frac{a_0}{2}\int_{-\pi}^{\pi}dx=\frac{a_0}{2}2\pi

    于是:
    a_0=\frac{1}{\pi}\int_{-\pi}^{\pi}f(x)dx

    下面求解下a_n

    将两边乘上\cos(mx),然后两边同时积分

    \int_{-\pi}^{\pi}f(x)\cos(mx)dx=\int_{-\pi}^{\pi}\frac{a_0}{2}\cos(mx)dx+\int_{-\pi}^{\pi}\sum_{n=1}^\infty a_n\cos(nx)\cos(mx)dx+\int_{-\pi}^{\pi}\sum_{n=1}^\infty b_n\sin(nx)\cos(mx)dx

    \frac{a_0}{2},a_n,b_n移到前面。
    \int_{-\pi}^{\pi}f(x)\cos(mx)dx=\frac{a_0}{2}\int_{-\pi}^{\pi}\cos(mx)dx+a_n\int_{-\pi}^{\pi}\sum_{n=1}^\infty \cos(nx)\cos(mx)dx+b_n\int_{-\pi}^{\pi}\sum_{n=1}^\infty \sin(nx)\cos(mx)dx

    同样根据正交性\int_{-\pi}^{\pi}\cos(mx)dx \quad, \quad \int_{-\pi}^{\pi}\sum_{n=1}^\infty \sin(nx)\cos(mx)dx 等于0. 而\int_{-\pi}^{\pi}\sum_{n=1}^\infty \cos(nx)\cos(mx)dx 只有n=m的项不为0,其他的也会为0,所以:

    \int_{-\pi}^{\pi}f(x)\cos(nx)dx=a_n\int_{-\pi}^{\pi} \cos^2(nx)dx

    在正交性那块我给出了 \int_{-\pi}^{\pi} \cos^2(nx)dx=\pi,所以:
    a_n=\frac{1}{\pi}\int_{-\pi}^{\pi}f(x)\cos(nx)dx

    关于b_n求法是一样得,这里就不细说了。

    上面便是傅里叶级数得求解过程,但是这里我们定义得频率是2\pi
    如何把傅里叶级数扩展到任意周期上,以及傅里叶变换,在通俗易懂的傅里叶级数和傅里叶变换(二)
    中会详细介绍,希望以上得内容能帮到你。

    相关文章

      网友评论

          本文标题:通俗易懂的傅里叶级数和傅里叶变换(一)

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