首页 > 如何向非技术人员解释“稀疏傅里叶变换”算法?

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

【伯乐在线导读】:这个问题来自 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,信号质量不会恶化太多。虽然视频的频率和信号的相关概念更偏向技术性,但是理论同样适用于钢琴和歌手。

更多相关:

  • 假设一条正弦曲线为sin(2*pi/t),频率为1Hz。我们以2Hz的频率对该曲线进行采样(每隔0.5s),可以得到3个红色采样数据,如下图 对于这三个点,我们不能确定它对应的正弦曲线是sin(2*pi/t),因为sin(4*pi/t)等倍频曲线也会穿过这三个红色采样点。 你想象一个白色的圆盘,有一条沿着半径的...

  • 原文出处: 韩昊    1 2 3 4 5 6 7 8 9 10 作 者:韩 昊 知 乎:Heinrich 微 博:@花生油工人 知乎专栏:与时间无关的故事   谨以此文献给大连海事大学的吴楠老师,柳晓鸣老师,王新年老师以及张晶泊老师。   转载的同学请保留上面这句话,谢谢。如果还能保留文章来源就更感激不尽了。 我保证这篇文章...

  • 原文出处: 韩昊   我保证这篇文章和你以前看过的所有文章都不同,这是 2012 年还在果壳的时候写的,但是当时没有来得及写完就出国了……于是拖了两年,嗯,我是拖延症患者…… 这篇文章的核心思想就是: 要让读者在不看任何数学公式的情况下理解傅里叶分析。 傅里叶分析不仅仅是一个数学工具,更是一种可以彻底颠覆一个人以前世界观的思维...

  • 很多Linux高手都喜欢使用screen命令,screen命令可以使你轻松地使用一个终端控制其他终端。尽管screen本身是一个非常有用的工具,byobu作为screen的增强版本,比screen更加好用而且美观,并且提供有用的信息和快捷的热键。 想象一下这样一个场景:你通过Secure Shell(ssh)链接到一个服务器,并...

  • NarrowbandPrimary Synchronization Signal时域位置每1个SFN存在一个NPSSSFNSubframeSymbol长度每个SFN5最后11个symbol11个symbols频域位置NB-IOT下行带宽固定180kHz,一个PRB,12个子载波。...

  •  [h1]反斜杠只能够阻止一个字符  [h2]位于键盘的左上角,和~公用一个键。...

  • 英语的重要性,毋庸置疑!尤其对广大职场人士,掌握英语意味着就多了一项竞争的技能。那,对于我们成人来说,时间是最宝贵的。如何短时间内在英语方面有所突破,这是我们最关心的事情。英语学习,到底有没有捷径可以走,是否可以速成?周老师在这里明确告诉大家,英语学习,没有绝对的捷径走,但是可以少走弯路。十多年的教学经验告诉我们,成功的学习方法可以借...

  • 展开全部 其实IDLE提供了一个显32313133353236313431303231363533e78988e69d8331333365663438示所有行和所有字符的功能。 我们打开IDLE shell或者IDLE编辑器,可以看到左下角有个Ln和Col,事实上,Ln是当前光标所在行,Col是当前光标所在列。 我们如果想得到文件代码...

  • 前言[1]从 Main 方法说起[2]走进 Tomcat 内部[3]总结[4]《Java 2019 超神之路》《Dubbo 实现原理与源码解析 —— 精品合集》《Spring 实现原理与源码解析 —— 精品合集》《MyBatis 实现原理与源码解析 —— 精品合集》《Spring MVC 实现原理与源码解析 —— 精品合集》《Spri...

  • 【本文摘要】【注】本文所述内容为学习Yjango《学习观》相关视频之后的总结,观点归Yjango所有,本文仅作为学习之用。阅读本节,会让你对英语这类运动类知识的学习豁然开朗,你会知道英语学习方面,我们的症结所在。学习英语这类运动类知识,需要把握四个原则第一,不要用主动意识。第二,关注于端对端第三,输入输出符合实际情况第四,通过多个例子...

  • 点云PCL免费知识星球,点云论文速读。文章:RGB-D SLAM with Structural Regularities作者:Yanyan Li , Raza Yunus , Nikolas Brasch , Nassir Navab and Federico Tombari编译:点云PCL代码:https://github.co...