The Fast Vector Transform

:
algorithms and applications to
multicarrier communication
systems
Page 1 of 77
The Fast Vector Transfom:
algorithms and applications to multicarrier
communication systems
A project submitted to the faculty of
San Francisco State University
In partial fulfillment of
The requirements for
The degree
Master of Science
In
Engineering: Computer and Communications
By
Kyung Tae, Kang
San Francisco, California
May, 2007
Page 2 of 77
CERTIFICATION OF APPROVAL
I certify that I have read the report on Implementation and performance of The Fast Vector
Transform: algorithms and applications to multicarrier communication systems by Kyung
T, Kang and that in my opinion that this work meets the criteria for approving a research
project submitted in partial fulfillment of the requirements for the degree: Master of
Science in Engineering: Computer and Communications at San Francisco State University.
_______________________________________
Dr. Todor Cooklev
Professor of Electrical Engineering, School of Engineering
__________________________________________
Dr. Tom Holton
Professor of Electrical Engineering, School of Engineering
__________________________________________
Dr. Hamid Shahnasser
Professor of Electrical Engineering, School of Engineering
__________________________________________
Page 3 of 77
ACKNOWLEDGEMENTS
I would like to thank Dr. Todor Cooklev for his constant and kind support
during the project.
Importantly, I would like to thank my parents for their love and support
throughout my studies
Kyung T, Kang
May 2007
Page 4 of 77
The Fast Vector Transform
Abstract
The Vector transform (VT) has recently been shown to be an alternative to the
discrete Fourier fransform (DFT). However until recently no efficient algorithms for
the vector transforms were known. We develop novel algorithms for the VT, called
fast vector transforms (FVT). The FVT algorithms proposed here are comparable to
the well-known decimation-in-time (DIT) and decimation-in-frequency (DIF)
algorithms. We advance recursive and non-recursive vector transform algorithms. We
review fast algortims such as the fast Fourier transform (FFT) and fast Hartley
transform (FHT). One application of the proposed FVT is in multicarrier wireless
systems, where it outperforms the conventional DFT-OFDM system. We also
construct a vector transform-based system for multicarrier modulation with multiple
transmit and receive antennas, and show that it outperforms the corresponding
conventional multiple-input multiple-output (MIMO) OFDM system.
.
Page 5 of 77
TABLE OF CONTENTS
Abstract ................................................................................................................................ 5
Chapter 1 Introduction ......................................................................................................... 8
1.1The DFT and the FFT ................................................................................................. 8
1.2Radix-2 algorithm ..................................................................................................... 10
1.3Radix-4 algorithm ..................................................................................................... 14
1.4 The Hartley transform and the FHT ........................................................................ 19
Chapter 2 OFDM ............................................................................................................... 22
2.1. Definition ............................................................................................................... 22
2.3. Conventional OFDM .............................................................................................. 26
3. The Vector Transform (VT) ........................................................................................... 29
3.2. Real- Valued Kernel Vector Transform (VT) .......................................................... 37
CHAPTER 4 Fast Vector Transform ................................................................................. 40
4.1 Radix-2 FVT ........................................................................................................... 40
4.2 FVT Radix-4 ............................................................................................................ 44
CHAPTER 5 VT Application of VT to OFDM ................................................................. 49
5.2Multiple-input multiple-output (MIMO) OFDM .......................................................... 53
References .......................................................................................................................... 57
APPENDIX Ⅰ ................................................................................................................... 60
A. Radix-2 FVT ................................................................................................................ 60
Recursive algorithms: ...................................................................................................... 60
1. ivt2.m (inverse FVT radix 2) ..................................................................................... 60
2. ivtfft.m (sub-function of inverse radix 2 FVT) .......................................................... 60
3. vt2.m (radix-2 FVT) .................................................................................................. 61
4. vtfft.m (sub-function of FVT radix-2) ....................................................................... 61
Non-recursive algorithms: ............................................................................................... 62
5. ivtfft2.m (non-recursive inverse FVT radix-2) .......................................................... 62
6. vtfft2.m (non-recursive FVT radix-2) ........................................................................ 63
B. Radix-4 FVT ............................................................................................................. 64
7. ivt4.m ( inverse FVT radix-4) .................................................................................... 64
8 ivtfft4.m (sub-function of inverse FVT radix-4) ........................................................ 65
9 vt4.m (FVT radix-4) ................................................................................................... 66
10 vtfft4.m (sub-function of FVT radix-4) .................................................................... 66
APPENDIXⅡ .................................................................................................................... 68
VT-OFDM ........................................................................................................................ 68
1.VTbasedOFDM.m .......................................................................................................... 68
2. qpskmod.m ................................................................................................................. 72
3. giins.m ....................................................................................................................... 73
4. makeVector.m ............................................................................................................ 73
Page 6 of 77
5. ivt.m ........................................................................................................................... 74
6.vt.m ............................................................................................................................. 74
7. vector_guard_ins.m .................................................................................................. 75
8 comb.m ....................................................................................................................... 75
9. girem.m ...................................................................................................................... 76
10 qpskdemod.m ............................................................................................................ 76
LIST OF FIGURES

LIST OF TABLES

LIST OF Matlab programs
Page 7 of 77
Chapter 1 Introduction
1.1 The DFT and the FFT
The Decrete Fourier Transform (DFT) is of fundamental importance to signal processing
and communications. The DFT of a time sequence
[ ] x n
is defined as [1]:
1
0
[ ] W [ ]
N
nk
N
n
X k x n

·
·
¿
,
0,1,..., 1 k N ·
, (1)
2
W
j N
N
e
r
· .
In general, the data sequence
[ ] x n
is also assumed to be complex valued. Similarly, the
IDFT is defined as
1
0
1
[ ] W [ ]
N
nk
N
n
N
x n X k

·
·
¿
,
0,1,..., 1 n N ·
. (2)
Since DFT and IDFT involve basically the same type of computations, our discussion of
efficient computational algorithms for the DFT applies as well to the efficient computation
Page 8 of 77
of the IDFT. We observe that for each value of k, direct computation of
[ ] X k
involves N
complex multiplications (4N real multiplications) and N-1 complex additions (4N-2 real
additions). Consequently, the computation of all N values of the DFT requires N
2
complex
multiplications and N
2
-N complex additions. Direct computation of the DFT is basically
inefficient primarily because it does not exploit the symmetry and periodicity properties of
the phase factor
W
N
. In particular, these two properties are:
The computationally efficient algorithms described in this chapter, known collectively as
fast Fourier transform (FFT) algorithms, exploit these two basic properties of the phase
factor.
The fast Fourier transform (FFT) is a faster version of the DFT. It is not a new kind
of transform different from the DFT. Instead it is simply an algorithm for computing the
DFT, and its output is precisely the same set of complex values. The FFT algorithm
eliminates most of the repeated complex products in the DFT, and its execution n time is
much shorter [1-3]. Many tricks and techniques have been developed to speed up the
computation of FFTs.
The basic idea behind decimation-in-time FFT algorithm is to decompose
sequentially the N-point sequence
[ ] x n
into sets of smaller and smaller subsequences and
then form a weighted combination of the DFTs of these subsequences. The same idea can
be applied to the N-point DFT sequence
[ ] X k
to decompose it sequentially into sets of
Page 9 of 77
/ 2
: W W
: W W
k N k
N N
k N k
N N
Symmetry property
Periodicity property
+
+
·
·
smaller and smaller subsequences. This approach leads to another class of DFT
computation schemes collectively known as the decimation-in-frequency (DIT) FFT
algorithm. Basically, the computational problem for the DFT is to compute the sequence
[ ] X k
of N complex-valued numbers, given another sequence of data
[ ] x n
of length N,
according to the equation (1).
1.2 Radix-2 algorithm
The simplest and most common form of the Cooley-Tukey algorithm is called radix-2
decimation-in-time (DIT) FFT: it divides the problem size into two interleaved halves with
each recursive stage. Recall that the DFT is defined by the formula: Radix-2 DIT first
computes the Fourier transforms of the even-indexed numbers
[0], [1]... [ 2] x x x n
, and of
the odd-indexed numbers
[1], [3]... [ 1] x x x n
, and then combines those two results to
produce the Fourier transform of the whole sequence. Let us consider the computation of
the N = 2
v
point DFT by the divide-and conquer approach We split the N-point data
sequence into two N/2-point data sequences
1
[ ] f n
and
2
[ ] f n
, corresponding to the even-
numbered and odd-numbered samples of
[ ] x n
, respectively, that is,
1 2
[ ] [2 ], [ ] [2 1], f n x n f n x n · · +

0,1,..., / 2 1 n N ·
Thus
2
[ ] f n
and
2
[ ] f n
are obtained by decimating
[ ] x n
by a factor of 2, and hence the
resulting FFT algorithm is called a decimation-in-time algorithm.
Now the N-point DFT equation (1) can be expressed in terms of the DFT's of the decimated
sequences as follows:
Page 10 of 77
[ ] W [ ] W [ ]
nk nk
N N
n even n odd
X k x n x n
· ·
· +
¿ ¿
, (3)
and,
/ 2 1 / 2 1
2 (2 1)
0 0
[ ] W [2 ] W [2 1]
N N
nk n k
N N
n n
X k x n x n

+
· ·
· + +
¿ ¿
,
0,1,..., 1 n N ·
, (4)
and we use another propertiy of DFT kernel which is
2
/ 2
W W
N N
· . It can be derived in
following way:

2
2
/ 2
2 2
W exp exp W
/ 2
N N
j j
N N
r r | ` ] ]
· · ·
÷
] ]
] ] . ,
, (5)
and, taking
2
/ 2
W W
N N
· into accout, the equation can be expressed as

/ 2 1 / 2 1
/ 2 1 / 2 2
0 0
1 2
[ ] W [ ] W W [ ]
[ ] W [ ], 0,1,..., 1
N N
nk k nk
N N N
n n
k
N
X k f n f n
F n F n k N

· ·
· +
· + ·
¿ ¿
, (6)
where
1
[ ] F n
and
2
[ ] F n
are the N/2-point DFTs of the sequences
1
[ ] f n
and
2
[ ] f n
,
respectively. Since
1
[ ] F n
and
2
[ ] F n
are periodic, with period N/2, we have
1
[ / 2] F n N +
=
1
[ ] F n
and
2
[ / 2] F n N +
=
2
[ ] F n
. In addition, taking the factor

/ 2
W W
k N k
N N
+
· into account,
the equation may be expressed as

1 2
1 2
[ ] [ ] [ ]
[ ] [ ] [ ]
2
k
N
k
N
X k F k W F k
N
X k F k W F k
· +
+ ·
,
2
0,1,..., 1
N
n ·
. (7)
Fig.1. indicates the computation involved in computing
[ ] X k
according to Equation (7),
for an 8-points.
Page 11 of 77
[0] x
[4] x
[2] x
[6] x
[1] x
[5] x
[3] x
[7] x
N/2-point
DFT
N/2-point
DFT
[0] X
[1] X
[2] X
[3] X
[4] X
[5] X
[6] X
[7] X
1
[0] F
1
[1] F
1
[2] F
1
[3] F
2
[0] F
2
[1] F
2
[2] F
2
[3] F
0
N
W
1
N
W
2
N
W
3
N
W
0
N
W −
1
N
W −
2
N
W −
3
N
W −
Fig.1. Flow graph of the decimation-in-time decomposition of an N-point DFT computation
into two N/2-point DFT computations (N=8)
We observe that the direct computation of
1
[ ] F k
requires (N/2)
2
complex multiplications.
The same applies to the computation of
2
[ ] F k
. Furthermore, there are N/2 additional
complex multiplications required to compute
2
W [ ]
k
N
F k . Hence the computation of
[ ] X k

requires 2(N/2)
2
+ N = N
2
/2 + N complex multiplications. This first step results in a
reduction of the number of multiplications from N
2
to N
2
/2 + N, which is about a factor of
2 for N large.
The decimation of the data sequence can be repeated again and again until the
resulting sequences are reduced to two-point sequences. For N = 2
v
, this decimation can be
performed v = log
2
N times.
Page 12 of 77
0
2
W
2
8
W
1 −
0
2
W
1 −
0
2
W
1 −
0
2
W
1 −
1
4
W
1 −
1 −
1 −
1 −
0
4
W
0
4
W
1
4
W
0
8
W
1
8
W
3
8
W
[0] x
[4] x
[2] x
[6] x
[1] x
[5] x
[3] x
[7] x
[0] X
[1] X
[2] X
[3] X
[4] X
[5] X
[6] X
[7] X
Fig.2. Eight-point decimation-in-time FFT algorithm
Observe that the basic computation performed at every stage, as illustrated in Fig.2 is to
take two complex numbers, say the pair (a,b), multiply b by W
k
N
, and then add and subtract
the product from a to form two new complex numbers (A, B). This is basic computation,
which is shown in Fig.3 is called a butterfly because the flow graph resembles a butterfly.
W
k
N
a
1 −
W
k
N
A a b = +
W
k
N
B a b = −
b
Fig.3. Basic butterfly computation in radix-2 FFT algorithm
Page 13 of 77
In general each butterfly involves one complex multiplication and two complex additions.
For N = 2
v
there are N/2 butterflies per stage of the computation process and
2
log N
stages.
Therefore, as previously indicated, the total number of complex multiplications in
2
( / 2) log N N
and complex additions is
2
log N N
.
1.3 Radix-4 algorithm
When the number of data points N in the DFT is a power of 4 (i.e., N = 4
v
), we can, of
course, always use a radix-2 algorithm for the computation. However, for this case, it is
more efficient computationally to employ a radix-4 FFT algorithm.
Let us re-derive the radix-4 decimation-in-frequency algorithm by breaking the N-
point DFT formula (1) into four smaller DFTs. We have
3
1 1 1
1 4 2 4
3 0
4 2 4
1 1 1
/ 4 1 4 4 4
/ 4 / 2 3 / 4
0 0 0 0
[ ] [ ] W [ ] W [ ] W [ ] W
3
[ ] W W W W W W W
4 2 4
N N N
N
kn kn kn kn
N N N N
N N N n n n n
N N N
N
kn Nk kn Nk kn N kn
N N N N N N N
n n n n
X k x n x n x n x n
N N N
x n x n x n x n

· · · ·

· · · ·
· + + +
] ] ]
· + + + + + +
] ] ]
] ] ]
¿ ¿ ¿ ¿
¿ ¿ ¿ ¿
. (8)
From the definition of the twiddle factors, we have

/4 k /2 3 /4
W ( ) , W ( 1) , W ( )
kN kN k kN k
N N N
j j · · · , (9)
and, taking the property of the twiddle factors (8) into account, the equation is expressed as:

/ 4 1
0
3
[ ] [ ] ( ) ( 1) ( ) W
4 2 4
N
k k k nk
N
n
N N N
X k x n j x n x n j x n

·
] ] ] ]
· + + + + + +
] ] ] ]
] ] ] ]
¿ . (10)
The relation is not an N/4-point DFT because the twiddle factor depends on N and not on
N/4. To convert it into an N/4-point DFT we subdivede the DFT sequence into four N/4-
Page 14 of 77
point subsequences, X(4k), X(4k+1), X(4k+2), and X(4k+3), k = 0, 1, ..., N/4. Thus, we
obtain the radix-4 decimation-in frequency DFT as
/ 4 1
0
/4
0
/ 4 1

/4
0
3
[4 ] [ ] W W
4 2 4
3
[4 1] [ ] W W
4 2 4
3
[4 2] [ ]
4 2 4
N
kn
N N
n
N
n kn
N N
n
N N N
x k x n x n x n x n
N N N
x k x n jx n x n jx n
N N N
x k x n x n x n x n

·

·
] ] ] ]
· + + + + + +
]
] ] ]
] ] ]
]
] ] ] ]
+ · + + + +
]
] ] ]
] ] ]
]
] ] ]
+ · + + + +
] ] ]
] ] ]
¿
¿
/ 4 1
2
/4
0
/ 4 1
3
/4
0
W W
3
[4 3] [ ] W W
4 2 4
N
n kn
N N
n
N
n kn
N N
n
N N N
x k x n jx n x n jx n

·

·
]
]
]
] ] ] ]
+ · + + + +
]
] ] ]
] ] ]
]
¿
¿
, (11)
where we have used the property W
N
4kn
= W
kn
N/4
. Note that the input to each N/4-point DFT
is a linear combination of four signal samples scaled by a twiddle factor. This procedure is
repeated v times, where v = log
4
N.
For the purpose of deriving a matrix form, let us re-derive the radix-4 decimation-
in-frequency algorithm by breaking the N-point DFT formula into four smaller DFTs.
3
4
0
( / 4) 1
/ 4
0
[ , ] W [ , ] W
[ , ] [ , ] W
0,1, 2, 3; 0,1, 2, 3; 0,1, 2,..., / 4 1
lq lq
N
l
N
mq
N
M
X p q F l q
F l q x l m
p l q N
·

·
] ·
]
·
· · ·
¿
¿
, (12)
where
[ , ] [4 ] x l m x m l · +
and [ , ] [ ]
4
N
X p q X p q · + . Thus, the four N/4-point DFTs
[ , ] F l q

obtained from the above equation are combined to yield the N –point DFT. The expression
for combining the N/4-point DFTs defines a radix-4 decimation-in-time butterfly, which can
be expressed in matrix form as
Page 15 of 77
0 2 3
0 / 4 2( / 4) 3( / 4)
0 / 4 2( / 4) 3( / 4)
0
W [0, ] W [1, ] W [2, ] W [3, ]
[0, ]
W [0, ] W [1, ] W [2, ] W [3, ] [1, ]
[2, ]
W [0, ] W [1, ] W [2, ] W [3, ]
[3, ]
W [0,
q q q
N N N N
q N q N q N
N N N N
q N q N q N
N N N N
N
F q F q F q F q
X q
F q F q F q F q X q
X q
F q F q F q F q
X q
F q
+ + +
+ + +
+ + +
]
]
+ + +
]
·
]
+ + +
]
]
3 / 4 2( 3 / 4) 3( 3 / 4)
] W [1, ] W [2, ] W [3, ]
q N q N q N
N N N
F q F q F q
+ + +
]
]
]
]
]
]
+ + +
]
. (13)
Note that each matrix involve involves 12 complex multiplications, since
0
W
N
=1, and 12
complex additions. By performing the one more step, it is possible to reduce the complex
multiplications to form 12 to 3
0
1
2
3
W [0, ]
[0, ] 1 1 1 1
W [1, ] [1, ] 1 1
[2, ] 1 1 1 1
W [2, ]
[3, ] 1 1
W [3, ]
N
N
N
N
F q
X q
F q X q j j
X q
F q
X q j j
F q
]
] ]
]
] ]

]
] ]
·
]
] ]
]
] ]
]
] ]
]
, (14)
In the case of radix-4 decimation-in-time in matrix form (13), the flow graph can be shown
in Fig.4
Page 16 of 77
2
W
k
N
W
k
N
3
W
k
N
( / 2)
W
k N
N
+
( 3 / 4)
W
k N
N
+
3( 3 / 4)
W
k N
N
+
( / 4)
W
k N
N
+
2( 3 / 4)
W
k N
N
+
2( / 2)
W
k N
N
+
2( / 4)
W
k N
N
+
3( / 4)
W
k N
N
+
3( / 2)
W
k N
N
+
Fig.4. Flow graph of the basic butterfly computation for radix-4
Fig.4. can be redrawn as in Fig 5, which is basically same computation as the butterfly in
matrix form (14).
Page 17 of 77
2
W
k
N
3
W
k
N
1 −
j −
j
j
1
1 −
1 −
1 −
j −
W
k
N
Fig.5. Alternative arrangement of Fig.4 resulting in savings of multiplications
This decimation-in-time procedure can be repeated recursively
4
log N
times. Hence the
resulting FFT algorithm consists of
4
log N
stages, where each stage contains N/4
butterflies. Consequently, the computation burden for the algorithm is
4
(3 / 4) log N N

complex multiplications and
4
(3 ) log N N
additions, which are computed respectively in
Table 1 and Table 2.
Table1: Complexity comparison of complex multiplications Radix-2 FFT and Radix-4 FFT
Page 18 of 77
Complex multiplications
N points
Radix-2 (
2
( / 2) log N N
) Radix-4 (
4
(3 / 4) log N N
)
16 32 24
32 80
64 192 144
128 448
256 1,024 768
512 2,034
1024 5,120 3,840
2048 11,264
4096 24,576 18,432
Complex additions
N points
Radix-2 (
2
log N N
) Radix-4 (
4
(3 ) log N N
)
16 64 96
32 160
64 384 576
128 896
256 2048 3072
512 4,068
1024 10,240 15360
2048 22,528
4096 49,152 73728
Table 2: Complexity comparison of complex addtions Radix-2 FFT and Radix-4 FFT
1.4 The Hartley transform and the FHT
The discrete Hartley transform (DHT) is a real transform with a convolution property
[4],[5] which has been proposed as an alternative to the DFT for real data [4], [6], [7]. It is
indeed an invertible linear transform closely related to the DFT. In the DFT, one multiplies
each input by
2
W cos(2 / ) sin(2 / )
j N
N
e N j N
r
r r

· · , whereas in the DHT each input is
multiplied by simply
cos(2 / ) sin(2 / ) N N r r +
. Thus, the DHT transforms N real numbers
to N real numbers, and exhibits the convenient property of being its own inverse.
Furthermore, the fast algorithms for DHT computation can also reduce the computational
complexity in a similar manner to that of the FFT techniques for the DFT computation. A
properly designed real-input FFT has no more operations in general than the fast Hartley
transfom (FHT), Even if the Hartley transform offers no computational advantages and
recursion over the Fourier transform., it does possess certain structual advantages. We will
Page 19 of 77
therefore discuss the construction of the fast Hartley transform (FHT) mathematically. The
discrete Hartley transform (DHT) of a time sequence
( ) x n
is defined as:

1
0
2
( ) ( ) , 0,1,... 1
N
n
nk
H k x n cas k N
N
r

·
| `
· ·
÷
. ,
¿
, (15)
where

u =cos u +sin u cas
. (16)
In a similar development to the FFT, (15) can be decomposed as
( / 2) 1 1
0 / 2
2 2
( ) ( ) ( )
N N
n n N
nk nk
H k x n cas x n cas
N N
r r

· ·
| ` | `
· +
÷ ÷
. , . ,
¿ ¿
, (17)
Let n = n + N/2 in the second summation of (17)
( / 2) 1
0
2 2 [ / 2]
( ) ( )
2
N
n
nk N k n N
H k x n cas x n cas
N N
r r

·
¹ ¹ + | ` | ` | `
· + +
' '
÷ ÷ ÷
. , . , . , ¹ ¹
¿
, (18)
Using the identities
sin( ) sin cos cos sin
cos( ) cos cos sin sin
A B A B A B
A B A B A B
+ · +
+ ·
, (19)
for odd k,
2 [ / 2] 2 2
cos cos( ) sin sin( )
2 2
sin cos( ) cos sin( )
2 2
cos sin
2
k n N nk nk
cas k k
N N N
nk nk
k k
N N
nk nk
N N
nk
cas
N
r r r
r r
r r
r r
r r
r
+ | ` | ` | `
·
÷ ÷ ÷
. , . , . ,
| ` | `
+ +
÷ ÷
. , . ,
| ` | `
·
÷ ÷
. , . ,
| `
·
÷
. ,
, (20)
and for even k,
2 [ / 2] 2 2 2
cos sin
k n N nk nk nk
cas cas
N N N N
r r r r + | ` | ` | ` | `
· + ·
÷ ÷ ÷ ÷
. , . , . , . ,
, (21)
Page 20 of 77
Using (20) and (21), (18) becomes
( / 2) 1
0
2
( ) ( ) ,
2
N
n
N nk
H k x n x n cas for evenk
N
r

·
] | ` | `
· + +
÷ ÷ ]
. , . , ]
¿
, (22)
and
( / 2) 1
0
2
( ) ( ) ,
2
N
n
N nk
H k x n x n cas for odd k
N
r

·
] | ` | `
· +
÷ ÷ ]
. , . , ]
¿
, (23)
let k =2k for even k, and let k =2k+1 for odd k, equation (22) and (23) become
( )
( / 2) 1
0
2 2
(2 )
2
N
n
N n k
H k x n x n cas
N
r

·
] | ` | `
· + +
÷ ÷ ]
. , . , ]
¿
, (24)
( )
( / 2) 1
0
2 [2 1]
(2 1)
2
N
n
N n k
H k x n x n cas
N
r

·
] + | ` | `
+ · +
÷ ÷ ]
. , . , ]
¿
, (25)
Furthermore, using (19)

2 [2 1] 2 2 2 2 2 2 2 2 2 2
cos cos sin sin cos sin
k k n n k n k n n k n k
cas
N N N N N N N
r r r r r r r ¹ ¹ ¹ ¹ + | ` | ` | ` | ` | ` | ` | `
· + +
' ' ' '
÷ ÷ ÷ ÷ ÷ ÷ ÷
. , . , . , . , . , . , . , ¹ ¹ ¹ ¹
,(26)
and
2 2 [ ]
sin sin
2 2 [ ]
cos cos
kn k N n
N N
kn k N n
N N
r r
r r
| ` | `
·
÷ ÷
. , . ,
| ` | `
·
÷ ÷
. , . ,
, (27)
equation (15) becomes
( / 2) 1
0
2 2 2 2 2 2 [ ]
(2 1) ( ) ( ) cos sin
2
N
n
N n n k n k N n
H k x n x n cas cas
N N N N
r r r r

·
¹ ¹ ] | ` | ` | ` | `
+ · + +
' '
÷ ÷ ÷ ÷
]
] . , . , . , . , ¹ ¹
¿
, (28)
Substituting N/2 – n for
n in the second summation, (22) becomes
( / 2) 1
0
2 2 2 2
(2 1) ( ) ( ) cos ( ) sin
2 2
N
n
N n N n n k
H k x n x n x n x N n cas
N N N
r r r

·
¹ ¹ ] ] | ` | ` | ` | `
+ · + +
' '
÷ ÷ ÷ ÷ ] ]
] . , . , . , . , ] ¹ ¹
¿
, (29)
Page 21 of 77
Equation (26) and (27) become
( / 2) 1
0
2 2
(2 ) ( ) ( )
2
N
n
N n k
H k x n x n cas
N
r

·
] | `
· + +
÷
]
] . ,
¿
, (30)
( / 2) 1
0
2 2 2 2 2
(2 1) ( ) ( ) ( ) sin
2 2
N
n
N n k N n n k
H k x n x n cas x n x N n cas
N N N
r r r

·
¹ ¹ ] ] | ` | ` | ` | `
+ · + + +
' '
÷ ÷ ÷ ÷ ] ]
] . , . , . , . , ] ¹ ¹
¿
.(31)
As shown, the Fourer tranform is defined in fields other than the complex field, Whereas
complex additions and multiplications are required for an FFT, the Hartley transform [5][8-
9] requires only real multiplications and additions. The FFT maps a real function of time
into a complex function of frequency, whereas the fast Hartley transform (FHT) maps the
same real-valued function into a real function of frequency. The FHT can be particulary
useful in cases where the phase is not a concern.
Chapter 2 OFDM
2.1. Definition
Frequency division multiplexing (FDM) is a technology that transmits multiple signals
simultaneously over a single transmission path, such as a cable or wireless system. Each
signal travels within its own unique frequency range (carrier), which is modulated by the
data (text, voice, video, etc.). Orthogonal frequency division multiplexing (OFDM) is a
technique that distributes the data over a large number of carriers that are spaced apart at
precise frequencies. This spacing provides the "orthogonality" in this technique, which
prevents the demodulators from detecting frequencies other than their own. Some benefits
of OFDM are:
Page 22 of 77
- High spectral efficiency
- Resiliency to RF interference
- Lower multi-path distortion
OFDM is useful, because in a typical terrestrial broadcasting scenario there are multipath-
channels (i.e. the transmitted signal arrives at the receiver using various paths of different
length). Because multiple versions of the signal interfere with each other (inter symbol
interference (ISI)), it becomes difficult to extract the original information. Channel
simulation allows us to examine the effects of noise and multi-path on the OFDM scheme.
By adding a small amount of random data to the transmitted signal, simple noise can be
simulated. Multi-path simulation involves adding attenuated and delayed copies of the
transmitted signal to the original. This simulates the problems in wireless communication,
in which the signal propagates on many paths. For example, a receiver may detect a signal
via a direct path as well as a path that bounces off a building. The receiver will perform the
inverse of the transmitter by first separating the data into parallel streams. Next, the FFT
will convert these parallel data streams into frequency domain data. The data is now
available in modulated form on the orthogonal carriers. Demodulation down-converts this
information back to the base band. Finally, this parallel data is converted back into a serial
stream to recover the original signal.
OFDM is also referred to as a multi-carrier or as discrete multi-tone modulation. It
is the modulation technique used for digital television in Europe, Japan, and Australia. It is
important that the overall system design be well matched to its service profiles to maximize
the performance of the system and balance the ultimate user experience it provides, relative
to the cost of the operator. OFDM enables the creation of a very flexible system
architecture that can be efficiently used for a wide range of services, including voice and
Page 23 of 77
data. For a mobile system to create a satisfactory user experience, it must provide fast,
ubiquitous, and user-friendly connectivity. OFDM possesses several unique properties that
make it especially well-suited to handle the challenging environmental conditions
experienced by wireless data applications. Many systems currently use OFDM to enhance
their performances. DAB-OFDM forms the basis for the Digital Audio Broadcasting
(DAB) standard in the European market. ADSL-OFDM forms the basis for the global
ADSL (asymmetric digital subscriber line) standard. Wireless local area network
development continues to thrive for wireless point-to-point and point-to-multipoint
configurations using OFDM technology. In a supplement to the IEEE 802.11 standard, the
IEEE 802.11 working group published IEEE 802.11a, which outlines the use of OFDM in
the 5.8-GHz band.
2.2. Orthogonality
In OFDM, the sub-carrier frequencies are chosen so that the sub-carriers are
orthogonal to each other other—meaning that cross-talk between the sub-channels is
eliminated and inter-carrier guard bands are not required [10] [11]. This greatly simplifies
the design of both the transmitter and the receiver, and unlike conventional FDM, a
separate filter for each sub-channel is not required.
Orthogonality also allows for high spectral efficiency, near the Nyquist rate. Almost
the entire available frequency band can be utilized. OFDM generally exhibits an almost
“white” spectrum, which imparts it with benign electromagnetic interference properties,
with respect to other co-channel users. The orthogonality allows for efficient modulator and
demodulator implementation using the FFT algorithm. Although these principles, as well as
some benefits, have been known since the 1960s, OFDM has only recently gained
Page 24 of 77
popularity for wideband communications, as a result of low-cost digital signal processing
components that can efficiently calculate the FFT.
Two periodic signals are said to be orthogonal when the integral of their product over
one period is equal to zero. To maintain orthogonality between sub-carriers, it is necessary
to ensure that the symbol-time contains one or more multiple cycles of each sinusoidal
carrier waveform. Orthogonality is critical because it prevents inter-carrier interference
(ICI). ICI occurs when the integral of the carrier products are no longer zero over the
integration period—signal components from one sub-carrier cause interference on
neighboring sub-carriers. As such, OFDM is highly sensitive to frequency dispersion
caused by Doppler shifts, which results in loss of orthogonality between sub-carriers.
Furthermore, orthogonalty can be defined using matrices. An orthogonal matrix is a real
valued unitary matrix, and is thus always a normal matrix. The normal matrix is a complex
matrix if
T T
· AA A A
where
A
is the conjugate transpose of
T
A
[15]. Although we consider only real matrices
here, this definition can extend to matrices with entries from any field. Orthogonal
matrices arise naturally from inner products, however, as well as for matrices of complex
numbers that lead to the unitary requirement. Thus, finite-dimensional linear isometries—
rotations, reflections, and their combinations—produce orthogonal matrices. The converse
is also true: orthogonal matrices imply orthogonal transformations.
Orthogonal matrices are important for a number of reasons, both practical and
theoretical. The n×n orthogonal matrices form a group—the orthogonal group—which,
with its subgroups, is widely used in mathematics and the physical sciences. Because
floating point versions of orthogonal matrices exhibit advantageous properties, they are key
Page 25 of 77
to many algorithms in numerical linear algebra, such as QR decomposition. As another
example, with appropriate normalization the discrete cosine transform (used in MP3
compression) is represented by an orthogonal matrix.
2.3. Conventional OFDM
Multicarrier modulation is based on the discrete Fourier transform (DFT) in conventional
OFDM, as originally suggested in [1-3], [11]. Fig.6 shows a conventional OFDM
transmitter and receiver. The first two blocks are the serial-to-parallel (S/P) converter and
the bit-to-symbol mapping such as quadrature phase shift keying (QPSK), 16 quadrature
amplitude modulation (16-QAM), or another QAM modulation. Let
[ ] X k
,
0,1,..., 1 k N ·
,
be the sequence of information symbols after the bit-to-symbol mapping. All carriers are
combined using the inverse DFT
*
N
· x F X , (32)
where
*
N
F is the inverse discrete Fourier transform matrix of size N N × , where N is the
number of carriers. Next, Cyclic Prefix (CP) is added to the OFDM symbol. The Cyclic
Prefix prevents inter-symbol interference (ISI), as long as its length exceeds the duration of
the impulse response of the channel. Including the CP, the time to transmit one OFDM
symbol, also called OFDM symbol period, is T
s
=(K+N)T, where T is the sampling period
and K is the number of samples in CP. After the CP has been added the resulting complex
samples are transmitted by an in-phase and quadrature modulator.
S/P
bit-to-symbol
mapping
N-point
IFFT
P/S
Add
CP
[ ] X k [ ] x n [ ]
cp
x m
Page 26 of 77
(a)
P/S
symbol
-to-bit
N-point
FFT
S/P
Remove
CP
N-point
FFT
channel
impulse
response
channel
estimation
synchronization
[ ] Y k
[ ] H k
ˆ
[ ] X k
(b)
Fig. 6 Conventional OFDM transmitter (a) and receiver (b)
In this model the many scattered paths that may exist in a real wireless channel are
replaced by L multipath components. With respect to the baseband, the channel can be
modeled by an FIR model with transfer function

1
0
( ) ( )
L
n
n
H z h n z

·
·
¿
. (33)
The channel impulse response coefficients are modeled as independent zero-mean
random Gaussian processes. To make the CP longer than the channel delay spread, it is
necessary that K L > . In a slowly fading wireless channel where the channel does not
change within one OFDM symbol, the CP converts the linear convolution with the channel
impulse response into a cyclic convolution. The received signal is given by

*
N
· + y HF Xη , (34)
where
Page 27 of 77
0 1 1
1 0 2
1 2 0
N
N N
h h h
h h h
h h h

]
]
]
·
]
]
]
]
H
L
L
L
L
, (35)
is a circular matrix and
η
is a vector with the noise components
[ ] n n
, which can be
assumed to be Gaussian with zero mean and variance
2
0
/ 2 N o · , with
0
N
being the
single-sided power spectral density. In the receiver, shown in Fig.6.b, the CP is removed
and the forward DFT is applied to obtain
*
N
· · +
N N N
Y F y F HF X Fη . (36)
The product
*
N N
F HF is equal to a diagonal matrix with the DFT of the channel impulse
response 2 /
[ ] ( )
j k N
z e
H k H z
r
·
·
on the main diagonal:
[ ]
*
[0] [1] [ 1]
N
diag H H H N ·
N
F HF L
.(37)
This diagonalization effectively decomposes the channel into parallel and decoupled
subchannels. In other words, the frequency-selective channel is transformed into a channel
with flat fading per carrier. In the receiver, the information sequence
[ ] X k
must be
detected from
[ ] Y k
, where

[ ] [ ] [ ] [ ] Y k H k X k k · + O
,
0,1,..., 1 k N ·
. (38)
In the above equation
[ ] k O
is the DFT of the noise. Then, a zero-forcing (ZF) detector can
be used that requires one division per carrier. All commercial systems for multicarrier
modulation use the set of complex exponential functions as orthogonal basis. Recently,
multicarrier modulation systems based on the discrete cosine transform
(DCT) have also been studied [12], [13].
Page 28 of 77
3. The Vector Transform (VT)
The vector transform pair are
1
0
1
[ ] [ ]
N
nk
n
k n
N

·
·
¿
X W x
, (39)
1
0
1
[ ] [ ]
N
nk
k
n k
N

·
·
¿
x W X
, (40)
where
[ ] n x
and
[ ] k X
are sequences of vectors of dimension 1 M × constitute forward and
inverse vector transform if the matrix kernel W of dimension M M × satisfies two
conditions. First, it must provide an orthogonal basis:
1
*
0
N
nk mk
m n
k
N ô

·
·
¿
W W I
,
0 , 1 m n N s s
,(41)
Page 29 of 77
where
*
W means transposition of the matrix and conjugation of the coefficients, and
second, following properties of the W matrix are of interest to the discussion of the vector
transform

( / 2) 1 1
, ,
N N T N
· · · · W I W I W W W . (42)
If (39) is written in a matrix form, then we have
1
1 ( 1)( 1)
[0] ... [0]
[1] ... [1]
... ... ... ... ... ...
[ 1] ... [ 1]
N
N N N
N N

] ] ]
] ] ]
] ] ]
·
] ] ]
] ] ]

] ] ]
X I I I x
X I W W x
X I W W x
.(43)
In general any scalar transform of length MN can be written in the form (43) above,
although the partitioning of the MN MN × transformation matrix of the scalar transform
into
2
N matrices of size M M × is done only artificially.
Vector transforms also have more degrees of freedom than scalar transforms and
must be designed first. One known matrix is
0 1 0 ... 0 0
0 0 1 ... 0 0
= ... ... ... ... ... ...
0 0 0 ... 0 1
-1 0 0 ... 0 0
]
]
]
]
]
]
]
]
W
, (44)
which satisfies conditions (41) and (42) only when it is of dimension / 2 / 2 N N × , or
equivalently when the vectors have / 2 M N · components. Furthermore its elements are
only real numbers. This makes it inconvenient for applications like multicarrier modulation.
The transforms mentioned above are not the only transforms that
can be used to construct multicarrier signals. The goal of this paper is to propose a new
type of multicarrier modulation system. Modulation in the proposed system is performed
Page 30 of 77
using an inverse vector transform, and demodulation is performed using a forward vector
transform. We call the system proposed here VT-OFDM, and the conventional OFDM
system, DFT-OFDM. The vector transform has been shown in [14], [16], [17] to have a
vector-based decorrelation property, where
[ ]
T
i j
E X X
are small for
i j /
and large for
i j ·
.
First, let us begin our discussion with the definition of
[ ] E X
. If X has a single continuous
variable, the expected value of X with density function
( ) f x
is defined by
[ ] ( ) E x f x dx
~
~
·
l
X , (45)
and, considering two random variables, the joint probability function can be used to find the
expected value of functions of two random variables in much the same way as with the
single variable density function. These functions involving both variable x and y will lead
to statistics that will partially characterize the relationships between the two random
variables. In gerneal, the expected value of any function, g(X,Y), can be found from
[ ( , )] ( , ) ( , ) E g g x y f x y dx dy
~ ~
~ ~
·
l l
X Y , (46)
and when
( , ) g x y · XY
, this expected value is known as the correlation and is given by
[ , ] ( , ) E xy f x y dx dy
~ ~
~ ~
·
l l
X Y , (47)
if two random variable that have a correlation of zero are said to be orthogonal. One
statistical parameter related to a pair of random variables is the correlation coefficient. The
correlation coefficient of two random variables,
x
and
y
, when
pXY
is defined as
( , )
( ) ( )
Cov
Var Var
p ·
X Y
XY
X Y
, (48)
where,
( , ) Cov X Y
is the covariance between two random variables:
Page 31 of 77
( , ) [( ( ))( ( ))] Cov E E E · X Y X X Y Y
. (49)
The correlation is 1 in the case of an increasing linear relationship, -1 in the case of a
decreasing linear relationship, and some value in between in all other cases, indicating the
degree of linear dependence between variables. The close the coefficient is to either -1 or 1,
the stronger the correlation between the variables. Therefore, to analyze quantitatively how
much decorrelation and enery packing are achieved by the vector transform based OFDM,
we first suppose use a complex valued kernel of dimension M M × as mentioned in chapter
3 and the vector transform takes as input a sequence of N vectors,
[ ] n x
generates as output
another sequence of N vectors
[ ] k X
are sequences of vectors of dimension 1 M × .
Considering a block of image data of N columns and M rows and taking each column as a
vector, then the block of complex-valed becomes a set of N vectors, then the block of
complex-valued data becomes a set of N vectors with each vector having M components as
shown below.
0.0 0.1 0. 1
1.0 1.1 1. 1
1.0 1.0 1. 1
N
N
M M M N
x x x
x x x
x x x

]
]
]
]
]
]
K
K
K K K K
K
, (50)
and
0.0 0.1 0. 1
1.0 1.1 1. 1
0 1 2
1.0 1.1 1. 1
...
N
N
M M M N
x x x
x x x
x x x

] ] ]
] ] ]
] ] ]
· · ·
] ] ]
] ] ]
] ] ]
x x x
K K K
. (51)
By taking the vector transform of this set of N vectors, we obtain another set of N vectors,
Similar to the scalar transforms, the vectors in the vector transform domain are less
correlated than the vectors in the data transform domain, and the energy is concentrated in
Page 32 of 77
fewer vectors in the vector transform domain than in the data domain. For example,
correlation of a pair of vector sequences of dimension 2 1 × can be shown as follows:
0, 0, 0, 1,
1, 0, 1, 1,
[ ] [ ]
1
[ ]
1
[ ] [ ]
m n m n
T
i j
m n m n
E x x E x x
E
E x x E x x
p
p
]
]
· · ]
]
] ]
]
x x
, (52)
If N = 8 and
p
=0.91, the correlation matrix of two data vectors
m n
and x x can be
respectively shown as follows:
| |
1.000 0.910
[ ] 0.91
0.910 1.000
T m n
m n
E

]
·
]
]
x x
, (53)
the kernel of an 8-point VT is
8
-0.7071 + 0.0000i, -0.6937 - 0.1369i
0.6937 - 0.1369i -0.7071 + 0.0000i
]
·
]
]
W
. (54).
Using the equation in (39), the correlation of a pair of
i
X
and
j
X
in the vector transform
domain can be written as follows:
1 1
0 0
1 1
0 0
1 1
[ ] ( )
1
( )
N N
T mi T nj T
i j m n
m n
N N
mi T nj T
m n
m n
E
N N
E
N

· ·

· ·
] | `| `
·
] ÷ ÷
. ,. , ]
] ·
]
¿ ¿
¿¿
X X W x x W
W x x W
, (55).
If we consider the sum of elements for i = j in each matrix, the correlations in the vector
transform domain are computed in a following way:
Page 33 of 77
0 0
1 1
2 2
6.3435 5.7726
[ ]
5.7726 6.3435
6.3721 - 0.0000i 0.1875 - 1.1020i
[ ]
0.1875 + 1.1020i 6.3128 - 0.0000i
6.3107 - 0.0000i 0.1880 - 1.1015i
[ ]
0.1880 + 1.1015i 6.369
T
T
T
E
E
E
]
·
]
]
]
·
]
]
·
X X
X X
X X
3 3
4 4
5 5
9 - 0.0000i
6.3369 + 0.0000i 5.7687 - 0.0000i
[ ]
5.7687 + 0.0000i 6.3415 - 0.0000i
6.3369 + 0.0000i 5.7687 - 0.0000i
[ ]
5.7687 + 0.0000i 6.3415 - 0.0000i
6.36
[ ]
T
T
T
E
E
E
]
]
]
]
·
]
]
]
·
]
]
·
X X
X X
X X
6 6
7 7
86 - 0.0000i 0.1876 - 1.1012i
0.1876 + 1.1012i 6.3077 + 0.0000i
6.3375 - 0.0000i 0.2169 - 1.0952i
[ ]
0.2169 + 1.0952i 6.3366 + 0.0000i
6.3063 - 0.0000i 0.1887 - 1.1006
[ ]
T
T
E
E
]
]
]
]
·
]
]
·
X X
X X
i
0.1887 + 1.1006i 6.3657 + 0.0000i
]
]
]
Page 34 of 77
0 0 0 1
0 2
6.3435 5.7726 -0.0178 + 0.0024i 0.0083 + 0.0026i
[ ] [ ]
5.7726 6.3435 -0.0185 + 0.0026i 0.0066 + 0.0024i
-0.0033 - 0.0058i -0.0625 - 0.0064i
[ ]
0.0026 - 0.0064i -
T T
T
E E
E
] ]
· ·
] ]
] ]
·
X X X X
X X
0 3
0 4
-0.2601 + 0.0139i -0.0948 + 0.0153i
[ ]
0.0625 - 0.0058i -0.2500 + 0.0153i -0.1189 + 0.0139i
0.4224 - 0.0292i 0.0876 - 0.0320i
[ ] [
0.4123 - 0.0320i 0.1269 - 0.0292i
T
T
E
E E
] ]
·
] ]
] ]
]
·
]
]
X X
X X
0 5
0 6 0 7
-0.1188 - 0.0141i -0.2514 - 0.0155i
]
-0.0947 - 0.0155i -0.2615 - 0.0141i
-0.0618 + 0.0058i 0.0031 + 0.0064i 0.0073 - 0.00
[ ] [ ]
-0.0619 + 0.0064i -0.0027 + 0.0058i
T
T T
E E
]
·
]
]
]
· ·
]
]
X X
X X X X
1 0 1 1
25i -0.0187 - 0.0027i
0.0091 - 0.0027i -0.0179 - 0.0025i
-0.0178 - 0.0024i -0.0185 - 0.0026i 6.3721 - 0.0000i 0.1875 - 1.102
[ ] [ ]
0.0083 - 0.0026i 0.0066 - 0.0024i
T T
E E
]
]
]
]
· ·
]
]
X X X X
1 2 1 3
0i
0.1875 + 1.1020i 6.3128 - 0.0000i
-0.0761 + 0.0024i -0.1527 - 0.0292i -0.0326 - 0.0059i -0.0336 - 0.0007i
[ ] [ ]
-0.1796 + 0.0345i 0.0652 + 0.0024i 0.0318 - 0.0122i
T T
E E
]
]
]
]
· ·
]
]
X X X X
1 4 1 5
-0.0329 - 0.0059i
-0.1180 + 0.0140i -0.0951 + 0.0152i -0.0291 - 0.0000i -0.0284 - 0.0057i
[ ] [ ]
-0.2510 + 0.0155i -0.2606 + 0.0140i -0.0281 + 0.0056i 0.0300 - 0.0000i
T T
E E
]
]
]
] ]
· ·
] ]
] ]
X X X X
1 6 1 7
2 0
-0.1773 - 0.0141i -0.0898 + 0.0164i -0.0344 + 0.0059i 5.5840 + 1.1078i
[ ] [ ]
0.0676 - 0.0475i -0.2026 - 0.0141i 5.5187 - 1.0949i -0.0298 + 0.0059i
-0.0033 + 0.005
[ ]
T T
T
E E
E
] ]
· ·
] ]
] ]
·
X X X X
X X
2 1
2 2
8i 0.0026 + 0.0064i -0.0761 - 0.0024i -0.1796 - 0.0345i
[ ]
-0.0625 + 0.0064i -0.0625 + 0.0058i -0.1527 + 0.0292i 0.0652 - 0.0024i
6.3415 - 0.0000i 0.2166 - 1.096
[ ]
T
T
E
E
] ]
·
] ]
] ]
·
X X
X X
2 3
2 4
1i 0.0660 + 0.0024i -0.1532 - 0.0293i
[ ]
0.2166 + 1.0961i 6.3412 - 0.0000i -0.1803 + 0.0346i -0.0766 + 0.0024i
-0.0622 - 0.0059i -0.0622 - 0.0064i
[ ]
0.0034 - 0.0065
T
T
E
E
] ]
·
] ]
] ]
·
X X
X X
2 5
2 6
-0.0622 - 0.0059i -0.0622 - 0.0064i
[ ]
i -0.0031 - 0.0059i 0.0034 - 0.0065i -0.0031 - 0.0059i
-0.0018 - 0.0000i 5.5523 + 1.0956i
[ ]
5.5526 - 1.0957i 0.0029 - 0.
T
T
E
E
] ]
·
] ]
] ]
·
X X
X X
2 7
3 0 3
-0.2019 - 0.0142i -0.0898 + 0.0164i
[ ]
0000i 0.0683 - 0.0476i -0.1777 - 0.0142i
-0.2601 - 0.0139i -0.2500 - 0.0153i
[ ] [
-0.0948 - 0.0153i -0.1189 - 0.0139i
T
T
E
E E
] ]
·
] ]
] ]
]
·
]
]
X X
X X X X
1
3 2 3 3
-0.0326 + 0.0059i 0.0318 + 0.0122i
]
-0.0336 + 0.0007i -0.0329 + 0.0059i
0.0660 - 0.0024i -0.1803 - 0.0346i 6.3107 - 0.0000
[ ] [ ]
-0.1532 + 0.0293i -0.0766 - 0.0024i
T
T T
E E
]
·
]
]
]
· ·
]
]
X X X X
3 4 3 5
i 0.1880 - 1.1015i
0.1880 + 1.1015i 6.3699 - 0.0000i
0.0075 + 0.0024i 0.0088 + 0.0027i -0.0348 - 0.0059i 5.5184 + 1.09
[ ] [ ]
-0.0184 + 0.0027i -0.0178 + 0.0024i
T T
E E
]
]
]
]
· ·
]
]
X X X X
3 6 3 7
49i
5.5843 - 1.1079i -0.0302 - 0.0059i
-0.2010 + 0.0141i 0.0679 + 0.0473i 0.0311 - 0.0000i -0.0287 - 0.0058i
[ ] [ ]
-0.0894 - 0.0163i -0.1768 + 0.0141i -0.0284 + 0.0
T T
E E
]
]
]
]
· ·
]
]
X X X X
057i -0.0297 - 0.0000i
]
]
]
It is also clear that correlations between the vectors in the transform domain are much less
than that between the vectors in the data domain. For example,
4
X and
0
X
are almost
Page 35 of 77
decorrelated because
0 4
[ ]
T
E X X ,
4 0
[ ]
T
E X X is very close to zero.The above-mentioned
decorrelation property of the VT leads to better performance in the presence of ICI and ISI.
3.1. Complex Kernel Vector Transform (VT)
All commercial systems for multicarrier modulation use the set of complex exponential
functions as orthogonal basis. Clearly, the transform kernel of scalar transforms is uniquely
specified, but in the case of vector transforms, the kernel must be designed. One way to
construct vector transform kernels is the following: First, suppose that { ¦
1
,...,
M
a a
are not
necessarily distinct integers in the set { ¦ 1, 2,..., -1 N
for which
gcd( , ) 1
k
a N ·
. Then
consider the M M × diagonal matrix
1 2
2 / 2 / 2 /
= , ,...,
M
j a N j a N j a N
diag e e e
r r r
]
]
V
. (56)
It can be shown that the matrix (56) satisfies conditions (41) and (42). First
(1,1,...,1)
N
diag · · V I ,
i.e. condition (42) is satisfied. Second, since
1 2
2 / 2 / 2 /
*
, ,...,
M
j a N j a N j a N
diag e e e
r r r
] ·
]
V
condition (41) is also satisfied:
1 2
1 1
2 ( ) / 2 ( ) / 2 ( ) /
*
0 0
, ,...,
M
N N
j a k m n N j a k m n N j a k m n N mk nk
n n
diag e e e
r r r


· ·
] ·
]
¿ ¿
V V

[ ] , ,...,
m n m n m n m n
diag N N N N ô ô ô ô

· · I
.
Furthermore, if T is an arbitrary unitary matrix,
*
· W TVT (57)
Page 36 of 77
is also a kernel of dimension M M × . Note that the obtained W is a normal matrix, since it
is unitarily similar to a diagonal matrix
3.2. Real- Valued Kernel Vector Transform (VT)
If the data symbols are obtained by modulation schemes such as BPSK or PAM and are
therefore real-valued, and if the VT kernel is real-valued, the baseband signal is still a real
signal and the bandwidth of a VT-OFDM system is one half the bandwidth of a DFT-
OFDM system with the same number of sub-carriers. In this case single-sideband (SSB) or
vestigial side-band (VSB) techniques can be used to improve the bandwidth efficiency. SSB
or VSB technologies cannot be used if the baseband signal is complex-valuedIn a sense, the
VT is a generalization of the DFT: when the dimension M becomes equal to 1 the DFT is
obtained. For M>1, and for the special case of
1
... 1
M
a a · · · , the transform kernel is
2 / j N
e
r
· W I and the VT becomes equivalent to M DFTs acting on every dimension
separately. In the scalar case (dimension M=1) the equation (42) cannot be solved over the
set of real numbers for N>2. However, as observed in [14], real-valued VT kernels are
possible even for N>2.
In general, we can derive kernel below when M = 2
1 2
1 2
1 2
1 2
2 ( ) 2 ( ) 2 / 2 /
2 ( ) 2 ( ) 2 / 2 /
1
2
a a
N N
a a
N N
j j j a N j a N
j j j a N j a N
e e e e
e e e e
r o þ r o þ r r
r o þ r o þ r r
+ +
+ +
]
+ +
· ]
]
+
]
W , (58)
For example, if we define
1
1
1
2
j
j
]
·
]

]
T
, (59)
and
Page 37 of 77
2 /
2 /
0
0
j a N
a
j a N
e
e
r
r
]
·
]
]
V
, (60)
then
*
cos(2 / ) sin(2 / )
sin(2 / ) cos(2 / )
a a
a N a N
a N a N
r r
r r
]
· ·
]
]
W TV T
(61)
is a kernel with real elements. The notation
a
W
and
a
V
means that these vector transform
kernels are generated by the number a. Furthermore, the block-diagonal matrix
1
2
/ 2
...
M
a
a
a
]
]
]
·
]
]
]
]
W 0
W
W
0 W
(62)
is also a kernel of dimension M M × for even values of M. While the fact that real-valued
vector transform kernels are possible is known, the fact that real-valued kernels do not exist
when M is odd has not been established up to now.
Theorem 1 There exists no M x M real-valued matrix that can be a VT kernel (i.e. that
satisfies the kernel conditions) if the dimension M is odd and N is greater than 2.
Proof: First, note that the characteristic polynomial
det i W I
has degree M. If M is odd,
the characteristic polynomial must have at least one real root. Since
N
· W I , this root must
be either 1 or -1. Then, consider the following four cases:
1)N>2, 1 i · . Therefore, there must be a non-zero vector
v
such that · Wv v . Then, we
must have on one hand
1 1
0 0
N N
k
k k
N

· ·
· ·
¿ ¿
W v v v
(63)
Page 38 of 77
But on the other hand the orthogonality condition (41) for m=0 and n=1 requires
1
0
N
k
k

·
·
¿
W 0
. The contradiction that is obtained means that there is no real-valued kernel for
N>2, 1 i · .
2)N>2, 1 i · . A contradiction is obtained in a similar way. There must be a non-zero
vector
v
such that · Wv v . This means that
1 1
2
0 0
N N
k
k k
N

· ·
· ·
¿ ¿
W v v v
. On the other hand,
orthogonality (48) for m=0 and n=2 requires that
1
2
0
N
k
k

·
·
¿
W 0
.
3)N=1. This case is easily analyzed. If 1 i · an immediate contradiction is obtained.
Therefore, only 1 i · is possible. In this case the only solution to the equations (41) and
(42) is · W I .
4)N=2, 1 i · . In this case the only possible kernel is · W I . Q.E.D.
Page 39 of 77
CHAPTER 4 Fast Vector Transform
4.1 Radix-2 FVT
Radix-2 DFT reduces the computational number of complex multiplication to Nlog
2
N and
of complex additions to Nlog
2
N, because each butterfly requires one complex multiplication
and two additions and the twiddle factors
k
N
W and
n
N

W are complex exponents. In the
algorithms of FVT, however, the twiddle factors are matrices and exhibit the following
properties:
/ 2 / 2 k N N k k
N N N N
+
· · W W W W . (64)
where the notation
N
W denotes a vector transform kernel of order N and of a dimension
assumed to be M M × in general. Using the aforementioned properties, and assuming that
N is a power of two, we can devide VT into two sequences as follows:
/ 2 1 / 2 1
2 (2 1)
0 0
[ ] [2 ] [2 1]
N N
nk n k
N N
n n
N k n n

+
· ·
· + +
¿ ¿
X W x W x
, (65)
and
/ 2 1 / 2 1
2 2
0 0
[ ] [2 ] [2 1]
N N
nk k nk
N N N
n n
N k n n

· ·
· + +
¿ ¿
X W x W W x
, (66)
In a similar vein to the equation represented in (5-6), the above equation may be expressed
as:

2 2
2 2
[ ] [ ] [ ]
[ ] [ ] [ ]
2
k
N
k
N
k k k
N
k k k
+

X = F W F
X + = F W F
, 2
0,1,..., 1
N
n ·
(67)
Page 40 of 77
Using the information represnted in the equations above, a VT operating over N vectors can
be expressed as two VTs operating over N/2 vectors. The algorithms in (65) and (66) are
similar to the radix-2 FFT decimation-in-time and decimation-in-frequency algorithms and
are referred to as fast vector transform (FVT) algorithms. Fig. 7 is an illustration of the
FVT.
N/2-
vector
VT
N/2-
vector
VT
k
N
W
[ ] k X
[ / 2] k N + X
[0] x
[2] x
[ 2] N − x
[1] x
[3] x
[ 1] N − x
Fig. 7 Radix-2 fast vector transform (FVT) algorithm
In VT, decimation can also be reiterated until two vector datas remains. For illustrative
purposes, Fig.8 depicts the computation of an N = 8 points VT. We observe that the
computation is performed in three stages, beginning with the computations of four two-
point VTs, then two four-point VTs, and finally one eight-point VT. The combination of the
smaller VTs to form the larger VT is illustrated in Fig.9 for N = 8
2- point
VT
[0] x
[4] x
2- point
VT
[2] x
[6] x
2- point
VT
[1] x
[5] x
2- point
VT
[3] x
[7] x
Combine
2- point
VT
Combine
2-point
VT
Combine
4- point
VT
[0] X
[1] X
[2] X
[3] X
[4] X
[5] X
[6] X
[7] X
First stage Second stage
Third stage
(last stage)
Fig.8. Three stages in the computation of an N = 8 point VT
Page 41 of 77
[0] x
[4] x
[2] x
[6] x
[1] x
[5] x
[3] x
[7] x
0
8
W
0
8
W
0
8
W
0
8
W
2
8
W
2
8
W
2
8
W
2
8
W
4
8
W
4
8
W
4
8
W
4
8
W
[0] X
[1] X
[2] X
[3] X
[4] X
[5] X
[6] X
[7] X
Fig.9. Eight-point radix-2 FVT algorithm
In the FVT algorithms, these algorithms are valid for all VT kernels which are unitarily
similar to a diagonal matrix. Observe that a point of b should be multiplieb by
*
( / ) k N N
N
W in
FVT as illustrated in Fig.9, where N is the number of vector points in last stage and
*
N is
the number of subvector points in the computation stage in FVT algorithms. For example,
2
8
W in the second stage in Fig.8 is not equal to
1
4
W since the twiddle factors
k
N
W and
n
N

W
are not complex exponential. The butterfly in radix-2 VT is shown in Fig .10.
*
( / ) k N N
N
W
a
*
( / ) k N N
N
A a b = +W
*
( / ) k N N
N
B a b = −W
b
Fig.10. Basic butterfly in radix-2 FVT algorithm
Page 42 of 77
The computational complexity of radix-2 FVT algorithms, in general, is
2
log N N matrix-
vector multiplications and vector additions. The total number of matrix-multiplications and
additions in the FVT algorithms is therefore equal to
2
log N N —including some possible
minor multiplications and additions. In these computations, the matrices are M M × in
general and the vectors are 1 M × ,and all numbers are complex. One matrix-vector
multiplication takes M
2
complex scalar multiplications and M(M-1) complex scalar
additions. Therefore the FVT has a complexity
2
2
( log ) O M N N . For M=2, the total number
of complex scalar multiplications in the FVT is
2
4 log N N and 2Nlog
2
N complex scalar
additions. In the special case of
2 / j N
e
r
· W I , the twiddle factor matrices become diagonal.
The multiplication of a diagonal matrix by a vector requires M complex scalar
multiplications. In this special case, the FVT algorithms developed here are equivalent to
M FFTs operating parallel with total complexity
2
( log ) O MN N .
Whereas a FVT is generally computationally more complex than an FFT, it is should be
noted that the FFT always requires complex arithmetic, whereas the FVT only requires real
arithmetic if the input to the VT is real (for example, if obtained using BPSK modulation)
and if the VT kernel is real,
M=2,
N points
Radix-2 FFT complexity Radix-2 FVT complexity
Complex multiplications
(
2
( / 2) log NM NM
)
Complex multiplications
(
2
2
( / 2) log M N N )
2 4 8
4 12 32
8 32 96
16 80 256
32 192 640
64 448 1,536
128 1024 3,584
256 2304 8,192
Page 43 of 77
512 5120 18,432
1024 11264 40,960
2048 24576 90,112
4096 53248 196608
8192 106496 435984
Table 3: Complexity comparison of complex multiplications between Radix-2 FFT
and Radix-2 FVT
M=2,
N points
Radix-2 FFT complexity Radix-2 FVT complexity
Comlex additions
(
2
log NM NM
)
Complex additions
(
2
( 1) log M M N N
)
2 8 4
4 24 16
8 64 48
16 160 128
32 384 320
64 896 768
128 2,048 1,792
256 4,608 4,096
512 10,240 4,068
1024 22,528 20,480
2048 49,152 45,056
4096 106,496 49,152
8192 229,376 106,496
Table 4: Complexity comparison of complex multiplications between Radix-2 FFT
and Radix-2 FVT
4.2 FVT Radix-4
In Vector Transform, if the number of vector sequences N is a power of four, the VT kernel
in VT will have the same properties as the twiddle factor in FFT, which is already shown in
the equation (9). We will have the following properties:
/4 k /2 3 /4
( ) , ( ) , ( )
kN kN k kN k
N N N
j j · · · W I W I W I , (68)
and in much the same way we derive the equation (8), we can have:
Page 44 of 77
3
1 1 1
1 4 2 4
3 0
4 2 4
1 1 1
/ 4 1 4 4 4
/ 4 / 2 3 / 4
0 0 0 0
[ ] [ ] [ ] [ ] [ ]
3
[ ]
4 2 4
N N N
N
kn kn kn kn
N N N N
N N N n n n n
N N N
N
kn Nk kn Nk kn N kn
N N N N N N N
n n n n
N k n n n n
N N N
n n n n

· · · ·

· · · ·
· + + +
] ] ]
· + + + + + +
] ] ]
] ] ]
¿ ¿ ¿ ¿
¿ ¿ ¿ ¿
X x W x W x W x W
x W W x W W x W W x W
(69)
And then using (68), we derive the following:
/ 4 1
0
3
[ ] [ ] ( ) ( ) ( )
4 2 4
N
k k k nk
N
n
N N N
N k n j n n j n

·
] ] ] ]
· + + + + + +
] ] ] ]
] ] ] ]
¿
X x I x I x I x W
,( 70)
Next, we decompose the VT data into four N/4 point subvectors. The result is:
/ 4 1
0 4
0
/ 4 1
4
0
3
[ ] [ ]
4 2 4
3
[4 1] [ ]
4 2 4
3
[4 2] [ ]
4 2 4
N
kn
N N
n
N
n kn
N N
n
N N N
N k n n n n
N N N
N k n j n n j n
N N N
N k n n n n

·

·
] ] ] ]
· + + + + + +
] ] ] ]
] ] ]
]
] ] ] ]
+ · + + + +
] ] ] ]
] ] ] ]
] ]
+ · + + + +
] ]
] ]
¿
¿
X x x x x W W
X x Ix Ix Ix W W
X x Ix x Ix
/ 4 1
2 4
0
/ 4 1
3 4
0
3
[4 3] [ ]
4 2 4
N
n kn
N N
n
N
n kn
N N
n
N N N
N k n j n n j n

·

·
]
]
]
]
] ]
] ] ] ]
+ · + + + +
] ] ] ]
] ] ]
]
¿
¿
W W
X x Ix Ix Ix W W
, (71)
And the above equation is expressed by following Fig.11.
Page 45 of 77
N/4-
vector
VT
N/4-
vector
VT
(4 3) k n
N
+
W
[ ] k X
[4 1] k + X
[0] x
[4] x
[ 2] N − x
[1] x
[5] x
[ 1] N − x
N/4-
vector
VT
[0] x
[6] x
[ 2] N − x
N/4-
vector
VT
[0] x
[7] x
[ 1] N − x
[4 2] k + X
[4 3] k + X
(4 2) k n
N
+
W
(4 1) k n
N
+
W
4kn
N
W
j − I
j − I
−I
−I
−I
−I
jI
jI
1
Fig.11. Radix-4 fast vector transform (FVT) algorithm
We verified that aVT operating over N point can be expressed as four VTs operating over
N/4 vectors. The algorithm in (70) and (71) are also similar to the radix-4 FFT style
algorithms. And thus, the butterfly of radix-4 FVT can be expressed by
Page 46 of 77
*
2 / N N k
N
W
*
/ N N k
N
W
*
3 / N N k
N
W
* *
/ ( / 2) N N k N
N
+
W
* *
/ ( 3 / 4) N N k N
N
+
W
* *
3 / ( 3 / 4) N N k N
N
+
W
* *
/ ( / 4) N N k N
N
+
W
* *
2 / ( 3 / 4) N N k N
N
+
W
* *
2 / ( / 2) N N k N
N
+
W
* *
2 / ( / 4) N N k N
N
+
W
* *
3 / ( / 4) N N k N
N
+
W
* *
3 / ( / 2) N N k N
N
+
W
Fig.12. Butterfly in radix-4 FVT
Observe that the radix-4 FVT butterfly is derived from the radix-4 FFT butterfly in Fig.4.
To computate recursively in a radix-4 FVT, we should also consider N and
*
N appropriately
in a simiar manner of a radix-2 FVT.
In general, FVT radix-4 has (3N/4)log
4
N vector multiplications and 3Nlog
4
N
additions. Since one matrix-vector multiplication takes M
2
complex scalar multiplications
and M(M-1) complex scalar additions, the FVT has (3M
2
N/4)log
4
N complex scalar
Page 47 of 77
multiplications and 3M(M-1)Nlog
4
N complex additions as shown in Table 5 and Table 6.
Therefore, the total number of complex multiplications and additions in the FVT radix-4 is
higher than complexity in the FVT radix-2.
M=2,
N points
Radix-2 FVT complexity Radix-4 FVT complexity
Complex multiplications
(
2
2
( / 2) log M N N )
Complex multiplications (
2
4
(3 / 4) log M N N )
16 80 96
32 192
64 448 576
128 1024
256 2304 3,072
512 5120
1024 11264 15,360
2048 24576
4096 53248 73,726
Table 5: Complexity comparison of complex multiplications between Radix-2 FVT
and Radix-4 FVT
M=2,
N points
Radix-2 FVT complexity Radix-4 FVT complexity
Complex additions
(
2
( 1) log M M N N
)
Complex additions (
4
3 ( 1) log M M N N
)
16 160 192
32 384
64 896 1,152
128 2,048
256 4,608 6,144
512 10,240
1024 22,528 30,720
2048 49,152
4096 106,496 147,456
Page 48 of 77
Table 6: Complexity comparison of complex additions between Radix-2 FVT and
Radix-4 FVT
CHAPTER 5 VT Application of VT to OFDM
5.1 Single-input single-output (SISO) OFDM
The term “vector OFDM” is used in some publications to denote multiple- input multiple-
output OFDM systems [18] or OFDM systems where the samples are grouped into vectors
and the processing is done on vectors [19]. However in these systems the orthogonal
transform is still the DFT. None of the previously known OFDM systems is based on vector
transforms, as proposed here and then we describe the proposed VT-OFDM system.
First, Let
[ ] k X
,
0,1,..., 1 k N ·
be the vector sequence of the complex information
symbols after the bit-to-symbol mapping that must be transmitted. Each vector is of
dimension 1 M × . The signal to be transmitted is subjected to an N-point inverse vector
Page 49 of 77
transform to obtain the vector sequence
[ ] n x
,
0,1,..., 1 n N ·
. The vector cyclic prefix is to
add the last
v
K
vectors at the beginning of the vector sequence
[ ] n x
. The transmitted
sequence is obtained via a parallel-to-serial conversion and contains
( )
v
M K N +
samples.
A VT-OFDM transceiver is shown on Fig.13.
Note that in conventional OFDM systems the overhead due to the CP is (N+K)/N, but
in vector transform-based OFDM the overhead is
( )
v
M K N +
/MN. Since
v
K
K
M
]
·
]
]
it is
clear that compared to conventional OFDM, in the proposed vector transform-based system
the overhead due to the cyclic prefix has been reduced by a factor of M, where M is the
vector size.
At the receiver first the vector cyclic prefix is removed and then equalization is
performed. Equalization is performed in the DFT domain. However, equalization and
demodulation are performed separately. After the frequency-domain equalization the signal
is transformed back to the time domain via an IFFT. Then a vector sequence is formed and
a forward VT is applied.
Note that on Fig.13, if the IVT and VT are replaced by the IFFT and FFT, then Fig.6 would
be obtained.
form
vector
sequence
bit-to-
symbol
I
V
T
Add
vector
CP
vector
sequence
/
serial
[ ] k X [ ] n x [ ]
cp
m x
Page 50 of 77
symbol
-to-bit
F
F
T
S
/
P
M M M
Remove
vector
CP
channel
estimation
synchronization
I
F
F
T
V
T
M
M
form
vector
sequence
I
F
F
T
M
vector
sequence
/
serial
[ ] H k
[ ] Y k
ˆ[ ] n x
ˆ
[ ] k X
M
Fig.13. A VT-based transmitter and receiver
The VT is a generalization of the DFT: the DFT operates on scalars, and
the VT operates on vectors. It has been verified that vector transforms have a
fundamental advantage compared with scalar transforms. The proposed system achieves
lower bit error rate than the DFT-based OFDM for wireless systems with one transmit and
receive antennas.
To compare the performance of the proposed system in Fig.13 with the conventional
OFDM system illustrated in Fig. 6 computer simulations have been performed. An OFDM
system with 64 carriers and a CP of length K=16 was implemented. In the vector
transform-based system the vectors were chosen to be of dimension 2 1 × , or M=2. To
compare both systems at the same data rate, the vector transform is applied to 32 vectors.
The symbol duration of both systems is 4
s µ
, including the cyclic prefix. For comparison
purposes double side-band transmission is used so that both systems occupy the same
bandwidth.
Page 51 of 77
The vector transform kernel is constructed in the following way. First, two integers are
selected such that
gcd( , 32) 1
i
a ·
, i=1,2. Any two integers that are mutually prime with the
vector transform length can be used. Therefore,
i
a
can be selected in a random fashion. The
seed is obtained as
1 2
2 / 2 /
= ,
j a N j a N
diag e e
r r
]
]
V
. Second, the unitary matrix
2 2
2 2
1
2
j j
j j
e e
e e
ro rþ
rþ ro
]
·
]

]
T
, (72)
is used, where the real numbers
, o þ
are random with uniform distribution over the
interval
[0,1]
. The kernel of the vector transform is
*
· W TVT , as discussed in Chapter 3.
It is interesting that, unlike DFT-OFDM, infinitely many kernels can be used. However, it
must be noted that once the kernel of the vector transform is determined, it is fixed at the
transmitter and at the receiver. In other words, the transmitter and the receiver are designed
to use the same kernel. Furthermore, the kernel of the transform does not change from
packet to packet to avoid the overhead of sending the kernel to the receiver. The
performance of both systems for QPSK and 16 QAM is illustrated in Fig.14. The specific
kernel that is used is
*
2 0.514 2 0.8459 2 3/ 32 2 0.514 2 0.8459
2 0.8459 2 0.514 2 29/ 32 2 0.8459 2 0.514
0 1 1
0 2 2
j j j j j
j j j j j
e e e e e
e e e e e
r r r r r
r r r r r
] ] ]
·
] ] ]

] ] ]
W
0.8315 0.4844 0.272
0.4844 0.272 0.8315
j j
j j
]
·
]

]
(73)
The wireless channel that is used is the so-called ETSI channel model ‘A’, which is
characterized by 50 ns rms delay spread and delay spread of 390 ns. This is a fixed indoor
wireless channel applicable for homes/small offices. We assume that the channel is known
by the receiver, but not by the transmitter, and remains constant during one OFDM symbol.
Page 52 of 77
The channel estimation phase, during which the receiver learns the channel impulse
response, is outside the scope of this paper. From the results in Fig.14 we see that VT-
OFDM consistently outperforms DFT-OFDM both at low and high SNR values. The
performance advantage of VT-OFDM is about 0.6 dB at BER of 10
-4
.
6 7 8 9 10 11 12 13 14 15 16
10
­7
10
­6
10
­5
10
­4
10
­3
10
­2
B
i
t
 
E
r
r
o
r
 
R
a
t
e
Eb/No
 
 
DFT­OFDM QPSK
VT­OFDM QPSK
DFT­OFDM 16 QAM
VT­OFDM 16 QAM
Fig.14. Performance comparison between the proposed VT-OFDM and DFT-OFDM
5.2 Multiple-input multiple-output (MIMO) OFDM
At the moment high data rate wireless systems using multiple transmit and receive
antennas, i.e. MIMO systems, are a subject of significant interest [20-25]. MIMO space-
division multiplexing (SDM) is a technique that achieves a higher throughput by
transmitting independent data streams on the different transmit branches simultaneously
and at the same carrier frequency. At present MIMO SDM DFT-OFDM is a leading
technology for high data rate wireless systems.
Page 53 of 77
A MIMO SDM VT-OFDM system can be constructed as proposed in
Fig. 15. In the proposed transceiver QAM mapping is performed and a
vector sequence of the QAM symbols is obtained. An IVT is performed on
the resulting vector sequence and a CP is added. After the IVT the first
component of the obtained vector sequence is supplied to the first
transmit antenna and the second component to the second transmit
antenna. At every discrete-time instance n the transmitter sends a two-
dimensional complex vector
[ ] n x
, and the receiver records a two-dimensional
vector
[ ] n y
, where
*
· x U X , (74)
*
· + y HU Xη . (75)
Several approaches can be used to perform symbol detection, ranging from ZF to
maximum likelihood (ML). With a ZF detection method, an estimate of the
transmitted information symbols can be obtained by:
( ) ( ) ( )
* 1
2 2 *
ˆ
N N

· © © + Y U F I H F I HU Xη
1
· + X UHη . (76)
form
vector
sequence
bit-to-
symbol
I
V
T
Add
vector
CP
vector
sequence
/
serial
symbol
-to-bit
M
Remove
vector
CP
V
T
M
M
form
vector
sequence
vector
sequence
/
serial M
processing
unit
M
Fig. 15 A MIMO multicarrier modulation system based on vector transform
Page 54 of 77
To compare the performance of the MIMO VT-OFDM system with the
corresponding MIMO DFT-OFDM system computer simulations have been
performed. The 2 2 × DFT-OFDM system has for every transmit antenna 64 carriers and a
CP of length K=16. The 2 2 × VT-OFDM system uses a VT operating on 64 vectors of
dimension2 1 × . Both the VT-OFDM and the DFT-OFDM systems achieve twice the data
rate of the SISO systems investigated earlier. The kernel in (57) is for a VT operating on 32
vectors and cannot be used. A new kernel is constructed as follows:
*
2 0.708 2 0.5475 2 3/ 64 2 0.708 2 0.5475
2 0.5475 2 0.708 2 29/ 64 2 0.5475 2 0.708
0 1 1
0 2 2
j j j j j
j j j j j
e e e e e
e e e e e
r r r r r
r r r r r
] ] ]
·
] ] ]

] ] ]
W
0.2903 0.5084 0.81
0.5084 0.81 0.2903
j j
j j
]
·
]
+
]
(77)
Note that encoding in the VT-OFDM system is done jointly over the
two transmitter branches, but the two branches can be separated at the
receiver because of the properties of the VT. Furthermore, note that
when the VT uses the kernel
2 / j N
e
r
I and reduces to two FFTs operating on
each branch, then the encoding reduces to per-transmitter branch
encoding and the entire proposed system reduces to the known MIMO DFT-OFDM
system. We consider a flat-fading MIMO Rayleigh channel [20] ,[22],
reflecting a richly scattered indoor radio environment. Fig. 16 shows the
performance of both systems assuming zero-forcing detection. It is seen
that the MIMO DFT-OFDM system, which is equivalent to a VT-OFDM
system with the simple kernel
2 / j N
e
r
I achieves an inferior performance of
approximately 1.5 dB at BER of 10
-4
, compared with the VT-OFDM system
with the kernel given in (77) above.
Page 55 of 77
6 7 8 9 10 11 12 13 14
10
­7
10
­6
10
­5
10
­4
10
­3
10
­2
10
­1
B
i
t
 
E
r
r
o
r
 
R
a
t
e
Eb/No
 
 
2x2 MIMO DFT­OFDM QPSK
2x2 MIMO VT­OFDM QPSK
2x2 MIMO DFT­OFDM 16 QAM
2x2 MIMO VT­OFDM 16 QAM
Fig. 16 Performance comparison between MIMO DFT-OFDM and VT-OFDM for
transmission over a flat-fading channel
Page 56 of 77
References
[1] S. Mitra, Digital Signal Processing: A Computer Based Approach, New York: McGraw-
Hill, 2006.
[2] S. Stearns and R.A. David, Signal Processing Algorithms in MATLAB, New Jersey:
Prentice Hall, 1996.
[3] B.P. Lathi, Modern Digital and Analog Communication Systems, New York: Oxford
University Press, 1998.
[4] R.N. Bracewell, “Discrete Hartley Transforms,” J. Opt. Soc. Amer., pp. 1812-1835,
Aug. 1984.
[5] R.N. Bracewell. The Fourier Transform and Its Applications, New York: McGraw-Hill,
1986.
[6] P. Duhamel and M. Vetterli, “Fast Fourier transforms: a tutorial review and a state of
the art,” Signal Processing, vol 19, no 4, pp. 259-299, Jan. 1990.
[7] K.R. Rao and P.Yip, Discrete Cosine Transform: Algorithms, Advantages, and
Applications, Academic Press, 1990.
[8] R. N Bracewell, The Hartley Transform, New Yok: Oxford University Press, 1986.
[9] R. N Bracewell, The Fourier Transform and its Applications, New York: McGraw-Hill,
2000.
[10] T. Cooklev, Wireless communications standards: A study of IEEE 802.11, 802.15, and
802.16, New York: IEEE Press, 2004.
Page 57 of 77
[11] J. Bingham, “Multicarrier modulation for data transmission: An idea whose time has
come,” IEEE Commun. Mag., pp. 5-14, May 1990.
[12] G. Mandyam, “On the discrete cosine transform and OFDM
systems,” in Proc. Int. Conf. Acoust., Speech Signal Process, 2003, pp.
544–547.
[13] N. Al-Dhahir, and H. Minn, “A new multicarrier transceiver based on
the discrete cosine transform,” in Proc. IEEE Wireless Comm. Networking
Conf, 2005, pp. 45-50.
[14] W. Li, “FIR filtering using vector transformation and convolution processor,” in
Proc. IEEE Int. Symp. on Circuits Syst., 1990, pp. 1223-1226.
[15] F. R. Gantmacher, The Theory of Matrices, New York: Chelsea, 1959.
[16] W. Li, “Vector transform and image coding,” IEEE Trans. Circuits Syst. Video
Technol., vol. 1, no. 6, pp. 297-307, Dec. 1991.
[17] W. Li, “On vector transformation,” IEEE Trans. Signal Processing, vol. 41, no. 11, pp.
3114-3126, Nov. 1993.
[18] E. Ayanoglu, V.K. Jones and others, VOFDM Broadband Wireless Transmission and
Its Advantages over Single Carrier Modulation, ICC, 2001.
[19] X. G. Xia, “Precoded and Vector OFDM Robust to Channel Spectral Nulls and With
Reduced Cyclic Prefix Length in Single Transmit Antenna Systems,” IEEE Trans.
Commun., vol. 49, no. 8, pp. 1363-1374, Aug. 2001.
[20] S. Haykin, M. Moher, Modern wireless communications, Prentice-Hall, Upper Saddle
River, 2005.
Page 58 of 77
[21] G. J. Foschini and M. J. Gans, “On limits of wireless communications in
a fading environment when using multiple antennas,” Wireless Personal
Commun., vol. 6, no. 3, pp. 311–335, Mar. 1998.
[22] A. van Zelst, and T. C. W. Schenk, “Implementation of a MIMO OFDM-based
wireless LAN system”, IEEE Trans. Signal Processing, vol. 52, no. 2, pp. 483-494, Feb.
2004.
[23] G. J. Foschini, “Layered space-time architecture for wireless communication," Bell
Labs Technical Journal, vol. 1, pp. 41-59, 1996.
[24] G. D. Golden, G. J. Foschini, R. A. Valenzuela, and P.W.Wolniansky, “Detection
algorithm and initial laboratory results using the V-BLAST space-time communication
architecture," Electronics Letters, vol. 35, no. 1, pp. 14-15, 1999.
[25] Geert Awater, Allert van Zelst and Richard van Nee, “Reduced Complexity Space
Division Multiplexing Receivers”, Proc. IEEE Vehicular Technolgy Conf. 2000, pp. 11-15.
Page 59 of 77
APPENDIX Ⅰ
A. Radix-2 FVT
Recursive algorithms:
1. ivt2.m (inverse FVT radix 2)
function z = ivt2(y,kernel)
% checking the size of vector points and dememsion of x variable
ss = size(y);
vtlen = ss(2);
z = ivtfft(y,kernel,vtlen)/sqrt(vtlen);
2. ivtfft.m (sub-function of inverse radix 2 FVT)
function x = ivtfft(y,kernel,vtlen)
% checking the size of vector points and dememsion of y variable
ss = size(y);
len= ss(2);
vs=ss(1);
if(len==1)
x=y(:,1);
return
end
if(rem(len,2)~=0)
return
else
for j=1:len/2
% if vector points are a power of 2, we subdivide the vector points into odd and even
yeven(:,j) = y(:,2*j);
yodd(:,j) = y(:,2*j-1);
end

% calling self functions inside a main function, it performs the radix-2 calculation
% in all
2
log N N
Page 60 of 77
ivtfftYEven =ivtfft(yeven,kernel,vtlen);
ivtfftYOdd = ivtfft(yodd,kernel,vtlen);
% computating a radix-2 butterfly
for n=1:len/2
x(:,n) = ivtfftYOdd(:,n)+ kernel^(-(n-1)*vtlen/len)*ivtfftYEven(:,n);
x(:,n+len/2) = ivtfftYOdd(:,n) - kernel^(-(n-1)*vtlen/len)*ivtfftYEven(:,n);
end

end
3. vt2.m (radix-2 FVT)
function z = vt2(x,kernel)
ss = size(x);
vtlen = ss(2);
z = vtfft(x,kernel,vtlen)/sqrt(vtlen);
4. vtfft.m (sub-function of FVT radix-2)
function y = vtfft(x,kernel,vtlen)
ss = size(x);
len = ss(2);
vs=ss(1);
if(len==1)
y=x(:,1);
return;
end
if(rem(len,2)~=0)
return;
else
for j=1:len/2
%% If vector points are a power of 2, we subdivide the vector points into odd and even

xeven(:,j) = x(:,2*j);
xodd(:,j) = x(:,2*j-1);
Page 61 of 77
end
% Calling self functions inside a main function, it performs the radix-2 calculation
% in all
2
log N N

vtfftYEven =vtfft(xeven,kernel,vtlen);
vtfftYOdd = vtfft(xodd,kernel,vtlen);

% computating a radix-2 butterfly
for n=1:len/2
y(:,n) = vtfftYOdd(:,n) + kernel^((n-1)*vtlen/len)*vtfftYEven(:,n);
y(:,n+len/2) = vtfftYOdd(:,n) - kernel^((n-1)*vtlen/len)*vtfftYEven(:,n);

end
Non-recursive algorithms:
5. ivtfft2.m (non-recursive inverse FVT radix-2)
function [Y] = ivtfft2(X,kernel)
%% checking the size of vector points and dememsion of X variable
ss = size(X);
N = ss(2);
vs=ss(1);
nu=log2(N);
NM=N-1;
kk=0:NM;
%% Rearrange data by bit reversing
jj=1;
for ii=2:NM
k=N/2;
while(k<jj)
jj=jj-k;
k=k/2;
end
jj=jj+k;

if (ii<jj);
T=X(:,jj);
X(:,jj)=X(:,ii);
Page 62 of 77
X(:,ii)=T;
end
end
%% FFT Calculation
for m=1:nu
LE=2^m;
LE1=LE/2;
U=1;
W=kernel^(-N/LE); % for IFFT


for n=1:LE1

for p=n:LE:N-1
pp=p+LE1;
temp=U*X(:,pp);
X(:,pp)=X(:,p)-temp;
X(:,p)=X(:,p)+temp;
end
U=U*W;
end
end
Y=X./sqrt(N);
6. vtfft2.m (non-recursive FVT radix-2)
function [Y] = vtfft2(X,kernel)
% checking the size of vector points and dememsion of X variable
ss = size(X);
N = ss(2);
vs=ss(1);
nu=log2(N);
NM=N-1;
kk=0:NM;
%% Rearrange data by bit reversing
jj=1;
for ii=2:NM
k=N/2;
while(k<jj)
jj=jj-k;
Page 63 of 77
k=k/2;
end
jj=jj+k;

if (ii<jj);
T=X(:,jj);
X(:,jj)=X(:,ii);
X(:,ii)=T;
end
end
%% FFT Calculation
for m=1:nu
LE=2^m;
LE1=LE/2;
U=1;
% W=kernel^(-N/LE) for IFFT
W=kernel^(N/LE); % for FFT
for n=1:LE1

for p=n:LE:N-1
pp=p+LE1;
temp=U*X(:,pp);
X(:,pp)=X(:,p)-temp; % computating the butterfly of radix-2 FVT
X(:,p)=X(:,p)+temp;
end
U=U*W;
end
end
Y=X./sqrt(N);
end
U=U*W;
end
end
Y=X;
B. Radix-4 FVT
7. ivt4.m ( inverse FVT radix-4)
function z = ivt4(y,kernel)
% checking the size of vector points and dememsion of y variable
Page 64 of 77
ss = size(y);
vtlen = ss(2);
z = ivtfft4(y,kernel,vtlen)/sqrt(vtlen);
8 ivtfft4.m (sub-function of inverse FVT radix-4)
function x = ivtfft4(y,kernel,vtlen)
ss = size(y);
len= ss(2);
vs=ss(1);
if(len==1)
x=y(:,1);
return;
end
if(rem(len,2)~=0)
return;
else
for j=1:len/4

y0(:,j) = y(:,4*j-3); % shuffling the vector points
y1(:,j) = y(:,4*j-2); % by the method of radix-4 decimation by a factor of 4
y2(:,j) = y(:,4*j-1);
y3(:,j) = y(:,4*j);
end

% using self functions inside a main function, it performs the calculation in
4
log N N
fft00 = ivtfft4(y0,kernel,vtlen);
fft11 = ivtfft4(y1,kernel,vtlen);
fft22 = ivtfft4(y2,kernel,vtlen);
fft33 = ivtfft4(y3,kernel,vtlen);

% computating the butterfly of radix-4 FVT

for n=1:len/4

x(:,n) = fft00(:,n) + kernel^(-(n-1)*vtlen/len) * fft11(:,n) + kernel^(-2*(n-1)*vtlen/len)
* fft22(:,n) + kernel^(-3*(n-1)*vtlen/len) * fft33(:,n);
x(:,n+len/4) = fft00(:,n) + kernel^(-(n+len/4-1)*vtlen/len) * fft11(:,n) + kernel^(-
2*(n+len/4-1)*vtlen/len) * fft22(:,n) + kernel^(-3*(n+len/4-1)*vtlen/len) * fft33(:,n);
x(:,n+len/2) = fft00(:,n) + kernel^(-(n+len/2-1)*vtlen/len) * fft11(:,n) + kernel^(-
2*(n+len/2-1)*vtlen/len) * fft22(:,n) + kernel^(-3*(n+len/2-1)*vtlen/len) * fft33(:,n);
Page 65 of 77
x(:,n+3*len/4) = fft00(:,n) + kernel^(-(n+3*len/4-1)*vtlen/len)* fft11(:,n) + kernel^(-
2*(n+3*len/4-1)*vtlen/len) * fft22(:,n) + kernel^(-3*(n+3*len/4-1)*vtlen/len) * fft33(:,n);

end
end
9 vt4.m (FVT radix-4)
function z = vt4(x,kernel)
% checking the size of vector points and dememsion of x variable
ss = size(x);
vtlen = ss(2);
z = vtfft4(x,kernel,vtlen)/sqrt(vtlen);
10 vtfft4.m (sub-function of FVT radix-4)
function y = vtfft4(x,kernel,vtlen)
% checking the size of vector points and dememsion of x variable
ss = size(x);
len= ss(2);
vs=ss(1);
if(len==1)
y=x(:,1);
return;
end
if(rem(len,2)~=0)
return;
else
for j=1:len/4

x0(:,j) = x(:,4*j-3); % shuffling the vector points
x1(:,j) = x(:,4*j-2); % by the method of radix-4 decimation by a factor of 4
x2(:,j) = x(:,4*j-1);
x3(:,j) = x(:,4*j);
end
Page 66 of 77
% using self functions inside a main function, it performs the calculation in
4
log N N
fft00 = vtfft4(x0,kernel,vtlen);
fft11 = vtfft4(x1,kernel,vtlen);
fft22 = vtfft4(x2,kernel,vtlen);
fft33 = vtfft4(x3,kernel,vtlen);

% computating the butterfly of radix-4 FVT
for n=1:len/4

y(:,n) = fft00(:,n) + kernel^((n-1)*vtlen/len) * fft11(:,n) + kernel^(2*(n-1)*vtlen/len) *
fft22(:,n) + kernel^(3*(n-1)*vtlen/len) * fft33(:,n);
y(:,n+len/4) = fft00(:,n) + kernel^((n+len/4-1)*vtlen/len) * fft11(:,n) +
kernel^(2*(n+len/4-1)*vtlen/len) * fft22(:,n) + kernel^(3*(n+len/4-1)*vtlen/len) *
fft33(:,n);
y(:,n+len/2) = fft00(:,n) + kernel^((n+len/2-1)*vtlen/len) * fft11(:,n) +
kernel^(2*(n+len/2-1)*vtlen/len) * fft22(:,n) + kernel^(3*(n+len/2-1)*vtlen/len) *
fft33(:,n);
y(:,n+3*len/4) = fft00(:,n) + kernel^((n+3*len/4-1)*vtlen/len)* fft11(:,n) +
kernel^(2*(n+3*len/4-1)*vtlen/len) * fft22(:,n) + kernel^(3*(n+3*len/4-1)*vtlen/len) *
fft33(:,n);

end
end
Page 67 of 77
APPENDIXⅡ
VT-OFDM
1.VTbasedOFDM.m
%This program requires the following Matlab files:
% qpskmod.m for QPSK
% giins.m
% makeVector.m
% ivt.m
% vector_guard_ins.m
% comb.m
% girem.m
% qpskdemod.m
para=128; % Number of carriers
fftlen=128; % FFT length
gilen=fftlen/4; % Length of guard interval (points)
nd=1; % Number of information OFDM symbols for one loop

ml=2; % Modulation level : 2-QPSK, or 4 - 16 QAM
sr=250000; % Symbol rate per second
br=sr.*ml; % Bit rate per carrier
loop=5; % Number of EbNo values for which to calculate
BER=zeros(1,loop); % BER for OFDM
vt_ber=zeros(1,loop); % BER for vector transform
%****************** determine vector transform kernel
vt_size = 2; % transform which is 2x2
vtlen = fftlen/vt_size; %
vt_guard_len=gilen/vt_size; % vector transform guard length
vt_len2 = vtlen + vt_guard_len;
cone=sqrt(-1);
alfa=rand;
beta=rand;
% next, a random unitary matrix
u2gen=(1/sqrt(2))*[exp(cone*2*pi*alfa) exp(cone*2*pi*beta);...
-exp(-cone*2*pi*beta) exp(-cone*2*pi*alfa)];
% The kernel can be obtained using the program kernel
%%%% vt_kernel=kernel(vtlen,u2gen);
Page 68 of 77
% In this case we choose two numbers such that gcd(number,vtlen) = 1
a1 = 3;
a2 = 63;
w=exp(j*2*pi/vtlen);
vt_kernel = diag([w^a1 w^a2]);
vt_kernel = u2gen'*vt_kernel*u2gen;
% Select the initial value of ebn0 and the step size
ebn0_start=6;
ebstep = 2;
%**************** Channel *************
% all of these are appropriate wireless channels
% note that the sampling period is 50 ns
chanE = [-0.0462-0.9989i 0.3033-0.0600i 0.0762+0.1891i -0.0160+0.0848i ...
0.0356+0.0646i -0.0312+0.0271i 0.0244-0.0062i 0.0017-0.0151i];
channel = chanE;
for ebn0=1:loop % loop to calculate BER for different SNR

ebno(ebn0)=ebn0_start+(ebn0-1)*ebstep;
noe = 0; % Number of bits in error OFDM
nod = 0; % Number of transmitted bits OFDM
vt_noe = 0; % Number of bits in error VT-based OFDM
vt_nod = 0; % Number of transmitted bits VT-based OFDM
%************************** main loop part **************************
nloop = ebn0 * 300; % this determines number of loops
% more loops are necessary for higher ebn0 (lower BER)
% when the coefficient is 300 the program runs for
% about 20 minutes
for iii=1:nloop
%************************** Transmitter *********************************
seldata=rand(1,para*nd*ml)>0.5; % generate random bits
paradata=reshape(seldata,para,nd*ml); % Serial/Parallel conversion
% [ich,qch] = paradata.*2 - 1; %BPSK

[ich1,qch1]=qpskmod(paradata,para,nd,ml); % QPSK
%**************************OFDM ************************************
x=ich1+qch1.*i;
Page 69 of 77
y=ifft(x); % IFFT
ich2=real(y);
qch2=imag(y);
[ich3,qch3]= giins(ich2,qch2,fftlen,gilen,nd); % Insert CP

%******************* Now vector transform-based Transmitter ***************
[ich1_vt,qch1_vt]=makeVector(ich1,qch1,vt_size);%Form vector sequence
iq_vt=ich1_vt+i*qch1_vt;
y_vt=ivt(iq_vt,vt_kernel); % Inverse Vector transform
iqvt20 = vector_guard_ins(y_vt,vt_guard_len); % Vector guard sequence
iqvt21=reshape(iqvt20,1,vt_size*vt_len2); % Par/Serial
ivt22=real(iqvt21);
qvt22=imag(iqvt21);
%********* Attenuation Calculation OFDM *********
spow=sum(ich3.^2+qch3.^2)/nd./para;
attn=0.5*spow*sr/br*10.^(-ebno(ebn0)/10);
attn=sqrt(attn);
% ********** Channel for OFDM ******************************************
rx_ofdm= conv(channel,ich3+i*qch3); % convolution with channel
[ich4,qch4]=comb(real(rx_ofdm),imag(rx_ofdm),attn); % add AWGN
%********* Attenuation Calculation VT *********
spow=sum(ivt22.^2+qvt22.^2)/nd./para;
attn=0.5*spow*sr/br*10.^(-ebno(ebn0)/10);
attn=sqrt(attn);
% ************** Channel for vector transform
rx_vt = conv(channel,ivt22+i*qvt22);
ivt23= real(rx_vt);
qvt23= imag(rx_vt);
[ivt24,qvt24]=comb(ivt23,qvt23,attn); % add AWGN
%*************************** Receiver *****************************
% synchronization and channel estimation are assumed perfect
% **************** first OFDM **************************************
[ich5,qch5]= girem(ich4,qch4,fftlen,gilen,nd); % remove CP for OFDM
%****************** FFT and equalization ******************
Page 70 of 77
rx=ich5+qch5.*i;
fchan=transpose(fft(channel,length(rx)));
frx=fft(rx)./fchan; % this is equalization
%***************** symbol-to-bit *******************
ich6=real(frx);
qch6=imag(frx);
[demodata]=qpskdemod(ich6,qch6,para,nd,ml);
demodata1=reshape(demodata,1,para*nd*ml); % Parallel-to-serial
% ****** DONE WITH OFDM *****************************************
% ***************** NOW VT ******************************************
% first remove vector CP
rx_vt=ivt24(gilen+1:gilen+fftlen)+cone*qvt24(gilen+1:gilen+fftlen);
% ** equalization **
fchan=fft(channel,length(rx_vt));
fvt=fft(rx_vt)./fchan; % this is equalization
rvt=ifft(fvt); % this is necessary before the vector transform
% Make vector sequence
[ivt26,qvt26] = makeVector(real(rvt),imag(rvt),vt_size);
rvt27=ivt26+i*qvt26;
ry_vt=vt(rvt27,vt_kernel); % Vector transform
rvt28=reshape(ry_vt,para,[]); % Parallel-serial for the symbols
% symbol-to-bit
vt_demodata=qpskdemod(real(rvt28),imag(rvt28),para,nd,ml);
vt_demodata1=reshape(vt_demodata,1,para*nd*ml); % Parallel-to-serial
%************************** Bit Error Rate (BER) OFDM*******************
% instantaneous number of errors and bits
noe2=sum(abs(demodata1-seldata));
nod2=length(seldata);
% cumulative number of errors and bits
noe=noe+noe2;
nod=nod+nod2;
%************************** Bit Error Rate (BER) VT **********************
% instantaneous number of errors and bits
vt_noe2=sum(abs(vt_demodata1-seldata));
vt_nod2=length(seldata);
% cumulative the number of errors and bits
Page 71 of 77
vt_noe=vt_noe+vt_noe2;
vt_nod=vt_nod+vt_nod2;
% ************** END VECTOR TRANSFORM **********************
end % for iii=1:nloop
%********************** bit error rates ***************************
BER(ebn0)=noe/nod;
vt_BER(ebn0) = vt_noe/vt_nod;
end % for ebn0=1:loop
%******************* Plot results ****************************
figure;
semilogy(ebno,BER, 'ro:'), ...
ylabel('Bit Error Rate'), xlabel('Eb/No'); hold on;
semilogy(ebno,vt_BER, 'bx:'), legend('BER OFDM','BER VT');
hold off;
%******************** end of file ***************************
2. qpskmod.m
% Function to perform QPSK modulation
%****************** variables *************************
% paradata : input data (para-by-nd matrix)
% iout :output Ich data
% qout :output Qch data
% para : Number of paralell channels
% nd : Number of data
% ml : Number of modulation levels
% (QPSK ->2 16QAM -> 4)
% *****************************************************
m2=ml./2;
paradata2=paradata.*2-1;
count2=0;
for jj=1:nd
isi = zeros(para,1);
isq = zeros(para,1);
for ii = 1 : m2
Page 72 of 77
isi = isi + 2.^( m2 - ii ) .* paradata2((1:para),ii+count2);
isq = isq + 2.^( m2 - ii ) .* paradata2((1:para),m2+ii+count2);
end
iout((1:para),jj)=isi;
qout((1:para),jj)=isq;
count2=count2+ml;
end
%******************** end of file ***************************
3. giins.m
% Add guard interval (cyclic prefix) to an OFDM symbol
%
%****************** variables *********************************************
% idata : Input Ich data
% qdata : Input Qch data
% fftlen : FFT length
% gilen : Length of guard interval (number of points)
% nd : number of OFDM symbols processed simultaneously (should be =1)
% iout : Output Ich data
% qout : Output Qch data
%
*************************************************************************
function [iout,qout]= giins(idata,qdata,fftlen,gilen,nd);
idata1=reshape(idata,fftlen,nd);
qdata1=reshape(qdata,fftlen,nd);
idata2=[idata1(fftlen-gilen+1:fftlen,:); idata1];
qdata2=[qdata1(fftlen-gilen+1:fftlen,:); qdata1];
iout=reshape(idata2,1,(fftlen+gilen)*nd);
qout=reshape(qdata2,1,(fftlen+gilen)*nd);
%******************** end of file ***************************
4. makeVector.m
% Make a vector sequence from a scalar sequence
%
%****************** variables ******************************************
Page 73 of 77
% ich : Input Ich data
% qch : Input Qch data
% vec_len : vector length
% vec_i : Output vector Ich
% vec_q : Output vector Qch
% **********************************************************************
function [vec_i,vec_q] = makeVector(ich, qch, vec_len);
len = length(ich); % i and q must be of the same length
mm = len/vec_len;
vec_i=zeros(vec_len,len/vec_len);
vec_q=zeros(vec_len,len/vec_len);
for jj = 1:vec_len
vec_i(jj,:) = transpose(ich(jj:vec_len:len));
vec_q(jj,:) = transpose(qch(jj:vec_len:len));
end
5. ivt.m
%****************** variables *************************
% y : input sequence of vectors
% kernel : kernel of the vector transform
% x : output sequence of vectors
%******************************************************
function x = ivt(y,kernel)
ss = size(y);
len = ss(2);
vs=ss(1); % vector size
for k=1:len
x(:,k)=zeros(vs,1);
for n=1:len
x(:,k) = x(:,k) + kernel^(-(n-1)*(k-1)) * y(:,n);
end
x(:,k) = x(:,k) / sqrt(len);
end
6.vt.m
% Forward vector transform
Page 74 of 77
%****************** variables *************************
% kernel : kernel of the vector transform
% x : input sequence of vectors
% y : output sequence of vectors
%******************************************************
function y = vt(x,kernel)
ss = size(x);
len = ss(2);
vs=ss(1); % vector size
for k=1:len
y(:,k)=zeros(vs,1);
for n=1:len
y(:,k) = y(:,k) + kernel^((n-1)*(k-1)) * x(:,n);
end
y(:,k) = y(:,k) / sqrt(len);
end
7. vector_guard_ins.m
%****************** variables *************************
% vec_in : Input vector sequence
% guard_len : Length of guard interval (number of points)
% vec_out : Output vector sequence
% *****************************************************
function vec_out = vector_guard_ins(vec_in, guard_len);
ss=size(vec_in);
len = ss(2);
vec_out(:,1:guard_len)=vec_in(:,len-guard_len+1:len);
vec_out(:,guard_len+1:len+guard_len)=vec_in;
%******************** end of file ***************************
8 comb.m
% Add additive white gausian noise
%****************** variables *************************
% idata : input Ich data
% qdata : input Qch data
Page 75 of 77
% attn : attenuation level caused by Eb/No or C/N
% iout output Ich data
% qout output Qch data
%******************************************************
function [iout,qout] = comb (idata,qdata,attn)
iout = randn(1,length(idata)).*attn;
qout = randn(1,length(qdata)).*attn;

iout = iout+idata(1:length(idata));
qout = qout+qdata(1:length(qdata));
% ************************end of file***********************************
9. girem.m
% Remove guard interval (cyclic prefix) from an OFDM symbol
%
%****************** variables *************************
% idata : Input Ich data
% qdata : Input Qch data
% fftlen2 : FFT length + GI length
% gilen : Length of guard interval (number of points)
% nd : number of OFDM symbols
% iout : Output Ich data
% qout : Output Qch data
% *****************************************************
function [iout,qout]= girem(idata,qdata,fftlen2,gilen,nd);
idata2=reshape(idata,[],nd);
qdata2=reshape(qdata,[],nd);
iout=idata2(gilen+1:gilen+fftlen2,:);
qout=qdata2(gilen+1:gilen+fftlen2,:);
%******************** end of file ***************************
10 qpskdemod.m
% Function to perform QPSK demodulation
Page 76 of 77
function [demodata]=qpskdemod(idata,qdata,para,nd,ml)
%****************** variables *************************
% idata :input Ich data
% qdata :input Qch data
% demodata: demodulated data (para-by-nd matrix)
% para : Number of paralell channels
% nd : Number of data
% ml : Number of modulation levels
% (QPSK ->2 16QAM -> 4)
% *****************************************************
demodata=zeros(para,ml*nd);
demodata((1:para),(1:ml:ml*nd-1))=idata((1:para),(1:nd))>=0;
demodata((1:para),(2:ml:ml*nd))=qdata((1:para),(1:nd))>=0;
%******************** end of file ***************************
Page 77 of 77

Master your semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master your semester with Scribd & The New York Times

Cancel anytime.