精华内容
下载资源
问答
  • 判断三个函数线性相关
    千次阅读
    2021-04-10 18:11:15

    本文内容是根据 莫烦Python 网站的视频整理的笔记,笔记中对代码的注释更加清晰明了, 同时根据所有笔记还整理了精简版的思维导图, 可在此专栏查看, 想观看视频可直接去他的网站, 源文件已经上传到主页中的资源一栏中,有需要的可以去看看,

    我主页中的思维导图中内容大多从我的笔记中整理而来,相应技巧可在笔记中查找原题, 有兴趣的可以去 我的主页 了解更多计算机学科的精品思维导图整理

    本文可以转载,但请注明来处,觉得整理的不错的小伙伴可以点赞关注支持一下哦!

    博客中思维导图的高清PDF版本,可关注公众号 一起学计算机 点击 资源获取 获得

    感觉作者写的不错的, 别忘了点赞关注加收藏哦(一键三连)!你的支持会带给我极大的动力, 写出更多优秀文章!

     文章到这里就结束了, 感谢你的认真观看, 为了感谢读者们, 我把我一直以来整理的各种计算机相关/考研相关精品思维导图/力扣算法讲解/面试资料/各种实用软件工具分享给大家(并且会持续更新哦!), 希望能够帮助到你们.

    关注公众号 一起学计算机 点击 资源获取 即可获得所有资源, 包含的资源如下图, 其中具体资源的相关讲解和各种软件的使用可以查看下面相应的文章.

    我的更多精彩文章链接, 欢迎查看

    各种电脑/软件/生活/音乐/动漫/电影技巧汇总(你肯定能够找到你需要的使用技巧)

    力扣算法刷题 根据思维导图整理笔记快速记忆算法重点内容

    经典动漫全集目录 精彩剧集

    海贼王 动漫 全集目录 分章节 精彩打斗剧集 思维导图整理

    火影忍者 动漫 全集目录 分章节 精彩打斗剧集 思维导图整理

    死神 动漫 全集目录 分章节 精彩打斗剧集 思维导图整理

    计算机专业知识 思维导图整理

    Python 北理工慕课课程 知识点 常用代码/方法/库/数据结构/常见错误/经典思想 思维导图整理

    C++ 知识点 清华大学郑莉版 东南大学软件工程初试906 思维导图整理

    计算机网络 王道考研 经典5层结构 中英对照 框架 思维导图整理

    算法分析与设计 北大慕课课程 知识点 思维导图整理

    数据结构 王道考研 知识点 经典题型 思维导图整理

    人工智能导论 王万良慕课课程 知识点 思维导图整理

    红黑树 一张导图解决红黑树全部插入和删除问题 包含详细操作原理 情况对比

    各种常见排序算法的时间/空间复杂度 是否稳定 算法选取的情况 改进 思维导图整理

    人工智能课件  算法分析课件  Python课件  数值分析课件  机器学习课件 图像处理课件

    考研相关科目 知识点 思维导图整理

    考研经验--东南大学软件学院软件工程

    东南大学 软件工程 906 数据结构 C++ 历年真题 思维导图整理

    东南大学 软件工程 复试3门科目历年真题 思维导图整理

    高等数学 做题技巧 易错点 知识点(张宇,汤家凤)思维导图整理

    考研 线性代数 惯用思维 做题技巧 易错点 (张宇,汤家凤)思维导图整理

    高等数学 中值定理 一张思维导图解决中值定理所有题型

    考研思修 知识点 做题技巧 同类比较 重要会议 1800易错题 思维导图整理

    考研近代史 知识点 做题技巧 同类比较 重要会议 1800易错题 思维导图整理

    考研马原 知识点 做题技巧 同类比较 重要会议 1800易错题 思维导图整理

    考研数学课程笔记  考研英语课程笔记  考研英语单词词根词缀记忆  考研政治课程笔记

    Python相关技术 知识点 思维导图整理

    Numpy常见用法全部OneNote笔记     全部笔记思维导图整理

    Pandas常见用法全部OneNote笔记     全部笔记思维导图整理

    Matplotlib常见用法全部OneNote笔记  全部笔记思维导图整理

    PyTorch常见用法全部OneNote笔记    全部笔记思维导图整理

    Scikit-Learn常见用法全部OneNote笔记  全部笔记思维导图整理

    Java相关技术/ssm框架全部笔记

    Spring  springmvc  Mybatis  jsp

    科技相关 小米手机

    小米 红米 历代手机型号大全 发布时间 发布价格

    常见手机品牌的各种系列划分及其特点

    历代CPU和GPU的性能情况和常见后缀的含义 思维导图整理

    更多相关内容
  • 有关三角函数的定积分的计算

    千次阅读 2021-04-15 20:34:06
    在介绍三角函数定积分计算之前,,, 首先介绍一些有关函数对称性的基础知识 结论一:对于复合函数f[u(x)],如果内层函数u(x)关于区间[a,b]对称,则f[u(x)]关于[a,b]对称结论一: 对于复合函数f[u(x)], 如果内层函数u(x)...

    在介绍三角函数定积分计算之前 , , , 首先介绍一些有关函数对称性的基础知识


    结 论 一 : 对 于 复 合 函 数 f [ u ( x ) ] , 如 果 内 层 函 数 u ( x ) 关 于 区 间 [ a , b ] 对 称 , 则 f [ u ( x ) ] 关 于 [ a , b ] 对 称 结论一: 对于复合函数f[u(x)], 如果内层函数u(x)关于区间[a,b]对称, 则f[u(x)]关于[a,b]对称 :f[u(x)],u(x)[a,b],f[u(x)][a,b]

    证明:

    因为 u ( x ) u(x) u(x)关于 [ a , b ] [a,b] [a,b]对称 , , , 所以 u ( x ) = u ( 2 ∗ a + b 2 − x ) = u ( a + b − x ) u(x) =u(2*\frac{a+b}{2}-x)=u(a + b-x) u(x)=u(22a+bx)=u(a+bx)

    F ( x ) = f [ u ( x ) ] , F(x) = f[u(x)], F(x)=f[u(x)], F ( a + b − x ) = f [ u ( a + b − x ) ] = f [ u ( x ) ] = F ( x ) F(a+b-x) = f[u(a+b-x)]=f[u(x)]=F(x) F(a+bx)=f[u(a+bx)]=f[u(x)]=F(x)

    F ( x ) F(x) F(x)关于区间 [ a , b ] [a,b] [a,b]对称

    结 论 二 : 如 果 u ( x ) 关 于 区 间 [ a , b ] 中 心 对 称 , 则 f [ u ( x ) ] 的 对 称 性 和 外 层 函 数 f ( x ) 的 奇 偶 性 保 持 一 致 结论二: 如果u(x)关于区间[a,b]中心对称, 则f[u(x)]的对称性和外层函数f(x)的奇偶性保持一致 :u(x)[a,b],f[u(x)]f(x)

    值得注意的是: 这里要求的是内层函数关于积分区间中心对称 , , , 而外层函数不是关于积分区间的对称性而是奇偶性

    证明

    u ( a + b − x ) = − u ( x ) u(a+b-x)=-u(x) u(a+bx)=u(x)

    F ( a + b − x ) = f [ u ( a + b − x ) ] = f [ − u ( x ) ] F(a+b-x) = f[u(a+b-x)]=f[-u(x)] F(a+bx)=f[u(a+bx)]=f[u(x)]

    f ( x ) f(x) f(x)为偶函数时 , , , F ( a + b − x ) = f [ − u ( x ) ] = f [ u ( x ) ] = F ( x ) , F(a+b-x)=f[-u(x)]=f[u(x)]=F(x), F(a+bx)=f[u(x)]=f[u(x)]=F(x), F ( x ) F(x) F(x)关于 [ a , b ] [a,b] [a,b]对称
    f ( x ) f(x) f(x)为奇函数时 , , , F ( a + b − x ) = f [ − u ( x ) ] = − f [ u ( x ) ] = − F ( x ) , F(a+b-x)=f[-u(x)]=-f[u(x)]=-F(x), F(a+bx)=f[u(x)]=f[u(x)]=F(x), F ( x ) F(x) F(x)关于 [ a , b ] [a,b] [a,b]中心对称

    结 论 三 : f ( x ) 关 于 区 间 [ a , b ] 对 称 , 则 ∫ a b f ( x ) d x = 2 ∫ a a + b 2 f ( x ) d x 结论三: f(x)关于区间[a,b]对称, 则\int_a^bf(x)dx=2\int_a^{\frac{a+b}{2}}f(x)dx :f(x)[a,b],abf(x)dx=2a2a+bf(x)dx

    结 论 四 : f ( x ) 关 于 区 间 [ a , b ] 中 心 对 称 , 则 ∫ a b f ( x ) d x = 0 结论四: f(x)关于区间[a,b]中心对称, 则\int_a^bf(x)dx=0 :f(x)[a,b],abf(x)dx=0

    结 论 五 : 在 三 角 函 数 的 积 分 计 算 和 证 明 中 , 常 令 x = π 2 ± u 或 x = π ± u 结论五: 在三角函数的积分计算和证明中, 常令x=\frac{\pi}{2}\pm u或x=\pi \pm u :,x=2π±ux=π±u

    结 论 六 : 有 根 号 且 根 号 内 有 平 方 的 , 一 般 使 用 三 角 换 元 结论六:有根号且根号内有平方的, 一般使用三角换元 :,使


    下面开始正式介绍有关定积分计算的方法

    1. 区间再现公式

    ∫ a b f ( x ) d x = ∫ a b f ( a + b − x ) d x = 1 2 ∫ a b [ f ( a + b − x ) + f ( x ) ] d x = ∫ a a + b 2 [ f ( a + b − x ) + f ( x ) ] d x \int_a^bf(x)dx = \int_a^bf(a+b-x)dx = \frac{1}{2} \int_a^b[f(a+b-x) + f(x)]dx = \int_a^{\frac{a+b}{2}}[f(a+b-x) + f(x)]dx abf(x)dx=abf(a+bx)dx=21ab[f(a+bx)+f(x)]dx=a2a+b[f(a+bx)+f(x)]dx

    证明:

    换元换变元 , , , u = a + b − x u=a+b-x u=a+bx

    ∫ a b f ( x ) d x = ∫ b a f ( a + b − u ) d ( − u ) = ∫ a b f ( a + b − u ) d u = 定 积 分 与 变 元 符 号 无 关 ∫ a b f ( a + b − x ) d x \int_a^bf(x)dx = \int_b^af(a+b-u)d(-u)=\int_a^bf(a+b-u)du \xlongequal{定积分与变元符号无关}\int_a^bf(a+b-x)dx abf(x)dx=baf(a+bu)d(u)=abf(a+bu)du abf(a+bx)dx

    F ( x ) = f ( a + b − x ) + f ( x ) , F(x) = f(a+b-x) + f(x), F(x)=f(a+bx)+f(x), 可以得到 F ( x ) F(x) F(x)关于 [ a , b ] [a,b] [a,b]对称 , , , 1 2 ∫ a b F ( x ) d x = ∫ a a + b 2 F ( x ) d x \frac{1}{2} \int_a^bF(x)dx = \int_a^{\frac{a+b}{2}}F(x)dx 21abF(x)dx=a2a+bF(x)dx

    根据区间再现的思想 , , , 其实也可以得到一些其他的区间再现公式.
    例如令 u = a b x , u=\frac{ab}{x}, u=xab, 则有 ∫ a b f ( x ) d x = ∫ b a f ( a b u ) d ( a b u ) , \int_a^bf(x)dx = \int_b^af(\frac{ab}{u})d(\frac{ab}{u}), abf(x)dx=baf(uab)d(uab), 之前在一本复习书中看到过 , , , 但实际做题没怎么遇到过这种情况

    计算 : ∫ 0 π 4 x c o s ( π 4 − x ) ∗ c o s x d x : \int_0^\frac{\pi}{4}\frac{x}{cos(\frac{\pi}{4}-x)*cosx}dx :04πcos(4πx)cosxxdx

    已知 f ( x ) f(x) f(x)连续 , , , 证明重要推论 : : :

    ∫ 0 π 2 f ( s i n x ) d x = ∫ 0 π 2 f ( c o s x ) d x \int_0^{\frac{\pi}{2}}f(sinx)dx= \int_0^{\frac{\pi}{2}}f(cosx)dx 02πf(sinx)dx=02πf(cosx)dx

    ∫ 0 π x f ( s i n x ) d x = π 2 ∫ 0 π f ( s i n x ) d x = 区 间 拆 分 + 结 论 五 π ∫ 0 π 2 f ( s i n x ) d x \int_0^{\pi}xf(sinx)dx=\frac{\pi}{2} \int_0^{\pi}f(sinx)dx\xlongequal{区间拆分+结论五}\pi\int_0^{\frac{\pi}{2}}f(sinx)dx 0πxf(sinx)dx=2π0πf(sinx)dx+ π02πf(sinx)dx

    ∫ 0 π 2 f ( s i n x , c o s x ) d x = ∫ 0 π 2 f ( c o s x , s i n x ) d x \int_0^{\frac{\pi}{2}}f(sinx,cosx)dx=\int_0^{\frac{\pi}{2}}f(cosx,sinx)dx 02πf(sinx,cosx)dx=02πf(cosx,sinx)dx这个公式说明在区间 [ 0 , π 2 ] [0,\frac{\pi}{2}] [0,2π] c o s x cosx cosx s i n x sinx sinx对换不改变定积分的值



    2. 点火公式

    点火公式大家都非常熟练了 , , , 这里直接介绍它的几个衍生版本 , , , 当做熟悉对称性的使用

    ∫ 0 π s i n n x d x : \int_0^{\pi}sin^nxdx: 0πsinnxdx:复合函数由内层 s i n x sinx sinx和外层 x n . x^n. xn. 且内层函数 s i n x sinx sinx在积分区间 [ 0 , π ] [0,\pi] [0,π]上对称 , , , 故可由结论一和结论三化简

    ∫ 0 π c o s n x d x : \int_0^{\pi}cos^nxdx: 0πcosnxdx:复合函数由内层 c o s x cosx cosx和外层 x n . x^n. xn. 且内层函数 c o s x cosx cosx在积分区间 [ 0 , π ] [0,\pi] [0,π]上中心对称 , , , 故需要判断 x n x^n xn的奇偶性

    cosx函数的对称性

    3.区间简化公式

    1. 将任意区间 [ a , b ] [a,b] [a,b]化简为 [ 0 , 1 ] [0,1] [0,1]

      其实原理就是找到一个单调函数 x = f ( t ) , x=f(t), x=f(t), 使得 f ( 0 ) = a , f ( 1 ) = b f(0)=a, f(1)=b f(0)=a,f(1)=b

      类比通过两点 ( a , 0 ) , ( b , 1 ) (a,0),(b,1) (a,0),(b,1)建立直线方程 , , , 得到公式 x − a b − a = t − 0 1 − 0 , \frac{x-a}{b-a} = \frac{t-0}{1-0}, baxa=10t0, x = a + 1 b − a t x=a+\frac{1}{b-a}t x=a+ba1t

      计 算 : ∫ a b ( x − a ) ( b − x ) d x = ( b − a ) 2 8 π 计算:\int_a^b \sqrt{(x-a)(b-x)}dx=\frac{(b-a)^2}{8}\pi :ab(xa)(bx) dx=8(ba)2π

    2. 将任意区间 [ a , b ] [a,b] [a,b]化简为 [ − π 2 , π 2 ] [-\frac{\pi}{2},\frac{\pi}{2}] [2π,2π]

      类似上面的方法得到 x − a b − a = t + π 2 π , \frac{x-a}{b-a} = \frac{t+\frac{\pi}{2}}{\pi}, baxa=πt+2π, 化简后得到 x = a + b 2 + b − a 2 2 π t x=\frac{a+b}{2}+\frac{b-a}{2}\frac{2}{\pi}t x=2a+b+2baπ2t

      我们知道有根号且根号内有平方的 , , ,一般使用三角换元 , , ,例如 ∫ a 2 ± x 2 d x \int\sqrt{a^2\pm x^2}dx a2±x2 dx ∫ 1 a 2 ± x 2 d x , \int\frac{1}{\sqrt{a^2\pm x^2}}dx, a2±x2 1dx, 因此使用 s i n t sint sint替换 t , t, t,但二者在 [ − π 2 , π 2 ] [-\frac{\pi}{2},\frac{\pi}{2}] [2π,2π]上表示的范围并不相等 , , , 因此需要乘上系数 k k k保证二者范围相同. 而在 [ − π 2 , π 2 ] [-\frac{\pi}{2},\frac{\pi}{2}] [2π,2π]上sint的范围恰好是 2 π t \frac{2}{\pi}t π2t的范围 , , , 因此公式变为 x = a + b 2 + b − a 2 s i n t x=\frac{a+b}{2}+\frac{b-a}{2}sint x=2a+b+2basint

      其实公式1的简化最后还是用到了三角换元 , , , 只是因为基本积分公式里面有 ∫ a 2 − x 2 d x , \int\sqrt{a^2- x^2}dx, a2x2 dx, 所以使用 t t t即可

      计 算 : ∫ a b 1 ( x − a ) ( b − x ) d x = π 计算: \int_a^b\frac{1}{ \sqrt{(x-a)(b-x)}}dx=\pi :ab(xa)(bx) 1dx=π

    4.其他有关对称性的积分

    F ( x ) = ( x − a ) ( x + a ) 为 偶 函 数 ; F(x) = (x-a)(x+a)为偶函数; F(x)=(xa)(x+a);
    根 据 偶 函 数 ∗ 偶 函 数 = 偶 函 数 , 偶 函 数 ∗ 奇 函 数 = 奇 函 数 , 可 以 推 广 如 下 形 式 : 根据偶函数*偶函数=偶函数, 偶函数*奇函数=奇函数, 可以推广如下形式: =,=,广:

    F ( x ) = ∏ i = 1 N ( x − i ) ( x + i ) 为 偶 函 数 , G ( x ) = ∏ i = 1 N ( x − i ) ( x + i ) x 为 奇 函 数 , 给 出 几 个 相 关 的 函 数 图 像 F(x) =\prod_{i=1}^N(x-i)(x+i)为偶函数, G(x) =\prod_{i=1}^N(x-i)(x+i)x为奇函数, 给出几个相关的函数图像 F(x)=i=1N(xi)(x+i),G(x)=i=1N(xi)(x+i)x,




    奇函数
    奇函数图像

    偶函数
    偶函数图像
    将其整体向左平移 , , , 函数可能会变成 F ( x ) = x ( x + 1 ) ( x + 2 ) ( x + 3 ) ( x + 4 ) , F(x) = x(x+1)(x+2)(x+3)(x+4), F(x)=x(x+1)(x+2)(x+3)(x+4), 此时为关于 x = − 2 x=-2 x=2中心对称的函数
    F(x)关于x=-2中心对称

    展开全文
  • 摘要:正弦模型(Sinusoidal Modeling)指的是用一系列振幅、...相比于非常成熟的线性预测模型(Linear Prediction),中文技术社区对于正弦模型的介绍并不足够。本文阐述这一模型的思想和实现思路,解释其中的技术细节。

    摘要:正弦模型(Sinusoidal Modeling)指的是用一系列振幅、频率和相位不断变化的正弦波来拟合音频。其有非常丰富的应用场合。相比于非常成熟的线性预测模型(Linear Prediction),中文技术社区对于正弦模型的介绍并不足够。本文参考了十余篇英文文献,阐述这一模型的思想和实现思路,解释其中的技术细节。


    本文由@EthanLifeGreat/@EthanUnbeaten原创发表于CSDN

    1.前言

    模型的目的在于用相对熟悉的属性来描绘未知的事物。而将音频看作是不同的正弦信号的叠加是一个看起来比较自然的想法(其中存在的不合理之处将会在后面提及)。

    如果能够实现,那么建模者对于音频的整体属性就能形成直观的理解,同时有利于对音频进行想要的调整。

    在介绍模型之前,请允许笔者先对相关概念进行简单介绍。

    1.1.声码器(The Digital Phase Vocoder)

    用正弦波来拟合声波的办法最早在70年代由Moor提出1。后来经过完善,发展出了声码器2

    声码器将声音信号与多个滤波器相卷积(其本质是离散傅里叶变换)得到多个频率的子带(subband / DFT bin),以及子带上的振幅和相位。

    Portnoff, M.R. 1976的图1

    后来发明的MPEG音频编码方式也是基于这个思想——对不同的子带分配不同比特(信息计量单位)。清晰记录音频中人耳敏感的部分;模糊记录不敏感的部分。

    尽管声码器的实践和正弦模型的实践方式接近,其本质的思维方式是不同的。DPV注重于固定频率通道(channel)的内容,没法沟通相邻的频率通道,故对刻画跨通道变化的频率并不完美。

    对此,Smith等人3和McAulay等人4独立地提出峰值跟踪(Peak Tracking)的解决方案,正式地将正弦波的概念引进模型。这将是本文讨论的重点。


    2. 分析(Analysis)

    2.1. 短时傅里叶变换(STFT)

    如前面所言,需要用正弦波来表示音频信号,必须找到正弦波们的频率、对应的振幅和对应的相位。对此,我们需要的频率分析工具是傅里叶变换(Fourier Transform, FT),具体而言,是离散傅里叶变换(DFT)。后者是前者在计算机上的版本。

    然而仅仅进行一次DFT是不足够的,我们首先需要对音频在时间上进行分帧(frame),对每一帧独立地进行DFT,这被称为短时傅里叶变换(STFT)/离散短时傅里叶变换(DSTFT). 这么做的原因在于:我们希望在每一个帧里,具有平稳性——例如(在语音分析里)最多存在一个音素(phone). 夸张地讲,如果含有两个字的音频片段被同时送入DFT进行分析,我们便难以分析字的内容,也难以辨别两个字的先后顺序。

    由于稳定性的影响,我们需要让每一帧尽可能短。然而对于DFT而言,过短的信号意味着更少的信息,将会使频谱的分辨率下降,使得我们难以区分频率相近的成分。其中,FT的时间分辨率和频率分辨率满足反比例关系:分析帧时间越短(时间分辨率高),则频率分辨度越低;反之亦然。这被称为Gabor极限(Gabor–Heisenberg Limit)5.

    因此,对帧率(每秒分割的帧数)的选择也是STFT的一门艺术。新竹清华大学的劉奕汶教授6对此有一句总结:“(窗长)尽量长,不能太长。”

    其中的窗长等于帧长,由于截取分析帧后通常要加分析窗,而分析窗的长度与帧长相等。对于分析窗的介绍,可以参考Harris的文章7. 对此我之前的 文章 也有简要论述。

    更详尽地了解STFT,或可参见Matlab官方封装的函数 stft.m . 受篇幅限制,本文不再赘述。

    2.1.1.零延拓(Zero-padding)

    进行离散傅里叶变换前,为了提高变换后的频率分辨率——即更接近的DTFT的连续的结果——我们需要对加窗后的信号进行零延拓,即在信号后面补零。

    由于FFT的运算性质,一般将补零后的长度为2的某次方(视情况而定,如1024,4096等)。

    另外,为了使得相位一致,应使加窗信号居于DFT输入的正中间(x取0处),其余部分为补足的零。如下图(图源8):
    原信号 加窗信号 延拓信号 信号频谱
    从上至下以次为:(a)原信号 (b)加窗信号 (c)延拓信号 (d)信号频谱。

    2.2.峰值检测与估计(Peak Detection and Estimation)

    对帧内容进行N点DFT/FFT后,可以得到一个自变量为频率的离散的复值函数。函数值的绝对值为频率处对应振幅,虚部与实部之比的反正切值为相角。

    峰值指的是对于振幅谱上的极大值点。

    一般认为,只有较大的峰值才是频谱中有价值的内容。而那些较最大峰值低80dB以上的峰值,将难以被听到且其分辨率很低9。对存在这些峰值的音频分析结果进行调整(如变调)可能带来音频质量下降。

    同时,某些峰值可能并非真正存在于原本的音频内容中,而是源于离散傅里叶变换过程。例如一个被正弦窗截断的正弦波,经过DFT后会出现许多的峰值:
    正弦波及其对应频谱

    因此,峰值检测的流程并不仅仅包括找到极大值点,还在于对找到的极大值点进行筛选,即:

    • 删掉不重要的极大值点
    • 删掉本身不存在于音频中的峰值等

    一个峰值检测的结果例子如下图,叉为峰值(图源9):

    峰值检测
    然而如第一段所言,尽管此函数在图上看起来连续,但其仍是离散函数,要高效地找到隐藏的极大值点(即峰值估计),可以使用插值法(interpolation).

    2.2.1. 二次曲线/抛物线插值(Quadratic/Parabolic Interpolation)

    在对数谱上取振幅最值点附近三点,进行二次曲线/抛物线插值(Quadratic/Parabolic Interpolation),得到估计出的最值点10,再据此对相位进行线性拟合。二次插值示意图如下(图源新竹清华大学课件6):

    二次插值示意图
    注意插值进行的纵坐标是分贝dB(对数谱),经验证明,在对数谱上进行二次插值的精确度比在线性谱上的精确率高一倍8

    另外,除了使用DFT分析出频率成分,还有学者使用最优化的思想,迭代计算出音频中主要成分的振幅、频率和相位,这被称为“使用合成来分析”11(Analysis-by-synthesis, ABS)12

    2.3. 音高检测(Pitch Detection)

    找到了峰值之后,我们可以选择进行音高检测。这可以对之后的分析带来某些方便。

    在此之前我们需要先介绍一些音乐方面的概念。

    音高(Pitch)的是音乐领域里比较模糊的一个概念,笔者比较认同的一个解释是——听感上最相近的纯音的频率(a percept that can be compared against that of a pure tone)6

    音高通常被直观地定义为基频(Fundamental Frequency),基频可以被定义为泛音/谐波(partial/harmonic)序列里的公因数。例如,钢琴键C4的基频是261.6Hz,但其频谱成分却包含许多(近似于13)261.6的倍数的成分,如下(图源14):
    钢琴C4键的STFT频谱
    基于以上知识,我们不难想象检测音高(基频)的算法设计过程。但是,音高检测又有什么好处呢?

    • 判断噪音。如果某个峰值离基频的任何倍数都较远,那么这个峰值很可能不属于这个音。
    • 改善分析窗的长度。知道了某个帧中的音的音高,便可以设置合适的分析窗长度,以获得更好的时间-频率效益取舍9。这种分析法也被称为“音高-同步分析”11(Pitch-synchronous Analysis).
    • 便于调整音高。如果对音频音高进行调整时直接将所有的频率成分乘以某一倍数,则会放大谐波与基频倍数之间的差距13,使得改变后音频变得更加不和谐12

    2.4. 峰值连接(Peak Continuation/Peak Matching)

    峰值连接的本质是把相邻帧内的峰值相连,更确切地说是将相邻帧内对应频率的峰值相连,因此也被称为峰值匹配(matching). 而对应频率一般意味着彼此在各自帧内的频率最接近。

    这么做的理论基础在于,我们确信一个稳定的声音由多个频率近似稳定,而振幅不断变化的成分构成。那么,为了得到对声音的更连续的描述,我们可以基于这个假设,对相邻帧内的峰值内插,也相当于去掉了“帧”这个离散的存在。以下是连接的示意图(图源15):
    峰值连接示意图

    其操作大致流程是,为帧内的每一个峰值在下一个帧内找一个最相近的峰值。在满足相连接的峰值频率差小于一个给定值的前提下,对产生的冲突(多连一、一连多)按照一定规则进行解决。如果一个峰值在下一个帧找不到对应的连接,则被视为是一个轨道(track/trajectory)的死亡(death);而如果一个峰值没有被前一个帧中的峰值对应,则被视为是一个轨道的诞生(birth)。

    关于峰值连接中类似的概念表述有许多,其最终功能近似,不一一列举。

    2.5. “正弦+噪声+暂态”模型(Sinusoidal+Noise+Transient)

    本节简要解决一下音频中正弦波不能很好拟合的部分。

    前面提到,正弦波只适合于拟合一个稳定的声音(如乐音)。而对于噪声(如雨声)或者暂态声音(如打击音/Attack)都没办法很好地拟合。

    例如,以下是一段人声的峰值连接结果(图源15):
    一段人声正弦模型的拟合结果
    其中的清音部分(Unvoiced Segment)峰值多、轨道短,这样模型拟合效率低、效果差。而相比下浊音部分(Voiced Segment)显得合适很多。

    2.5.1. “正弦+噪声”模型(Sinusoidal+Noise)

    了解过语音识别的同学可能知道,清音其实就近似于噪音。于是,我们有了“正弦+噪声”模型,或叫“决定+随机”模型(Deterministic+Stochastic)16

    它首先拟合出正弦波成分,又叫确定性(Determinisitic)成分,剩下的部分称为剩余(Residual)。

    对于正弦波拟合不好的剩余,该模型视其为在不同频率部分能量不同的噪声17。我们只记录其大致位置的振幅,也就是描绘出它频谱的包络,如下图b子图中的折线(图源9)。
    原频谱和去除正弦波后的频谱
    这种做法会模糊频率的精度,同时丢失相位信息,但好处是可以用较少的数据量表示正弦波无法拟合的噪声。

    2.5.2. 暂态模型(Transient Model)

    暂态主要指敲击瞬间发出的声音,即ADSR包络中的(时间很短的)Attack。

    这一部分无法很好地用正弦波或噪声的办法拟合18。有一种解决办法是先把暂态时间段剥离出来,不对之进行分析,等合成的时候直接给拼回来19

    Verma等人18则认为这种做法不符合正弦模型的“变通精神”(the flexible spirit),同时这种在时域上剥离暂态也会带走某些噪声。因此,他们提出了对暂态建模的办法。

    Verma等人的做法是,对暂态部分先进行离散余弦变换(Discrete Cosine Transform, DCT)20,定义如下:
    C [ k ] = β [ k ] ⋅ x [ n ] ⋅ c o s [ ( 2 n + 1 ) k π 2 N ] C[k]=\beta[k] \cdot x[n]\cdot cos[\frac{(2n+1)k\pi}{2N}] C[k]=β[k]x[n]cos[2N(2n+1)kπ]
    其中 k = 1 k=1 k=1 β [ k ] = 1 N \beta[k]=\sqrt{\frac{1}{N}} β[k]=N1 ,否则 β [ k ] = 2 N \beta[k]=\sqrt{\frac{2}{N}} β[k]=N2 .

    简单而言,DCT可以将冲激信号转换为余弦函数。进而便于进行正弦拟合。如,一个指数速度衰减的信号和其经DCT变换后形式如:
    一个指数速度衰减的信号和其经DCT变换后形式

    暂态模型分析/合成流程如下:
    暂态模型分析、合成流程图
    与“正弦+噪声”模型相结合时,可以按暂态、正弦、噪声的顺序也可以按正弦、暂态、噪声的顺序进行分析。

    其实写完这一节才发现有许多的暂态模型,可以参考斯坦福大学CCRMA21网页了解更多


    3. 合成(Synthesis)

    合成的意思是用分析得到的参数化表示,合成出近似于原来的任何想要的音频。

    为了印证“声音能用三角函数来表示”,我们当然需要用正余弦波来合成信号。所使用的正余弦波参数(频率、振幅和相位)就是我们在分析中得到的数据。

    在此,我们主要探讨正弦部分的合成(即不讨论2.5.中的“噪声”和“暂态”部分)。介绍三种合成办法,它们分别是:“仅振幅合成法”11(Magnitude-Only Synthesis)、相位内插合成法(Phase Interpolation Synthesis)和帧重叠相加法(Overlap-Add Synthesis)。

    3.1. “仅振幅合成法”(Magnitude-Only Synthesis)

    顾名思义,这个办法仅使用分析得到的频率和对应的振幅(不用相位)进行合成。

    这个办法(相较于相位内插)可以大大简化合成的流程,理解起来也比较直观——

    比如做实验的时候,我们想生成一个频率为f的正弦波,我们一般会忽略相位:

    t = linspace(0,1,44100);		% 时间线(s)
    A = 1;							% 振幅
    f = 1000;						% 频率(Hz)
    signal = A*sin(2*pi*f.*t);		% 频率1000Hz,相位为0的正弦波
    

    但其实相位(0)隐藏在了里面。

    在许多场合下,人耳对于相位是不敏感的,例如你基本没法用耳朵区分这两个信号:

    signal1 = A*sin(2*pi*f.*t)
    signal2 = A*cos(2*pi*f.*t)
    

    这就赋予了只用振幅合成法的现实意义。

    “仅振幅合成”的具体的操作办法是:对于2.4.中连接好的每一条轨迹,设其初始相位为0(或者其它某值,效果相同),逐采样点迭代相位并内插振幅后,取各点正弦值,最后按时间顺序将所有轨迹的正弦值对应相加。 其表达式为:

    ∑ 所 有 轨 迹 j A j [ n ] ⋅ c o s ( ϕ j , n ) \sum_{所有轨迹j}^{}A_j[n]\cdot cos(\phi_{j,n}) jAj[n]cos(ϕj,n)
    其中,(省略 j j j
    ϕ n = ϕ n − 1 + 2 π f s ⋅ f [ n ] \phi_{n}=\phi_{n-1}+\frac{2\pi}{f_s}\cdot f[n] ϕn=ϕn1+fs2πf[n]
    其中,n表示时域顺序,即n=0表示该轨迹的起点, ϕ 0 \phi_0 ϕ0=0, f s f_s fs表示采样频率(下同).

    A[n]与f[n]是由分析结果(A[m]与f[m])线性内插而来的振幅和频率序列,满足:
    A [ n ] = A [ m ] + A [ m + 1 ] − A [ m ] Δ t ⋅ f s ⋅ n A[n]=A[m]+\frac{A[m+1]-A[m]}{\Delta t\cdot f_s}\cdot n A[n]=A[m]+ΔtfsA[m+1]A[m]n
    f [ n ] = f [ m ] + f [ m + 1 ] − f [ m ] Δ t ⋅ f s ⋅ n f[n]=f[m]+\frac{f[m+1]-f[m]}{\Delta t\cdot f_s}\cdot n f[n]=f[m]+Δtfsf[m+1]f[m]n
    这两条等式非常直观,就是直线的两点式,其中 Δ t \Delta t Δt为相邻分析帧的中心位置时间差。

    关于不考虑相位的弊端和适用场合的讨论将放在下一节进行。

    3.2. 相位内插合成法(Phase Interpolation Synthesis)

    这节我们讨论考虑相位的合成办法。

    考虑相位的合成法需要将相位也进行内插,即确定帧与帧间各点的相位信息。

    3.2.1. 三次多项式内插法(Cubic Polynomial Interpolation)4

    不同于振幅内插和3.1.中的频率内插的线性办法,相位内插所使用的内插办法是三次方(cubic)的。

    为什么是三次?首先我们讲讲为什么不能是线性(一次)或二次的。这是因为:

    • 频率是相位的导数,要保证相位曲线在两端的导数值是对应的频率。
    • 分析时得到的相位只是对 2 π 2\pi 2π 取模的结果,在 [ − π , π ] [-\pi,\pi] [π,π] 间。

    这时我们需要对相位进行加 M ⋅ 2 π M\cdot 2\pi M2π 展开(unwrap),M 为某待定整数。再用其它先验知识来求出最合适的M。

    例如4文中的图6,展示了五种可能 M 带来的内插结果:
    5种可能的三次内插结果

    如何从中选择最合适的M呢?作者McAulay等人提出的办法是,找一个“最平滑的”(maximally smooth)曲线,也就是曲线的二次导数的平方的线积分最小。即求整数M,使得

    f ( M ) = ∫ 0 T [ θ ′ ′ ( t ; M ) ] 2 d t f(M)=\int_0^T{[\theta''(t;M)]^2dt} f(M)=0T[θ(t;M)]2dt
    最小。

    得到相位后取余弦,点乘线性内插后的振幅即可,再把所有轨迹相加即可:4
    相位内插合成法流程图

    3.2.2 相位的意义

    尽管我们听不出正弦波和余弦波的差别,在许多的情况下,人对于相位是敏感的,这些情况是:

    • 对象分析过程不当9
    • 非常低沉的乐器声音(低于30Hz9,低于100Hz4)
    • 某些人声(含有较高的泛音)9
    • 含有噪音的语音片段(会导致合成的噪音部分有一种不真实和令人厌烦的音效)4

    一个大提琴波形、带相位和不带相位合成的结果对比图如下:16
    原波形、带相位和不带相位合成的结果对比图

    可以看出带相位的合成法基本保持了原来的波形(而且几乎完美复刻),反观不带相位的就不知道是哪跟哪了(虽然听起来可能差不多)。

    3.3. 帧重叠相加法(Overlap-Add/OLA Synthesis)

    这种办法事实上并没有进行峰值连接,它只是单纯地把每一帧的内容合成出来,再按一定规则拼加在一起。其中叠加的意义在于使帧和帧之间过度自然。

    每个帧内的每个峰值对应一段正弦波,其振幅、频率恒定,相位由中心相位和频率共同决定,也是用频率逐点迭代。

    方便起见,这里直接写代码了,毕竟够短。

    leftHalf = floor(N/2);	  % N是帧内的采样点数
    startPha = pha - (leftHalf+1)*freq;	% pha是分析得到的相位,freq是分析得到的频率,均视作中心相位、频率。
    phas = startPha + freq.*(1:N);
    y = sum(amp.*cos(phas), 1);       % 所有正弦波相加
    

    合成好了帧内的内容便可以进行叠加了。叠加前要进行加窗,这里要保证窗叠加的结果是常数,这被称为常数叠加(Constant Overlap-Add, COLA).

    关于COLA,中文社区里已经有很多介绍了,不再赘述。

    4. 结语

    本文主要介绍了Sinusoidal Modeling的分析、合成过程。讨论了实践中的一些细节。

    关于本文的编程实现,可以参考笔者的Gitee项目基于Matlab的正弦模型项目。到底能不能用三角函数表示声音?运行代码听听区别就知道啦。

    下一篇文章我们将讨论正弦模型的一些实际应用场合。

    欢迎读者就文章及相关内容留言探讨。


    注脚


    1. Moorer, J. A. 1973. “The Hetrodyne Filter as a Tool for Analysis of Transient Waveforms.” MemoAIM-208, Stanford Artificial Intelligence Laboratory, Computer Science Dept., Stanford University. ↩︎

    2. Portnoff, M.R. 1976. “Implementation of the Digital Phase Vocoder Using the Fast Fourier
      Transform.” IEEE Transactions on Acoustics, Speech and Signal Processing 24(3):243–248. ↩︎

    3. Smith, J.O. and X. Serra. 1987. “PARSHL: An Analysis/Synthesis Program for Non-HarmonicSounds based on a Sinusoidal Representation.” Proceedings of the 1987 International Computer Music Conference. San Francisco: Computer Music Association. ↩︎

    4. McAulay, R.J. and T.F. Quatieri. 1986. “Speech Analysis/Synthesis based on a Sinusoidal Representation.” IEEE Transactions on Acoustics, Speech and Signal Processing 34(4):744–754. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

    5. GABOR, D. Acoustical Quanta and the Theory of Hearing. Nature 159, 591–594 (1947). https://doi.org/10.1038/159591a0 ↩︎

    6. http://ocw.nthu.edu.tw/ocw/index.php?page=course&cid=130& ↩︎ ↩︎ ↩︎

    7. F.J. Harris, On the use of windows for harmonic analysis with the discrete Fourier transform, Proc. IEEE 66 (1) (1978) 51–83. ↩︎

    8. Smith, Julius & Serra, Xavier. (2005). PARSHL: An Analysis/Synthesis Program for Non-Harmonic Sounds Based on a Sinusoidal Representation. Proceedings of the International Computer Music Conference. ↩︎ ↩︎

    9. Serra, X. . Musical Sound Modeling with Sinusoids plus Noise. Musical Signal Processing. 1997. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

    10. M. Abe and J. Smith, “Design criteria for simple sinusoidal parameter estimation based on quadratic interpolation of FFT magnitude peaks”, (AES 2004) ↩︎

    11. 未找到对应中文译名,笔者译。 ↩︎ ↩︎ ↩︎

    12. George, E. Bryan, Smith, Mark J. T. An Analysis-by-Synthesis Approach to Sinusoidal Modeling Applied to the Analysis and Synthesis of Musical Tones[J]. journal of the audio engineering society, 1991. ↩︎ ↩︎

    13. 声音的泛音/谐波频率通常并非基频的完美倍数。例如本文图6中,钢琴C4音的频谱的前五个谐波的频率比是1.0000 : 2.0000 : 3.0033 : 4.0075 : 5.016314。导致这种非整数的原因是琴弦僵硬的弯折22↩︎ ↩︎

    14. Szeto, Wai Man , and K. H. Wong . “Sinusoidal modeling for piano tones.” Signal Processing, Communication and Computing (ICSPCC), 2013 IEEE International Conference on IEEE, 2013. ↩︎ ↩︎

    15. McAulay, R. J., & Quatieri, T. F. (1988). Speech Processing Based on a Sinusoidal Model. The Lincoln Laboratory Journal, 1(2), 153–168. ↩︎ ↩︎

    16. Serra, X. 1989. “A System for Sound Analysis/Transformation/Synthesis Based on a Deterministic Plus Stochastic Decomposition.” PhD thesis, Stanford University. ↩︎ ↩︎

    17. 注:如果一个噪声在所有频率成分上能量都相等,则是白噪声(white noise);否则为有色噪声。相关内容参见百科词条“有色噪声”。 ↩︎

    18. Verma, T. S. , & Meng, T. H. Y. . (2000). Extending spectral modeling synthesis with transient modeling synthesis. Computer Music Journal, 24(2), 47-59. ↩︎ ↩︎

    19. Scott Nathan. Levine, Smith, & Julius Orion. (1998). Audio representations for data compression and compressed domain processing /. ↩︎

    20. Rao, Kamisetty & Yip, P… (1990). Discrete cosine transform. Algorithms, advantages, applications. ↩︎

    21. https://ccrma.stanford.edu/ ↩︎

    22. A. Askenfelt, Ed., Five Lectures on the Accoutics of the Piano. Royal Swedish Academy of Music, 1990, available online at http://www.speech.kth.se/music/5_lectures/. ↩︎

    展开全文
  • 考的内容也有三角函数,我们也想写一写 "用途多多的三角函数", 基本操作之地球周长 基本操作之地月距离 基本操作之恒星距离 基本操作之太阳地球间的距离 计算机新闻分类 IT起源学说:e = 2.71828... 最美的...

    哈,明天就有一场考试。

    考的内容也有三角函数,我们也想写一写 "用途多多的三角函数",

    • 基本操作之地球周长
    • 基本操作之地月距离
    • 基本操作之恒星距离
    • 基本操作之太阳地球间的距离
    • 计算机新闻分类
    • IT起源学说:e = 2.71828... 
    • 最美的数学公式
    • 傅里叶变换

                                                                                         《目录》


    希望,我们能写的有趣和准确。 

     螺旋楼梯

     

    咳咳,为什么是我们 ?是自我的精神分裂:

              自我1: 三角函数多用于工程上。

                   自我2: 的确,毕竟三角函数公式那么多,不过都是类似加减计算一样简单, 但记的我好郁闷。

              自我1: 哈!?? 你是记的 ??我不记公式的,多写几遍就理解了。

                   自我2: 切,你那是被公式给唬住了。

                ......

              自我1: 反正,三角函数这个东西,即简单又易懂。可是被你学杂了。 

                   自我2: 一边去,我看你也就是知道逻辑,并没有理解内在!

              自我1: 好,好,好,这样吧!!

                         物理学家费曼说:"如果你不能用简单的语言给一个外行解释一个东西,你就是没有真正理解这个东西"。

                         不需要我说了吧,赶紧去找幼儿园的小朋友,看谁可以让ta听懂三角函数。

                    自我2: who 怕 who,就是当着全宇宙的小朋友面,我也能讲懂 ! !

              自我3: 不用找了,你们俩个不就是吗 ?

                自我1自我2 :0.0 ...... 0.0


               听说,如果我们做的是不该做的事,内心就会有一些压力,ta就会发出禁止的声音。

               从单位圆开始,单位圆是半径为 1 的圆,现在试着画一个单位圆。

               用 Python 画出来。资料: turtle 、turtle官方文档

    • import turtle
      # 导入画画模块
      
      turtle.showturtle()
      # 显示窗口
      
      turtle.write(" 0 ", font = ("华为琥珀", 20 , "normal"))
      turtle.goto(200,0) # 向 x 轴正方向前进 100,y 不变
      turtle.write("x", font = ("华为琥珀", 20 , "normal")) # 打印文字
      turtle.goto(-200,0) # 向 x 轴负方向前进 100 , y不变
      
      turtle.penup()  # 提笔
      turtle.goto(0,200) # 画 y 轴的坐标,因为提笔了所以没有画线
      turtle.write("y", font = ("华为琥珀", 20 , "normal"))
      
      turtle.pendown() # 落笔
      
      turtle.goto(0,-200)
      turtle.goto(0,-100) # 到坐标轴中心画圆
      turtle.circle(100)
      turtle.write(" r = 1", font = ("华为琥珀", 20 , "normal"))
      turtle.done()
      # 保留窗口

                

               假设 有一点,在圆上运动,记为P。

               我们要研究P点运动时在圆的不同位置和 y 轴有什么关系,那么以什么标准研究好呢 ?

               P 一直变化,ta的坐标也会一直变化,那就研究 ta产生的角度吧。

               连接OP,与OX构成 \measuredangle POX ,这是一个随P运动而改变的角度。

    研究坐标与角度的关系:点 P 轴单位圆做圆周运动时 ,

                  \measuredangle POX与 y 轴的关系是怎样 ?

                 \measuredangle POX与 x 轴的关系是怎样 ?

    y = sin (x)

    如果把   \measuredangle POX与 y 轴的关系 对应为函数。函数自变量 x 是角度,函数因变量 y 是 P 的 y坐标。

    这个对应法则记为 sin,写法如下,

    • y = sin (x),x 是 角度。

    当 x = 0º,点 P 就在 x 正半轴上,  sin (0º) = 0

    当 x = 90º, 点 P 也正好在  y  正半轴上, sin(90º) = 1

    现在 P 点转了一圈,那么 ta 运动范围可达到的极限是 -1 到 1,即函数 y = sin(x) ,y 的值域是 [-1, 1]。

    对呀,在坐标轴上圆的半径是 1 ,P 在单位圆活动距离中 y 最大分别是,当 P 在 90º 和 270º。

    不过,我们研究的是 坐标与角度的关系,距离是正数,在表示负下标时如 sin ( 270º ) ,要写成 负数,sin(270º) = -1。

    所以,试试 sin(180º) 和 sin(360º) ...

    "都是0、都是0",我猜小朋友能答对的。(如果这句话伤害到了您,我只能表示惬意~)

    那 sin(45º) 是 sin(90º) 的一半是吗 ? 

    看看函数图像就明显了,sin(45º) 图像,

    对比 y 轴,连接 y-P 的虚线显然要大于 1 的一半, 所以 sin(45º) 并不是 sin(90º) 的一半。

    这是由俩个等边直角三角形组成的正方形,我们可以用 勾股定理 or 正方形对角线 计算出 PH 即sin(45º)。

    勾股定理:研究的是直角三角形三边的关系 a^{2} + b^{2} = c^{2},应该不陌生。

    PH^{2} + OH^{2} = OP^{2}

    PH^{2} + OH^{2} = 1^{2}

    \because PH = OH = y

    \therefore y^{2} + y^{2} = 1

        2*y^{2} = 1

         y^{2} = \frac{1}{2}

         y =\frac{1}{\sqrt{2}}

         y = \frac{\sqrt{2}}{2}

    那么,您能画图分析并计算出 sin(60º) 吗,可做辅助线。

    这些都是三角函数的特殊特殊角,

     看 sin 时,我发现 60 和 120 都是 \frac{\sqrt{3}}{2} , 这是为什么 ?

     哈哈,回想 P 点的图像,就会发现在 这俩个角度,P的 y 坐标并没有变化,只是 x 坐标变了,

    那么,同理推出更多相似的角,

     60º 和 120º 和 240º 和 300º 是相似的,超过 180º 的是负数。

    如果把 sin(0º) 到 sin(360º) 的点连起来,在坐标轴上长啥样 ?

    sin分数形式小数形式
    sin(0º) 00.0
    sin(30º)  \frac{1}{2}0.500···
    sin(45º) \frac{\sqrt{2}}{2}0.707···
    sin(60º)\frac{\sqrt{3}}{2}0.866···
    sin(90º)11.0
    其ta象限都是对称角\\
    别名:正弦曲线

     

    看坐标轴的横坐标竟然不是 x ? 

    三角函数的正弦曲线研究的是 y  和 P 运动的角度  的关系,一般把 P 运动的角度记为希腊字母 \theta(读西塔,也是渐进记号的读法)。

    y = cos(x)

    那么, \measuredangle POX与 x 轴的关系是怎样 ?

    相信您看了sin已经知道个大概,就不在复述,因为还有一个更重要的知识呢 --- 弧度制


    弧度制

        用( º )的单位表示角,是角度制,1º 等于 周角的  \frac{1}{360} 。

        弧度制是由大数学家欧拉提出,长度等于半径长的弧所对的圆心角记为 1 弧度(rad),其核心:圆弧的长度是半径的多少倍

        我们知道了一些常用的角度与弧度的对应值,

    角度弧度
    \frac{\pi}{180}
    90º\frac{\pi}{2}
    180º\pi
    360º2\pi

     举个例子,360º

    360º时,P 刚好落在 x 轴上。

    半径为 r 的圆的圆周 = 2 * 圆周率 * 半径,2\pi r...

    弧度制核心:圆弧的长度是半径的多少倍

    圆弧长度 = 圆的圆周 ,多少倍显然是除法关系:   \frac{2\pi r}{r} = 2\pi

    90º 是 360º 的 四分之一, 60º 是 360º 的 六分之一 ,试着计算 90º 、60º 是多少弧度(rad) ! 

    再把 sin()、cos() 函数与弧度制联系在一起,sin(\frac{\pi}{6}) = ~?

    \pi = 180º ,\frac{180}{6} = 30,sin(30º) = ?

    做另一个三角形,使勾股定理成立,这一步我省略了尝试自己推出来,最后得出 :\frac{1}{2} 。

    哦,对了。角 \theta 的弧度公式是 \theta = \frac{l}{r}, l : 角 \theta 对应的弧长, r :圆半径。


    地球周长

            引言: 亚里士多德在其著作中记述了很多地球是圆形的证据,于是就有许多学者想要知道地球的周长是多少 !

            回忆圆的周长公式 : 2\pi r, 只有地球半径是不知道的。

            \vartheta 知道地球半径即可~

            不要百度?半径因为今天主角是数学...

            数学史上,俩次数学高峰期第一次就在古希腊,让我们一起回到那个数学史上了不起的年代吧。

            地球周长最早是被古希腊学者兼亚历山大图书馆第三任馆长所记录 --- ta叫埃拉托斯特尼 简称 埃尼吧。

            埃尼 从书中便知道每年的6月21日,阳光在正午时会直射 (光线和地面是直角) 到埃及的阿斯旺水井中。

                    p.s. 因为阿斯旺处于北回归线上,阳光会在夏至时直射北回归线。

            于是,埃尼测量了6月21日当天的亚历山大,阳光在正午时射入水井中的角度为 7º 12''。

            接着,从旅行的商队那里得知了亚历山大与阿斯旺之间的近似距离,这是角 \theta 对应的弧长 。

            按照上图分析,照射给亚历山大与阿斯旺的太阳光是平行的。

            所以,亚历山大和阿斯旺之间的夹角也等于 7º 12''。   

            那么,亚历山大和阿斯旺之间距离(弧长) L 也就是:  l = 2\pi r * \frac{\theta}{360}º

           弧长化简:l = \frac{\pi r*\theta}{180}

           而亚历山大已经从商队知道了弧长 L ,因此我们转换公式为求半径 : r = \frac{180*l}{\pi*\theta}

           最后把弧长L代入便估算了地球的周长是 39, 690公理,与今天的 40,076公理只有 2% 的误差。

     

           总结:计算地球周长,结合一个圆以圆上的一个弧度和角度,求出ta的半径再代入 圆的周长公式 : 2\pi r 即可。


    地月距离

              古希腊学者再计算出地球周长之后。又在这个基础上琢磨地球和月亮的距离了,我们一起回到那个搞事情 NX 的年代吧。

    前置技能:圆形的阴影。

               圆形的阴影:一个圆形的物体经过光的照射后会有一个圆形的阴影。随着物体的不断升高,阴影会渐渐变成一个 ▪️ 黑点。这个黑点到圆形物体的距离刚好是物体直径的 108 倍,地球?也是如此,可以用手电筒?代替太阳模拟。

              古希腊学者,以这个规律来研究地月距离。说到月球,不得不说一个特殊现象 --- 天狗食月。

              天狗食月,是因为地球夹在太阳和月亮之间,挡住了供给月球的太阳光导致看月亮好像是被咬了。

    小的是月球,大的是地球,太阳光从右边过来

              当月球不断运动经过地球产生的阴影区时,古希腊学者估算出月球通过面前这段阴影区(FE)长度大概是月球直径(ED)的 2.5 倍。

              数学表达: FE = 2.5ED

               为方便分析,古希腊学者又建立了数学模型,

              这样就产生了 3 个三角形,刷题的经验告诉了我们,这就是求出地月距离的关键。

              ta们分别是 ABC、AFE、CDE ...

              三角形求高的公式:h=2×S△÷a(S△是三角形的面积,a是三角形的底)

     

                      思考 3 min...

               


              从小到大,依次分析:

                                       最小的三角形 CDE,ta的高就是 地月之间的距离,ta的底是 月亮的直径。

                                       次大的三角形 AFE,ta的高是 FE * 到月球的距离,ta的底是 FE = 2.5ED。

                                       最大的三角形 ABC,ta的高是 108*BC(根据圆形阴影理论),ta的底是 BC(地球直径)。

              因为三角形 AFE\sim EDC,比例关系为 2.5。所以俩个三角形高的比例也是 2.5。

                          p.s.  如果两个图形形状相同,但大小不一定相等,那么这两个图形相似(相似的符号:∽)。

              把AFE三角形的高记为 AH(H点需要自己标注),CDE三角形的高设为 x ,则 AH = 2.5x。

              三角形 ABC的高记为 AG,G点需要自己标注上去。

              那么从H点到G点也是地月间的距离,因此 HG = x。

              推出 :2.5x + x = AH + HG = AG,又因为 AG 是三角形 ABC 的高等于 108 * 地球的直径(记为d)。

                          2.5x + x = 108 * d

                                 3.5x = 108*d 

                                      x = \frac{108*d}{2.5}

             埃尼计算出来的地球半径为 39, 690 ,古希腊学者们取了近似值 40, 000,那么地球直径为 d = r * 2 = 40, 000 * 2 = 80, 000。

             代入公式即 \frac{864000}{3.5} = 247000 英里,这就是古希腊学者计算的地球距离,与今天计算的 239, 000 英里相差也不大。

             后来,法国学者运用三角函数(另三角学方法)也解出来,因为三角函数本就源于天文学......


    恒星距离

           计算恒星距离非常方便,因为只需要眼睛、鼻子、手指,电影里面水手也经常会用视差法。

                   p.s.  只适合度量 300 光年以内的恒星距离。

    做实验

           如果把右手食指(竖起来)紧贴着鼻子的中间,现在俩只眼睛看手指,这时的食指是处于左右眼间。

           如果闭上左眼看食指,食指会在右边一点;如果闭上右眼看食指,食指会在左边一点。

           实验? ......

           食指与俩只眼睛?之间的夹角,称为视差;

           俩只眼睛?之间的距离,称为基线;

           我们再一般化视差、基线这俩个概念,等下好用于计算恒星距离。

           基线:有一定距离的俩个点(?) 之间的距离。

           视差:从有一定距离的俩个点(?) 上同时观察一个目标(☝️) 产生的方向差异。

           视差角:从目标看俩个点之间的夹角。

           安利小知识:知道视差角和基线就可以计算出目标和点之间的距离。

           推理上面小知识的连环画:

    1:  黑色的俩个点是眼睛,绿色是鼻子或食指

     

    2: d是基线,西塔是视差角

     

    3: h是点到目标到距离

          我们现在需要求出 h ,要怎么搞 ??

          有点抱歉,三角函数的 tan 函数我还没讲,那简单介绍一下吧。

              tan(\theta) = \frac{a}{b}\theta 是角度这个不用解释, a 是 \theta 的对边, b 是 \theta 的邻边。

          举一个现成的例子,以上图的 \frac{\theta}{2} 以为例。

              tan(\frac{\theta}{2}) = \frac{\frac{d}{2}}{h},结合图片和定义看看,会等的......

           推一下公式,变成求 h 的:

               tan(\frac{\theta}{2}) = \frac{\frac{d}{2}}{h}

                h = \frac{\frac{d}{2}}{tan(\frac{\theta}{2})}

            好,这样就求出目标(食指)到点(眼睛)的距离。   

            看着这图(新图),目标就是恒星,点就是地球和 6 个月后的地球。

            恒星与太阳的距离就是 点到目标的距离(d) ,求出 d 只需要知道 P 这个角度是多少 !

            至于地球和 6 个月后的地球的距离也就是基线,是地球椭圆轨道长轴的一半记为 a。

                   tan(p) = \frac{a}{d} 

                   d = \frac{a}{tan(p)}

            p 需要计算得出,a 是以知,这样就可得出 d,恒星的距离就计算出来啦。

    •                          半长轴就是椭圆中离中心最远的点。
    •                          对于地球公转轨道来说,就是地球的远日点距离。
    •                          地球在远日点时,与太阳的距离是152,097,701.0千米,或是约1.521亿千米。

    太阳地球间的距离

    上弦月

              这张图,就是我们突破计算的关键,普及一点 太阳、地球、月亮 的关系。 

              每年每月的农历初一,月球正在太阳和地球中间(上图中,月球会在 斜线S 上),这时候的月亮无法看到因为地球看到的月球是没有光的背面。

              随着月球的运动,月球逐渐挪开了,这时候从地球(西方才能看到)看到的月球是弯弯的勾月......          

              在农历初八时,从地球(东方可见前半夜)看的月亮是明亮的半面,如上面这样、几何图形是上上图那样 -- 直角三角形。

             到农历十五、十六时,月亮已经运动到与太阳呈 180º。这时候从地球看到的月亮是完全的因为看到的是月球受光的一面。

             这 4 个阶段,分别被称为 "新月"、"峨眉月"、"上弦"、"满月",如此反复 满中逝,逝中满......

             日中则移,水满则溢,月盈则亏,这是自然界的铁律。

             求的太阳与地球的距离,也就是斜线 S,而 L (地月距离)古希腊学者已经计算出来,所以以知。

                    S * cos(\varphi) = L

             我们现在只需要知道 \varphi 这个角度是多少即可求出 S ~

             阿里(阿里斯塔克斯) 虽然不知道 "上弦" 月出现的正确时间,依然计算出  \varphi = 87º (实际是 89.853º)。

                   S = cos(\varphi)*L

             阿里的得出一个不确定结果 S: 地月距离的 20 倍。

             实际上:地月距离的 390 倍,大概是 15 亿公里......           


    计算机新闻分类

              现在浏览器上的新闻,都是计算机自动分类的。

              计算机分类的原理是三角函数的余弦定理 + 向量。

              余弦,我们已经知道一点点,更多的知识需要您自己学习,而向量是多维空间中有方向和特定长度的量。

              原理 : 余弦定理可以只靠俩个三角形的俩个边的向量,计算出这俩个边的夹角。 

              一篇新闻里会有很多词,像 “之乎者也的” 这种虚词,对判断新闻的分类没有太大的意义。而像 “股票”、“利息” 这种实词,是判断新闻分类的重点词。科学家精选了一个词汇表,这里面收录着 64000 个词,每个词都对应一个编号。他们先把大量文字数据输入计算机,算出每个词出现的次数。   

             一般出现次数越少的词越有搜索价值,比如 “爱因斯坦”、“数学之美”;而出现次数越多的词,越没有搜索价值,比如“一个”、“这里” 等等。根据这个标准,把词汇表里的64000个词都算出各自的权重,越特殊的词权重越大。然后,再往计算机里输入要分类的新闻,计算出这64000个词在这篇新闻里的分布,如果某些词没有在这篇新闻里出现,对应的值就是零,如果出现,对应的值就是这个词的权重。这样,这64000个数,就构成了一个64000维的向量,我们就用这个向量来代表这篇新闻,把ta叫做这篇新闻的特征向量。


               不同类型的新闻,用词上有不同的特点,比如金融类新闻就经常出现 “股票”、“银行” 这些词,所以不难判断,同类新闻的特征向量会有相似性。

               只要算出不同新闻特征向量之间夹角的大小,就可以判断出是不是同一类新闻。这时就要用到余弦定理,来把两则新闻的特征向量之间的夹角算出来。科学家可以人工设定一个值,只要两个向量之间的夹角小于这个值,这两则新闻就可以判定成同一类新闻。    

    余弦定理:对于任意三角形ABC,已知两条边的边长分别为a和b,两边的夹角为C,则第三边的边长满足下列等式:
                              c^{2} = a^{2} + b^{2} - 2ab *cos(C)

           在向量中公式转换为:

           把公式翻译为代码:

    double CosSimilarity(double *va, double *vb, int vn)
    {
        double cossu = 0.0;
        double cossda = 0.0;
        double cossdb = 0.0;
    
        for (int i = 0; i < vn; i++)
        {
            cossu += va[i] * vb[i];
            cossda += va[i] * va[i];
            cossdb += vb[i] * vb[i];
        }
    
        return cossu / (sqrt(cossda) * sqrt(cossdb));
    }

           vn 是多少维,也就是词典中有多少个词。 

           完整代码:

    #include <stdio.h>
    #include <math.h>
    
    double CosSimilarity(double *va, double *vb, int vn)
    {
        double cossu = 0.0;
        double cossda = 0.0;
        double cossdb = 0.0;
    
        for (int i = 0; i < vn; i++)
        {
            cossu += va[i] * vb[i];
            cossda += va[i] * va[i];
            cossdb += vb[i] * vb[i];
        }
    
        return cossu / (sqrt(cossda) * sqrt(cossdb));
    }
    
    // 建立的词典
    const int VN = 11;      // 11 个词即 11维
    const char *base_words[] = 
    {
        "进攻", "炮弹", "射程", "榴弹炮", "发射", "口径", "迫击炮", "瞄准", "后坐力", "弹道", "目标"
    };
    
    /* 原文 */
    //第一行: 口径为155毫米的榴弹炮,炮弹的射程超过40公里,炮弹发射后击中目标的弹道是一条抛物线
    //第二行: 大口径榴弹炮射程很远且弹道弯曲,炮弹通常都不是直接对着目标瞄准,而是计算好抛物线弹道,以一定的仰角和方向发射炮弹
    //第三行: 我们必须统一口径,抵挡敌人发射的糖衣炮弹的进攻
    
    int main()
    {
    	// v1代表原文第一行的 11 个关键字出现的权重(一一对应, 出现n次权重为n)
        double v1[] = { 0, 2, 1, 1, 1, 1, 0, 0, 0, 1, 1 };
        double v2[] = { 0, 2, 1, 1, 1, 1, 0, 1, 0, 2, 1 };
        double v3[] = { 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0 };
    
        /* 检查相似度 */
        printf("第一行 和 第二行 的相似度: %.2lf\n", CosSimilarity(v1, v2, VN));
        printf("第一行 和 第三行 的相似度: %.2lf\n", CosSimilarity(v1, v3, VN));
        printf("第二行 和 第三行 的相似度: %.2lf\n", CosSimilarity(v2, v3, VN));
        
        return 0;
    }

               代码还可补充,当相似度大于设定值时,归为一类新闻...... 


    IT起源学说:e = 2.71828... 

               自然常数 e , 是一个无限不循环的小数,也是最能体现自然界特征的数。

                                                   p.s. 极限的定义:当 n --> (1+\frac{1}{n})^{n} 的极限。

               e 的出现,连接起三角函数与指数函数。

               如果 e 不精确的等于 2.71828... ,绝大多的积分变化就会失效。

               计算机的信息技术基础便是源于傅里叶、拉普拉斯、希尔伯特等变化开始的,IT产业的起源所在。

               举个例子:理解 e

    •      您在银行存了 1 块钱,银行给您非常高的利息,年利率是100%,这样过一年存款就变成了 2¥。
    •      但银行非常慷慨,可以半年付一次利息,那肯定比一年付一次赚得更多。
    •      那到底半年付一次利息能赚多少钱呢,是 2.25¥。
    •      您就觉得非常划算了,就要求银行按季度来付利息,这样算出来是 2.37¥。
    •      如果您要求更密集一些,按月来付利息,每月付年利息的 \frac{1}{12} ,那么年底能拿到 2.61¥。
    •      发现只要支付利息的间隔越短,收益就越高。
    •      那现在按天来支付利息,算出来就是2.714567¥。
    •      我们推到极致,按秒来付利息,那这个收益会大到什么程度呢 ?
    •      无限切分,这样最终的收益不是无限大的,而是无限趋近于一个数值,自然常数 e,收益就是 2.71828¥。

         大约 2.718 倍的收益率,背后的实质是增长的极限,ta还可以出现在任何有裂变式增长的情境下。如微生物繁殖 ......

         这是一个宇宙通用数:如果存在外星文明,那么ta们的数学也会有一个描述宇宙自然规律的数,类似我们的 e = 2.71828...

         因为文明是贴切于生活的,工具的发明是针对问题的,数学也可以理解为人类文明持续发展的工具之一,

    •      为计算数字,发明了算盘;
    •      为测量绝对的数值,发明了尺子、时钟、天平、称;
    •      为测量化学反应的当量,发明了有刻度的量器;
    •      为让计算机快速完成判断真假、比较大小、排序、挑选最值,发明了二叉树。

             而 e ,比ta们都重要,ta是宇宙本身,谁都比不上 e,如果 e 不等于 2.71828... , 也许就不会有宇宙,更不会有我们了 。 


    复数

             从最基本的概念出发,推导出复数这个东东。

             首先,对这个东东我也是不了解,数学啥时候出来一个复数,没听说过。

             诶,想数学最早起源于计数吧,著名的:结绳计数。

             于是有了 1、2、3、4、5、6、7、9···,之后有了【加法】,为了分别计算又冒出一个分别参与运算的 0,自此【自然数】渐渐被整个人类所接受。

             有了加法后,又想到加法的逆运算【减法】,自然数并不完备,慢慢又推导出了【负数】,自此由自然数变成了【整数】。

             为了加速计算加法,【乘法】便诞生了,不过俩个整数相乘还是整数......

             有了乘法的概念,乘法的逆运算【除法】又自然而然的诞生,因为有时候除出来的商不是整数,因此出现了【有理数】。

             有了乘法,冒出了 "平方" 的概念(自己乘自己),后来又想到了 平方的逆运算 【开方】。

             对 2 开方是什么东西,于是在有理数的基础上扩充为【无理数】,现在整个数系叫【实数】......

             开方对正数来说,数系是完备的,但对 -1 开方又是什么东西,没有一个实数平方等于 -1 ,于是数系添了【虚数】......

             让新定义【虚数】的平方等于 -1,这就是 i,即 i * i = i^{2} = -1

             所以,整个数系,由是实数和虚数组成,叫复数,有了复数,加减乘除、平方开方,都完备。

             复数的基础虽然在自然界没有对应的事物,但建立在不存在的基础上的工具解决了许许多多的现实问题,如电磁波。

    用数学研究数学 >> 在几何上表示复数...

             实数轴:是一种特定几何图形;原点、正方向、单位长度称数轴的三要素,这三者缺一不可。

           虚数轴: 对应平面上的纵轴,与对应平面上横轴的实数同样真实。

             复平面: 虚数轴和实数轴构成的平面,复平面上每一点对应着一个复数。


    陌生的指数

         指数,我还没接受过来。

                    10^{3} = 10 * 10 * 10

         也许,常年的解题经验告诉您 :指数是多少,就是多少个 10 相乘。

         的确是的,不过只在指数是自然数时。指数的法则才是上面那样,如果指数是这样的呢 ?

                    e^{i\pi}= -1

         是不是 i\pi 个 e 相乘呢 ?

         不、不是,绝对不是。

         当指数不是自然数时,不用 "乘以的个数" 来思考指数,而是用数学公式来定义。

         定义思维,是研究数学最珍贵的。具体的介绍可以参见:集合论

         定义的 10^{x} 要满足 3 条指数法则:

                     10^{1} = 10

                     10^{a} * 10^{b} = 10^{a+b}

                     (10^{a})^{b} = 10^{ab}

         这种 "无矛盾性" 的定义才是数学的基石,举个例子,也许您不知道 10^{0} = 1  ?

         研究一下式子,

          10^{5} = 100000

          10^{4} = 10000

          10^{3} = 1000

          10^{2} = 100

          10^{1} = 10

          10^{0} = 1

          10^{-1} = \frac{1}{10}

          发现指数每减 1 ,结果减缩小了 \frac{1}{10} 。所以,10^{0} 也是这样定义出来的 ?

          自然数的确可以这样推,不过这还不是正确的定义。

           10^{a} * 10^{b} = 10^{a+b }

           10^{1} * 10^{0} = 10^{1+0}

           10^{1} * 10^{0} = 10

           10*10^{0} = 10

           10^{0} = 1

    发现对于指数法则的前 2 条都对应了,我带进了第 3 条,结果。

    啊哈,没毛病。


    最美的数学公式

              e^{i\pi}=-1:单位圆上,幅角为 \pi 的复数等于 -1。

             为了理解欧拉的公式,从 e^{x} 的微分方程来表达指数函数。

    •                   e^{0} = 1   
    •                  (e^{x})' = e^{x}   

              求微分是从函数创造函数的方法,可能不明所以,任何函数都可以转换为幂级数的形式表达包括指数函数。

                             e^{x} = a_{0} + a_{1}x^{1} + a_{2}x^{2} + a_{3}x^{3}+\cdots 

               a_{0} 是 x 的 0 次方项,系数为 a_{0};

               a_{1}x 是 x 的 1 次方项,系数为 a_{1};

               a_{2}x^{2} 是 x 的 2 次方项,系数为 a_{2};

               把这些项相加,得到的式子称为 幂级数,再把 指数函数的幂级数 表达为微分的形式。    

        ' 符号涉及微分,需要考虑俩条法则:

    1.  常数的微分结果等于 0,(a)' = 0;
    2.   n 次方项的微分结果等于 nx^{n-1}(x^{k})' = kx^{k-1};

         指数函数的幂级数:  e^{x} = a_{0} + a_{1}x^{1} + a_{2}x^{2} + a_{3}x^{3}+\cdots

         以上面的形式求微分:(e^{x})' = (a_{0}+a_{1}x+a_{2}x^{2}+a_{3}x^{3}+\cdots )'

         分解右边的式子: (e^{x})' = 0 + 1*a_{1}+2*a_{2}x+3*a_{3}x^{2} + \cdots

         因为微分是从函数中创造函数,这俩个函数其实是相等只是表达的形式不同。

                 e^{x}=(e^{x})'

          分别展开:

                e^{x} = a_{0}+a_{1}x+a_{2}x^{2}+a_{3}x^{3}+\cdots     

               (e^{x})' = 0 + 1*a_{1}+2*a_{2}x+3*a_{3}x^{2} + \cdots

                a_{0}+a_{1}x+a_{2}x^{2}+a_{3}x^{3}+\cdots  =  1*a_{1}+2*a_{2}x+3*a_{3}x^{2} + \cdots 

           比较等式俩边 x 的各项的系数:

    •            x^{0}:  a_{0} = 1 * a_{1} 
    •            x^{1}:  a_{1} = 2*a_{2}
    •            x^{2}:  a_{2} = 3 * a_{3}   
    •            x^{3}: a_{3} = 4*a_{4}
    •                       ······
    •            x^{k}: a^{k} = (k+1) * a_{k}      

             感觉规律还不明显,那把公式变成分数形式:

    •            a_{1} = \frac{a_{0}}{1}
    •            a_{2} = \frac{a_{1}}{2}
    •            a_{3} = \frac{a_{2}}{3}
    •            a_{4} = \frac{a_{3}}{4}   
    •               ······
    •           a_{k} = \frac{a_{k-1}}{k} 

             这样使之成为了一个数列,只需要知道 a_{0} 就可得到整个数列的值。

             现在想想 a_{0} 是多少 ?

              回顾关于 e^{x} 有关的式子,

                           e^{0} = 1, e^{x} =   a_{0}+a_{1}x+a_{2}x^{2}+a_{3}x^{3}+\cdots

              当 x = 0 时, e^{0} = 1。把  x = 0 代入到   a_{0}+a_{1}x+a_{2}x^{2}+a_{3}x^{3}+\cdots 

                           e^{0} = a_{0} + a_{1}*0^{2} + 0\cdots    

                           e^{0} = a_{0} + 0 + \cdots

                           e^{0} = a_{0}

                           \because e^{0} = 1 ,\therefore a_{0} = 1     

                知道 a_{0} 就可以得到之前的数列了。                 

    •             a_{0} = 1           
    •             a_{1} = \frac{a_{0}}{1} = \frac{1}{1}
    •             a_{2} = \frac{a_{1}}{2} = \frac{1}{2}
    •             a_{3} = \frac{a_{2}}{3} = \frac{1}{2} * \frac{1}{3} = \frac{1}{6}
    •             a_{4} = \frac{a_{3}}{4} = \frac{1}{6} * \frac{1}{4} = \frac{1}{24}
    •                      ·····
    •             a_{k} = \frac{a_{k-1}}{k} = \frac{1}{a_{k-1}} * \frac{1}{k} = \frac{1}{k*a_{(k-1)}}
    •            看了一会,发现一个规律 a_{k} = \frac{1}{k!}, 第 k 项等于 1 除以 k项的阶乘 (k * (k-1) * ··· * 3 * 2 * 1)。

                 e^{x} = a_{0}+a_{1}x+a_{2}x^{2}+a_{3}x^{3}+\cdots

                 e^{x} = \frac{x^{0}}{0!} + \frac{x^{1}}{1!}+\frac{x^{2}}{2!}+\frac{x^{3}}{3!}+\cdots

                 这个式子是泰勒展开,专业名字叫,

                         指数函数 e^{x} 的泰勒展开: e^{x} = \frac{x^{0}}{0!} + \frac{x^{1}}{1!}+\frac{x^{2}}{2!}+\frac{x^{3}}{3!}+\cdots         

                        而学习的式子,TA的指数是 i \pi,把TA们代入 指数函数 e^{x} 的泰勒展开试一试:

                                                                   e^{x} = \frac{x^{0}}{0!} + \frac{x^{1}}{1!}+\frac{x^{2}}{2!}+\frac{x^{3}}{3!}+\cdots

                                                                  e^{i \pi} = \frac{(i \pi)^{0}}{0!} + \frac{(i \pi)^{1}}{1!}+\frac{(i \pi)^{2}}{2!}+\frac{(i \pi)^{3}}{3!}+\cdots

                        复数的知识上面有记录,i^{2} = -1

                                                                  e^{i \pi} = \frac{(i \pi)^{0}}{0!} + \frac{(i \pi)^{1}}{1!}-\frac{( \pi)^{2}}{2!}+\frac{(i \pi)^{3}}{3!}-\frac{( \pi)^{4}}{4!}+\cdots

                                                                   e^{i \pi} =1 + \frac{(i \pi)^{1}}{1!}-\frac{( \pi)^{2}}{2!}-\frac{(i \pi)^{3}}{3!}+\frac{( \pi)^{4}}{4!}+\cdots

                         根据虚数 i 的性质,式子变化的规律:

                得说一件事情,e^{i\pi}=-1 是欧拉推来出的。

                那么欧拉推过来之前的 e 的指数是什么 ?

                实际只是一个希腊字母 \theta,表示任意角度。

                e^{i \theta} 才是原来的样子。

                所以,e^{i \theta} 的泰勒展开式:e^{i \theta} = \frac{(i \theta)^{0}}{0!} + \frac{(i \theta)^{1}}{1!}+\frac{(i \theta)^{2}}{2!}+\frac{(i \theta)^{3}}{3!}+\cdots

                                                          e^{i \theta} = \frac{(i \theta)^{0}}{0!} + \frac{(i \theta)^{1}}{1!}-\frac{( \theta)^{2}}{2!}-\frac{(i \theta)^{3}}{3!}+\cdots

                各位知不知道 sin(\theta) 和 cos(\theta) 的泰勒展开 ?

                                                          sin(\theta) = \frac{\theta^{1}}{1!}-\frac{\theta^{3}}{3!}+\frac{\theta^{5}}{5!}-\frac{\theta^{7}}{7!}\cdots

                                                          cos(\theta) = \frac{\theta^{0}}{0!}- \frac{\theta^{2}}{2!}+\frac{\theta^{4}}{4!}- \frac{\theta^{6}}{6!}\cdots

                泰勒展开资料:https://en.wikipedia.org/wiki/Taylor_series ,需要VPN翻墙没有可以找我。

                把 e^{i \theta} 的泰勒展开以奇次项和偶数项分开,发现偶数项对应的是 cos(\theta) 的泰勒展开,奇次项对应的 sin(\theta) 的泰勒展开。

                哦哦,感觉好神奇!

                诶,不对奇次项还少乘一个 i,我们补上 i 再写成等式。

                                                           e^{i \theta} = \frac{i \theta^{0}}{0!} + \frac{i \theta^{1}}{1!}-\frac{ \theta^{2}}{2!}-\frac{i \theta^{3}}{3!}+\frac{\theta^{4}}{4!}+\frac{i\theta^{5}}{5!}-\cdots

                                                                 =cos(\theta) + i*sin(\theta)  

                接着代入 \pi,  e^{i \pi} 的泰勒展开:

                                                            e^{i \pi} = cos(\pi) + i * sin(\pi)

                三角函数的博客,记录了cos和sin的求值方法这里不在复述。

                                                            e^{i \pi} = -1 + i * 0

                                                             e^{i \pi} = -1                

                                           


    傅里叶变换(FT)

              十九世纪法国数学家 傅里叶 发现任何周期性的函数(信号)都等同一些三角函数的线性组合。

              简单的来说,傅里叶变换是把一个复杂的事物拆解为一堆标准化的简单事物的方法。

              如,跳舞这个复杂的动作由腿部、手部、肩部、腰部等单一的动作组成。

              举一个相关的例子,傅里叶运用于声音中。

              声音是空气的震动,手指轻轻地弹一下碗,我们会听到 悦耳的声音。

              声音由 音调 和 音量(响度) 组成,音调是震动的频率,音量是震动的幅度。

               上图的正弦曲线,也是一个简单的声音。

               这个声音呈完美周期性的变换、频率是固定的。

               而一个复杂的声音,就是由这样简单的声音组成。

              因此,傅里叶变换在声音的领域中即:

              由一系列简单的波动如搭积木一般组成一个复杂的波动,看下图。

             图中俩条红色的曲线,都是由那些蓝色的波形叠加而出。

             傅里叶变换最核心的是可以告诉我们,图中红色曲线是由多少组成比例的蓝色曲线构成。

             红色曲线 = 频率是 100 的蓝色曲线 × 0.5 + 频率是 200 的蓝色曲线 × 0.2 + 频率是 300 的蓝色曲线 × 0.1 + 频率是 400 的蓝色曲线 × 0.08 + ……

             取出蓝色曲线的数值成分:红色曲线 = (0.5, 0.2, 0.1, 0.08, ......)。

             写一篇文章,会参考许多资料;那这篇文章,就可以拆分为 《XX》*0.1 + 《XX》*0.2 + ......

             所以,现在大部分原创经常是已知的、简单的事物的排列组合。

            这里说的是,傅里叶变换的思想原理,而其中更加有趣的地方,您可以看看:


              另外推荐:

              快速傅里叶变换(FFT),在算法竞赛中多用于求 "卷积"(多项式乘法),朴素的卷积各系数相乘的时间复杂度是 O(n^{2}),通过 FFT 后减为 O(n~ log n)

     

    展开全文
  • Matlab 矩阵相关函数

    2018-01-23 21:34:27
    Matlab 矩阵相关函数:矩阵对角线元素的抽取,上三角阵和下三角阵的抽取,矩阵的变维,矩阵分解,线性方程的组的求解,秩与线性相关性,稀疏矩阵技术
  • 1, 并不是所有函数都可以作为相关函数,必须满足 对于宽平稳的随机过程来说,还需要满足相关函数只与时间间隔有关. 并且有宽平稳的相关函数一定是一个偶函数.
  • 一直都没有好好学动画,因为懒...最开始学三角函数的时候就是从勾三股四弦五开始,勾股定理描述的是对于直角三角形,直角两条边的平方和等于斜边的平方 a^2+b^2=h^2 常用三角函数 sinθ = a/h conθ = b/h ta...
  • 自己做的长三角数学建模论文,质量很不错,代码数据都在附录,代码用的python 通过建立逐步回归模型,最近邻故障检测模型,分类故障诊断模型等,解决齿轮 箱的故障检测和有效诊断。 针对问题一,对振动数据进行...
  • 我们设计的函数发生器,有仿真图。由比较器和积分器组成方波—三角波产生电路,比较器输出的方波经积分器得到三角波,三角波到正弦波的变换电路主要由差分放大器来完成。差分放大器具有工作点稳定,输入阻抗高,抗...
  • 之前介绍了如何将一个矩阵化成上三角矩阵,并且提到了矩阵的秩可以通过上三角矩阵轻松得出,秩就是上三角矩阵中非零行的个数,不知道怎么将一个矩阵通过初等行变换的伙伴们可以参考我的上一篇文章 ...
  • 模拟电路的课程设计报告,设计内容为 线性VF转换(电压频率转换),内附详细的设计思路及各个模块的详细电路图。
  • 行简化阶梯型矩阵 定理2.7.2 秩的性质 三、向量 例3.1.1 线性组合/表示 向量组等价的定义 线性相关 线性无关 线性相关定理1 定理2 替换定理 极大无关组 定理3.3.2 向量组的秩 行秩和列秩 定理3.3.5 定理3.3.6 例子 ...
  • 线性方程组求解课程设计报告+代码
  • 相关函数的理解

    万次阅读 多人点赞 2016-12-13 14:42:08
    每个小x(t)函数(样本函数)就是实际发生的一个表达式确定的函数,对每个小x(t)的处理,都是与之前确定函数的处理方法相同的,但是由于我们没法确定某次究竟发生哪个确定表达式的小x(t),所以我们只能研究发生...
  • ZZULIOJ题解 1125: 上三角矩阵的判断 题目描述 ...要求定义函数IsUpperTriMatrix()判断矩阵a是否是上三角矩阵,如果是返回1,否则返回0。函数原型如下: int IsUpperTriMatrix(int a[][N], int n); 输入
  • 函数图象关于y轴对称是什么函数

    千次阅读 2020-12-24 08:52:26
    信息举报时间:2020-12-24 本页为您甄选多篇描写函数图象关于y轴对称是什么函数,函数图象关于y轴对称是什么函数精选,函数图象关于y轴对称是什么函数大全,有议论,叙事 ,想象等形式。文章字数有400字、600字、800字...
  • 很明显可以看到,左下角那个有点像三角函数的关系,Pearson系数(就是线性相关系数)为0,而MIC则有0.8。 摘自:http://tech.ifeng.com/a/20180323/44917506_0.shtml 最大信息系数 最大信息系...
  • 函数发生器一般是指能自动产生正弦波、三角波、方波及锯齿波、阶梯波等电压波形的电路或仪器。根据用途不同,有产生三种或多种波形的函数发生器,使用的器件可以是分立器件 (如低频信号函数发生器S101全部采用晶体管...
  • 信号处理几乎涉及到所有的工程技术领域,而声音信号的相似性判断分析又是信号分析仪处理中一个非常重要的分析手段。一般的声音信号的相似性判断分析都依靠传统声音信号的相似性判断分析仪来完成,价格昂贵,体积庞大...
  • 答:b = 0.1295a = 0.4057剩余平方和SSE:0.0019964相关系数R-square:0.78778剩余标准差RMSE:0.010251答:你要拟合的非线性有没有固定的方程呢? 还是随便用多项式去拟合?答:你最好使用曲线拟合工具箱,这个很简单...
  • 信号与线性系统分析(4版).rar
  • 第2章 数学和三角函数 46 2.1 常规计算 48 2.1.1 SIGN——返回数字的符号 48 2.1.2 ABS——计算数字的绝对值 49 2.1.3 SUM——计算数字之和 50 2.1.4 PRODUCT——计算数字之积 52 2.1.5 SQRT——计算正平方根 ...
  • 信号与系统 课件 信号与系统 课件信号与系统 课件信号与系统 课件信号与系统 课件信号与系统 课件信号与系统 课件信号与系统 课件信号与系统 课件信号与系统 课件信号与系统 课件信号与系统 课件信号与系统 课件...
  • 闭式解也被称为解析解,知是通过严格的公式所求得的解,即包含分式、三角函数、指数、对数甚至无限级数等基本函数的解的形式。通过给出解的具体函数形式,从解的表达式中就可以算出任何对应值。 2、正则化 P.S:推荐...
  • 利用matlab实现非线性拟合0 前言1 线性拟合1.1 多项式拟合1.2 线性拟合2 一维非线性拟合2.1 简单的非线性拟合2.2 matlab中Curve Fitting App2.3 matlab中非线性拟合的实现2.3.1 fit()函数2.3.2 nlinfit()函数2.3.3 ...
  • 方向判断模块是雷达防撞系统中的一个重要功能模块。为实现该模块,完成了对差频信号频率及相位与目标运动方向关系的理论推导,得到并验证了频率及相位与目标靠近或远离关系的2 种判定法则。利用这2 种法则,设计了...
  • matlab函数

    2014-05-16 10:13:51
    里面有matlab 几乎所有的函数列表,并且还有常用的函数列表,用word编辑方便大家进行查找使用。
  • MATLAB中常见数字信号处理相关函数汇总 现将MATLAB信号处理工具箱函数进行分组,便于记忆查询和长期回顾。 Waveform Generation(波形产生) chairp: 产生扫频余弦函数; diric: 产生Dirichlet或周期sinc函数; ...
  • 在大学数学学科中,线性代数是最为抽象的一门课,从初等数学到线性代数的思维跨度比微积分和概率统计要大得多。很多人学过以后一直停留在知其然不知其所以然的阶段,若干年之后接触图形编程或机器学习等领域才发现...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,008
精华内容 4,003
关键字:

判断三个函数线性相关

友情链接: CGameProgramming.rar