绘制平稳小波变换的任何经验?

信息处理 Python 小波 转换 静止的
2022-02-12 14:18:18

我正在为我的论文试验小波,目前正在使用 pywavelets 提供的固定 WT。CWT 有非常好的图,但是有没有人知道一种生成图的技术,可以很好地全面了解生成的 SWT?现在我基本上只是为每个级别生成一个详细系数图列表,而不是关于平均值。

我希望这个问题属于这里。干杯!

编辑:

我真的只是遍历变换并绘制每个细节系数向量。(我知道该示例使用 DWT 而不是 SWT,但应该是类似的)

fig, axes = plt.subplots(3, 5, figsize=[14, 8])

c = pywt.wavedec(data1, 'haar', mode='periodization')

for i in range(0, 5): axes[0, i].plot(c[i],c = "r")

结果如下所示:

1个回答

我不使用 Python,我是一个坚持他旧的 Matlab(代码和)习惯的老人。然而,就扩展/小波/边界问题而言,SWT 与 CWT 是离散的等价物。在大多数版本中,近似值或细节中的样本数量是相同的(DWT 并非如此)。因此,您可以将 1D 行细节(或近似值)连接成 2D 图像,类似于传统的尺度图。以下图像和代码显示了该过程。我已经生成了一个度数增加的随机分段多项式信号。然后是行的详细信息,以及连接的行的图像。动机是解决消失矩对分段多项式的影响,具有边界效应。这里有两种不同的认识。

分段多项式信号和平稳小波,实现 1

分段多项式信号和平稳小波,实现 2

可以在 Python 中重现的 Matlab 代码:

dataLength = 512;
data = zeros(dataLength,1);
nChunk = 4;
lChunk = dataLength/nChunk;
for iChunk = 0:nChunk-1
    idxChunk = iChunk*lChunk+(1:lChunk)';
    polyChunk = rand(iChunk+1,1)-0.5;
    dataChunk = polyval(polyChunk,linspace(-0.5,0.5,lChunk));
    data(idxChunk) = dataChunk;
end

nLevel = 4;
[swa,swd] = swt(data,nLevel,'db2');

figure(1);clf
subplot(1,3,1)
plot(data,'x');axis tight
for iPlot = 1:nLevel
    subplot(nLevel,3,3*(iPlot-1)+2)
    plot(swd(iPlot,:));;axis tight
end
subplot(1,3,3)
imagesc(swd)

其他相关问题/答案: