Monday, November 23, 2015

Computing CDF(2,2) Transform of 2-Sample Signals with Mirror Wrapup: Conceptual Note 2 on Ripples in Mathematics

This is my conceptual note 2 on Ch. 4 in "Ripples in Mathematics" by A. Jensen & A. la Cour-Harbo. As I noted in my programmatic note 6, when I was trying to programmatically reproduce the multi-resolution CDF(2,2) transform of a synthetic sinusoid given in Fig. 4.10 in Ch. 4, I had to go back to the CDF(2, 2) recurrences in Ch. 3. While implementing CDF(2, 2), I was confronted with what Jensen & Cour-Harbo call the boundary problem. I described my tentative solution to the boundary problem in my 6-th  programmatic note referenced in the 1st sentence of this post. Since this is work in progress, I will remain flexible and may modify it as I experiment with CDF(2,2) on bigger data. Another conceptual problem I had with CDF(2,2) was implementing the notation used by Jensen and la Cour-Harbo in the recurrences on p. 21 of Ch. 3. In this conceptual note, I discuss my attempt, also tentative, to refine their notation to understand it better and apply my refinement to computing the CDF(2,2) transforms of 2-sample signals with mirror wrapup. The note is based on the notation I introduced in my 1st conceptual note on defining forward DWT recurrences.

Changing CDF(2,2) to CDF(S,2,2,L,J)
I modified the notation CDF(2,2) to the notation CDF(S, 2, 2, L, J), as shown in Fig. 1The first argument, S, denotes the signal, which is a sequence of samples whose length is an integral power of 2. Specifically, the length of S is 2^J. L is the current scale or iteration. It starts at 0, which denotes the original, unmodified signal, and goes up to J.
Figure 1. CDF(S, 2, 2, L, J)
As shown in the lower part of Fig. 1, when L = 0, CDF(S, 2, 2, L, J) returns the original signal without any modifications. When L > 0, CDF(S, 2, 2, L, J) is a modified signal whose first section contains, in LaTeX notation, the elements in S^{L}_{J-L}, then onto D^{L}_{J-L}, and all the way down to D^{1}_{J-1}.

Figure 2. Computing individual elements of CDF(S, 2, 2, L, J)
Fig. 2 gives the recurrences for computing the individual elements of CDF(S, 2, 2, L, J) at a given scale L. Let us assume that the mirror wrapup is used and the signal S contains two elements s^{0}_{1}(0) and s^{0}_{1}(1). CDF(S, 2, 2, 1, 1) consists of two values: s^{1}_{0}(0) and d^{1}_{0}(1). To compute d^{1}_{0}(1), we need s^{0}_{1}(0), s^{0}_{1}(1), and s^{0}_{1}(2). The element s^{0}_{1}(2) wraps up to s^{0}^{1}(1). 

Figure 3. Computing individual elements of CDF(S, 2, 2, 1, 1)
Fig. 3 shows the formulas for the individual elements of CDF(S, 2, 2, 1, 1). 

Examples of Computing CDF(S, 2, 2, 1, 1)
Figures 4, 5, 6 give examples of computing CDF(S, 2, 2, 1, 1) for three 2-sample signals. In Fig. 6, I pilot the notation SCDF(S, 2, 2, 1, 1), which stands for standard CDF without any normalization. I plan to elaborate on it in my next conceptual note where the normalized CDF will be referred to as NCDF.
Figure 4. Computing CDF([1, 4], 2, 2, 1, 1)
Figure 5. Computing CDF([4, 1], 2, 2, 1, 1)
Figure 6. Computing CDF([4, 4], 2, 2, 1, 1)