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.
I modified the notation CDF(2,2) to the notation CDF(S, 2, 2, L, J), as shown in Fig. 1. The 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.
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 1. CDF(S, 2, 2, L, J) |
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) |