所以当应用小波变换时,我们得到一个二维图。该二维图中的每个点都有一种颜色,显示某物的强度。但我不明白它是幅度还是功率?
小波变换上的强度值是什么意思?幅度还是功率?
信息处理
傅里叶变换
功率谱密度
小波
阵列信号处理
离散小波变换
2022-01-30 23:58:03
3个回答
标准的连续小波变换(产生二维比例/位移图的变换)是线性算子。它产生与幅度有关的实数或复数系数,“特定位移和尺度的给定小波如何匹配信号”。这些系数(大多数情况下)与信号幅度一致。
话虽如此,根据应用,将复数或正/负小波系数显示为图像是很有趣的。因此,它们被修改,使用
- 绝对值,
- 平方规范(能量),
- 对数变换(和其他收缩型函数,如阈值幂律),
- 或更复杂的“颜色图”(很多,通常取决于字段),
将价值转化为颜色,以更好地展示微妙的细节和趋势。
这有什么不同?强度和功率由一个严格单调的函数联系起来(非常复杂的 p(i)=i²);由于颜色无论如何都不是“线性的”,因此绘制功率和幅度之间的唯一区别是重新标记颜色条。
事实上,这就是我们经常使用分贝的原因,这样规模在功率和幅度上是相同的。
现在,我们不知道您的绘图工具;作为一般规则,在图像处理中,我会说强度更多的是幅度,而在物理学中,它更多的是功率,但如果你想确定,只需输入一个填充为 0.1 的数组一半,另一半为 0.2。这将立即以 100% 的把握回答您的问题。
它的绝对值是幅度。平方就是力量。但是,如果这是您遇到的情节,则无法在没有单位的情况下进行判断,因为它可以进行对数转换(分贝),从而消除了幅度和功率之间的区别(amp:-- 战俘:,如果自动缩放,所有强度都加倍并且颜色不会改变)。但是,对于解释小波系数,未变换的表示最准确,在学习/调试时应该首选;转换作为应用设置中的后处理步骤很有用。
我推荐这个教程。互动学习也很有趣;修补x
以下内容,看看它如何影响 CWT。
import numpy as np
from ssqueezepy import cwt, Wavelet, TestSignals
from ssqueezepy.visuals import plot, imshow
# configure
N = 4096
ts = TestSignals(N=N)
tmin, tmax, f = 0, 1, 64
fs = N / (tmax - tmin)
# generate signal
x = ts.make_signals(('am-cosine', dict(f=f, tmin=tmin, tmax=tmax)))
t = np.linspace(tmin, tmax, N, 0) # ^ corresponds to TestSignals
# simpler:
# x = np.cos(2*np.pi * f * t)
# take CWT
wavelet = Wavelet(('morlet', {'mu': 5}))
Wx, scales = cwt(x, wavelet)
# find (peak) center frequencies as fraction of sampling rate (N)
psih = np.abs(wavelet.Psih())
freqs = np.round(np.array([np.argmax(p) for p in psih])/2).astype(int) * (fs / N)
# plot
plot(x, title="signal", xticks=t, xlabel="time [sec]", show=1)
kw = dict(abs=1, xlabel="time [sec]", ylabel="frequencies [Hz]",
xticks=t, yticks=freqs)
imshow(Wx, title="abs(CWT)", **kw)
imshow(np.abs(Wx)**2, title="abs(CWT)^2", **kw)
print("Try these for `signal` like `x = ts.make_signals(signal)` "
"(or feed your own):\n%s" % '\n'.join(ts.SUPPORTED))
其它你可能感兴趣的问题