Friday, August 12, 2016

How to eliminate border effects on Wavelet denoising?


After reading a few references here to wavelets, I'm trying to denoise (or at least 'compress') a time-series of forex prices using a Daubechy04 wavelet (forward tranform, 8 most important (in absolute value) coeffients are kept among the 64 values, reverse-transform).


When a down or up trend is occuring, there is a border-effect since the first and last values differ, on the last point (and the first, but that doesn't matter, since it's possible to remove some of the first points).


The wavelet is in red, (in blue, a moving average)


enter image description here


(This happens also, with Discrete Fourier tranform, where I believe it's normal since they assume periodicity)


I tried to diff (b[i] = a[i+1]-a[i]) then undiff the series before the tranform: terrible results.


Another try with b[i] = a[i] - ((a[63]-a[0])/63*i + a[0]) (subtracting the line between the two extremities: better 'visual' result enter image description here

but not perfect, several time steps further.. (the end slope is not matching well): enter image description here


I'm also reading Wavelet thresholding methods, because this idea of relying on a fixed number of coefficients (8) is maybe problematic




No comments:

Post a Comment

technique - How credible is wikipedia?

I understand that this question relates more to wikipedia than it does writing but... If I was going to use wikipedia for a source for a res...