I was working on wavelet signal decomposition and got confused with the downsampling part of Discrete Wavelet Transform algorithm.
If we consider a signal $\{a_0[0], ... ,a_0[N-1]\}$ of length N and use formula $$ a_1[k] = \sum_m h[m-2k]a_0[m] $$ then for two low pass filters $$\{h[0]=h_0,~h[1]=h_1, ~h[2]=h_2, ~h[3]=h_3\}$$ and $$\{g[-2]=h_0,~g[-1]=h_1, ~g[0]=h_2, ~g[1]=h_3\}$$ (which are the same thing except the second filter is time-shifted version of the first one) we will get different results.
Let me clarify. After convolution of $a_0$ and $h$ we will get $N+3$ samples $\tilde a_1[k]$, $k=-1,...,N+1$ with the first non zero sample being $\tilde a_1[-1]$. So, after downsampling we will result in the following sequence $$ \tilde a_1[0], \tilde a_1[2], \tilde a_1[4], ..., \tilde a_1[N_1] $$ where $N_1$ is the integer part of $(N+1)/2$, with total number of samples equal to $N_1 + 1$.
Now if we convolve $g$ and $a_0$ again we will get $N+3$ samples, but this time $\hat a_1[k]$, $k=0,...,N+2$. And after downsampling we will get $$ \hat a_1[0], \hat a_1[2], \hat a_1[4], ..., \hat a_1[N_2] $$ where $N_2$ is the integer part of $(N+2)/2$, with total number of samples equal to $N_2 + 1$.
So as a result, if number of samples $N$ of input signal $a_0$ is even, then number of approximation coefficients for $h$ and $g$ is different (integer part of $(N+1)/2$ is less than integer part of $(N+2)/2$). More than that, second sequence consists of exactly those samples which are excluded from the first one and vice versa.
So my questions are:
1) Is this correct or do I have a mistake somewhere?
2) If this is correct, then why implementations of dwt algorithm ignore this fact? (I've tested dwt from PyWavelets package)