zoukankan      html  css  js  c++  java
  • 傅里叶分析笔记

      由于工作中经常会用到傅里叶分析方法、不得不对它基本思想做一些深入的思考。这里记录下我对傅立叶分析的学习过程中真正加深自己印象的一些推导过程,希望对其它朋友能有所帮助、初学时,能看些浅显易懂的图文分析对理解的帮助是非常大的,至少能让你很快的理解主要思路而不至于陷入大量的公式推导之中,但初步理解了之后,要深入下去,是应该好好理解下推导过程的。

      傅里叶分析法建立在一个基本的认知基础之上:周期信号可以用多个正弦信号的线性组合来表示。周期信号的这种分解,被称为傅里叶级数。下面我们就来分析下这种分解过程。

      给定一个最简单的正弦信号

      [y(t) = Asin (omega t + heta )]

      其中周期T=2*PI/ω,将这个信号展开成由一系列以T为周期的正弦函数组成的级数来表示,记为

      [f(t) = {A_0} + sumlimits_{n = 1}^infty  {{A_n}sin (nomega t + { heta _n})} ]

      然后我们将正弦函数进行三角变形

    [{A_n}sin (nomega t + { heta _n}) = {A_n}sin { heta _n}cos (nomega t) + {A_n}cos { heta _n}sin (nomega t)]

      同时,再令:

    [egin{array}{*{20}{c}}
       {frac{{{a_0}}}{2} = {A_0}} & {{a_n} = {A_n}sin { heta _n}} & {{b_n} = {A_n}cos { heta _n}} & {omega t = x}  \
    end{array}]

      则上式最终可以写为

    [f(x) = frac{{{a_0}}}{2} + sumlimits_{n = 1}^infty  {left[ {{a_n}cos (nx) + {b_n}sin (nx)} ight]} ]

      从上式可以看出,只要确定了a0、an、bn这三个参数,函数f(x)就可以确定下来,在求这三个参数的过程中,积分将变的十分有用,先来求a0,对上式从-PI到PI的逐项积分。
    [int_{ - pi }^pi  {f(x)} dx = int_{ - pi }^pi  {frac{{{a_0}}}{2}dx + sumlimits_{k = 1}^infty  {left[ {{a_k}int_{ - pi }^pi  {cos kxdx + {b_k}int_{ - pi }^pi  {sin kxdx} } } ight]} } ]

      根据三角函数系的正交性(三角函数在整数周期范围内的积分为零),上面等式右端除第一项外,后面的长长的求和项看起来挺多,可以得到

    [int_{ - pi }^pi  {f(x)} dx = frac{{{a_0}}}{2} ullet 2pi ]

      于是得到

    [{a_0} = frac{1}{pi }int_{ - pi }^pi  {f(x)} dx]

      再来求an,先在f(x)的展开式两端乘以cos(nx),再从-PI到PI进行逐项积分。可以得到

    [int_{ - pi }^pi  {f(x)cos (nx)dx = frac{{{a_0}}}{2}} int_{ - pi }^pi  {cos (nx)dx + sumlimits_{k = 1}^infty  {left[ {{a_k}int_{ - pi }^pi  {cos (kx)cos (nx)dx + {b_k}int_{ - pi }^pi  {sin (kx)cos (nx)dx} } } ight]} } ]

      根据三角函数的正交性,上式右边除 k=n项外,其它各项均为零,可得

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

      整理,可得

    [egin{array}{*{20}{c}}
       {{a_n} = frac{1}{pi }int_{ - pi }^pi  {f(x)cos (nx)dx} } & {n = 1,2,3}  \
    end{array},...]

      再求bn,同理,在f(x)的展开式两端乘以sin(nx),再从-PI到PI进行逐项积分。最终可以得到

    [egin{array}{*{20}{c}}
       {{b_n} = frac{1}{pi }int_{ - pi }^pi  {f(x)sin (nx)dx} } & {n = 1,2,3}  \
    end{array},...]
      现在,我们已经得到了a0、an、bn这三个参数,它们被称为f(x)的傅里叶系数,把这三个参数代入f(x)的展开式,这种把周期函数f(x)分解为一系列的三角函数被称为函数f(x)的傅里叶级数。

      

      下面我们再看下,当f(x)为奇函数或者偶函数时,其傅里叶级数是什么样子?

      (1)当f(x)为奇函数时,f(-x)=-f(x),我们算下f(x)的傅里叶系数

    [egin{array}{l}
     {a_n} = frac{1}{pi }int_{ - pi }^pi  {f(x)cos (nx)dx}  \
      = frac{1}{pi }int_{ - pi }^0 {f(x)cos (nx)dx}  + frac{1}{pi }int_0^pi  {f(x)cos (nx)dx}  \
      = frac{1}{pi }int_pi ^0 {f( - x)cos ( - nx)( - dx)}  + frac{1}{pi }int_0^pi  {f(x)cos (nx)dx}  \
      =  - frac{1}{pi }int_0^pi  {f(x)cos (nx)dx}  + frac{1}{pi }int_0^pi  {f(x)cos (nx)dx}  \
      = 0 \
     end{array}]

    [egin{array}{l}
     {b_n} = frac{1}{pi }int_{ - pi }^pi  {f(x)sin (nx)dx}  \
      = frac{1}{pi }int_{ - pi }^0 {f(x)sin (nx)dx}  + frac{1}{pi }int_0^pi  {f(x)sin (nx)dx}  \
      = frac{1}{pi }int_pi ^0 {f( - x)sin ( - nx)( - dx)}  + frac{1}{pi }int_0^pi  {f(x)sin (nx)dx}  \
      = frac{1}{pi }int_0^pi  {f(x)sin (nx)dx}  + frac{1}{pi }int_0^pi  {f(x)sin (nx)dx}  \
      = frac{2}{pi }int_0^pi  {f(x)sin (nx)dx}  \
     end{array}]
      可以看出,当f(x)为奇函数时,把系数代入f(x)的展开式,则傅里叶级数只剩下正弦级数。同理

      (2)当f(x)为偶函数时,f(-x)=f(x),其傅里叶系数为

    [egin{array}{l}
     {a_n} = frac{2}{pi }int_0^pi  {f(x)cos (nx)dx}  \
     {b_n} = 0 \
     end{array}]

      这时, f(x)的展开式,则傅里叶级数只剩下了余弦级数。

      在上面的内容中,f(x)展开傅里叶级数时,一直是是以2*PI做为一个完整的周期的,但实际中的周期函数,周期不一定是2*PI,当周期为2*l时,其傅里叶级数展开式为:

    [egin{array}{l}
     f(x) = frac{{{a_0}}}{2} + sumlimits_{n = 1}^infty  {left[ {{a_n}cos left( {frac{{npi x}}{l}} ight) + {b_n}sin left( {frac{{npi x}}{l}} ight)} ight]}  \
     {a_n} = frac{1}{l}int_{ - l}^l {f(x)cos left( {frac{{npi x}}{l}} ight)dx}  \
     {b_n} = frac{1}{l}int_{ - l}^l {f(x)sin left( {frac{{npi x}}{l}} ight)dx}  \
     end{array}]
      如果我们利用欧拉公式

    [egin{array}{*{20}{c}}
       {cos (t) = frac{{{e^{it}} + {e^{ - it}}}}{2}} & {sin (t) = frac{{{e^{it}} - {e^{ - it}}}}{{2i}}}  \
    end{array}]

      则周期为2l的周期函数可以化为

    [egin{array}{l}
     f(x) = frac{{{a_0}}}{2} + sumlimits_{n = 1}^infty  {left[ {frac{{{a_n}}}{2}left( {{e^{ifrac{{npi x}}{l}}} + {e^{ - ifrac{{npi x}}{l}}}} ight) - frac{{i{b_n}}}{2}left( {{e^{ifrac{{npi x}}{l}}} + {e^{ - ifrac{{npi x}}{l}}}} ight)} ight]}  \
      = frac{{{a_0}}}{2} + sumlimits_{n = 1}^infty  {left[ {frac{{{a_n} - i{b_n}}}{2}{e^{ifrac{{npi x}}{l}}} + frac{{{a_n} + i{b_n}}}{2}{e^{ - ifrac{{npi x}}{l}}}} ight]}  \
     egin{array}{*{20}{c}}
       {frac{{{a_0}}}{2} = {c_0}} & {frac{{{a_n} - i{b_n}}}{2} = {c_n}} & {frac{{{a_n} + i{b_n}}}{2} = {c_{ - n}}}  \
    end{array} \
      = {c_0} + sumlimits_{n = 1}^infty  {left( {{c_n}{e^{ifrac{{npi x}}{l}}} + {c_{ - n}}{e^{ - ifrac{{npi x}}{l}}}} ight)}  \
      = {left( {{c_n}{e^{ifrac{{npi x}}{l}}}} ight)_{n = 0}} + sumlimits_{n = 1}^infty  {left( {{c_n}{e^{ifrac{{npi x}}{l}}} + {c_{ - n}}{e^{ - ifrac{{npi x}}{l}}}} ight)}  \
      = sumlimits_{ - infty }^infty  {{c_n}} {e^{ifrac{{npi x}}{l}}} \
     end{array}]

      新的系数cn可以表示为

    [egin{array}{l}
     {c_0} = frac{{{a_0}}}{2} = frac{1}{{2l}}int_{ - l}^l {f(x)dx}  \
     {c_n} = frac{{{a_n} - i{b_n}}}{2} = frac{1}{2}left[ {frac{1}{l}int_{ - l}^l {f(x)cos left( {frac{{npi x}}{l}} ight)} dx - frac{i}{l}int_{ - l}^l {f(x)sin left( {frac{{npi x}}{l}} ight)dx} } ight] \
      = frac{1}{{2l}}int_{ - l}^l {f(x)left[ {cos left( {frac{{npi x}}{l}} ight) - isin left( {frac{{npi x}}{l}} ight)} ight]} dx \
     egin{array}{*{20}{c}}
       { = frac{1}{{2l}}int_{ - l}^l {f(x){e^{ - ifrac{{npi x}}{l}}}dx} } & {(n = 1,2,3,...)}  \
    end{array} \
     {c_{ - n}} = frac{{{a_n} + i{b_n}}}{2} = egin{array}{*{20}{c}}
       {frac{1}{{2l}}int_{ - l}^l {f(x){e^{ifrac{{npi x}}{l}}}dx} } & {(n = 1,2,3,...)}  \
    end{array} \
     end{array}]

      合并上面的结果

    [{c_n}egin{array}{*{20}{c}}
       { = frac{1}{{2l}}int_{ - l}^l {f(x){e^{ - ifrac{{npi x}}{l}}}dx} } & {(n = 0, pm 1, pm 2, pm 3,...)}  \
    end{array}]

      这就是傅里叶系数的复数形式,把系数代入回去,就可以做傅里叶分析了!还有最后一个疑问,对于非周期信号,能不能做这种分解呢?答案当然也是可以的,这时只要把这种信号看做为周期无穷大的周期信号,傅里叶分析就变成了傅里叶变换。

  • 相关阅读:
    c++ struct 使用
    c++数组、字符串操作
    c++ List、Vector、Stack、Queue使用
    十三、哈希表
    十二、234树
    十一、红黑树
    十、哈夫曼编码
    九、二叉树
    八、高级排序
    七、递归
  • 原文地址:https://www.cnblogs.com/icoolmedia/p/fourier_analyze_1.html
Copyright © 2011-2022 走看看