什么是稀疏傅里叶变换?


46

最近,麻省理工学院一直在谈论一种新算法,该算法被吹捧为可对特定信号进行处理的更快的傅立叶变换,例如:“ 更快的傅立叶变换被命名为世界上最重要的新兴技术之一 ”。麻省理工学院技术评论杂志

使用称为稀疏傅里叶变换(SFT)的新算法,数据流的处理速度比FFT快10到100倍。之所以会出现加速,是因为我们最关心的信息具有很多结构:音乐不是随机噪声。这些有意义的信号通常只占信号可能取值的一小部分。技术术语是信息是“稀疏的”。由于SFT算法并非旨在与所有可能的数据流一起使用,因此它可以采用某些快捷方式,而这些快捷方式在其他情况下是不可用的。从理论上讲,只能处理稀疏信号的算法比FFT的局限性要大得多。但是,发明家卡塔比(Katabi)指出,“稀疏无处不在”,电子工程和计算机科学教授。“这是自然;它是 s在视频信号中;在音频信号中。”

有人可以在这里提供有关该算法的真正含义以及它的适用范围的更多技术说明吗?

编辑:一些链接:

Answers:


40

算法的想法是这样的:假设您有一个长度信号,该信号在频域中很稀疏。这意味着,如果要计算其离散傅立叶变换,将有少量非零的输出;其他可以忽略不计。获得所需输出的一种方法是在整个序列上使用FFT,然后选择非零值。NkNNkkk

此处提出的稀疏傅里叶变换算法是一种用于计算输出的技术,其复杂度低于基于FFT的方法。本质上,因为输出为零,所以您可以通过在算法内部采用快捷方式甚至不生成那些结果值来节省一些精力。尽管FFT的复杂度为,但对于稀疏频谱情况,稀疏算法的复杂度可能为。kNkO(nlogn)O(klogn)

对于更一般的情况,在频谱是“的一种稀疏”,但是有超过非零值(例如,对于多个音调的嵌入在噪声)时,它们呈现的算法的一个变型估计的最大输出,以的时间复杂度,也可能比FFT复杂度低。kkO(klognlognk)

根据其结果的一张图表(如下图所示),相对于FFTW(麻省理工学院的其他一些人制作的优化的FFT库),用于提高性能的分界点大约只有输出变换系数的第至 -th为非零。同样,在此演示中,他们指出时,稀疏算法提供了更好的性能。12111210Nk[2000,106]

在此处输入图片说明

这些条件的确将算法的适用性限制在某些情况下,即您知道信号频谱中可能没有几个非常大的峰值的情况。他们在其网站上引用的一个示例是,通常在图像和视频压缩中使用的8 x 8像素块在频域中几乎稀疏90%,因此可以从利用该特性的算法中受益。稀疏程度似乎与该特定算法的应用程序空间不符,因此它可能只是一个说明性示例。

我需要通读一些文献,以便更好地了解这种技术在实际问题上的实用性,但是对于某些类别的应用程序,这可能是合适的。


2
因此,这基本上是有损的FFT吗?像MP3编码器一样?
endolith

3
@endolith:我不确定我会这样说。可能更类似于仅计算输出子集的修剪FFT算法。这种说法是,如果输入信号为稀疏,则将精确计算输出。kk
杰森R

我想知道它如何与goertzel算法(或其中的一个家族)相抵触。似乎唯一的区别是在goertzel中您知道您要开始的工作。
太空

5
@endolith:MP3压缩是有损耗的,因为系数已量化;不是因为只保留了前k个系数。稀疏FFT =“什么是k系数表示,它使与输入信号的差异最小化”。mp3帧的编码=“在给定的N位预算用于存储系数和比例因子的情况下,最小化(感知)误差的量化系数和量化级别是多少”。
pichenettes 2012年

1
当它们被扔掉时,这是量化的副作用(该值四舍五入为零)
pichenettes 2012年

7

我尚未阅读有关sFFT的文章,但我的感觉是,将FFT固定在后面的想法是在利用k稀疏的先验。因此,不必计算所有FFT系数项,而是仅计算其中的k个。因此,对于k稀疏信号,复杂度为O(klog n)而不是传统FFT的O(nlog n)。

无论如何,关于@rcmpton的评论,要说“压缩感知背后的想法是,您可以从不同域中抽取的稀疏随机样本中恢复稀疏数据(例如,从随机稀疏频率数据(即MRI)中恢复稀疏图像”) ”。问题是什么是“稀疏随机样本”?我认为这可能是通过将稀疏数据随机投影到某个较低的(测量)子空间而收集的样本。

而且据我所知,压缩感测的理论框架主要由稀疏,测量和恢复3个问题组成。通过稀疏性,它涉及为某些信号类别寻找稀疏表示,这是字典学习的任务。通过测量,它涉及寻求一种有效的方法(计算效率和可恢复性)来测量数据(或将数据投影到较低的测量空间),这是测量矩阵设计的任务,例如随机高斯矩阵,结构化随机矩阵。 ...并且通过恢复,是稀疏的正则化线性反演问题,l0,l1,l1-l2,lp,l-group,blabla ...,并且得到的算法是各种各样的,匹配追踪,软阈值,硬阈值,基础追求,贝叶斯,....

的确,“ cs是L1范数的最小值”,L1范数是cs的基本原理,但是cs不仅是L1范数的最小值。除了上述三个部分,还有一些扩展,例如结构化(组或模型)压缩感测,其中还利用了结构化稀疏性,并被证明可以大大提高恢复能力。

结论是,cs是采样理论的一大进步,只要这些信号足够稀疏,就可以提供一种有效的信号采样方法。因此,cs是一种抽样理论,任何将其用作分类或识别技术的人都会误导该原理。有时,我会找到一些标题为“基于压缩感知的.....”的论文,我认为此类论文的原理是利用l1最小化而不是cs,最好使用“基于l1最小化...”。 ”。

如果我错了,请纠正我。


欢迎来到DSP.SE这是一个巨大的贡献。
声子

6

我浏览了这篇论文,我认为我对这种方法有了大致的了解。该方法的“秘密处理”是如何在频域中获得输入信号的稀疏表示。先前的算法使用一种蛮力来确定主要稀疏系数的位置。此方法改为使用称为“空间恢复”或“压缩感测” Wiki文章的技术在此处此处使用的稀疏恢复的确切方法看起来类似于“硬阈值”(主要的稀疏恢复方法之一)。

稀疏恢复/压缩感测并与其相连的PS技术L1最小化在现代信号处理中,尤其是在与傅立叶变换相关的过程中,大量使用。实际上,现代信号处理是必须了解的。但是在使用傅立叶变换作为解决稀疏恢复问题的方法之一之前。在这里,我们看到对面-稀疏恢复傅里叶变换。

概述压缩感测的好网站: nuit-blanche.blogspot.com/

PPS对先前评论的回答-如果输入信号不完全稀疏,则有损。

如果我的方法有误,请随时纠正我。


FFT纸不是压缩感应。压缩感测背后的想法是,您可以从不同域抽取的稀疏随机样本中恢复稀疏数据(例如,从随机稀疏频率数据(即MRI)中恢复稀疏图像)。虽然这可以减少获取时间,但会增加计算成本。FFT文件的不同之处在于,您在两个域中都拥有所有数据,并且目标是使计算快速进行。
dranxo 2012年

您对压缩感测是错误的。
mirror2image 2012年

1
你能详细说明吗?
dranxo 2012年

压缩传感是模糊的边缘,其中包括/连接到本身,而是类似区域不仅恢复了巨大的区域正则化,最小复杂度追求等本来它稀疏性约束问题,X在, R ^ n \ | x \ | _0 <k $,但后来变得更加笨拙。从阅读Wiki开始LpAx=yRmyin,m>>nwithconstraint
mirror2image

不会。压缩感应意味着您要解决取决于。有许多影响深远的应用程序,但是如果您在某些时候不调用Candes-Romberg-Tao定理,那么用“压缩感知”来标记您的工作就会使人们感到困惑。这是参考:www-stat.stanford.edu/~candes/papers/spm-robustcs-v05.pdfmin|x|1Ax=y
dranxo 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.