3
In the above, the basis functions
1
...
1
,
0
,
,
,
],
,
[
*
−
=
N
n
m
l
k
n
m
a
kl
are chosen carefully to
satisfy the following two properties:
Orthonormality:
]
'
,
'
[
]
,
[
]
,
[
*
'
'
1
0
1
0
l
l
k
k
n
m
a
n
m
a
l
k
N
m
N
n
kl
−
−
=
∑∑
−
=
−
=
δ
Completeness:
]
'
,
'
[
]
'
,
'
[
]
,
[
*
1
0
1
0
n
n
m
m
n
m
a
n
m
a
kl
N
k
N
l
kl
−
−
=
−
=
−
=
From (*), it can be seen that for a given (
k,l)
, computation of
v
[
k,l
] need approximately
2
N
“+” and “x” operations.
Î
To compute v[
k,l
] for all
k, l
=0,1,…N-1 needs
4
N
additions & multiplications.
Separable Unitary Transforms
In order to reduce the computations, most practical algorithm uses the so called
separable
unitary transform
.
In this case
]
,
[
n
m
a
kl
is separable,
]
[
]
[
]
,
[
n
b
m
a
n
m
a
l
k
kl
=
)
,
(
)
,
(
n
l
b
m
k
a
=
Where the transforms (1-D) obtained by
a
(
k,m
) and
b
(
l,n
) are both unitary, i.e.
−
−
−
−
=
)
1
,
1
(
)
0
,
1
(
)
1
,
1
(
)
0
,
1
(
)
1
,
0
(
)
1
,
0
(
)
0
,
0
(
N
N
a
N
a
a
a
N
a
a
a
A
L
O
M
L
and similarly for B are unitary matrices.
In most case, there is no difference between horizontal and vertical directions, so we further
choose
]
,
[
]
,
[
m
k
b
m
k
a
=
or
B
A
=
With the above simplification