天天看点

c++ 提取傅里叶描述子_傅里叶级数的前世今生

    如果说有哪个人在大学生脑海里一直挥之不去,那一定是——没错,就是他,傅里叶(Jean Baptiste Joseph Fourier,1768-1830),他的重要成就:傅里叶级数理论,给众多学子留下了不可磨灭的阴影。但是你可知道,傅里叶级数理论的前世今生?

c++ 提取傅里叶描述子_傅里叶级数的前世今生

本期目录

一、一个重要的发现

二、傅里叶的坚持及傅里叶级数的严密化

三、傅里叶级数到底是什么

四、傅里叶级数的实际应用

五、傅里叶级数理论的知识基础

六、傅里叶级数理论的基本内容

七、几种傅里叶级数的计算技巧

八、参考文献

一、一个重要的发现

    事实上,傅里叶级数并不起源于傅里叶。早在傅里叶还没出生的1753年,丹尼尔·伯努利(Daniel Bernoulli,1700-1782)就提出了可以用三角函数来解弦振动方程。弦振动方程大概就是这么个玩意儿:

c++ 提取傅里叶描述子_傅里叶级数的前世今生

    这是伟大的数学家们迈出打通三角函数与其他函数中间那扇墙的第一步。紧接着到1759年,数学家们已成功将x的2/3次方用三角函数的形式表示。再跨越到1777年,在欧拉(Leonhard Euler,1707-1783)研究天文问题时,已推导出以下的式子:

c++ 提取傅里叶描述子_傅里叶级数的前世今生

    可以发现,这个式子和我们今天在高数课本上看到的傅里叶级数中的a(n)已经非常接近了。但是,这个式子仅能表示周期为l的偶函数的情况,尚未具备普适性。

二、傅里叶的坚持与傅里叶级数的严密化

    为什么伯努利、欧拉等鼎鼎有名的大佬已经做到这一步,却仍然无法成就“伯努利级数”或“欧拉级数”呢?因为从当时的数学研究而言,很多的壁垒尚未打破,比如周期函数和非周期函数的对立、奇函数和偶函数的对立等,这种现在看来比较狭隘的函数观,为三角函数的进一步突破造成了阻碍,也让欧拉、伯努利等一众知名数学家无法打破傅里叶级数的壁垒。

    但终于在19世纪初,三角函数也迎来了它的生命天子——傅里叶。傅里叶是一个物理学家,他利用把周期函数转化为三角函数的方法成功解决了热传导理论的很多问题,同时也让他提出:任何一个周期函数都能用三角函数的方式展开。

    已享有盛名的傅里叶在对周期函数与三角函数的问题上在当时的数学家看来就像一个二愣子一般硬要往里钻,在别的数学学家乃至各个领域大牛都坚定地认为周期函数不可能被表示成三角函数的形式,甚至连巴黎科学院都因此拒了他的论文之时,傅里叶却仍然坚决认为这是可行的。他无比自信地认为,任何一个周期函数在(-pi,pi)上都可表示为以下的式子:

c++ 提取傅里叶描述子_傅里叶级数的前世今生

    但最最可惜的是,傅里叶没能给出详细证明,也并没有归纳出傅里叶级数在展开过程中所需要的限制条件。他只靠一种直觉说:“周期函数一定能表示成三角函数的形式。”这就像你嘴上一直说“我一定能减肥成功”但始终不见你行动更不见你瘦下来。

    直到1829年,傅里叶级数才迎来了它的第二位卓有贡献的推动者——狄利克雷(Johann Peter Gustav Lejeune Dirichlet,1805-1859)。他在论文《关于三角函数的收敛性》中给出并证明了三角函数收敛与目标函数 f(x) 的条件,被尊称为使傅里叶级数严密化的第一人甚至傅里叶级数理论的奠基人。他所给出的傅里叶级数收敛的条件——狄利克雷条件,跟我们现在高数课本中的条件已经相差无几。

    1854年,黎曼(Riemann,1826-1866)在论文《用三角级数表示函数》中,给出并证明了傅里叶级数的系数为:

c++ 提取傅里叶描述子_傅里叶级数的前世今生

    至此,高数课本中关于傅里叶级数的理论内容基本得到解决。至今,傅里叶级数已不断发展并应用于实际生活中,在信号与系统等方面已经不可或缺,其理论研究上也已经变得更具普适性,并不只限于(-pi,pi)的区间。

c++ 提取傅里叶描述子_傅里叶级数的前世今生

三、傅里叶级数到底是什么

    取分段函数:

c++ 提取傅里叶描述子_傅里叶级数的前世今生

    举这么一个分段函数为例,将它展开为傅里叶级数的结果为:

c++ 提取傅里叶描述子_傅里叶级数的前世今生

    我们将其中的三角函数逐项叠加,图像大概是这样:

c++ 提取傅里叶描述子_傅里叶级数的前世今生

    我们可以看出,在不断的叠加过程中,三角函数的和已经逐渐逼近原分段函数了。所以,我们成功地将一个一般的函数转化为了三角函数的表示形式,而按照百度百科,傅里叶级数就是一种特殊的三角级数,它将一般的周期函数分解为三角函数的形式。当然如果这样描述,那就是太小看傅里叶级数的威力了。在实际应用中,比如热传导,比如信号与系统等,它们所需要用到的各类函数千变万化,是需要通过无比复杂的函数进行逼近的。但若我们在具体实现这种种计算的过程中,能够将复杂函数分解为简单函数和,那么对于复杂函数的处理能力将发生飞跃。实际上,傅里叶级数更应该被解释或描述为:“将(复杂)函数和图像分解成简单震荡的叠加”,尽管它的起源是一个看起来和频率和震荡毫无关系的物理问题(引自3blue1brown关于热传导理论的讲解中涉及傅里叶变换的部分)。

四、傅里叶级数的实际应用

1.数学应用

    通过傅里叶级数对函数进行展开,并由傅里叶级数的敛散性直接得出两式相等,以下给出一个例子:

c++ 提取傅里叶描述子_傅里叶级数的前世今生

2.解决平面连杆机构综合问题

    平面连杆机构中连杆上任意点的运动轨迹(连杆曲线)可以表示为一系列不同周期的圆周运动频率分量的合成。把每个谐波成分的参数 作为一个独立构件的运动参数,然后把每个构件依次相连形成一个开链(对应于矢量求和),则该开链机构的端点描绘出的曲线,就是这里所需的平面连杆曲线。

c++ 提取傅里叶描述子_傅里叶级数的前世今生

    用连杆曲线的谐波成分来描述相应的连杆曲线,根据这些谐波成分转化成相应的开链机构就可以完全再现原连杆轨迹,从而也将连杆曲线的几何意义与其谐波参数联系起来,为下一步利用这一数学工具进行机构轨迹综合奠定了基础。

    由连杆转角函数中的变量连杆摆动角函数θ(t)和机构尺寸参数共同决定连杆转角函数的谐波特征参数。以常见的平面四杆机构为例,两个对应杆长成比例的平面四杆机构 ABCD 和 AEFG,根据几何关系可知两者具有相同的连杆摆动角函数θ(t) 。因此可以将连杆机构各杆长转化为量纲一的尺寸型与摆动角函数θ(t) 相对应。

c++ 提取傅里叶描述子_傅里叶级数的前世今生

    根据傅里叶级数理论,给出了连杆曲线谐波参数在平面连杆机构和空间连杆机构上的几何意义,为连杆机构连杆曲线的分析和综合提供了有效的工具。基于傅里叶级数理论解决了连杆曲线特征参数提取的问题,给出了建立平面和空间连杆曲线数值图谱的统一步骤,在此基础上为连杆机构的轨迹综合提供了一个新的思路。

3.改进机器人动力学参数辨识

    针对机器人动力学参数辨识的问题,提出一种基于改进傅里叶级数的辨识方法。采用静态连续摩擦模型描述机器人关节摩擦特性,以确保基于该模型的摩擦补偿是物理可实现的。推导得到机器人动力学模型的线性形式。设计严格满足速度、加速度边界条件的改进傅里叶级数作为激励轨迹,并根据条件数准则优化激励轨迹系数。考虑测量噪声的影响,采用最大似然法作为参数估计的方法。实验结果表明,采用所提方法的辨识结果能够准确重构机器人关节力矩值。且相比于传统的基于傅里叶级数的辨识方法,该方法提高参数辨识的精度。

c++ 提取傅里叶描述子_傅里叶级数的前世今生

4.信号解析

    计算机在处理各种信号时,都会用到傅里叶变换。以声音为例,我们知道声音是物体振动发出的,它是一种波,通过空气或其他介质进行传播。如果用声波记录仪记录并显示这些波的振动形式,会发现生活中的绝大部分的声音是都是非常复杂甚至杂乱无章的。而傅里叶可以把声音的波形分解为震荡叠加的形式,便于进一步处理。

c++ 提取傅里叶描述子_傅里叶级数的前世今生

五、傅里叶级数理论的知识基础

1.周期函数

(1)周期函数的定义

    简而言之,周期函数就是其定义域上的所有曲线会不断重复出现的函数,从数学的角度下一个定义即:在函数 f(x) 的定义域上有:

c++ 提取傅里叶描述子_傅里叶级数的前世今生

    其中,当 T>0 且取得 T = Tmin 使得上式成立时,称 T 为 f(x) 的最小正周期。比如最典型的三角函数就是一个以 2 pi 为最小正周期的周期函数:

c++ 提取傅里叶描述子_傅里叶级数的前世今生

    值得注意的是,周期函数要求上式都能在定义域上恒成立,比如这个函数,虽然其中绝大部分能重复出现,但上式并非恒成立,故也不是周期函数:

c++ 提取傅里叶描述子_傅里叶级数的前世今生

(2)周期函数的几个特性

① 若 T 为一个周期函数的周期,则 T 的任意整数倍(0除外)都是该周期函数的周期。

② 对函数 f(x) 有:f(nx) (n>1) 相当于将整个 x 轴压缩 n 倍。考虑周期函数,当未知量 x 前乘上任意大于1的实数 n 将使其周期也压缩 n 倍。故当我们对周期为 T 的周期函数作以下周期变换:

c++ 提取傅里叶描述子_傅里叶级数的前世今生

并令:

c++ 提取傅里叶描述子_傅里叶级数的前世今生

则函数 F(t) 为周期为 2 pi 的周期函数。

③ 对一个周期为 T 的函数,对于任意一个长度为 T 的积分区域,其积分结果相等,即:

c++ 提取傅里叶描述子_傅里叶级数的前世今生

2.三角函数系

(1)“系”概念的引出

    高中阶段我们就学习过直线系、圆系。以直线系为例,设有直线 l1 、l2 ,则直线系方程:

c++ 提取傅里叶描述子_傅里叶级数的前世今生

    这个式子即表示了过 l1 、l2 两直线交点的一切直线,即表示了这些直线所构成的集合中的所有元素。所谓“系”,也就是某一个群体中任一个体都包含有相同“特征”,比如该直线系中任一直线都过一个 l1 、l2 两直线交点这一任意点。

(2)三角函数系

    我们把:

c++ 提取傅里叶描述子_傅里叶级数的前世今生

称为三角函数系。在这个系中,任意有限个项的和仍为周期为 2 pi 的周期函数。如下面这个函数:

c++ 提取傅里叶描述子_傅里叶级数的前世今生

(3)三角函数系的正交性

利用三角函数积化和差可证得下式成立。

c++ 提取傅里叶描述子_傅里叶级数的前世今生

3.收敛定理

    该定理又称为 Dirichlet 充分条件,由 Dirichlet 在1829年的论文《关于三角函数的收敛性》中整理并证明。今天我们学习的内容中,已对 Dirichlet 充分条件进行了放宽。现在的 Dirichlet 充分条件如下:

(1)函数 f(x) 周期为 2 pi ;

(2)函数 f(x) 在 [ -pi , pi ] 上逐段光滑;

(3)函数 f(x) 在 [ -pi , pi ] 上只有有限个极值点。

    当某一函数符合上述条件时,该函数在任意一点上收敛于左右两点的均值。设 S(x) 为展开后的傅里叶级数,则有:

c++ 提取傅里叶描述子_傅里叶级数的前世今生

说明:

(1)当 f(x) 在点 x0 为中心的领域内连续时,左右极限相等且为 f(x0) ;

(2)当 f(x) 在点 x0 间断时,傅里叶级数收敛于左右极限的均值;

(3)若函数定义域即为 [ -pi , pi ] ,则左右两侧端点的傅里叶级数收敛情况为左右端点极限的均值。我们作一个拓展定义,补充左右两侧周期,即可得到如上结论。

    上面的三则知识基础看起来与傅里叶毫无关联,事实上是在使用过程中必不可少的前提条件。首先,所谓傅里叶级数是将周期函数展成三角函数的表示形式;其次,傅里叶级数是一种特殊的三角级数,正因三角函数系的存在,才使我们能够顺利得到其展开式的通式;还有,事实上只要函数 f(x) 在区间 [ -pi , pi ] 上可积即可计算其傅里叶级数,但只有符合收敛定理,算出来的傅里叶级数和原函数 f(x) 之间才能画上等号,即在 n 趋于无穷的时候,它们的值才相等。

六、傅里叶级数理论的基本内容

    对于任意周期为 2 pi 并在 [ -l , l ] 上可积的函数 f(x) ,将下式成为 f(x) 的傅里叶级数:

c++ 提取傅里叶描述子_傅里叶级数的前世今生

其中:

c++ 提取傅里叶描述子_傅里叶级数的前世今生

    再次强调,当且仅当 f(x) 满足收敛条件时,才有:

c++ 提取傅里叶描述子_傅里叶级数的前世今生

    否则,应使用 “ ~ ” 以表示该三角级数是函数 f(x) 的傅里叶级数,但 f(x) 展成的傅里叶级数不一定收敛于 f(x) 。

    下面对 an 的公式作简单推导:

    若以 2 pi 为周期的函数 f(x) 可以展成三角级数,令:

c++ 提取傅里叶描述子_傅里叶级数的前世今生

    对该式两边同乘 coskx 后再两边积分,在利用三角函数系的正交性约去 n≠k 的项(根据三角函数系的正交性,当 n ≠ k 时两个三角函数在区间 [ -pi , pi ] 上的积分为0,当 n = k 时积分为pi)得:

c++ 提取傅里叶描述子_傅里叶级数的前世今生

    bn 即两边同乘 sinkx 后在两边积分后可得。

七、几种傅里叶级数的计算技巧

1.奇偶函数的傅里叶级数

    当函数 f(x) 为奇函数时,有:

c++ 提取傅里叶描述子_傅里叶级数的前世今生

    我们将该级数称为:正弦级数。

    同样的,当函数 f(x) 为偶函数时,有:

c++ 提取傅里叶描述子_傅里叶级数的前世今生

    我们将该级数称为:余弦级数。

2.周期延拓

    对于一些函数,它们并不是周期函数,但若我们也希望将它们展成傅里叶级数,可以通过周期延拓的方法来解决。比如对于这么一个函数:

c++ 提取傅里叶描述子_傅里叶级数的前世今生

    我们可以把它看作是以下几个周期函数的一部分:

c++ 提取傅里叶描述子_傅里叶级数的前世今生
c++ 提取傅里叶描述子_傅里叶级数的前世今生
c++ 提取傅里叶描述子_傅里叶级数的前世今生

    通过这样的方法,我们可以先计算出周期函数的傅里叶级数,其在原函数 f(x) 的定义域上即为 f(x) 的傅里叶级数。事实上我们并不需要在做题过程中把这样的过程写出来,只需知道原理上是我们扩展了其定义域并构造出新的周期函数以方便我们的计算即可。

    另外可以发现,对于这样一个函数 f(x) ,我们可以把它拓展为奇函数或偶函数或其他周期函数。我们把拓展为奇函数称为奇延拓,把拓展为偶函数称为偶延拓。    

    对于同一个函数 f(x) ,奇偶延拓或延拓成非奇非偶函数算出的傅里叶级数收敛的值相等,只是在表示方式有所不同。所以我们可以根据需要去延拓已知函数 f(x) 以达到我们的计算目的。

3. f(x) 为多项式时的傅里叶级数

    当 f(x) 为形如: 

c++ 提取傅里叶描述子_傅里叶级数的前世今生

的由多项式够成的函数时,求傅里叶系数 an 和 bn 时需要用到分部积分法,求解过程比较困难。我们对该积分进行改进,可以通过观察直接写出积分结果,即傅里叶系数的表达式。

    在这之前,我们需要理解的是,三角函数 sin x 和 cos x 在求导过程中能够互相转化而且是有周期性的,即求四阶导后的结果是自身。

    接下来,我们取一个多项式够成的函数 f(x) 为例:

c++ 提取傅里叶描述子_傅里叶级数的前世今生

    以下是对该定积分的计算过程:

c++ 提取傅里叶描述子_傅里叶级数的前世今生

    下面,我们给出对一般形如:的由多项式够成的函数的计算通式:

c++ 提取傅里叶描述子_傅里叶级数的前世今生

    说明:其实这个方法的原理和本质还是分部积分法,只不过我们是对其使用的方法进行了一定的改进以方便计算。

八、参考文献

[1] 贾随军,胡俊美. 傅里叶级数理论成因分析_贾随军[J]. 咸阳师范学院学报, 2017, 32(6): 15-22.

[2] 王亚男. 傅里叶级数在实际中的应用_王亚男[J]. 科技创新与应用, 2014, 89(13): 271-272.

[3] 张霞,陈秀,王贵霞,等. 高等数学创新实训课堂的构建与实施以傅里叶级数为例张霞[J]. 合肥学院学报(自然科学版), 2014, 24(2): 58-61.

[4] 尚宇,武小燕. 傅里叶级数在心电信号模拟中的应用_尚宇[J]. 西安工业大学学报, 2016, 36(1): 21-25.

[5] 吴文祥,朱世强,靳兴来. 基于改进傅里叶级数的机器人动力学参数辨识[J]. 浙江大学学报(工学版), 2013, 47(2): 231-237.

[6] 褚金奎,孙建伟. 基于傅里叶级数理论的连杆机构轨迹综合方法[J]. 机械工程学报, 2010, 46(13): 31-41.

[7] 刘荣英. 偏微分方程在弦振动问题中的应用[D]. 华中师范大学, 2007.

[8] 邓新蒲,吴京. 傅里叶级数的起源、发展与启示[J]. 电气电子教学学报, 2012, 34(5): 1-4.

公众号:成柴之路

欢迎关注

长按扫码关注我们

随时欢迎来公众号留言

c++ 提取傅里叶描述子_傅里叶级数的前世今生

继续阅读