小波变换计算哪些时间频率系数?


26

快速傅立叶变换需要操作,而快速小波变换需要。但是,FWT具体计算什么呢?ON O(NlogN)O(N)

尽管经常将它们进行比较,但FFT和FWT似乎是苹果和橘子。据我了解,将STFT(随时间变化的小块FFT)与复杂的Morlet WT进行比较会更合适,因为它们都是基于复杂正弦波的时频表示(如果我错了,请纠正我) )。通常以如下图显示:

网格显示FFT和WT的系数如何对应于时频平面

另一个例子

左图显示STFT如何随时间推移彼此堆叠在一起的一堆FFT(此表示形式是频谱图的起点),而右图显示二进线WT,其在高频和更高频率下具有更好的时间分辨率低频下的分辨率(此表示称为比例)。在此示例中,STFT的是垂直列数(6),并且单个 FFT运算可从样本中计算出系数的单个行。总共是8个FFT,每个6点,或时域中的48个采样。ON log N N NNO(NlogN)NN

我不明白的是:

  • 单个 FWT数学运算可以计算多少个系数,它们在上面的时频图上位于什么位置? O(N)

  • 一次计算可以填充哪些矩形?

  • 如果我们使用这两者来计算等时的时频系数块,是否可以获得相同数量的数据?

  • FWT是否仍比FFT效率更高?

使用PyWavelets的具体示例:

In [2]: dwt([1, 0, 0, 0, 0, 0, 0, 0], 'haar')
Out[2]:
(array([ 0.70710678,  0.        ,  0.        ,  0.        ]),
 array([ 0.70710678,  0.        ,  0.        ,  0.        ]))

它创建两组4个系数,因此与原始信号中的样本数相同。但是这8个系数和图中的图块之间是什么关系?

更新:

实际上,我可能做错了,应该使用wavedec(),它可以进行多级DWT分解:

In [4]: wavedec([1, 0, 0, 0, 0, 0, 0, 0], 'haar')
Out[4]: 
[array([ 0.35355339]),
 array([ 0.35355339]),
 array([ 0.5,  0. ]),
 array([ 0.70710678,  0.        ,  0.        ,  0.        ])]

2
为了更好地了解这些小波分解的工作原理,一个有用的工具将是能够对现实信号进行处理:例如音频信号(我在这个方向上有一个问题dsp.stackexchange.com/ Questions / 12694 / stft-and-dwt-wavelets
Basj,

@endolith是否仍要求您提出问题?如果是这样,我可以添加其他提示
洛朗·杜瓦尔

@LaurentDuval是的,它仍然打开,我还是不明白。我可能会感到困惑,因为CWT使用的是Morlet之类的东西,而DWT只使用的是Haar或Daubechies之类的东西。我不确定快速FWT是 Haar还是还可以使用其他类型的小波。
endolith's

2
@ndolith对此发表评论:连续的CWT承认数量惊人的潜在小波形状。只能使用尊重某些“海森堡”不等式的采样模式(时间或比例)来精确离散它们。这些模式取决于小波。在大多数情况下,这些模式会使离散的CWT变得多余。有些人希望它是非冗余的,具有二进位比例。只有极少数的小波允许这样做。如果您然后将小波支持强加为有限的,那么Haar就是其中之一,几乎不可能获得“自然小波”,这就是为什么建立Daubechies的小波的原因
Laurent Duval

Answers:


13

您是正确的,FWT最好被认为是STFT的“表亲”,而不是FT。实际上,FWT只是CWT(连续小波变换)的离散采样,因为FFT / DFT是傅立叶变换的离散采样。这可能看起来很微妙,但是在选择离散化变换的方式时,这很重要。

CWT和STFT都是信号的冗余分析。换句话说,您拥有的“系数”(在离散情况下)比完全代表一个信号所需的更多。但是,傅立叶变换(或仅使用一个标度的小波变换)对从-无限到+无限的信号进行积分。这在现实世界的信号上不是很有用,因此我们将转换截短(即开窗)到较短的长度。信号的窗口化会改变变换-您在时间/空间上乘以窗口,因此在变换空间中,您将窗口的变换与信号的变换进行卷积。

对于STFT,窗口通常始终具有相同的长度(非零范围),并且与频率无关(将10 Hz的信号与10 kHz的信号宽度相同)。这样您就可以像绘制矩形图一样得到矩形图。

CWT内置了这种窗口,这是由于小波随着比例尺的减小(例如更高的频率)而变得更短(在时间或空间上)。因此,对于较高的频率,有效窗口的持续时间较短,并且最终得到的比例尺看上去就像为FWT绘制的一样。

如何离散化CWT取决于您自己,尽管我认为在位移和比例尺上都存在最小采样量才能完全代表一个信号。通常(至少我是如何使用它们的)对于最小比例(最高频率),您将在所有班次位置(时间/空间)进行采样。随着规模的增加(频率的降低),您可以减少采样的频率。理由是低频不会迅速改变(想像c碰撞与贝司吉他-crash碰撞具有非常短的瞬变,而贝司吉他需要更长的时间来改变)。实际上,在最短的范围内(假设您在所有移位位置采样),您可以完整地表示信号(可以仅使用此范围内的系数来重构信号)。我不太确定抽样量表的理由。一世' ve认为这是对数的,(我认为)较短刻度之间的间距较小。我认为这是因为较长尺度的小波具有更宽的傅里叶变换(因此它们“拾取”更多的频率)。

我承认我并不完全了解FWT。我的直觉是,它实际上是班次/比例的最小采样,而不是多余的表示。但是,我认为您会在短时间内失去分析(并弄乱)信号的能力,而不会引入不需要的伪像。我将阅读有关它的更多信息,如果我学到任何有用的东西,请报告。希望其他人愿意发表评论。


1
“实际上,这是班次/规模的最小采样,不是多余的表示。” 啊! 我认为您是对的,这可以解释为什么总是将它与FFT(它也是最小表示形式)进行比较。
endlith

3
FWT是CWT的关键采样。我仍在尝试更好地理解它,但是我了解到STFT和CWT都是Frames。框架理论超越了我,但是一个有趣的概念是不确定性公式,对于STFT,dw * dt> C(dw是频率分辨率,而dt是时间分辨率)。换句话说,当您尝试更好地解决频率问题时,您将失去时间分辨率。CWT没有此限制。一旦我弄清楚了,我将继续阅读并尝试并澄清上面的答案。

1
据我了解,CWT有相同的局限性,但要权衡利弊。
endolith

1
“ STFT都是信号的冗余分析”。我认为那不是真的。如果您有一个100点信号,则将其分成10个点的块,然后对每个点进行10点FFT,您仍将相同的信息存储在相同数量的样本中。
endlith 2011年

11

考虑Haar小波的情况。快速小波变换递归地细分您的信号,并每次计算两个一半的和与差。差异是当前小波的变换幅度,总和返回给调用者以计算频率为一半的膨胀小波的变换幅度。因此,FWT使用您在图中说明的模式覆盖时频平面。

请注意,您提供的图表有点误导。他们真正要告诉您的是,您以最低的频率获得一个样本,以该频率的两倍获得两个样本,以该频率的四倍获得四个样本,依此类推。每个小波的时频特性都不足以覆盖小块。在实践中,每个小波将覆盖无限的区域,因为它们具有紧凑的支持,因此必须在频率上完全离域。因此,您应该考虑一下这些图块的中心。

此外,FWT需要离散小波,该离散小波必须比CWT的连续小波遵守更严格的可采性标准。因此,离散小波的时频特性通常很差(例如,Daubechies小波要么具有鲜明的特征,要么具有变化的频率),并且在FWT的情况下,时频平面的实用性大大降低。但是,连续小波用于计算信号的时频表示。


是的,我了解系数的本地化。与FFT相同。当您说“必须遵守”时,您是什么意思?如果您要获取信号的最小/非冗余表示,这是否只是一个要求?如果您只是试图对其进行分析/可视化怎么办?我将为这个问题添加一个更具体的示例。
endlith 2010年

1
遵守可采性标准可确保存在同一性的分辨率,即所有信号都可以从其小波变换中恢复。如果您不遵守它,那么您将无法从其变换中恢复信号,这时您必须质疑您正在分析的信号到底是什么(它甚至反映出信号中包含的任何信息吗?!)。如果不需要最小/非冗余表示,则可以使用CWT中较宽松的可采性标准(可让您定义更多“理想”小波)。

1
我认为您会发现我的博士学位论文真的很有用。我将它在线上为您...

您上网了吗?:)
endolith'2


3

您的参考资料有:

基于正交有限小波或小波的一系列系数。

有关更多信息,您可能喜欢DWT页面。在那里介绍了Haar小波,Daubechies小波和其他。指出如何

  • 小波具有位置–(1,1,–1,–1)小波对应于“左侧”对“右侧”,而最后两个小波在左侧或右侧具有支撑,一个是平移其他的。
  • 正弦波没有位置-它们散布在整个空间中-但确实有相位-第二和第三波是彼此平移的,对应于异相90°,例如余弦和正弦,这是离散形式。

如果现在要代替连续小波而不是离散小波,则可以从wavelet series开始。

除了维基百科,一本教科书和一门课程可能对您很有帮助。


我不明白这个答案。它能回答我的问题吗?左侧和右侧是什么?这与时频表示有什么关系?
endlith

“左侧与右侧”说明是DWT页面的摘录预览,显示该页面包含一个简单的示例来解释正弦波基和Haar小波基的相对优点。您在问小波变换中系数的性质。听起来您在寻找直觉。我认为您可能会发现该示例(在其原始上下文中)很有用。

是的,在发布此问题之前,我已经阅读了Wikipedia文章多次。我不知道您的答案是否/与我有关时频表示的问题有关。如果可以,您能否将点连接起来?n个样本的FFT将产生n个系数,这些系数构成STFT频谱图的单个​​列。WT产生的系数与比例尺之间是否存在对应关系?如果是这样,那是什么?通过FWT一次运行可以填充右下图中的哪个框?
endlith

1
维基百科页面上与小波相关的几乎所有内容目前都是错误的。

3

基本上,FFT(快速傅立叶变换)和FWT(快速小波变换)是离散化变换的两种实现方式,这些实现是基于连续变换,转为离散的,比(对于一维数据)的标准矩阵实现要快得多。。一种更适合谐波信号,另一种适合瞬态(或多或少)。O(N2)

请注意,传递时FWT不必正交,并且还存在其他快速版本,例如提升方案。还请注意,这些估计不是渐近的,对于短数据来说,它们不易比较。换句话说,在非渐近体制中,并不比 “必须更快” ,因为的常数可以改变交易。在更高维度上,东西并不是那么简单。O N log N O O(N)O(Nlog(N))O()

从通用窗口式STFT(连续形式)开始。如果插入单位高度的无限窗口,则在特殊情况下可以恢复傅立叶变换。您可以离散化(并获得DFT)并使其快速化(并获得FFT)。

从CWT(连续形式)开始。连续的CWT允许大量潜在的小波形状。只能通过考虑某些“海森堡”不等式的采样模式(时间或比例)来精确离散它们:每单位表面一个样本。这些模式取决于小波。在大多数情况下,这些模式会使离散的CWT变得多余,并产生小波帧。

一些人希望它不是冗余的,具有二进位刻度(DWT)。只有极少数的小波(仍然是无穷小,但您无法偶然发现它们)允许这样做。第一批是Haar,Franklin和Meyer小波。如果然后将小波支持强加为有限的,那么Haar在很长一段时间内都是唯一的支持。从“自然连续小波”中获得正交小波几乎是不可能的,这就是建立Daubechies的小波以及后来的SymmletCoiflets的原因。那些形状怪异的小波没有像Morlet小波那样好的简单公式。

O(N)

实际上,FWT只是CWT的离散采样

DWT(或FWT)很精确,就像DFT / FFT。大多数其他离散CWT(具有任何小波)都差不多(如果有足够的冗余,不会造成太大损害)。

所以:

  • kkk804T2×424[ω/2,ω]42×22[ω/8,ω/4][1,1,2,4]
  • k
  • +×O(N)

下图显示了Haar小波的连续版本 连续哈尔小波

可以采样到正交离散小波中: 离散临界Haar小波

请注意,某些离散小波,尤其是长小波(如样条线)有时会使用FFT来计算:)

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.