Basic Kronecker Notes
Basic Kronecker Notes
Introduction
In this work we describe the importance of the kronecker product as a
mathematical language for the formulation of fast Fourier transform
(FFT) algorithms as well as its use as a tool aid in their analysis,
design, implementation and modification. We first present a brief
introduction of the FFT as an efficient algorithm for computing the
discrete Fourier transform (DFT). The DFT is presented in matrix form
and the FFT is presented as a factorization of this DFT matrix into
various factors. Since this factorization is not unique, we can get
many factorizations. In principle, each factorization can be associated
with an FFT algorithm.
This process of factoring the DFT matrix may become very tedious and
cumbersome and a methodology for producing this factorization is
always useful. In their tutorial work, J. Johnson, R. Johnson, D.
Rodriguez, and R. Tolimieri [1], presented a methodology for the
factorization of the DFT matrix using kronecker product algebra and an
associated set of permutation operations.
We describe this
methodology in this work. We then proceed to describe the work of J.
Granata, M. Conner, and R. Tolimieri presented in [2] where they
explain how to use the kronecker product as a mathematical language
to aid in the programming and implementation of FFTs and other
digital signal processing (DSP) operations.
The main objective of our work is to describe, in a more simplified and
concise manner, how the kronecker product can assist in the
implementation of the FFTs. We finish our work by presenting some
examples of FFTs in kronecker product form and show how we can
obtain other formulations using basic algebraic properties. One of the
advantages of obtaining different mathematical formulations is that
some of the formulations are better matched to certain computer
architectures than others.
The FFT is an efficient algorithm for computing the DFT. The DFT of an
arbitrary discrete signal x(n), of length N, is given by
N 1
X ( k ) = x ( n )e
j 2nk
N
k = 0,1,..., N 1;
j = 1
(1)
n=0
The DFT can be obtained from the Fourier transform X() of x(n) by
uniformly sampling X() at N points = k, k=0,1,,N-1. The DFT of
the signal x(n) can also be expressed in matrix form, after expanding
the summation operation given in (1) as X=FNx. Here, the signal x(n)
and its transform X(k)have been written in column vector form, with
their entries in the natural order, starting their indexation at 0 and
ending at N-1 for both the k and n variables. The matrix FN is then
given by
FN = [W Nkn ]
WN = e
j 2
N
(2)
;
k , n = 0,1,..., N 1
X (k ) = x(n)W 4kn
(3)
n=0
X (0) 1 1
X (1) 1 W
4
=
X (2) 1 W 42
3
X (3) 1 W 4
1
2
4
W
1
W 42
1 x ( 0)
W 43 x(1)
W 42 x(2)
W 4 x(3)
[ ]
F4 = W 4kn
k , n = 0 ,1, 2 , 3
1
1
1 1
1 j 1 j
=
1 1 1 1
1 j 1 j
(4)
A B = [a kl B] k ,l = 0,1,..., R 1
(5)
a
As an example, take R=S=2. Let A = 00
a10
a B a 01 B
C = A B = [a kl B ] = 00
a10 B a11 B
a 00 b00
a b
C = 00 10
a10 b00
a10 b10
a 00 b01
a 01 b00
a 00 b11
a 01 b10
a10 b01
a10 b11
a11 b00
a11 b10
a 01 b01
a1b11
a11 b01
a11 b11
a 01
b
, B = 00
a11
b10
b01
b11
(6)
If we let A=I2, the identity matrix, and set B=F2, the DFT matrix of
order 2, we then get C= AB= I2F2.
Thus
1 0 1 1
C=
0 1 1 1
F
C= 2
0
1 1
0 1 1
=
F2 0 0
0 0
(7)
0 0
0 0
1 1
1 1
1
0
by noticing that I2F2 F2I2 =
1
0 1 0
1 0 1
0 1 0
1 0 1
(8)
0
F2
0
a 0
a
0 1
a
0 2
a
F2 3
a 4
a 5
(9)
1 0
1 1 0
0
0 a 0 a 0 + a1
0 a1 a 0 a1
0 a 2 a 2 + a 3
=
0 a 3 a 2 a 3
1 a 4 a 4 + a 5
1 a 5 a 4 a 5
(10)
b3 = 1 1 0
b4 1 1 0
b5
0
b
6
b7
0 0
1 0
0 1
0 0
a 0
a
1
0 a 2
0 a 3
0 a 4
1 a 5
a
6
a 7
(11)
a 0
a
1
a 2
I 4 a3
I 4 a 4
a 5
a
6
a 7
(12)
b0 1
b 0
1
b2 0
b3 = 0
b4 1
b5 0
b 0
6
b7 0
0 0 0
1 0 0
0 1 0
0 0 1
0 0 0
1 0 0
0 1 0
0 0 1
0 a 0
0 1 0 0 a1
0 0 1 0 a 2
0 0 0 1 a 3
1 0 0 0 a 4
0 1 0 0 a 5
0 0 1 0 a 6
0 0 0 1 a 7
1
(13)
(14)
(15)
X (k ) = x(n)e
j 2nk
N
k = 0,1,..., N 1;
j = 1
(16)
n =0
X = FN x = ( FR I S )T N , S ( I R FS ) PN , S x
(17)
(18)
References
[1] R. J. Johnson, J. J. Johnson, D. Rodriguez, R. Tolimieri, A
Methodology for Designing, Modifying, and Implementing Fourier
Transform Algorithms on Various Architectures, Journal of Circuits,
Systems, and Signal Processing, Vol.9, No. 4, Birkhuser, 1990.
[2] J. Granata, M. Conner, and R. Tolimieri, The Tensor Product: A
Mathematical Programming Language for FFTs and other Fast DSP
Operations, IEEE SP Magazine, 1992, Vol. 9, No. 1, page 40-48.
[3] R. Tolimieri, M. An, C. Lu, Algorithms for Discrete Fourier
Transform and Convolution, Second Edition, Springer-Verlag, 1997.