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

2019-07-20  本文已影响0人  胡文祥lyy

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
如何把傅里叶级数扩展到任意周期上,以及傅里叶变换,在通俗易懂的傅里叶级数和傅里叶变换(二)
中会详细介绍,希望以上得内容能帮到你。

上一篇下一篇

猜你喜欢

热点阅读