【伯乐在线导读】:这个问题来自 Quora,下面是来自 Tanooj Luthra 的回复。

让我们来演奏一架想象中的钢琴。

钢琴的每个琴键都对应一个特定频率的声音。例如,一个比较有名的频率是国际标准音A(440赫兹)。当有琴键按下时,你听到的声音是一个完美的正弦波,振荡在440赫兹。同样,中央C对应的频率约为261赫兹声波。

不过,每次只演奏一个音符太单调了,我们来尝试几个音符同时演奏。有趣的是,两个各不相关的声音结合起来,就创造一个全新的独特声音。它不再只是单一的频率,这是两个频率的结合。如果琴键一起按下我们会发现,对应的频率也叠加在了一起。

三个音符组合形成的最终声音信号!

快速傅立叶变换(FFT)可以让我们将这个新的声音解构为原始的频率,从本质上得到这个和弦是由哪些琴键组成的。现在我们退一步,只演奏一个音符,看看这个原始信号及其FFT的示例图。

这幅图中的数字没有曲线形状所代表的意义那么重要。上面图中蓝色表示声音的波形,表示了其幅值相对于时间的关系。它是一个单一的频率,表示只演奏了音符A。FFT变换后,我们得到了一个很有趣的图形,幅值相对于频率的关系。此图中单个波峰表示原始信号中的单一频率,而大部分的频率不存在。前进一点点,在我们的和弦例子中有两个音符C和A,我们的FFT将有两个波峰!一个会出现在相同的位置,而另一个将出现在较低的频率。总体来说,一个信号的FFT将每个“纯”频率相加得到最终的输出结果。

我们给钢琴加一个歌手伴奏。

人的声音频率范围很宽,多种多样的频率组成了多种多样的声音(词语)。正如下面的图片,音频信号可能会非常非常复杂。相应的FFT在一定比例上有成千上万的非零频率(图上的红色曲线将有成千上万不同高度的峰值)。举个例子,即使是一个歌手想发出F音,最终也会产生许多不同的频率,因为人声不是一个理想的乐器。

说出不同词语时的音频信号。显然不像上面的标准音A那样光滑波动!

现在,我们已经有点明白FFT了,现在来看看MIT的稀疏FFT。当我们为钢琴加了歌手伴奏后,我们有一个C和A的和弦以及一个歌手努力维持唱出的F音,然后得到了一个参差不齐的音频信号及其FFT。原本的FFT将计算出每个频率的幅度,但我们也许可以利用这样一个事实,即大部分的频率将集中在C、A和F周围!因此,如果我们只计算组成最终音频信号的三个频率,可以复制出一个足够接近于原音乐乐谱的声音。这就是稀疏FFT在做什么。

这篇论文注意到一个事实,在视频信号中有89%的频率不是必须存在的。只计算11%的频率的稀疏FFT,信号质量不会恶化太多。虽然视频的频率和信号的相关概念更偏向技术性,但是理论同样适用于钢琴和歌手。

如何向非技术人员解释“稀疏傅里叶变换”算法?相关推荐

  1. 嵌入式和非嵌入式_我如何向非技术同事解释词嵌入

    嵌入式和非嵌入式 数据科学 (Data Science) Word embeddings. 词嵌入. What are they? What do they look like? How are th ...

  2. 从头到尾彻底理解傅里叶变换算法(上)

    从头到尾彻底理解傅里叶变换算法(上) 前言 第一部分.  DFT 第一章.傅立叶变换的由来 第二章.实数形式离散傅立叶变换(Real DFT) 从头到尾彻底理解傅里叶变换算法.下 第三章.复数 第四章 ...

  3. 经典算法研究系列:十、从头到尾彻底理解傅里叶变换算法、上

     经典算法研究系列:十.从头到尾彻底理解傅里叶变换算法.上 作者:July.dznlong   二零一一年二月二十日 推荐阅读:The Scientist and Engineer's Guide t ...

  4. linux grep 非_帮助非技术人员转向Linux的8条技巧

    linux grep 非 早在2016年,我就取消了技术教练业务. 永久性. 还是我想. 这是一个有趣的经历,在很大程度上是因为大多数人根本不是技术专家. 他们知道如何使用计算机来完成他们需要做的事情 ...

  5. 从头到尾彻底理解傅里叶变换算法

    经典算法研究系列:十.从头到尾彻底理解傅里叶变换算法.上 作者:July.dznlong   二零一一年二月二十日 推荐阅读:The Scientist and Engineer's Guide to ...

  6. 从头到尾彻底理解傅里叶变换算法、上

    转自:结构之法 算法之道 网址:https://blog.csdn.net/v_july_v/article/details/6196862   经典算法研究系列:十.从头到尾彻底理解傅里叶变换算法. ...

  7. 对于非技术人员来说,闪电网络和BCH分别意味着什么?

    2017年8月,比特币网络分成了两条链.一条链是比特币现金(BCH),它遵循中本聪思想,允许交易的区块上限随着时间的推移而增加.而另一条链则是Bitcoin core(BCE),限制了区块的大小,同时 ...

  8. 如何直观的解释back propagation算法?

    作者:Evan Hoo 链接:http://www.zhihu.com/question/27239198/answer/89853077 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非 ...

  9. 【pmcaff】一个APP的诞生,非技术人员的想法实现

    点击上方 "公众号" 可以订阅哦! " 故事要从一次电影院的经历说起.一个人去看电影,买票时,听见前面的女生轻声对身旁的男生说:居然有人一个人看电影.我发现身边还有其他一 ...

最新文章

  1. Python 类对象及属性内置方法 classmethod、delattr、dir、hasattr、getattr、callable
  2. Bzoj3998: [TJOI2015]弦论
  3. nginx reload内存碎片问题-(一)
  4. 启明云端分享|Linux系统下如何调试I2C设备
  5. mysql update 几万 非常慢_mysqL update 太慢,求解决方法
  6. Django的电子商务网站的调研
  7. 风机桨叶故障诊断(六) 利用自编码器进行特征学习
  8. java字段注解类型数组_Java注解用法
  9. 95-190-035-源码-window-Time Window 实现
  10. 海思3159A运行yolov3(一)——安装caffe(Bug汇总篇)
  11. Code Review中的几个提示
  12. 杨辉三角Python
  13. 计算机技术产生的就业辩论,计算机与软件技术系辩论赛决赛
  14. ACCESS使用技巧三则
  15. [搜索 meet in the middle+哈希] ProjectEuler 598. Split Divisibilities
  16. 微信可以显示你的足迹了,快试试
  17. 零基础学kubernetes(k8s)必看教程,带你10分钟快速实战入门k8s
  18. winscp 同步_使用WinSCP进行简单代码文件同步
  19. 2U 4节点Xeon SP服务器 (上):PowerEdge C6420更受重视
  20. 完美世界手游服务器显示不了,完美世界手游登陆不了怎么办 完美世界手游无法登陆解决方案...

热门文章

  1. Linux Supervisor的安装与使用入门
  2. PHP Multipart/form-data remote dos Vulnerability
  3. 第十九章——使用资源调控器管理资源(2)——使用T-SQL配置资源调控器
  4. HTML+CSS布局技巧及兼容问题【阅读季】
  5. [原]tornado源码分析系列(三)[网络层 IOLoop类]
  6. 一般筛法求素数+快速线性筛法求素数
  7. I'm stuck! ccf模拟题。
  8. pygame是python的一个库吗,python学习pygame,,基本库导入impor
  9. vc 只有顶级窗口可以弹出窗口_如果你刚换了新电脑,这几个地方记得设置一下,电脑可以多用几年...
  10. java notify 的作用_java 为什么notify和notifyAll都不起作用?