Undecimated Wavelet Transform

Table of Contents

1 Undecimated Wavelet Transform

1.1 Signal

signal=readcsv(joinpath(DirectConvolution.RootDir,"data/signal_1.csv"));
signal=signal[:,2];
plot(signal,label="signal")

signal.png

Figure 1: Signal

1.2 Direct transform

Use some wavelet filter

filter = 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.3 Inverse transform

Check perfect reconstruction

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

1.4 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-06-25 Mon 18:51

Validate