大家好,又见面了,我是你们的朋友全栈君。
1、 考虑到一个函数可以展开成一个多项式的和,可惜多项式并不能直观的表示周期函数,由于正余弦函数是周期函数,可以考虑任意一个周期函数能否表示成为一系列正余弦函数的和。假设可以,不失一般性,于是得到:
f(t)= A0+∑(n=1,∞) Ansin(nωt+Φn)
2、 将后面的正弦函数展开:
Ansin(nωt+Φn)=AnsinΦncosnωt+AncosΦnsinnωt
令 a0/2 =A0,an = AnsinΦn,bn=AncosΦn,x=ωt,可得
f(x)= a0/2+∑(n=1,∞)(ancosnx+bnsinnx)
对两边在区间[-π,π]积分,得
ƒ(-π->π) f(x)dx = ƒ(-π->π)a0/2dx +ƒ(-π->π)(∑(n=1,∞) (ancosnx+bnsinnx))dx
ƒ(-π->π) f(x)dx = ƒ(-π->π)a0/2dx +∑(1 -> ∞) (ƒ(-π->π)(ancosnx+bnsinnx)dx)
ƒ(-π->π) f(x)dx = ƒ(-π->π)a0/2dx +∑( 1 -> ∞) [anƒ(-π->π)cosnxdx+bnƒ(-π->π)sinnxdx]
ƒ(-π->π) f(x)dx =a0/2 * 2π +∑( 1 -> ∞) [anƒ(-π->π)cosnxdx+bnƒ(-π->π)sinnxdx]
当n=0時
ƒ(-π->π) f(x)dx = ao * π
于是我们求出了a0的值。
ao = ƒ(-π->π) f(x)dx /π
三角函数系{1,cosx,sinx,cos2x,sin2x,……,cosnx,sinnx,……} ————– ⑴
在区间[-π,π]上正交,就是指在三角函数系⑴中任何不同的两个函数的乘积在区间[-π,π]上的积分等于0,即
∫[-π->π]cosnxdx=0
∫[-π->π]sinnxdx=0
∫[-π->π]sinkxcosnxdx=0
∫[-π->π]coskxcosnxdx=0
∫[-π->π]sinkxsinnxdx=0
(k,n=1,2,3…..,k≠n)
下面利用三角函数正交性求出an,在原函数两端乘以cos(nx)再进行积分。
ƒ(-π->π) f(x)*cosnx dx = ƒ(-π->π)a0/2 * cosnx dx +ƒ(-π->π)(∑(n=1,∞)(ancosnx*cosnx + bnsinnx*cosnx))dx
ƒ(-π->π) f(x)*cosnx dx = a0/2 ƒ(-π->π) cosnx dx +∑(n=1,∞)[ an ƒ(-π->π)cosnx*cosnxdx + bn ƒ(-π->π)sinnx*cosnxdx])
根据上面提到的性质,可知 ƒ(-π->π) cosnx dx =0,ƒ(-π->π)sinnx*cosnxdx =0, 因此
ƒ(-π->π) f(x)*cosnx dx = an ƒ(-π->π)[cosnx*cosnxdx]
ƒ(-π->π) f(x)*cosnx dx = an ƒ(-π->π)[1+cos2nx)/2 dx]
ƒ(-π->π) f(x)*cosnx dx = an [ ƒ(-π->π)1/2 dx + ƒ(-π->π)(cos2nx/2 )dx
ƒ(-π->π) f(x)*cosnx dx = an ( π + 1/2 *( sin2nx|(-π->π))
ƒ(-π->π) f(x)*cosnx dx = an π
得 an = 1/π ƒ(-π->π) f(x)*cosnx dx (n=1,2,3…..)
再用sin(nx)乘,再进行积分就会得到bn,
bn = 1/π ƒ(-π->π) f(x)*sinnx dx (n=1,2,3…..)
于是乎得到了一个任意函数展开成为正余弦函数的通用表达式,同时为什么会出现A0/2而不是直接的A0的原因也很明朗:就是让整个表达式更具有通用性,体现一种简洁的美。
通过了以上的证明过程,应该很容易记住傅里叶变换的公式。
到此为止,作为一个工程人员不用再去考虑了,可是作为每一个数学家他们想的很多,他们需要知道右侧的展开式为什么收敛于原函数,这个好难,有个叫Dirichlet的家伙证明出如下结论:
这里涉及两个函数
(1)事先给定一个函数f(x)
(2)根据f(x)构造一个Fourier级数,这是一个形式上的无穷项的和,和函数F(x)不一定存在.所以要判断它是否收敛.如果不收敛,f(x)与F(x)就毫无关系.
(3)如果判断出Fourier级数收敛,其和函数为F(x),而F(x)也不一定是f(x)
(4)Dirichlet定理指出,满足收敛定理2条件时,和函数F(x)恰等于f(x)在点x处左右极限的平均值.
用一个生活中的例子来阐明这过程:
(1)事先给您一只动物(如小兔)的旧衣服,小兔的旧衣服就是f(x)
(2)您根据小兔的旧衣服为它做一件新衣服,新衣服就是F(x),但是衣服F(x)未必能穿(未必收敛)
(3)即使能穿(收敛),新旧衣服也不一定大小完全一样(f与F未必相同)
(4)如果满足一定条件,新衣服F(x)在某些地方(f(x)连续点)与旧衣服f(x)完全相同.新衣服F(x)在某些地方(f(x)的不连续点,像衣服的破洞)与旧衣服f(x)是不相同的.
至此以2π为周期的傅里叶变换证明完毕,只不过我们经常遇到的周期函数我想应该不会这么凑巧是2π,于是乎任意的一个周期函数如何知道其傅里叶变换呢,数学向来都是一个很具有条理性的东西,任意周期的函数的傅里叶变换肯定也是建立在2π周期函数的基础之上的。
一个以2L为周期的函数f1(x)如何进行傅里叶变换?因为z=2π*x/(2L)=πx/L,可以用 sin z(即sinπx/L)作基函数,用πx/L替换傅里叶变换右边表达式各项中的x,不难看出就是对原f(x)图像沿x轴进行缩放L/π倍,显然这个求和后的新图像就是f1(x), 于是乎得到如下公式:
f(x)= a0/2+∑(n=1,∞)(ancos n zx +bnsin n zx) = a0/2+∑(n=1,∞)(ancosnπx/L+bnsinnπx/L)
同前面的计算方法,可得
an = 1/L ƒ(-L->L) f(x)*cosn πx/L dx // 基函数为sin πx/L
bn = 1/L ƒ(-L->L) f(x)*sinn πx/L dx // 基函数为sin πx/L
傅里叶函数看起来其实还是比较复杂的,有没有一种更简单的表达形式来表示呢。既然提出这个问题,肯定是有的,我个人猜想肯定是复变
函数大师在挖掘复变函数的时候,用复变函数去套用经典的傅里叶变换,偶然间发现的••••••
一个基本的欧拉公式eiθ=cosθ +i*sinθ,这个很容易可以从复数的几何意义上得知,我们通过取两个互为相反数的θ可以得到两个式子,
进而可以得到cos 和 sin 的复数表达形式:
fT(t)= a0/2+∑(n=1,∞)(ancosnω0t+bnsinnω0t) ………..(L)
ejθ=cosθ +j*sinθ (1)
ej-θ= cos-θ +j*sin-θ= cosθ-j*sinθ (2)
(1)+( 2),得
cosθ = ( ejθ+ej-θ) /2 (3)
据(1)和(3),得
sinθ = ( ejθ-ej-θ) /2j
则(L)可变形为
fT(t) = a0/2+ ∑(n=1,∞)( an ( 1/2 * (e(jnω0t)+e(-jnω0t)))+ bn( 1/2 * e(jnω0t)-e(-jnω0t))))
= a0/2+ ∑(n=1,∞)( an ( 1/2 * (e(jnω0t)+e(-jnω0t)))- bn( j/2 * e(jnω0t)-e(-jnω0t))))
= a0/2 + ∑(n=1,∞)( (an-jbn)/2 e(jnω0t)+(an+jbn)/2 e(-jnω0t))
令 c0 = a0/2 = 1/T ƒ(-T/2->T/2) fT(t)dt
令 cn = (an-jbn)/2 = 1/T [ ƒ(-T/2->T/2) fT(t) cosnω0t dt – j ƒ(-T/2->T/2) fT(t) sinnω0t dt]
= 1/T ƒ(-T/2->T/2)fT(t)(cosnω0t- jsinnω0t)dt = 1/T ƒ(-T/2->T/2)fT(t)(cos-nω0t + jsin-nω0t)dt
= 1/T ƒ(-T/2->T/2)fT(t) e(-jnωot) dt ( n=1,2,3…)
同理 c_n = (an+jbn)/2 = 1/T [ ƒ(-T/2->T/2) fT(t) ejnω0t dt ( n=1,2,3…)
cn = 1/T ƒ(-T/2->T/2)fT(t) e-jnω0t dt ( n =±1,±2,±3,……)
据 ωon=ωn 得
cn == 1/T ƒ(-T/2->T/2)fT(t) e(-jωnt) dt
看出来了么,在不同波形图(f(x)表达式不同)中,同一个正弦函数曲线(ωn 或频率相同),它们的系数不同,是因为f(x)不同,无它。
fT(t) = c0+∑(n=1,∞)[ cn ejωnt +c_n e-jωnt ]
即
fT(t) = c0+∑(n=-∞,∞)[ cn ejωnt] ( n =0,±1,±2,±3,……)
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/160845.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...