Undecimated Wavelet Transform

Table of Contents

1 Undecimated Wavelet Transform

1.1 Required libraries

using Plots
using DirectConvolution
using DelimitedFiles
using LinearAlgebra

1.2 Signal

signal=readdlm("../../../data/signal_1.csv",',');
signal=signal[:,2];
plot(signal,label="signal")

signal.png

Figure 1: Signal

1.3 Direct transform

Use some wavelet filter

filter = UDWT_Filter_Starck2{Float64}()

Direct udwt transform

m = udwt(signal,filter,scale=8)

Plot results

label=["W$i" for i in 1:scale(m)];
plot(m.W,label=reshape(label,1,scale(m)))
plot!(m.V,label="V$(scale(m))");
plot!(signal,label="signal")

W.png

Figure 2: Undecimated Wavelet Transform

1.4 Inverse transform

Check perfect reconstruction

reconst = inverse_udwt(m);
norm(signal-reconst)

0.0

1.5 Smoothing

Rough solution… cancels the two finest resolution levels.

m.W[:,1] .= 0
m.W[:,2] .= 0
reconst=inverse_udwt(m)
plot(reconst,linewidth=3, label="smoothed");
plot!(signal,label="signal")

W12_eq_0.png

Figure 3: (over) smoothed signal

Author: picaud

Created: 2018-08-27 Mon 15:58

Validate