The 1-D paired transform results in a frequency-time representation of the signal. The signal is represented by a set of short splitting-signals which are generated by different frequencies. For instance, when N is a power of two, N=2^r, this set contains signals of length N/2,N/4,...,2,1,1 and generated by frequencies p=1,2,4,...,N/2, and 0. In otehr words, log2(N)+1 frequencies generate short signals of different lengths (which are inverse proportional to the frequencies) which determine the original signal and split the DFT of the signal in an optimal way.

The paired transformation is not the Haar transformation:
1) The non normalized Haar matrix can be obtained from the matrix of the paired transformation by permutations of rows and columns;
2) The paired transformation has been derived from the math structure of the Fourier transformation;
3) The paired transformation is defined for other cases of N, as well. For instance, the paired transformation has been defined for even N, for powers of prime numbers L>2.
4) In addition, the paired transform in the 2-D case is not separable and leads to the 2-D frequency and 1-D time representation of the 2-D signal or image. The frequency (p,s) generates the signal f(p,s,t) of duration t=0:(N/2/g.c.d(p,s)-g.c.d(p,s)).
Is the paired transformation wavelet-like transformation? The answer is "Not." The paired transformation exists as a part of the Fourier transformation. The paired representation provides the multiresolution which is much better than wavelets can do, especially in the 2-D and 3-D cases, where the wavelet theory does not exist since the poor concept of separable wavelets is used in such cases.

Below are codes for calculating the fast 1-D discrete paired transform (DPT).
Example: Matrix of the paired transform of order 8:
1 0 0 0 -1 0 0 0
0 1 0 0 0 -1 0 0
0 0 1 0 0 0 -1 0
0 0 0 1 0 0 0 -1
1 0 -1 0 1 0 -1 0
0 1 0 -1 0 1 0 -1
1 -1 1 -1 1 -1 1 -1
1 1 1 1 1 1 1 1
For more examples, see the demo-code show_pairedmatrix.m

These codes can be tested by the following program with an example for N=8.
% Call: fst_1d.m
% 1-D fast direct paired transform
% A --> A of lenght N=2**M, M>1.
% can be used for a real and complex input A function A=fst_1d(A)
ND=length(A);
MD=log2(ND);
LK=0; NK=ND;
I=1; II=1;
while I <= MD
NK=bitshift(NK,-1);
LK=LK+NK; J=II;
while J <= LK
J1=J+NK;
T=A(J1); T1=A(J);
A(J1)=T1+T;
A(J) =T1-T;
J=J+1;
end;
II=LK+1; I=I+1;
end;

% call: fastpaired_1d.m
function y=fastpaired_1d(x)
N=length(x);
if N==1
y=x;
else
N2=bitshift(N,-1);
x1=x(1:N2);
x2=x(N2+1:N);
y1=x1+x2;
y2=x1-x2;
y=[y2 fastpaired_1d(y1)];
end;

% call: paired_matrix.m
% calculate the matrix NxN of the paired transform
% when N is a power of two
function PM=paired_matrix(N)
PM=zeros(N);
for m=1:N
y=zeros(1,N);
y(m)=1;
PM(:,m)=fst_1d(y);
% PM(:,m)=fastpaired_1d(y);
end;