用不同频率,相位,幅度的三角波合成信号

上回我们通过只改变正弦和余弦频率的方式,得到了冲击串信号和Sinc函数,这两个常见信号。这次我们不仅要改变各阶谐波的频率(k*fo)还要改变他们的幅值(ak,bk)和相位(φk),去合成更多的波。

谐波信号的叠加(不同频率,不同幅度,不同相位):

刚才我们所合成的信号非常有限,因为我们只改变了三角函数中的频率,而没有改变幅度和相位这两个参数。现在我们试着改变不同谐波中的幅度和相位,我们就能合成几乎所有类型的波。这就是傅里叶分析的核心思想!

用正弦波/余弦波合成方波:

用正弦波合成方波时,只需把频率是基波频率f0的奇整数倍的正弦谐波(奇函数),即,1f0,3f0,5f0....., 逐一相加就行了。但在相加之前需要把正弦函数的幅度A改为其频率的倒数,即,A = 1/1, 1/3,1/5.....。最终合成出来的方波还是一个奇函数。

用余弦波合成方波时,方法和合成正弦波的方式基本相同。不是上面所说的“逐一相加”,而是一正一负,或者说是一加一减。最终合成出来的方波还是一个偶函数。

具体的正弦波和余弦波的合成公式如下:

奇数项谐波和偶数项谐波的相互抵消:

请注意,不论是用正弦还是用余弦来合成方波时,所选用的谐波系数K都是奇数。主要原因就是,奇数项的谐波(不论是正弦还是余弦,即,不论是奇函数,还是偶函数)会抵消偶数项的谐波。换句话说,偶数项/阶(even order)的谐波是具有破坏性的(destructive),因此不常被用于信号的分析和构建。例如在下图中,可以明显的看到这一点。

这里,频率为1,3Hz的谐波和频率为2,4Hz的谐波在图中所指出的位置(t = 0.5 秒)是正好相反的(antipodal)。之所以,无穷多个正弦波和余弦波的叠加(取绝对值)能够被用来合成冲击串信号也是正是利用了这一原理,即,偶数阶谐波的破坏性。见下图。

颠覆了傅里叶变换的Gibbs现象

Gibbs现象:

在合成方波的过程中,我们最初只用了一个基波+三个谐波合成的信号就很像方波了,那么是不是只要谐波的数量足够多,最终合成的波形就能够和方波一模一样吗?答案是否定的。

随着谐波数量的增加,如下图中谐波的数量增加到100项,最终合成的波形确实越来越像方波,但是始终会波形的边缘处产生剧烈的振荡/抖动(ripple),这就是著名的Gibbs现象。Gibbs现象同时还是一个非常优秀的特例,彻底的否定了另一个鼎鼎大名的定理,即,傅里叶指出所有信号都可以用傅里叶级数来表达。Gibbs现象说明了傅里叶级数无法表示不连续,有间断的信号。

如何合成锯齿波:

锯齿波(sawtooth wave)是奇函数,所以只能用正弦函数来合成。锯齿波的合成公式如下:

公式中的系数使得各阶谐波对于整个函数的贡献随着谐波系数k(即,谐波频率)的增加而减少,这一点和方波的合成是一样的。

跟方波的合成不同的是,锯齿波的合成只需要少量的几个谐波就能达到很逼真的锯齿波,例如,20个谐波。但是,对方波而言,往往需要很多谐波的叠加才能达到很好的逼近,如100个谐波。这是因为,方波的不连续和跳变要比锯齿波厉害的多,所以要用更多的谐波去叠加。

80年代录像带大放送:(写在最后)

下面的视频中,从1阶谐波增加到2阶的时候波形没有发生改变,为什么呢?别忘了方波的合成中,只有叠加了奇数波。

下图是从0阶一直加到了100阶,出现了明显的Gibbs现象。

(全文完)

作者 --- 松下J27

谢谢收看!

再见。

参考文献(鸣谢):

【1】http://complextoreal.com/

【2】 signals and systems --- 奥本海姆

格言摘抄:

人 在 最 小 的 事 上 忠 心 , 在 大 事 上 也 忠 心 。 在 最 小 的 事 上 不 义 , 在 大 事 上 也 不 义 。------ 《圣经》路加福音 16章:10

(*配图与正文内容无关*)

版权声明:所有的笔记,可能来自很多不同的网站和说明,在此没法一一列出,如有侵权,请告知,立即删除。欢迎大家转载,但是,如果有人引用或者COPY我的文章,必须在你的文章中注明你所使用的图片或者文字来自于我的文章,否则,侵权必究。 ----松下J27

数字信号处理 --- 周期信号的三角函数表示 二(信号的合成和Gibbs现象)相关推荐

  1. 数字信号处理(一)利用FFT对信号进行频谱分析

    数字信号处理(一)利用FFT对信号进行频谱分析 1.实验目的 (1) 进一步加深DFT算法原理和基本性质的理解(因为FFT只是DFT的一种快速算法,所以FFT的运算结果必然满足DFT的基本性质). ( ...

  2. 数字信号处理 --- 周期信号的三角函数表示 一(三角函数的性质和三角波的合成)

    三角函数的性质 一系列三角函数谐波(harmonic sinusoids)是傅里叶分析的基石,我们可以用这些不同频率的谐波构建各种各样的信号/波形. 谐波(harmonics): 现在我们选择一个频率 ...

  3. 数字信号处理①之信号的合成、分解、相关性及傅里叶系数的计算

    数字信号处理系列博客: 数字信号处理之信号的合成.分解.相关性及傅里叶系数的计算 数字信号处理之从傅里叶系数到DFT 文章目录 一.信号的合成和分解 (一)傅里叶级数 (二)将正弦波合成方波 二.信号 ...

  4. 【数字信号处理及MATLAB实践】

    数字信号处理及MATLAB实践 第一章 信号.连续时间周期信号的傅里叶级数和频谱分析 文章目录 数字信号处理及MATLAB实践 前言 1.1 信号的时域分析-波形的产生和信号的基本运算及MATLAB实 ...

  5. 北邮dsp matlab实验,北京邮电大学《数字信号处理》门爱东-DSP实验.pdf

    京邮电大学信息与通信工程学院 数字信号处理Matlab 实验 数字信号处理Matlab 实验 实验一:数字信号的产生和基本运算(4 学时) 因为现实世界里存在的是模拟信号,因此数字信号处理的第一个问题 ...

  6. 数字信号处理笔记(上)

    数字信号处理 前言 1.绪论 1.时域离散信号与时域离散系统 1.2 时域离散信号 1.2.1常用典型序列 1.2.2 序列的计算 1.3 时域离散系统 1.3.1 线性系统 1.3.2 时不变系统 ...

  7. 《数字信号处理》 学习总结

    21世纪属于数字化信息时代,很有幸学习了一些数字信号的基础内容,尽管还不清楚这些理论基础的应用,但他所应用的技术给了自己很多积累也让自己感受到了人类智慧的伟大,本文章主要论述对高西全和丁玉美编著的&l ...

  8. 【信号处理】数字信号处理Matlab设计附GUI界面和报告

    1 简介​ 信号处理是现代信息处理的基本内容,数字信号的处理更是重中之重.数字信号处理的研究内容主要是语音信号和图像信号,而研究语音信号对于现代语音通信有着积极的意义.研究语音信号又分为时域和频域两个 ...

  9. 数字信号处理学习笔记

    文章目录 信号处理 离散时间信号与系统 为什么要处理信号 信号是如何处理的 信号处理的目的 数字信号的表示 信号的分类 DSP 和 ASP 数字信号处理的特点 数字信号处理的应用 两类DSP 数字信号 ...

最新文章

  1. 腾讯“科学探索奖”提名报名正式启动
  2. Oralce 目录结构
  3. 算法系列之赫夫曼编码实战一【数据压缩、数据解压】
  4. ubuntu下hbase的伪分布式安装与配置
  5. UVA 11021 - Tribles(概率递推)
  6. datax底层原理_Datax 插件加载原理
  7. 性能测试和自动化测试选哪个?
  8. python 数组中取出最小值_Python 数组中的冒号使用
  9. JavaScript 字符串与数字的相互转换
  10. 计算机管理里面删打印机就卡住了,打印机任务无法删除怎么办-解决打印机任务无法删除的方法 - 河东软件园...
  11. 【SpringBoot+Mybatis】bootstrap/sematic UI与pagehelper实现分页
  12. ubuntu扩容教程
  13. 经纬财富:巴中美联储措辞乐观 白银难突出重围
  14. MODBUS RTU转PROFIBUS DP 转换器怎么接线远创智控
  15. Linux 搭建zookpeer集群和配置
  16. 认识微型计算机 ppt,全国“xx杯”计算机应用基础类说课大赛优秀作品:认识微型计算机的组成 2.ppt...
  17. 若依Ruoyi 不分离教程01-新建主子表应用
  18. 计算机主板晶振长稳短稳,晶振的指标参考
  19. 汇编:lea指令学习
  20. 看了潘爱民老师的关于smartcache for webkit的paper

热门文章

  1. 进程间通信方式和线程间通信方式
  2. memmove函数详解 看这一篇就够了-C语言(函数讲解、函数实现、使用用法举例、作用、自己实现函数 )
  3. [学习心得][Html]disabled属性的启用和禁止
  4. Python 模拟登陆
  5. 跨平台c开发库tbox:内存库使用详解
  6. 任意输入三条边(a,b,c实型),若能构成三角形,则计算并输出其面积,否则输出标志“No Triangle!”。
  7. homebrew 安装node
  8. 现在有什么兼职刚刚起步,将来会火?
  9. 勒索病毒WannaCry深度技术分析——详解传播、感染和危害细节
  10. nvl函数oracle 举例,Oracle Nvl函数的实际应用有哪些?