• [数字信号处理]从傅里叶级数到傅里叶变换


    序列傅里叶变换

    三角函数

    三角函数系

    三角函数系,就是以下的一系列三角函数

    [0(也就是sin(0x)),1(也就是cos(0x))\ sin(x),cos(x)\ sin(2x),cos(2x)\ ...\ sin(nx),cos(nx) ]

    三角函数的正交性

    以下的积分总是成立的,我们从以上的任取两个不同的三角函数,求他们相乘之后在([-pi,pi])的积分,他们总会等于(0),例如

    [int_{-pi}^{pi}sin(nx)sin(mx)dx=0,n eq m\ int_{-pi}^{pi}sin(nx)cos(mx)dx=0,n eq m\ int_{-pi}^{pi}cos(nx)cos(mx)dx=0,n eq m\ ]

    欧拉公式

    众所周知,欧拉公式如下

    [e^{i heta}=cos heta+isin heta\ ]

    其中$i=sqrt{-1} $,

    求导证明欧拉公式

    [f( heta)=frac{e^{i heta}}{cos heta+isin heta}\ f'( heta)=frac{ie^{i heta}(cos heta+isin heta)-e^{i heta}(-sin heta+icos heta)}{(cos heta+isin heta)^2}\ =frac{ie^{i heta}cos heta-e^{i heta}sin heta+e^{i heta}sin heta-ie^{i heta}cos heta}{(cos heta+isin heta)^2}\ =0\ 导数=0,那么函数是一个参数\ 显然f( heta)=1\ 所以证明完成 ]

    泰勒展开证明欧拉公式

    [e^x=sum_{i=0}^{infty}frac{x^i}{i!}\ cosx=1-frac{x^2}{2!}+frac{x^4}{4!}...\ sinx=x-frac{x^3}{3!}+frac{x^5}{5!}...\ 所以e^{i heta}=cos heta+i*sin heta ]

    三角函数变形

    [1:e^{i heta}=cos heta+isin heta\ 2:e^{-i heta}=cos heta-isin heta\ 1-2:e^{i heta}-e^{-i heta}=2isin heta\ 1+2:e^{i heta}+e^{-i heta}=2cos heta ]

    最终我们可以得到

    [cos heta=frac{1}{2}(e^{i heta}+e^{-i heta})\ sin heta=-frac{1}{2}i(e^{i heta}-e^{-i heta}) ]

    冷知识:

    求解一个式子(sinx=C,Cin R).

    在世俗的眼光看来,只有当(Cin [-1,1])的时候才能有解.

    然而,如果(x)是虚数的话,对于任意的(Cin R)都有解.

    特殊情况的傅里叶级数

    如果有一个周期为(2pi)的函数,也就是$ f(x)=f(x+2pi)$.

    那么它可以被转化为

    [f(x)=sum_{n=0}^{infty}a_ncos(nx)+sum_{n=0}^{infty}b_nsin(nx) ]

    为什么要用三角函数

    1. 他们有周期性
    2. 任意一个函数都满足(f(x)=frac{f(x)+f(-x)}{2}+frac{f(x)-f(-x)}{2}),也就是可以表达成一个偶函数和一个奇函数的和.而(sin(x))是一个奇函数,(cos(x))是一个偶函数,所以用他们可以构造出任意一个函数.

    为什么要有a和b

    (sin(x),cos(x))的值域在([-1,1]),非常有限,所以我们需要(a_n,b_n)来调节他的大小.

    如果把(n=0)的那一项单独拿出来可以表示成

    [f(x)=a_0cos(0)+b_0sin(0)+sum_{n=1}^{infty}a_ncos(nx+sum_{n=1}^{infty}b_nsin(nx)\ =a_0+sum_{n=1}^{infty}a_ncos(nx)+sum_{n=1}^{infty}b_nsin(nx) ]

    如果我们对这个函数积分,最后会得到.

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

    如果把公式改成

    [f(x)==frac{a_0}{2}+sum_{n=1}^{infty}a_ncos(nx)+sum_{n=1}^{infty}b_nsin(nx) ]

    这里就可以写成

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

    所以在很多地方,这个(a_0)会被写成$frac{a_0}{2} $

    确定a0

    由以上证明,我们可以知道

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

    确定an和bn

    (a_n)的计算,如果有一个(cos(mx),m eq n),那么

    [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_ncos(nx)cos(mx)dx+int_{-pi}^{pi}sum_{n=1}^{infty}sin(nx)cos(mx)dx\ =int_{-pi}^{pi}sum_{n=1}^{infty}a_ncos(nx)cos(mx)dx\ 因为正交性,只有n=m的那一项不为0\ int_{-pi}^{pi}f(x)cos(nx)dx=int_{-pi}^{pi}a_ncos(nx)cos(nx)dx\ =a_npi\ a_n=frac{1}{pi}int_{-pi}^{pi}f(x)cos(nx)dx ]

    (b_n)的计算同理.

    [b_n=frac{1}{pi}int_{-pi}^{pi}g(x)sin(nx)dx ]

    傅里叶级数

    转换成特殊的周期

    对于更一般的,如果一个函数的周期是(2L),也就是(f(t)=f(t+2L)).

    考虑换元

    [x=frac{pi}{L}t,t=frac{L}{pi}x ]

    那么原式就变成(f(frac{L}{pi}x)=f(frac{L}{pi}x+2L)),他的周期就是(2pi)了.

    假设(g(x)=f(frac{L}{pi}x)),那么根据上文,它可以转换成

    [g(x)=frac{a_n}{2}+sum_{n=1}^{infty}a_ncos(nx)+sum_{n=1}^{infty}b_nsin(nx) ]

    分别可以求出

    [a_0=frac{1}{pi}int_{-pi}^{pi}g(x)dx\ a_n=frac{1}{pi}int_{-pi}^{pi}g(x)cos(nx)dx\ b_n=frac{1}{pi}int_{-pi}^{pi}g(x)sin(nx)dx ]

    最终形式

    之后把(x=frac{pi}{L}t)代进去,积分是上下界是

    [int_{-pi}^{pi}dx=int_{-L}^{L}dfrac{pi}{L}t\ frac{1}{pi}int_{-pi}^{pi}dx=frac{1}{L}int_{-L}^{L}dt ]

    上面的式子就变成了

    [f(t)=frac{a_n}{2}+sum_{n=1}^{infty}a_ncos(frac{npi}{L}t)+sum_{n=1}^{infty}b_nsin(frac{npi}{L}t)\ a_0=frac{1}{pi}int_{-L}^{L}f(t)dt\ a_n=frac{1}{pi}int_{-L}^{L}f(t)cos(frac{npi}{L}t)dt\ b_n=frac{1}{pi}int_{-L}^{L}f(t)sin(frac{npi}{L}t)dt\ ]

    其他符号

    为了方便,在应用中会定义以下符号

    [周期T=2L\ 角速度omega=frac{pi}{L}=frac{2pi}{T}\ 频率f=frac{1}{L} ]

    所以傅里叶级数也可以表示成

    [f(t)=frac{a_n}{2}+sum_{n=1}^{infty}a_ncos(nomega t)+sum_{n=1}^{infty}b_nsin(nomega t)\ ]

    复数形式的傅里叶级数

    把上面的三角函数的变形代入傅里叶级数

    [cos heta=frac{1}{2}(e^{i heta}+e^{-i heta})\ sin heta=-frac{1}{2}i(e^{i heta}-e^{-i heta})\ f(t)=frac{a_n}{2}+sum_{n=1}^{infty}a_ncdotfrac{1}{2}(e^{inomega t}+e^{-inomega t})-sum_{n=1}^{infty}b_ncdotfrac{1}{2}i(e^{inomega t}-e^{-inomega t})\ =f(t)=frac{a_n}{2}+sum_{n=1}^{infty}frac{a_n-ib_n}{2}e^{inomega t}+sum_{n=1}^{infty}frac{a_n-ib_n}{2}e^{-inomega t}\ =frac{a_n}{2}+sum_{n=1}^{infty}frac{a_n-ib_n}{2}e^{inomega t}+sum_{n=-infty}^{-1}frac{a_{-n}-ib_{-n}}{2}e^{inomega t}\ =sum_{i=0}^{0}frac{a_n}{2}e^{inomega t}+sum_{n=1}^{infty}frac{a_n-ib_n}{2}e^{inomega t}+sum_{n=-infty}^{-1}frac{a_{-n}-ib_{-n}}{2}e^{inomega t}\ =sum_{n=-infty}^{infty}C_ne^{inomega t} ]

    计算C的值

    [C_0=frac{1}{T}int_{0}^{T}f(t)dt\ C_n=frac{1}{T}int_{0}^{T}f(t)e^{-inomega t}dt,nin(0,infty)\ C_n=frac{1}{T}int_{0}^{T}f(t)e^{-inomega t}dt,nin(-infty,0)\ ]

    整理一下,其实

    [C_n=frac{1}{T}int_{0}^{T}f(t)e^{-inomega t}dt ]

    所以

    [f(t)=sum_{n=-infty}^{infty}frac{1}{T}int_{0}^{T}f(t)e^{-inomega t}dtcdot e^{inomega t} ]

    傅里叶变换

    如果一个函数没有周期,就是说他一直不重复,即周期趋于无穷.

    原本(frac{1}{T})是离散的,但是(T)趋向正无穷之后(sum_{n=-infty}^{infty}frac{1}{T})就可以当做是一个积分了,将它记做(int_{-infty}^{infty}du).

    (nomega)也换成(u).

    同时

    [T->infty\ int_{-frac{T}{2}}^{frac{T}{2}}dt->int_{-infty}^{infty}dt\ ]

    所以

    [f(t)=frac{1}{2pi}int_{-infty}^{infty}int_{-infty}^{infty}f(t)e^{-iut}dtcdot e^{iut}du\ ]

    提取出中间的积分出来

    [f(t)=frac{1}{2pi}int_{-infty}^{infty}F(u)cdot e^{iut}du\ F(u)=int_{-infty}^{infty}f(t)cdot e^{-iut}dt ]

    这里的(F(u))就是傅里叶变换,f(t)就是傅里叶变换的逆变换.

  • 相关阅读:
    C# 依据鼠标坐标取网页内成员坐标.ie
    C# WebBrowser获取指定字符串的坐标
    C#获取网页中某个元素的位置,并模拟点击
    qq空间认证教程:借助企鹅媒体平台认证QQ公众空间
    QQ空间认证之数据篇
    QQ空间运营 怎么做一个QQ人气号?
    QQ空间|qq人气号怎么赚钱?
    QQ好友的价值玩法 及如何搞到几万好友?
    新媒体运营之如何月涨十万粉
    社群经济:如何利用社群做营销?
  • 原文地址:https://www.cnblogs.com/zzidun-pavo/p/14277901.html
Copyright © 2020-2023  润新知