SlideShare a Scribd company logo
1 of 64
Download to read offline
University of Applied Sciences Rosenheim
Faculty of Engineering
Electrical Engineering and Information Technology
Master Program
Master Thesis
Non-Orthogonal Waveforms
For 5G
Comparison and Characterization
Author: Muhammet Colak
First Advisor: Prof. Dr. Markus Stichler
Second Advisor: Prof. Dr. Holger Stahl
Erklärung gemäß §31,5 RaPo
Hiermit erkläre ich, dass ich die vorliegende Arbeit selbständig verfasst, noch nicht anderweitig
für Prüfungszwecke vorgelegt, keine anderen als die angegebenen Quellen oder Hilfsmittel
benützt, sowie wörtliche und sinngemäße Zitate als solche gekennzeichnet habe.
___________________ __________________
Ort, Datum Unterschrift
3
I. Acknowledgements
At the end of my thesis I would like to thank all those people who made this thesis possible and
an unforgettable experience for me.
First of all, I would like to express my deepest sense of gratitude to my thesis advisor Prof. Dr.
Michael Stichler for his patience and encouragement during thesis period. He steered me to the
right direction whenever I need it. Also Digital Signal Processing and Advanced Digital
Communication Systems lectures instructed by Prof. Dr. Stichler has been very important for me
to gain necessary knowledge to do my thesis.
I would like to thank to my second advisor Prof. Dr. Holger Stahl for his trust and support.
Wireless Communication Systems Lecture he taught has been massive start to interest further
about mobile commination Systems.
My special thanks goes to my elder brother Mehmet Colak for his financial support during my
studies in Germany. His encouragement during my master degree has been important. I feel
gratefull for all my family in Turkey for their support and trust.
I am gratefull to all my friends and classmates for their support and friendship which made me
feel at home. Among my friends I would like to mention my colleague Aiyman Saad who has
always welcome when I needed to discuss about Matlab simulations.
I used several references but one is very important to start my thesis work. In order for me to gain
fundamental signal processing knowledge necessary to do my thesis, I have studied the book
‘contemporary communication systems using Matlab, third edition ’ and practiced sample Matlab
codes in the book. I would like to send many thanks to the authors of this book John G. Proakis,
Masoud Salehi and Gerhard Bauch.
I owe my special thanks to the other university Professors that I took lectures during my studies
in Electrical Engineering and Information Technologies master degree program at the Rosenheim
University of Applied Sciences. I learned a lot from the lectures and the laboratory experiements.
4
II. Abstract
In this thesis two candidate multicarrier waveforms for the physical interface of 5G are compared
to Orthogonal Frequency Division Multiplexing (OFDM). One candidate waveform is Filter
Bank Multi-Carrier (FBMC) where each carrier is filtered before transmission to eliminate inter
carrier interference and inter symbol interference. Second candidate waveform is Universal
Filtered Multi-Carrier (UFMC) where blocks of subcarriers are filtered before transmission and
reception for the same purpose of eliminating inter carrier and inter symbol interferences. Error
Vector Magnitude analysis, Power Spectral Density analysis, Complementary Cumulative
Distribution Function analysis, Adjacent Channel Power Ratio analysis and several other metric
analysis are performed using Matlab simulations to characterize the waveforms.
Keywords: Master Thesis, PPN FBMC, OFDM, UFMC, Matlab simulation.
5
III. Preface
This thesis is written to fulfill the requirements of Masters of Engineering degree in the Electrical
Engineering and Information Technologies master degree program. The project has been carried
out over a period of 7 months at Rosenheim University of Applied Sciences. The supervisors for
this Project were Prof. Dr. Marcus Stichler and Prof. Dr. Holger Stahl.
Rosenheim, 31.05.2016
_____________________________________________
Muhammet COLAK
Email: muhammetcolak@gmail.com
6
IV. Acronyms
OFDM Orthogonal Frequency Division Multicarrier
PPN Poly Phase Network
FBMC Filter Bank Multi Carrier
UFMC
UL
DL
PRB
PSD
CCDF
ACPR
SNR
MMSE
ZF
Universal-Filtered Multi-Carrier
Up Link
Down Link
Physical Resource Block
Power Spectral Density
Complementary Cumulative Distribution Function
Adjacent Channel Power Ratio
Signal to Noise Ratio
Minimum Mean Square Error equalization
Zero Forcing equalization
dB
EVM
RMS
GUI
QAM
OQAM
IoT
WLAN
DVB
FFT
IFFT
deci-Bell
Error Vector Magnitude
Root Mean Square
Graphical User Interface
Quadrature Amplitude Modulation
Offset QAM
Internet of Things
Wireless Local Area Network
Digital Video Broadcasting
Fast Fourier Transform
Inverse Fast Fourier Transform
7
DFT
IDFT
CP
ISI
ICI
RF
FS-FBMC
PPN-FBMC
PAR
Discrete Fourier Transform
Inverse Discrete Fourier Transform
Cyclic Prefix
Inter Symbol Interference
Inter Carrier Interference
Radio Frequency
Frequency Spreading Filter Bank Multi-Carrier
Poly Phase Network Filter Bank Multi-Carrier
Peak to Average Power Ratio
8
V. Contents
I. Acknowledgements..................................................................................................................3
II. Abstract ....................................................................................................................................4
III. Preface......................................................................................................................................5
IV. Acronyms .................................................................................................................................6
V. Contents....................................................................................................................................8
VI. List of Figures ........................................................................................................................10
VII. List of Tables..........................................................................................................................11
1 Objectives...............................................................................................................................12
1.1 General Objective.........................................................................................................................12
1.2 Specific Objectives........................................................................................................................12
2 Introduction............................................................................................................................12
3 OFDM Basics.........................................................................................................................13
4 FBMC.....................................................................................................................................16
4.1 Prototype filter design .................................................................................................................16
4.2 PPN-FFT ........................................................................................................................................19
4.3 OQAM modulation.......................................................................................................................21
4.4 Matlab Simulations ......................................................................................................................24
4.4.1 Waveform filters...................................................................................................... 25
4.4.2 EVM Analysis ......................................................................................................... 26
4.4.3 Power spectral density (PSD) analysis:................................................................... 28
4.4.4 CCDF Analysis........................................................................................................ 28
4.5 AWGN Channel.............................................................................................................................29
5 UFMC.....................................................................................................................................31
5.1 UFMC Transmitter........................................................................................................................32
5.2 UFMC Receiver.............................................................................................................................34
5.3 Matlab Simulations ......................................................................................................................36
5.3.1 Waveform filters...................................................................................................... 36
9
5.3.2 EVM Analysis ......................................................................................................... 37
5.3.3 Power spectral density (PSD) analysis:................................................................... 41
5.3.4 CCDF Analysis........................................................................................................ 41
5.4 AWGN Channel.............................................................................................................................43
5.5 UFMC Filter...................................................................................................................................43
6 Conclusion..............................................................................................................................45
7 References ..............................................................................................................................46
Appendix – MATLAB Codes........................................................................................................47
GUI.m .......................................................................................................................................................47
FbmcFcn.m...............................................................................................................................................54
UfmcFcn.m ...............................................................................................................................................59
ACPRuf.m..................................................................................................................................................63
ACPRfb.m..................................................................................................................................................63
CCDFex.m .................................................................................................................................................64
EVMex.m ..................................................................................................................................................64
overSample.m ..........................................................................................................................................64
10
VI. List of Figures
Figure 3.1: Basic OFDM Transceiver System............................................................................... 13
Figure 3.2: Multicarrier modulation with the FFT ........................................................................ 14
Figure 4.1: Basic PPN-FBMC Transceiver System ...................................................................... 16
Figure 4.2 Prototype filter frequency response for K=4................................................................ 17
Figure 4.3: Impulse response of the prototype filter for overlapping factor K=4 ......................... 18
Figure 4.4. Section of a filter bank based on the prototype with K=4 .......................................... 18
Figure 4.5: PPN-IFFT implementation of the transmitter filter bank ........................................... 20
Figure 4.6: A section of the PPN in the transmitter (K=4)............................................................ 21
Figure 4.7: Comparison between QAM and OQAM .................................................................... 22
Figure 4.8. OFDM and FBMC symbol mapping on carriers ........................................................ 22
Figure 4.9: An OQAM transmitter using the IFFT-PPN scheme.................................................. 23
Figure 4.10: FBMC&OFDM simulation Graphical User Interface .............................................. 24
Figure 4.11: FBMC Filter characteristics...................................................................................... 26
Figure 4.12: OFDM and FBMC signal constellation on perfect channel...................................... 27
Figure 4.13 FBMC&OFDM PSD analysis.................................................................................... 28
Figure 4.14 : FBMC&OFDM CCDF Analysis ............................................................................. 29
Figure 4.15 : FBMC&OFDM simulation in AWGN channel....................................................... 29
Figure 4.16: FBMC&OFDM simulation under AWGN channel with ZF estimation for OFDM 30
Figure 5.1:UFMC transceiver architecture.................................................................................... 32
Figure 5.2.General UFMC transmitter structure ........................................................................... 33
Figure 5.3.UFMC transmitter submodule ..................................................................................... 33
Figure 5.4: General UFMC receiver structure............................................................................... 35
Figure 5.5:UFMC&OFDM simulation Graphical User Interface ................................................. 36
Figure 5.6: Dolph Chebychev FIR filter charactersitics................................................................ 37
Figure 5.7:OFDM and UFMC transceiver signal constellation on perfect channel...................... 38
Figure 5.8: OFDM and UFMC signal constellation on 40 dB AWGN channel. .......................... 39
Figure 5.9: OFDM and UFMC constellation on noisy channel with MMSE channel estimation. 40
Figure 5.10: UFMC&OFDM PSD analysis .................................................................................. 41
Figure 5.11: UFMC&OFDM CCDF Analysis .............................................................................. 42
Figure 5.12: UFMC vs OFDM under AWGN of 40 dB channel with MMSE estimation............ 43
Figure 5.13: UFMC with longer filter length ................................................................................ 44
11
VII. List of Tables
Table 4.1: Frequency domain prototype filter coefficients ........................................................... 17
Table 4.2: FBMC&OFDM simulation parameters........................................................................ 26
Table 5.1: Design elements for UFMC ......................................................................................... 34
Table 5.2: UFMC&OFDM simulation parameters ....................................................................... 38
Objectives 12
1 Objectives
1.1 General Objective
Analyze and characterize two multicarrier candidate waveforms for 5G; FBMC and UFMC, and
compare their characteristics with OFDM, the multicarrier waveform for 4G, using Matlab
simulations.
1.2 Specific Objectives
- Research 5G candidate waveforms and understand the requirements.
- Use Matlab simulations as a tool for analysis.
2 Introduction
In this thesis two of the candidate waveforms for 5G is simulated and compared with the current
LTE waveform OFDM which requires strict synchronicity in order to do its job properly. With
the requirements for 5G it is becoming difficult to sustain orthogonality which is challenged by
the following application scenarios of 5G technology [5GNOW31]:
1) Tactile Internet: Enabling real-time cyber-physical tactile control experiments. The real time
constraint is the human tactile sense which distinguishes latencies in the order of 1ms. In the
setting for 1ms round trip time requires a time budget on PHY of maximum 100μs [Fet12].
2) Internet of Things (IoT): Although the business models have not started off yet, IoT is possibly
going to be the most important application.
3) Gigabit Wireless Connectivity: Users will want to have quick downloads with download times
in the order of 10 Gbit/s.
4) Fragmented Spectrum: In order to utilize the spectrum more efficiently, better localization is
necessary and the waveform needs to enable fragmented spectrum usage.
According to recent research [5GNOW31] there are strong indicators that at least for some of the
mentioned applications, the OFDM waveform is not suitable. Therefore researchers are working
on new waveforms for 5G such as filtered OFDM, FBMC, UFMC, GFDM and BFDM.
In this thesis FBMC and UFMC waveforms are analyzed and their characteristics are compared
to OFDM using Matlab simulations. For the basics of using Matlab for simulations of
communication systems the reference book [Proakis] is recommended.
OFDM Basics 13
In the following chapters basic theories of OFDM, FBMC and UFMC are given before the
simulation results are analyzed. In chapter 4, OFDM basics are summarized, and then FBMC
theory is given in chapter 5 followed by the analysis of the simulation results comparing FBMC
and OFDM. In chapter 6 same approach is repeated for UFMC, that is, simulation results
comparing the characteristics of UFMC and OFDM are analyzed following a background
information on the theory of the UFMC. Finally concluding remarks are stated in the conclusion
chapter. Matlab codes used for the simulations can be found in the Appendix.
3 OFDM Basics
Orthogonal frequency division multiplexing (OFDM) is a multicarrier transmission technique
where each carrier is selected to be orthogonal to the others so that they can be distinguished in
the frequency domain at the receiver. OFDM is employed in the standard of today’s 4G network
which plays an important role in many current applications such as digital video broadcasting
(DVB) and wireless local area networks (WLANs). The basic OFDM transceiver system is
shown in Figure 3.1.
Figure 3.1: Basic OFDM Transceiver System
Basically the input data to be transmitted is converted from serial to parallel form first. Each
parallel block contains as many samples as the total number of subcarriers. Then the Inverse Fast
Fourier Transform (IFFT) of the block is computed before adding the Cyclic Prefix (CP). After
CP addition the result is converted to serial form and delivered to the channel for transmission.
On the receiver side the operations employed on the transmitter are performed in reverse order.
That is; after serial to parallel conversion, the CP is removed, Fast Fourier Transform (FFT) is
computed to get the symbol estimates which are then converted to serial form.
There are two issues regarding the OFDM transmission; Inter Symbol Interference (ISI) and Inter
Carrier Interference (ICI). As the symbols travel one by one to the other end of the channel, the
OFDM Basics 14
channel will introduce delay spread in time domain which results into OFDM symbol getting
spread out and hence will interfere with consecutive OFDM symbols which is referred as ISI.
The ISI can be eliminated by addition of guard interval between neighboring OFDM symbols.
However each OFDM symbol still suffers from ICI when only guard interval is added. ICI is the
result of delays in the multipath propagation environment and the frequency offset at the receiver.
In order to eliminate ICI, some part at the end of the useful symbol period, which is called Cyclic
Prefix (CP), is appended at the start.
However there are still some issues regarding the OFDM which can be summarized as:
- The guard interval wastes channel resources.
- High sensitivity to phase, frequency, and clock offsets of the receiver, the transmitter or
the channel makes it difficult to maintain orthogonally.
- High Peak to Average power Ratio(PAR) requires highly linear RF Amplifiers.
The issues summarized are the main challenges that OFDM faces when it comes to new 5G
requirements. That is why new waveforms are investigated.
In an ideal channel without any noise and any distorting effect of the channel there is no need for
using CP. In this case the OFDM transceiver system becomes basically an IFFT block in the
transmitter side and an FFT block in the receiver side as shown in Figure 3.2 as explained in
[Primer] where the size of the IFFT & FFT is M and
Figure 3.2: Multicarrier modulation with the FFT
di(mM), a set of M data samples with 0 ≤ i ≤ M − 1, is provided to the IFFT input. For
mM ≤ n < (m + 1)M the IFFT output is expressed by
x(n) = ∑ di(mM)ej2π
i(n−mM)
MM−1
i=0 (3.1)
The set of M samples obtained is called a multicarrier symbol and m is the symbol index. For
transmission in the channel, a parallel-to-serial (P/S) converter is introduced at the output of the
IFFT and the samples x(n) appear in serial form. When the sampling frequency of the transmitted
OFDM Basics 15
signal is unity, there are M carriers and the carrier frequency spacing is 1/M. The duration of a
multicarrier symbol T is the inverse of the carrier spacing, T=M. Note that T is also the
multicarrier symbol period, which reflects the fact that successive multicarrier symbols do not
overlap in the time domain. At the receive side, a serial-to-parallel (S/P) converter is introduced
at the input of the FFT. The data samples are recovered by
𝑑𝑖(𝑚𝑀) = ∑ 𝑥(𝑛)𝑒−𝑗2𝜋
𝑖(𝑛−𝑚𝑀)
𝑀mM+𝑀−1
n=mM (3.2)
For the proper functioning of the system, the receiver (FFT) must be perfectly aligned in time
with the transmitter (IFFT). But, in the presence of a channel with multipath propagation, due to
the channel impulse response, the multicarrier symbols overlap at the receiver input and it is no
more possible to demodulate with just the FFT, because inter symbol interference has been
introduced and the orthogonality property of the carriers has been lost. Then, there are 2 options:
1) extend the symbol duration by a guard time (and add CP as mentioned before) exceeding the
length of the channel impulse response and still demodulate with the same FFT.
2) keep the timing and the symbol duration as they are, but add some processing to the FFT. The
scheme is called FBMC, because this additional processing and the FFT together constitute a
bank of filters. The next section explains this approach.
In the reference implementation of OFDM for the purposes of this thesis two different
circumstances are assumed; one is ideal channel and the other is a channel with only AWGN
without multipath or any other channel effect. In both cases CP is not considered. For the latter
case a linear receiver in an AWGN channel is simulated which utilize Minimum Mean Square
Error (MMSE) and Zero Forcing filter (ZF) estimations by multiplying the received signal with
the matrices accordingly:
𝑊𝑍𝐹 = (
𝑉
𝑛𝑜𝑟𝑚(𝑉)
)+
= (T)+
𝑊 𝑀𝑀𝑆𝐸 = (𝑇 𝐻
𝑇 + 𝜎2
𝐼)−1
𝑇 𝐻
(3.3)
Where V is the IFFT matrix, T+ is the Moore-Penrose-Inverse of the matrix T, 𝑇 𝐻
is the
hermitian transpose and 𝜎2
is the noise variance and I is the identity matrix.
In the following chapters, FBMC and UFMC waveforms are investigated using Matlab
simulations and compared to OFDM.
FBMC 16
4 FBMC
The filter bank based multicarrier (FBMC) transmission introduces filter banks to the OFDM
system and discards the CP in order to improve flexibility of the system to deal with some
limitations of OFDM. The filter bank can be designed with different properties to satisfy the
communication requirements, such as to reduce the sideband power loss and increase the spectral
efficiency. There are two types of FBMC implementations, the frequency spreading filter bank
multicarrier (FS-FBMC) and the poly-phase network filter bank multicarrier (PPN-FBMC). PPN-
FBMC is selected as the model in this thesis as it reduces the high complexity which is
introduced by the extra filtering operations at the transmitter and receiver. Figure 4.1 depicts the
basic block diagram of a PPN – FBMC transceiver system.
Figure 4.1: Basic PPN-FBMC Transceiver System
The poly-phase network of filter bank (PPN) is used to filter each carrier before transmission.
The filter bank needs to be selected carefully to satisfy the communication requirements. In the
following sub sections include materials extracted from [Primer] to explain the filter design and
its characteristics.
4.1 Prototype filter design
Digital transmission is based on the Nyquist theory: the impulse response of the transmission
filter must cross the zero axis at all the integer multiples of the symbol period. The condition
translates in the frequency domain by the symmetry condition about the cut-off frequency, which
is half the symbol rate. Then, a straightforward method to design a Nyquist filter is to consider
the frequency coefficients and impose the symmetry condition.
In transmission systems, the global Nyquist filter is generally split into two parts, a half-Nyquist
filter in the transmitter and a half-Nyquist filter in the receiver. Then, the symmetry condition is
satisfied by the squares of the frequency coefficients. The frequency coefficients of the half-
Nyquist filter obtained for overlapping factors K=2, 3 and 4 are given in Table 4.1 [Primer].
FBMC 17
Table 4.1: Frequency domain prototype filter coefficients
K 𝐻0 𝐻1 𝐻2 𝐻3 𝜎2
(𝑑𝐵)
2 1 √2 2⁄ - - -35
3 1 0.911438 0.411438 - -44
4 1 0.971960 √2 2⁄ 0.235147 -65
The PPN filter satisfy the equation
1
𝐾
∑ |𝐻 𝑘
2
|𝐾−1
𝑘=−𝐾+1 = 1 (4.1)
In the frequency domain, the filter response consists of 2K-1 pulses for K=4. The continuous
frequency response, shown in Figure 4.2, is obtained from the frequency coefficients through the
interpolation formula for sampled signals which yields:
H(f) = ∑ Hk
sin(π(f−
k
MK
)MK)
MKsin(π(f−
k
MK
))
K−1
k=−(K−1) (4.2)
As a result, the out-of-band ripples are nearly disappeared and a highly selective filter is obtained.
Figure 4.2 Prototype filter frequency response for K=4
The impulse response h(t) of the filter is given by the inverse Fourier transform of the pulse
frequency response, which is
ℎ(𝑡) = 1 + 2 ∑ 𝐻 𝑘 cos (2𝜋
𝑘𝑡
𝐾𝑇
)𝐾−1
𝑘=1 (4.3)
Figure 4.3 shows the impulse response of the filter with length L=1024, the number of sub-
channels M=256 and K=4.
FBMC 18
Figure 4.3: Impulse response of the prototype filter for overlapping factor K=4
Once the prototype filter is designed, the filter bank is obtained by the frequency shifts 𝑘/𝑀. The
filter with index k is obtained by multiplying the prototype filter coefficients by 𝑒 𝑗2𝜋𝑘𝑖/𝑀
. A
section of the filter bank derived in that manner is shown in Figure 4.4 [Primer]. The sub-channel
index corresponds to the frequency axis and the sub-carrier spacing is unity. A key observation is
that the sub-channels with even index (odd index) do not overlap. In fact, a particular sub-channel
overlaps in frequency with its neighbors only.
Figure 4.4. Section of a filter bank based on the prototype with K=4
Considering the complete system in Figure 4.1, the frequency coefficients of the transmitter-
receiver filter are the squares of those of the prototype. The corresponding responses are given by
ℎ2(𝑡) = 1 + 2 ∑ 𝐻 𝑘
2
cos(2𝜋 𝑘𝑡
𝐾𝑇
)𝐾−1
𝑘=1 (4.4)
and
𝐻2(𝑓) = ∑ 𝐻 𝑘
2 sin(𝜋(𝑓−
𝑘
𝑀𝐾
)𝑀𝐾)
𝑀𝐾𝑠𝑖𝑛(𝜋(𝑓−
𝑘
𝑀𝐾
))
𝐾−1
𝑘=−(𝐾−1) (4.5)
FBMC 19
An important parameter related to the prototype filter design is the “background noise” power.
Actually, it is the residual interference power due to the non-orthogonality of the carriers beyond
the neighboring sub-channels. It is measured, for example, by loading all the sub-channels but
some with uncorrelated unit power signals and measuring the signal power in the unloaded sub-
channels.
4.2 PPN-FFT
In the time domain, the prototype filter is defined by a set of coefficients and the relationship
between input and output sequences, which is
𝑦(𝑛) = ∑ ℎ𝑖 𝑥(𝑛 − 𝑖)𝐿−1
𝑖=0 (4.6)
The filter impulse response, of length L, is the sequence of coefficients ℎ𝑖 (0 ≤ i ≤ 𝐿 −1) and the
frequency response is expressed by
𝐻(𝑓) = ℎ𝑖 𝑒−𝑖2𝜋𝑖𝑓
(4.7)
where the sampling frequency is assumed to be unity. The filter has linear phase if the
coefficients are symmetrical and, in this case, the delay is
𝜏 =
𝐿−1
2
(4.8)
In digital filtering, it is customary to use the Z-transfer function, which generalizes the frequency
response and is defined by
𝐻(𝑍) = ∑ ℎ𝑖 𝑍−𝑖𝐿−1
𝑖=0 (4.9)
The filter frequency response is the restriction of the Z-transfer function to the unit circle, i.e. it is
obtained by letting 𝑍 = 𝑒 𝑗2𝜋𝑓
. Now, if we assume that the filter length is a product of two
factors, 𝐿 = 𝐾. 𝑀, the sequence of filter coefficients can be decomposed into M interleaved
sequences of K coefficients and the Z-transfer function can be expressed as a double summation
𝐻(𝑍) = ∑ 𝐻 𝑃(𝑍 𝑀
)𝑍−𝑃𝑀−1
𝑃=0 (4.10)
𝐻 𝑃(𝑍 𝑀
) = ∑ ℎ 𝑘𝑀+𝑃 𝑍−𝑘𝑀𝐾−1
𝑘=0 (4.11)
It turns out that each individual filter element, 𝐻 𝑃(𝑍 𝑀
) , has the frequency response of a phase
shifter, hence the name of poly-phase decomposition, and poly-phase network for the complete
set. Now, turning to the filter bank in the transmitter, which is generated by shifting the response
of the filter H( f ) by 1/M on the frequency axis leads to the function
𝐵1(𝑓) = 𝐻 (𝑓 −
1
𝑀
) = ∑ ℎ𝑖 𝑒−𝑗2𝜋𝑖(𝑓−
1
𝑀
)𝐿−1
𝑖=0 (4.12)
The corresponding Z-transfer function is
FBMC 20
𝐵1(𝑍) = ∑ ℎ𝑖 𝑒 𝑗2𝜋𝑖/𝑀
𝑍−𝑖𝐿−1
𝑖=0 (4.13)
and it is expressed in terms of the poly-phase decomposition by
𝐵1(𝑍) = ∑ 𝑒 𝑗
2𝜋
𝑀
𝑃
𝑍−𝑃
𝐻 𝑃(𝑍 𝑀
)𝑀−1
𝑃=0 (4.14)
The key point here is that the functions 𝐻 𝑃(𝑍 𝑀
) are not affected by the frequency shift. Then,
considering all the shifts by multiples of 1/M and the associated filters, and letting
𝑊 = 𝑒− 𝑗 2𝜋 /𝑀
, a matrix equation is obtained
[
𝐵0(𝑍)
𝐵1(𝑍)
..
𝐵 𝑀−1(𝑍)]
= [
1 1 … 1
1
⋮
𝑊−1
…
⋮
𝑊−𝑀+1
⋮
1 𝑊−𝑀+1
… 𝑊−(𝑀−1)2
]
[
𝐻0(𝑍 𝑀
)
𝑍−1
𝐻1(𝑍 𝑀
)
⋮
𝑍−(𝑀−1)
𝐻 𝑀−1(𝑍 𝑀
)]
(4.15)
The square matrix is the matrix of the inverse discrete Fourier transform (IDFT) and all the filters
in the bank have the same filter elements 𝐻 𝑃(𝑍 𝑀
). In the implementation, the transmitter output
is the sum of the outputs of the filters of the bank. Thus, the processing associated with the filter
elements 𝐻 𝑃(𝑍 𝑀) can be carried out after the summation which is performed by the IDFT. The
structure for the implementation of the filter bank in the transmitter is shown in Figure 4.5
[Primer].
Figure 4.5: PPN-IFFT implementation of the transmitter filter bank
The same scheme applies to the filter bank in the receiver. The difference is that the frequency
shifts are multiples of –1/M and the discrete Fourier transform (DFT) replaces the IFFT. In fact,
for each sub-channel, the signal of interest is shifted around the frequency origin and filtered.
Again, the filter elements are the same for all the filters in the bank and, since it is the sum of the
sub-channel signals which is received, the processing can be common and the separation of the
signals can take place afterwards, with the help of the DFT.
The block diagram of the transmission system was given in Figure 4.1. The size of the DFT is a
power of two and the fast Fourier transform algorithm is implemented. Note that the system delay
is K multicarrier symbol periods, due to the delay of the prototype filter in transmit and receive
FBMC 21
filter banks. In terms of complexity, each section of the PPN has K multiplications, as shown in
Figure 4.6 [Primer] for K=4, and the complete PPN requires KM multiplications, which is less
than the IFFT, as soon as the number M of sub-channels becomes large.
Figure 4.6: A section of the PPN in the transmitter (K=4)
The transmitter can generate a real sequence, with almost the same computational complexity.
The IFFT size has to be doubled and every input data element 𝑑𝑖(𝑚𝑀) is applied to two
symmetrical inputs. Then, the IFFT output is real and, since the PPN coefficients are real, the
transmitter output is real. The receiver can process real signals, with similar changes.
4.3 OQAM modulation
In FBMC systems, any kind of modulation can be used whenever the sub-channels are separated.
For example, if only the sub-channels with even (odd) index are exploited, there is no overlap
and QAM modulation can be employed. However, if full speed is seeked, all the sub-channels
must be exploited and a specific modulation is needed to cope with the frequency domain
overlapping of the neighboring sub-channels. Two important aspects of the transmission systems
is worth emphasizing here [Primer].
1) due to the overlapping of neighboring sub-channels, orthogonality is needed. It is achieved by
using the real part of the IFFT inputs with even index and the imaginary part of the IFFT inputs
with odd index. But this implies a reduction of the capacity by the factor 2. In fact, full capacity
can be restored with the second aspect.
2) Due to the symmetry of the transmitter and receiver filters and the fact that they are identical,
the imaginary part of the impulse response of the sub-channel interference filter crosses the time
axis at the integer multiples of the symbol period and the real part crosses the time axis at the odd
multiples of half the symbol period. The time axis crossings are interleaved. Then, the strategy to
reach full capacity is the following: double the symbol rate and, for each sub-channel, use
alternatively the real and the imaginary part of the IFFT as seen in Figure 4.7 where k represents
the subcarrier index, n represents the time index and Rkn+jYkn represents the complex data
symbol.
FBMC 22
Figure 4.7: Comparison between QAM and OQAM
This way, the real and the imaginary part of a complex data symbol are not transmitted
simultaneously as in OFDM, but the imaginary part is delayed by half the symbol duration. This
is the so-called offset quadrature amplitude modulation (OQAM) and the term ‘offset’ reflects the
time shift of half the inverse of the sub-channel spacing between the real part and the imaginary
part of a complex symbol. Note that this type of modulation is used in single carrier systems, to
improve the peak factor. In the present multicarrier context the throughput rate is the same as
with QAM modulation, employed for example in OFDM systems, but without the guard time.
Figure 4.8 [He15] illustrates the difference between QAM and OQAM modulation techniques.
Figure 4.8. OFDM and FBMC symbol mapping on carriers
For the implementation, the rate is doubled and, in the transmitter, consecutive blocks of M
output samples overlap and the overlapping parts with M/2 samples are added. In the receiver, the
FBMC 23
FFT window slides by M/2 samples instead of M samples. The PPN-FFT approach requires two
chains, or a single FFT running at double rate and two PPN devices for the transmitter. As
mentioned above, the blocks of M output samples coming out of PPN1 and PPN2 overlap by M/2
samples and an addition is introduced, as shown in Figure 4.9 [Primer].
Figure 4.9: An OQAM transmitter using the IFFT-PPN scheme
In the next sub-sections Matlab simulation results are discussed.
FBMC 24
4.4 Matlab Simulations
Figure 4.10 below shows the Matlab Graphical User Interface (GUI) used for simulations.
Figure 4.10: FBMC&OFDM simulation Graphical User Interface
The GUI is used for making two comparisons; UFMC-OFDM, FBMC-OFDM. So the reference
waveform to make comparisons in both cases is OFDM. It includes 6 figures and 5 input and
output information panels.
General Settings information panel is used to set the general simulation parameters:
- Number of used carriers
- Number of symbols in a frame
- QAM Modulation level (e.g., 16 QAM, 64 QAM)
- Select if AWGN noisy channel is used and select the SNR value of the channel
- Select if channel estimation is going to be used for OFDM or not
- Select the channel estimation (MMSE estimation, ZF estimation) for UFMC and for
OFDM if it is selected in the previous combo box.
Waveform Settings panel includes below parameter inputs about the selected waveforms:
- UFMC block size, that is, the number of carriers in one block
- UFMC number of blocks
- Length of the Dolph-Chebychev FIR filter used for UFMC waveform
FBMC 25
- The side band Attenuation intended by the UFMC filter
- FBMC filter overlapping factor, the best choice is 4. This is relevant only when FBMC
and OFDM are comparison related simulation.
The remaining three panels are there for the results. Mainly Root Mean Square Error Vector
Magnitude related results which reflect the error on the received signal, and the Adjacent
Channel Power Ratio related results which reflect the power consumption on the signal and
the wasted power when there is no signal. So the three results panels for FBMC, OFDM and
UFMC includes the below parameter outputs:
- RMS EVM
- Max EVM
- Percentile EVM
- NumSym: Number of symbols used for calculations
- ACPR: Adjacent Channel Power Ratio
- mainChnPwr: Main Channel Power
- adjChnPwr: Adjacent Channel Power
As for the figures, there are 6 of them. For FBMC-OFDM comparisons the figures are:
- OFDM transceiver constellation
- FBMC transceiver constellation
- FBMC-OFDM filter impulse response
- FBMC-OFDM filter frequency response
- Power Spectral Density Analysis
- CCDF Measurement Analysis
4.4.1 Waveform filters
Figure 4.11 below illustrates the filter characteristics used for FBMC and OFDM transceiver
systems.
FBMC 26
Figure 4.11: FBMC Filter characteristics
The Overlapping Factor of the filter used for FBMC waveform is selected as 4. The frequency
responses show that the FBMC filter sideband suppression is better than that of the OFDM filter
which can enhance suppression of the sideband power dissipation.
4.4.2 EVM Analysis
For the remaining simulations the parameters given in the below Table 4.2 are used with minor
variations which will be highlighted when necessary.
Table 4.2: FBMC&OFDM simulation parameters
Total number of used carriers: 256
Number of symbols in a frame: 20
Modulation: 16 QAM
Channel: Perfect, no noise
Filter Overlapping Factor: 4
FBMC 27
Figure 4.12 shows the transmitted and received signal constellation diagrams according to the
simulation parameters given in Table 4.2 above. The transmitted signals are perfectly received.
Along with the constellation, Root Mean Square (RMS) Error Vector Magnitude (EVM) values
computed on the received signals are shown.
Figure 4.12: OFDM and FBMC signal constellation on perfect channel.
As it can be seen from the figure above, EVM values computed for OFDM are much smaller than
those for FBMC. That is because of the filter used for FBMC which contributes distortion.
Nevertheless this fact does not affect the correct reconstruction of the transmitted signal. Note
that the EVM values are in percentage therefore no error on this scale can be noticed on the
FBMC 28
constellation because the errors are too small. As expected OFDM performs better than FBMC as
the channel is perfect without multipath effect and without noise which means that when there is
no threat against the orthogonality of the OFDM signal it is the better solution.
4.4.3 Power spectral density (PSD) analysis:
As can be seen by the Adjacent Channel Power Ratio (ACPR) analysis results (numbers in green
color for OFDM, blue color for FBMC) it is seen that FBMC performs about 7 dB better than
OFDM. This result is thanks to the PPN network applied in FBMC transmission. For this
simulation FBMC and OFDM transmitted signals are resampled to increase the sampling rate by
4 and the frequency axis is normalized to unity.
Figure 4.13 FBMC&OFDM PSD analysis
4.4.4 CCDF Analysis
Complementary Cumulative Distribution Function (CCDF) shows the distribution of power in dB
above average power which is an indication about Peak to Average power Ratio (PAR). PAR is
better to be small in communication systems as high PAR values causes saturation in the
transmitter and receiver electronics.
FBMC 29
Figure 4.14 : FBMC&OFDM CCDF Analysis
Figure 4.14 illustrates the behavior of the OFDM and FBMC transceivers. Vertical axis shows
the probability of the existence of the signal power above the corresponding average power in dB
represented by the horizontal axis. According to the figure OFDM has slightly higher probability
of carrying signals with higher PAR.
4.5 AWGN Channel
Figure 4.15 : FBMC&OFDM simulation in AWGN channel
FBMC 30
For 40 dB of Signal to Noise Ratio (SNR) is assumed in an AWGN channel, the results will be in
the above figure. As it can be appreciated EVM values are increased but still the signals could be
detected. As noticed the EVM of OFDM has become larger than that of FBMC as the
orthogonality of the OFDM signals are threatened more because the filtering has contributed
robustness to FBMC. Also the ACPR values of the FBMC became better as compared to OFDM
under the noisy channel.
What happens if we add protection to OFDM in AWGN channel by Zero Forcing equalization?
Figure 4.16: FBMC&OFDM simulation under AWGN channel with ZF estimation for OFDM
As it can be noticed from Figure 4.16 above, EVM values for OFDM is decreased while the
ACPR is improved. OFDM constellation seems less noisy as well. But still in terms of ACPR
analysis, FBMC performs better.
UFMC 31
5 UFMC
In the state of the art of UFMC, the recent research reports and articles compares Filtered
Orthogonal Frequency Division Multicarrier (fOFDM) and Filterbank based multi-carrier
(FBMC) modulations. They differ in the filtering choices applied. FBMC applies a filtering
functionality on a per subcarrier basis while OFDM filters the complete multicarrier band in a
single shot. Both variants have various implications for transmitting data via a wireless link.
Neither of the two schemes outperforms the other in every aspect relevant for communication.
While FBMC provides a better subcarrier separation, filtered OFDM is less complex. Theoretical
part of UFMC section includes extracted material from [5GNOW31].
The two schemes are the extreme cases of a more general waveform design: FBMC applies a
filtering on a per subcarrier basis. By doing so, many advantages can be harvested on. Just to
name one, inter-carrier interference is highly reduced in case of frequency jitter / offsets either
due to Doppler or due to misaligned oscillators. However, the cost to pay are comparatively long
filter lengths according to one of the natural laws of signal processing – Küpfmüller’s uncertainty
principle according to which the product of the length and the bandwidth of a given pulse is
constant [KK00]. Filtered OFDM is on the other side of the space of options. Filtering is done
over the complete band. So, the filter bandwidth is much higher and thus the filter length is much
smaller than with FBMC.
Having identified this, a more universal solution appears: Universal Filtered Multicarrier
(UFMC) which applies filtering to subsets of the complete band instead of single subcarriers or
the complete band. Basic UFMC transceiver architecture is depicted in Figure 5.1 [Schaich].
UFMC 32
Figure 5.1:UFMC transceiver architecture
5.1 UFMC Transmitter
Figure 5.2 [5GNOW31] depicts an exemplary baseband structure of the UFMC transmitter with
B sub-bands. The i-th UFMC sub-module, with i ϵ {1,2, ..., B}, generates the (N+Nfilter-1)
dimensional time-domain baseband vector xi following the UFMC design criteria for the
respective sub-band carrying the complex QAM symbol vector si with dimension ni x1. N is the
required number of samples per symbol to represent all sub-bands which depends on the overall
covered bandwidth, the sample rates of the single sub-bands have to be aligned to each other,
Nfilter the length of the filter.
UFMC 33
Figure 5.2.General UFMC transmitter structure
One multi-carrier symbol out of a consecutive stream of symbol vectors is considered, dropping
the temporal symbol index for the ease of notation. The single sub-band signals are combined to
synthesize the transmit vector x. In case of downlink (DL) the single sub-modules cover the
complete available frequency band(s), transporting data to multiple users. In uplink (UL) the
single sub-modules cover only the frequency portion the respective user has been allocated to. A
single sub-module is constructed according to Figure 5.3.
Figure 5.3.UFMC transmitter submodule
The ni complex QAM symbols are transformed to time-domain using an IDFT spreader. Then the
sub-band filter is applied. The time-domain transmit vector for a particular multi-carrier symbol
is the superposition of the sub-band-wise filtered components:
𝒙 = ∑ 𝑭𝒊 𝑽𝒊 𝒔𝒊
𝑩
𝒊=𝟏 (5.1)
Vi being of dimension Nxni, includes the relevant columns of the inverse Fourier matrix
according to the respective sub-band position within the overall available frequency range, Fi is a
UFMC 34
Toeplitz matrix with dimension (N+Nfilter-1)xN, composed of the filter impulse response,
enabling the convolution. The signal can be rewritten without the summation by the following
definitions:
𝐹 = [ 𝐹1 𝐹2 ⋯ 𝐹𝐵] (5.2)
𝑉 = 𝑑𝑖𝑎𝑔 (𝑉1 , 𝑉2, … , 𝑉𝐵) (5.3)
𝒔 = [𝒔 𝟏
𝑻
, 𝒔 𝟐
𝑻
, ⋯ , 𝒔 𝑩
𝑻] 𝑻
(5.4)
This enables column wise stacking of filter matrices, generating a block-diagonal IDFT matrix
and stacking of all data symbols into one column, respectively. This results into:
𝐱 = 𝐅 𝐕 𝐬 (5.5)
The following table summarizes the available design elements:
Table 5.1: Design elements for UFMC
B Number of sub-bands
ni : blockSize Number of subcarriers in sub-band i
N Overall number of subcarriers
Filter i length/bandwidth, filter characteristic defined by FIR filter coefficients
The choice of B depends on the spectral settings the UFMC transmitter has to deal with and on
the system design targets. If the system is to be applied to a scenario with fragmented spectrum,
B may be chosen according to the number of available spectral sub-bands. Alternatively, for
streamlining the overall system and controlling the spectral characteristics more fine-grained, the
single sub-bands may even be subdivided into smaller chunks with equal size in every sub-band.
The single spectral chunks are then called as physical resource blocks (PRB), as in the
terminology of LTE.
For the choice of the filter characteristics FIR-coefficients defined by Dolph-Chebyshev windows
which are parametrizable in their shape in terms of side lobe attenuation are applied.
5.2 UFMC Receiver
UFMC receiver processing is done as depicted in Figure 5.4 [5GNOW31] below,
UFMC 35
Figure 5.4: General UFMC receiver structure.
where y is the received signal vector after propagation through the channel, represented by the
convolution matrix H with Toeplitz structure, constructed by the time-domain channel impulse
response, including the addition of noise n:
𝑦 = 𝐻𝑥 + 𝑛 = 𝐻 𝐹 𝑉 𝑠 + 𝑛 (5.6)
Each UFMC Rx sub-module outputs the transmitted symbol vectors including distortions of the
respective sub-band. In Up Link (UL) the sub-modules are covering the complete frequency
range used for data transmission, in Down Link (DL) the receiver is part of the user equipment,
and so, the single sub-modules are only active, if the respective sub-band/PRB carries data and/or
control messages relevant for the respective user.
Various design strategies for the receiver are possible. In the exemplary case of a linear receiver
in an AWGN channel, Minimum Mean Square Error (MMSE) and Zero Forcing filter (ZF) can
be written as
𝑊𝑍𝐹 = (𝐹𝑉)+
= 𝑇+
𝑊 𝑀𝑀𝑆𝐸 = (𝑇 𝐻
𝑇 + 𝜎2
𝐼)−1
𝑇 𝐻
(5.7)
with T+ being the Moore-Penrose-Inverse of a matrix, 𝑇 𝐻
is the hermitian transpose, 𝜎2
is the
noise variance and I is the identity matrix. The receiver operation in Eq. 𝑊𝑍𝐹 = (𝐹𝑉)+
= 𝑇+
𝑊 𝑀𝑀𝑆𝐸 = (𝑇 𝐻
𝑇 + 𝜎2
𝐼)−1
𝑇 𝐻
(5.75.7 can be viewed as a concatenation of
inverse filtering and DFT despreading.
UFMC 36
5.3 Matlab Simulations
Figure 5.5 below shows the Graphical User Interface (GUI) used to compare OFDM and UFMC
simulation results and make comparisons between the two waveforms. [Vakilian] and
[5GNOW31] are used as references for the theory behind the Matlab codes of UFMC simulation.
Figure 5.5:UFMC&OFDM simulation Graphical User Interface
The GUI includes 6 figures and 5 input and output information panels.
As mentioned before, the same GUI is used for making two comparisons; UFMC-OFDM,
FBMC-OFDM. So the reference waveform to make comparisons is OFDM. Here UFMC-OFDM
specific related to the GUI will be given which are the names of the 6 figures:
- OFDM transceiver constellation
- UFMC transceiver constellation
- UFMC-OFDM filter impulse response
- UFMC-OFDM filter frequency response
- Power Spectral Density Analysis
- CCDF Measurement Analysis
5.3.1 Waveform filters
Below Figure 5.6 illustrates the filter characteristics used for UFMC and OFDM transceiver
systems.
UFMC 37
Figure 5.6: Dolph Chebychev FIR filter charactersitics
- Length of the Dolph-Chebychev FIR filter used for UFMC waveform is selected as 7
- The side band Attenuation selected for the UFMC filter is 40 dB
As can be appreciated from the figure, the UFMC filter sideband attenuation is better than the
one for OFDM. The impulse responses show that the UFMC filter passband is narrower than
the OFDM filter which can enhance the better use of the spectrum especially fragmented
spectrum applications.
5.3.2 EVM Analysis
For the remaining simulations the parameters given in the below Table 5.2 are used with minor
variations which will be highlighted when necessary.
UFMC 38
Table 5.2: UFMC&OFDM simulation parameters
Total number of used carriers: 256 UFMC Block size: 16
Number of symbols in a frame: 20 UFMC number of resource blocks: 16
Modulation: 16 QAM Dolph-Chebychev Filter length: 7
UFMC estimation: MMSE estimation Dolph-Chebychev Filter sideband attenuation: 40 dB
Total number of used carriers: 256 Channel: Perfect, no noise
Figure 5.7 shows the transmitted and received signal constellation diagrams according to the
simulation parameters given in Table 5.2 above.
Figure 5.7:OFDM and UFMC transceiver signal constellation on perfect channel.
The transmitted signals are perfectly received. Along with the constellation, Root Mean Square
(RMS) Error Vector Magnitude (EVM) values computed on the received signals are shown. As it
can be appreciated on the figure above, EVM values computed for OFDM are effectively zero
UFMC 39
while those of UFMC reflect little bit of distortion because of the filter used for UFMC which
contributes to this negligible distortion. Nevertheless this fact does not affect the correct
reconstruction of the transmitted signal. As expected OFDM performs better than UFMC as the
channel is perfect without multipath effect and without noise which means that when there is no
threat against the orthogonality of the waveform OFDM is the better solution.
Figure 5.8: OFDM and UFMC signal constellation on 40 dB AWGN channel.
Figure 5.8 shows what happens if we use AWGN channel with 40 dB of SNR. It seems that
OFDM has much more distortion than UFMC which is also reflected on the EVM results above.
UFMC 40
This time EVM for UFMC is smaller than that of OFDM. The reason for that result is the MMSE
channel estimation, which reduced the effect of noise in UFMC while no additional computation
is performed for OFDM.
Figure 5.9: OFDM and UFMC constellation on noisy channel with MMSE channel estimation.
Figure 5.9 shows what happens when we add MMSE channel estimation to OFDM part as well
on the same channel. The EVM values are more or less the same after the channel estimation
when simulation is executed on the noisy channel.
UFMC 41
5.3.3 Power spectral density (PSD) analysis:
Figure 5.10 shows the PSD analysis results for the 40 dB SNR situation when both OFDM and
UFMC utilize the MMSE estimation. As seen on the figure UFMC has around 20 dB better
performance on the stop band thanks to the Dolph-Chabychev filter. This result is confirmed by
the Adjacent Channel Power Ratio (ACPR) analysis results (numbers in green color for OFDM,
brown color for UFMC) show that UFMC performs about 18 dB better than OFDM. Please note
that the bandwidth subject to the PSD analysis is normalized to unity.
Figure 5.10: UFMC&OFDM PSD analysis
5.3.4 CCDF Analysis
Complementary Cumulative Distribution Function (CCDF) shows the distribution of power in dB
above average power which is an indication about Peak to Average power Ratio (PAR). PAR is
better to be small in communication systems as high PAR values causes saturation in the
transmitter and receiver electronics.
UFMC 42
Figure 5.11: UFMC&OFDM CCDF Analysis
Figure 5.11 illustrates the behavior of the OFDM and UFMC transceivers. Vertical axis shows
the probability of the existence of the signal power above the corresponding average power in dB
represented by the horizontal axis. According to the figure OFDM has slightly higher probability
of carrying signals with higher PAR.
UFMC 43
5.4 AWGN Channel
Figure 5.12: UFMC vs OFDM under AWGN of 40 dB channel with MMSE estimation
Figure 5.12 shows the simulation results comparing UFMC and OFDM under AWGN of 40 dB
channel. Both OFDM and UFMC have channel equalization of MMSE. Note that EVM values
are increased due to noise and they are almost the same for both waveforms. Other results do not
show significant difference from the previous results.
5.5 UFMC Filter
Now let’s increase the filter length to see its impact on the simulation results. Figure 5.13 below
shows the simulation results under the same conditions as the previous simulation except the
filter length which is increased from 7 to 21.
UFMC 44
Figure 5.13: UFMC with longer filter length
First thing to notice is the ACPR of UFMC which is improved about 10 dB. That means with a
longer filter length UFMC becomes more capable of suppressing the adjacent channel which is
suitable for narrower block sizes. The effect can be seen on the frequency response of the filter
selected for UFMC. The pass band of the filter became narrower. The flexibility of the Dolph-
Chebychev filter is worth to mention here because both the filter length and the side band
attenuation in dB are parameters to derive the filter to be used for a selected application. Here it
can be concluded that the UFMC is a good solution for fragmented spectrum where the fragment
bandwidth is variable.
Conclusion 45
6 Conclusion
Mobile communication requirements are increasing with the upcoming 5G applications such as
Tactile Internet, Internet of Things and Fragmented Spectrum which will mean to necessitate the
redesign of the physical layer. FBMC provides filtering of each subcarrier, which requires very
long filter length, to suppress the out of band radiation and prevent Inter Carrier Interference.
Although FBMC has several advantages as compared to the current OFDM of LTE, it is still not
the optimal solution. With UFMC the objective is to merge the advantages of FBMC and filtered
OFDM and get rid of some disadvantages of them. It is based on the idea of filtering a block of
sub carriers which is provided with not so long filter length as in the case of FBMC. Like FBMC,
UFMC is robust to multi-user interference, exhibits higher spectral efficiency and better suited to
fragmented spectrum than OFDM.
References 46
7 References
[Fet12] G. Fettweis, “A 5G Wireless Communications Vision”, Microwave Journal, December
14, 2012
[5GNOW31] 5G Waveform Candidate Selection, D3.1, Version 1.0, 3/3/2015
[KK00] Küpfmüller, Karl; Kohn, Gerhard (2000), Theoretische Elektrotechnik und Elektronik,
Berlin, Heidelberg: Springer-Verlag, ISBN 978-3-540-56500-0
[Schaich] Schaich, F.; Wild, T.; Chen, Y.; “Waveform contenders for 5G suitability for short
packet and low latency transmissions,” submitted to IEEE Veh. Technol. Conf. Spring
(VTC’14 Spring), Apr. 2014.
[Vakilian] V. Vakilian, T. Wild, F. Schaich, S.t. Brink, J.-F. Frigon, "Universal-Filtered Multi-
Carrier Technique for Wireless Systems Beyond LTE", 9th International Workshop on
Broadband Wireless Access (BWA) @ IEEE Globecom'13, Atlanta, GA, USA,
December 2013.
[Primer] M.G. Bellanger et al, “FBMC physical layer: a primer”, 06/2010.
[He15] Qinwei He, Comparison and evaluation between FBMC and OFDM systems, March 3-5
2015
[Proakis] J. Proakis, M. Salehi Contemporary Communication Systems Using MATLAB, 2012
Appendix – MATLAB Codes 47
Appendix – MATLAB Codes
GUI.m
function varargout = GUI(varargin)
%GUI M-file for GUI.fig
% GUI, by itself, creates a new GUI or raises the existing
% singleton*.
%
% H = GUI returns the handle to a new GUI or the handle to
% the existing singleton*.
%
% GUI('Property','Value',...) creates a new GUI using the
% given property value pairs. Unrecognized properties are passed via
% varargin to GUI_OpeningFcn. This calling syntax produces a
% warning when there is an existing singleton*.
%
% GUI('CALLBACK') and GUI('CALLBACK',hObject,...) call the
% local function named CALLBACK in GUI.M with the given input
% arguments.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help GUI
% Last Modified by GUIDE v2.5 14-May-2016 19:08:24
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @GUI_OpeningFcn, ...
'gui_OutputFcn', @GUI_OutputFcn, ...
'gui_LayoutFcn', [], ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before GUI is made visible.
function GUI_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin unrecognized PropertyName/PropertyValue pairs from the
% command line (see VARARGIN)
% Choose default command line output for GUI
handles.output = hObject;
Appendix – MATLAB Codes 48
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes GUI wait for user response (see UIRESUME)
% uiwait(handles.figure1);
function Settings = refreshSettings(handles)
Settings.M = str2num(get(handles.editM, 'String'));
Settings.N = str2num(get(handles.editN, 'String'));
Settings.Modulation = str2num(get(handles.editModulation, 'String'));
Settings.SNRdB = str2num(get(handles.editSNRdB, 'String'));
Settings.AWGN = get(handles.checkboxAWGN,'Value');
content1 = cellstr(get(handles.popupmenuUFMC,'String'));
Settings.est = content1{get(handles.popupmenuUFMC,'Value')};
content2 = cellstr(get(handles.popupmenuFilteredOFDM,'String'));
Settings.fOFDM = content2{get(handles.popupmenuFilteredOFDM,'Value')};
function UfmcSettings = refreshUfmcSettings(handles)
UfmcSettings.blockSize = str2num(get(handles.editBlockSize, 'String'));
UfmcSettings.nPRB = str2num(get(handles.editNPRB, 'String'));
UfmcSettings.lFIR = str2num(get(handles.editLFIR, 'String'));
UfmcSettings.FilterPar_dB = str2num(get(handles.editFilterParDB, 'String'));
% UfmcSettings.estimation = get(handles.popupmenuUFMC, 'String');
function FbmcSettings = refreshFbmcSettings(handles)
FbmcSettings.K = str2num(get(handles.editK, 'String'));
% --- Outputs from this function are returned to the command line.
function varargout = GUI_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
% --- Executes on button press in pbFBMC.
function pbFBMC_Callback(hObject, eventdata, handles)
% hObject handle to pbFBMC (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
Settings = refreshSettings(handles);
FbmcSettings = refreshFbmcSettings(handles);
outFBMC = FbmcFcn(Settings, FbmcSettings, handles);
set(handles.textRMSEVMfbmc,'String', num2str(outFBMC.RMSEVMfbmc));
set(handles.textMaxEVMfbmc,'String', num2str(outFBMC.MaxEVMfbmc));
set(handles.textPercentileEVMfbmc,'String', num2str(outFBMC.PercentileEVMfbmc));
set(handles.textNumSymFBMC,'String', num2str(outFBMC.NumSymFBMC));
set(handles.textACPRfbmc,'String', num2str(outFBMC.ACPRfbmc));
set(handles.textmainChnlPwrFBMC,'String', num2str(outFBMC.mainChnlPwrFBMC));
set(handles.textadjChnlPwrFBMC,'String', num2str(outFBMC.adjChnlPwrFBMC));
set(handles.textRMSEVMofdm,'String', num2str(outFBMC.RMSEVMofdm));
set(handles.textMaxEVMofdm,'String', num2str(outFBMC.MaxEVMofdm));
set(handles.textPercentileEVMofdm,'String', num2str(outFBMC.PercentileEVMofdm));
set(handles.textNumSymOFDM,'String', num2str(outFBMC.NumSymOFDM));
set(handles.textACPRofdm,'String', num2str(outFBMC.ACPRofdm));
Appendix – MATLAB Codes 49
set(handles.textmainChnlPwrOFDM,'String', num2str(outFBMC.mainChnlPwrOFDM));
set(handles.textadjChnlPwrOFDM,'String', num2str(outFBMC.adjChnlPwrOFDM));
% --- Executes on button press in pbUFMC.
function pbUFMC_Callback(hObject, eventdata, handles)
% hObject handle to pbUFMC (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
Settings = refreshSettings(handles);
UfmcSettings = refreshUfmcSettings(handles);
outUFMC = UfmcFcn(Settings, UfmcSettings, handles);
set(handles.textRMSEVMufmc,'String', num2str(outUFMC.RMSEVMufmc));
set(handles.textMaxEVMufmc,'String', num2str(outUFMC.MaxEVMufmc));
set(handles.textPercentileEVMufmc,'String', num2str(outUFMC.PercentileEVMufmc));
set(handles.textNumSymUFMC,'String', num2str(outUFMC.NumSymUFMC));
set(handles.textACPRufmc,'String', num2str(outUFMC.ACPRufmc));
set(handles.textmainChnlPwrUFMC,'String', num2str(outUFMC.mainChnlPwrUFMC));
set(handles.textadjChnlPwrUFMC,'String', num2str(outUFMC.adjChnlPwrUFMC));
set(handles.textRMSEVMofdm,'String', num2str(outUFMC.RMSEVMofdm));
set(handles.textMaxEVMofdm,'String', num2str(outUFMC.MaxEVMofdm));
set(handles.textPercentileEVMofdm,'String', num2str(outUFMC.PercentileEVMofdm));
set(handles.textNumSymOFDM,'String', num2str(outUFMC.NumSymOFDM));
set(handles.textACPRofdm,'String', num2str(outUFMC.ACPRofdm));
set(handles.textmainChnlPwrOFDM,'String', num2str(outUFMC.mainChnlPwrOFDM));
set(handles.textadjChnlPwrOFDM,'String', num2str(outUFMC.adjChnlPwrOFDM));
% --- Executes on button press in pbClearAll.
function pbClearAll_Callback(hObject, eventdata, handles)
% hObject handle to pbClearAll (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
clear all;
clc;
% --- Executes on button press in pbCloseAll.
function pbCloseAll_Callback(hObject, eventdata, handles)
% hObject handle to pbCloseAll (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
close all;
function editM_Callback(hObject, eventdata, handles)
% hObject handle to editM (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of editM as text
% str2double(get(hObject,'String')) returns contents of editM as a double
% --- Executes during object creation, after setting all properties.
function editM_CreateFcn(hObject, eventdata, handles)
% hObject handle to editM (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
Appendix – MATLAB Codes 50
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function editN_Callback(hObject, eventdata, handles)
% hObject handle to editN (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of editN as text
% str2double(get(hObject,'String')) returns contents of editN as a double
% --- Executes during object creation, after setting all properties.
function editN_CreateFcn(hObject, eventdata, handles)
% hObject handle to editN (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function editModulation_Callback(hObject, eventdata, handles)
% hObject handle to editModulation (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of editModulation as text
% str2double(get(hObject,'String')) returns contents of editModulation as a double
% --- Executes during object creation, after setting all properties.
function editModulation_CreateFcn(hObject, eventdata, handles)
% hObject handle to editModulation (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function editSNRdB_Callback(hObject, eventdata, handles)
% hObject handle to editSNRdB (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of editSNRdB as text
Appendix – MATLAB Codes 51
% str2double(get(hObject,'String')) returns contents of editSNRdB as a double
% --- Executes during object creation, after setting all properties.
function editSNRdB_CreateFcn(hObject, eventdata, handles)
% hObject handle to editSNRdB (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on button press in pbOFDM.
function pbOFDM_Callback(hObject, eventdata, handles)
% hObject handle to pbOFDM (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
function editK_Callback(hObject, eventdata, handles)
% hObject handle to editK (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of editK as text
% str2double(get(hObject,'String')) returns contents of editK as a double
% --- Executes during object creation, after setting all properties.
function editK_CreateFcn(hObject, eventdata, handles)
% hObject handle to editK (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function editBlockSize_Callback(hObject, eventdata, handles)
% hObject handle to editBlockSize (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of editBlockSize as text
% str2double(get(hObject,'String')) returns contents of editBlockSize as a double
% --- Executes during object creation, after setting all properties.
function editBlockSize_CreateFcn(hObject, eventdata, handles)
% hObject handle to editBlockSize (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
Appendix – MATLAB Codes 52
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function editNPRB_Callback(hObject, eventdata, handles)
% hObject handle to editNPRB (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of editNPRB as text
% str2double(get(hObject,'String')) returns contents of editNPRB as a double
% --- Executes during object creation, after setting all properties.
function editNPRB_CreateFcn(hObject, eventdata, handles)
% hObject handle to editNPRB (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function editLFIR_Callback(hObject, eventdata, handles)
% hObject handle to editLFIR (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of editLFIR as text
% str2double(get(hObject,'String')) returns contents of editLFIR as a double
% --- Executes during object creation, after setting all properties.
function editLFIR_CreateFcn(hObject, eventdata, handles)
% hObject handle to editLFIR (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function editFilterParDB_Callback(hObject, eventdata, handles)
% hObject handle to editFilterParDB (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of editFilterParDB as text
Appendix – MATLAB Codes 53
% str2double(get(hObject,'String')) returns contents of editFilterParDB as a double
% --- Executes during object creation, after setting all properties.
function editFilterParDB_CreateFcn(hObject, eventdata, handles)
% hObject handle to editFilterParDB (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on selection change in popupmenuUFMC.
function popupmenuUFMC_Callback(hObject, eventdata, handles)
% hObject handle to popupmenuUFMC (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: contents = cellstr(get(hObject,'String')) returns popupmenuUFMC contents as cell array
% contents{get(hObject,'Value')} returns selected item from popupmenuUFMC
contents = cellstr(get(hObject,'String'));
UfmcSettings.estimation = contents{get(hObject,'Value')};
% --- Executes during object creation, after setting all properties.
function popupmenuUFMC_CreateFcn(hObject, eventdata, handles)
% hObject handle to popupmenuUFMC (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
contents = cellstr(get(hObject,'String'));
UfmcSettings.estimation = contents{get(hObject,'Value')};
% Hint: popupmenu controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on button press in checkboxAWGN.
function checkboxAWGN_Callback(hObject, eventdata, handles)
% hObject handle to checkboxAWGN (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of checkboxAWGN
% --- Executes on selection change in popupmenuFilteredOFDM.
function popupmenuFilteredOFDM_Callback(hObject, eventdata, handles)
% hObject handle to popupmenuFilteredOFDM (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: contents = cellstr(get(hObject,'String')) returns popupmenuFilteredOFDM contents as cell
array
% contents{get(hObject,'Value')} returns selected item from popupmenuFilteredOFDM
Appendix – MATLAB Codes 54
% --- Executes during object creation, after setting all properties.
function popupmenuFilteredOFDM_CreateFcn(hObject, eventdata, handles)
% hObject handle to popupmenuFilteredOFDM (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: popupmenu controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
FbmcFcn.m
% FBMC PPN, OFDM and UFMC implementation
% Muhammet COLAK
% M-ENG @ EIT FH-ROSENHEIM
% 2016
function output = FbmcFcn (setGeneral, setFBMC, handles)
M = setGeneral.M; % Number of used subcarriers
N = setGeneral.N; % Number of multicarrier symbols in a frame.
Modulation = setGeneral.Modulation; % QAM Constellation
AWGN = setGeneral.AWGN;
SNR_dB = setGeneral.SNRdB; % Signal / Noise ratio
q = log2(Modulation); % Number of bits for a symbol in the constellation
fOFDM = setGeneral.fOFDM; % OFDM with AWGN channel estimation
est = setGeneral.est; % flag to decide if estimation for AWGN channel is used
echo off;
% QAM and OQAM Modulator
sQAM = [];
for nf=0:N-1
X = rand(M*q,1)>0.5;
xx = reshape(X,q,length(X)/q).';
xsym = bi2de(xx,'left-msb');
QAM = qammod(xsym,Modulation); % QAM modulation
%Empty side data for PSD anlysis
QAM(1:M/4+1,:)=complex(0);
QAM(3*(M/4):M,:)=complex(0);
sQAM = [sQAM QAM];
end
%% %%%%%%%%%%%% FBMC %%%%%%%%%%%%%%%%%%%%%%
% pre processing OQAM construction
sOQAM = [];
for nf=0:N-1
for k=0:2:M-1
OQAM(k+1,:)=[real(sQAM(k+1,nf+1)) imag(sQAM(k+1,nf+1))*j];% for k even
OQAM(k+2,:)=[imag(sQAM(k+2,nf+1))*j real(sQAM(k+2,nf+1))];% for k odd
end
sOQAM = [sOQAM OQAM];
end
%FBMC PROTOTYPE FILTER
% Prototype Filter (Qinwei He, Anke Schmeink
% "Comparison and evaluation between FBMC and OFDM systems",
% WSA 2015 • March 3-5, 2015, Ilmenau, Germany)
K=setFBMC.K; % the prototype filter for an overlapping factor K
H31 = 0.911438;
H32 = 0.411438;
H21 = sqrt(2)/2;
Appendix – MATLAB Codes 55
H1=0.971960;
H2=sqrt(2)/2;
H3=0.235147;
s=2*pi/(K*M);
p2(1)=0;
p3(1)=0;
p4(1)=0;
del=0;
for m=1:K*M-1
mdel=m+del;
p4(m+1)=1-2*H1*cos(mdel*s)+2*H2*cos(2*mdel*s)-2*H3*cos(3*mdel*s);% prototype filter equation
K=4
p3(m+1)=1-2*H31*cos(mdel*s)+2*H32*cos(2*mdel*s); % prototype filter equation K=3
p2(m+1)=1-2*H21*cos(mdel*s); % prototype filter equation K=2
end
switch K
case 4
h=p4;
case 3
h=p3;
case 2
h=p2;
end
hTx=reshape(h,M,K);
%PPN1
s1IFFT=zeros(M,N);
s1IFFT = ifft(sOQAM(:,1:2:2*N-1),M,1);
outPPN1=zeros(M,N+K-1);
for k=1:M
outPPN1(k,:)=conv(hTx(k,:),s1IFFT(k,:));
end
% PPN2
s2IFFT=zeros(M,N);
s2IFFT = ifft(sOQAM(:,2:2:2*N),M,1);
outPPN2=zeros(M,N+K-1);
for k=1:M
outPPN2(k,:)= conv(hTx(k,:),s2IFFT(k,:));
end
% PPN1 + PPN2 Overlap and sum (FBMC Primer page 17, fig 15)
for i = 1:2*(N+K-1)
if i ==1
sFBMC(1:M/2,1) = outPPN1(1:M/2,1);
sFBMC(1+M/2:M,1) = outPPN1(M/2+1:M,1)+outPPN2(1:M/2,1);
elseif i == 2*(N+K-1)
sFBMC(1:M/2,i) = outPPN1(M/2+1:M,i/2)+outPPN2(1:M/2,i/2);
sFBMC(1+M/2:M,i) = outPPN2(M/2+1:M,i/2);
elseif rem(i,2) == 0
sFBMC(1:M/2,i) = outPPN1(M/2+1:M,i/2)+outPPN2(1:M/2,i/2);
sFBMC(1+M/2:M,i) = outPPN2(M/2+1:M,i/2)+outPPN1(1:M/2,i/2+1);
elseif rem(i,2) == 1
sFBMC(1:M/2,i) = outPPN1(1:M/2,(i+1)/2)+outPPN2(1+M/2:M,(i-1)/2);
sFBMC(1+M/2:M,i) = outPPN2(1:M/2,(i+1)/2) + outPPN1(1+M/2:M,(i+1)/2);
end
end
sqrt_nvar = 1/sqrt(10^(0.1*SNR_dB));
nvar = 1/(10^(0.1*SNR_dB)); %perfect knowledge of noise power assumed
% FBMC RECEIVER
Appendix – MATLAB Codes 56
if AWGN == 1
n = sqrt_nvar*(1/sqrt(2))*(randn(size(sFBMC))+j*randn(size(sFBMC)));
yFBMC = sFBMC + n; % add noise
else
yFBMC = sFBMC;
end
% receiver filter is the smetry of of the one for transmitter
hRx(:,1:K) = hTx(:,K:-1:1);
for i = 1:M
r1(i,:) = conv(hRx(i,:), yFBMC(i,1:2:2*(N+K-1)-1));
end
r(:,1:2:2*N-1) = r1(:,K:N+K-1);
for i = 1:M
r2(i,:) = conv(hRx(i,:), yFBMC(i,2:2:2*(N+K-1)));
end
r(:,2:2:2*N) = r2(:,K:N+K-1);
%FFT
rfft = zeros(M,2*N);
rfft = fft(r(:,1:2*N),M,1)/(K^2);
% Recover QAM from received OQAM and calculate error
for n=1:2:2*N-1
rOQAM(1:2:M-1,n) = real(rfft(1:2:M-1,n));
rOQAM(2:2:M,n) = imag(rfft(2:2:M,n)).*j;
rOQAM(1:2:M-1,n+1) = imag(rfft(1:2:M-1,n+1)).*j;
rOQAM(2:2:M,n+1) = real(rfft(2:2:M,n+1));
% post processing QAM reconstruction
rFBMC(:,(n+1)/2) = rOQAM(:,n) +rOQAM(:,n+1);
end
%% OFDM %%%%%%%%%%%%%%%%
% Prototype Filter For OFDM
p1 = [zeros(1,M) ones(1,M) zeros(1,M)];
% OFDM TRANSMITTER
switch fOFDM
case 'Normal OFDM'
sOFDM=zeros(M,N);
sOFDM = ifft(sQAM,M,1);
case 'OFDM with chanEst'
Vofdm = zeros(M,M);
allocatedSubcarriers = [0:M-1]; % allocated subcarriers
for c = 1:M %loop through all allocated subcarriers
SubcarrierIndex = allocatedSubcarriers(c);
Vofdm([1:M],c) = exp(2*pi*1i*([1:M]-1)*SubcarrierIndex/M); %generation of the IDFT
vector
end
Tofdm=(1/norm(Vofdm))*Vofdm;
TimeDomainSig=Tofdm*ones(M,1);
Tofdm=Tofdm/sqrt(mean(abs(TimeDomainSig).^2)/M*M);
sOFDM = Tofdm*sQAM; %signal of user of interest
end
if AWGN == 1
n = sqrt_nvar*(1/sqrt(2))*(randn(size(sOFDM))+j*randn(size(sOFDM)));
yOFDM = sOFDM + n; %superimpose layers and add noise
else
yOFDM = sOFDM;
end
Appendix – MATLAB Codes 57
% OFDM RECEIVER
switch fOFDM
case 'Normal OFDM'
rOFDM = zeros(M,N);
rOFDM = fft(yOFDM,M,1);
case 'OFDM with chanEst'
wOFDM_ZF = pinv((1/norm(Vofdm))*Vofdm);
wOFDM_MMSE = inv(Tofdm'*Tofdm + nvar*diag(ones(size(Tofdm,2),1)))*Tofdm';
% obtain symbol estimates
for n=1:N
% ZF
s_est_OFDM_ZF(:,n) = wOFDM_ZF*yOFDM(:,n);
% MMSE
s_est_OFDM_MMSE(:,n) = wOFDM_MMSE*yOFDM(:,n);
end
switch est
case 'ZF estimation'
rOFDM = s_est_OFDM_ZF;
case 'MMSE estimation'
rOFDM = s_est_OFDM_MMSE;
end
end
%% PLOTS
axes(handles.axes1);
plot(sQAM,'or');
hold on
plot(rOFDM,'xk');
title('OFDM, o transmitted, x received');
hold off
axes(handles.axes2);
plot(sQAM,'or');
hold on
plot(rFBMC,'xk');
title('FBMC OQAM, o transmitted, x received');
hold off
axes(handles.axes3);
plot( h,'b-' );
hold on
ylabel('Amplitude');
xlabel('time (sec)');
title('FBMC-OFDM filter impulse response');
plot( [zeros(1,floor((length(h)-length(p1))/2)) p1 zeros(1,floor((length(h)-
length(p1))/2),1)],'g-' );
legend('PPN-FBMC','OFDM')
hold off
axes(handles.axes4);
[Hfbmc,w] = freqz( h );
Hfbmc=Hfbmc./max ( Hfbmc );
Lfbmc = length (w);
wFBMC = w;%(Lfbmc/4:1:3*Lfbmc/4);
Hfbmc = Hfbmc;%(Lfbmc/4:1:3*Lfbmc/4);
[Hofdm,w1] = freqz( p1 );
Hofdm=Hofdm./max ( Hofdm );
Lofdm = length (w1);
wOFDM = w;%(Lofdm/4:1:3*Lofdm/4);
Hofdm = Hofdm;%(Lofdm/4:1:3*Lofdm/4);
Appendix – MATLAB Codes 58
plot(wFBMC/pi,20*log10(abs( Hfbmc )),'b-');
hold on
plot(wOFDM/pi,20*log10(abs( Hofdm )),'g-');
legend('PPN-FBMC','OFDM')
plot(-wFBMC/pi,20*log10(abs( Hfbmc )),'b-');
plot(-wOFDM/pi,20*log10(abs( Hofdm )),'g-');
grid on
ylabel('Amplitude in dB');
xlabel('Frequency');
title('FBMC-OFDM filter frequency response');
hold off
%% PSD ANALYSIS
sr=4;
myTx1 = sFBMC(:) .* exp(-j*pi*[0:length(sFBMC(:))-1]).';
myTx=resample(myTx1,sr,1)
axes(handles.axes5);
[PxxFBMC, wFBMC] = pwelch(myTx); % (:,1:N)
PxxFBMC = abs(fftshift(PxxFBMC));
PxxFBMC = PxxFBMC./max(PxxFBMC);
pxx=10*log10(PxxFBMC);
plot(wFBMC/(2*pi),pxx, 'b-');
hold on
myTxOFDM1 = sOFDM(:).* exp(-j*pi*[0:length(sOFDM(:))-1]).';
myTxOFDM=resample(myTxOFDM1,sr,1),
[PxxOFDM,wOFDM] = pwelch(myTxOFDM);
PxxOFDM = abs(fftshift(PxxOFDM));
PxxOFDM = PxxOFDM./max(PxxOFDM);
pxxOFDM=10*log10(PxxOFDM);
plot(wOFDM/(2*pi),pxxOFDM, 'g-')
legend('PPN-FBMC','OFDM')
ylabel('PSD in dB');
xlabel('Frequency');
title('Power Spectral Density Analysis');
hold off;
%% COMM.EVM CALCULATION
[RMSEVMofdm,MaxEVMofdm,PercentileEVMofdm,NumSymOFDM] = EVMex(sQAM ( : ) ,rOFDM ( : ))
[RMSEVMfbmc,MaxEVMfbmc,PercentileEVMfbmc,NumSymFBMC] = EVMex(sQAM ( : ) ,rFBMC ( : ))
output.RMSEVMofdm = RMSEVMofdm;
output.MaxEVMofdm = MaxEVMofdm;
output.PercentileEVMofdm = PercentileEVMofdm;
output.NumSymOFDM = NumSymOFDM;
output.RMSEVMfbmc = RMSEVMfbmc;
output.MaxEVMfbmc = MaxEVMfbmc;
output.PercentileEVMfbmc = PercentileEVMfbmc;
output.NumSymFBMC = NumSymFBMC;
%% COMM.CCDF
ssOFDM = overSample (sOFDM, 2*(N+K-1));
axes(handles.axes6);
[CCDFy,CCDFx,AvgPwr,PeakPwr] = CCDFex (sFBMC(:), ssOFDM(:));
legend('PPN-FBMC','OFDM')
%% COMM.ACPR
[ACPRfbmc,mainChnlPwrFBMC,adjChnlPwrFBMC] = ACPRfb (myTx,M,sr)
[ACPRofdm,mainChnlPwrOFDM,adjChnlPwrOFDM] = ACPRfb (myTxOFDM,M,sr)
output.ACPRfbmc = ACPRfbmc;
output.mainChnlPwrFBMC = mainChnlPwrFBMC;
Appendix – MATLAB Codes 59
output.adjChnlPwrFBMC = adjChnlPwrFBMC;
output.ACPRofdm = ACPRofdm;
output.mainChnlPwrOFDM = mainChnlPwrOFDM;
output.adjChnlPwrOFDM = adjChnlPwrOFDM;
end
UfmcFcn.m
function output = UfmcFcn (setGeneral, setUFMC,handles)
M = setGeneral.M; % Number of used subcarriers
N = setGeneral.N; % Number of multicarrier symbols in a frame.
Modulation = setGeneral.Modulation; % QAM Constellation
AWGN = setGeneral.AWGN;
SNR_dB = setGeneral.SNRdB; % Signal / Noise ratio
q = log2(Modulation); % Number of bits for a symbol in the constellation
fOFDM = setGeneral.fOFDM;
est = setGeneral.est;
echo off;
% QAM and OQAM Modulator
sQAM = [];
for nf=0:N-1
X = rand(M*q,1)>0.5;
xx = reshape(X,q,length(X)/q).';
xsym = bi2de(xx,'left-msb');
QAM = qammod(xsym,Modulation); % QAM modulation
%Empty side data for PSD anlysis
QAM(1:M/4+1,:)=complex(0);
QAM(3*(M/4):M,:)=complex(0);
sQAM = [sQAM QAM];
end
%% %%%%%%%%%% UFMC %%%%%%%%%%%%%%%%
blockSize = setUFMC.blockSize; % width of subband in number of subcarriers (needs to match to
Filterbandwidth)
nPRB = setUFMC.nPRB;% Allocation width in number of subbands (sub-band width defined in
PAR.blockSize below)
lFIR = setUFMC.lFIR; % filter length: 1 means OFDM, >1 uses a Dolph-Chebychev FIR filter
FilterPar_dB = setUFMC.FilterPar_dB; % sideband attenuation (design parameter of Dolph-Chebychev
filters)
lMCsym = M + lFIR -1; % number of samples per multicarrier symbol
nUsedCarr = nPRB*blockSize; % Allocation widths
allocatedSubcarriers = [0:nUsedCarr-1]; % allocated subcarriers
% Generation of IDFT spreading matrices - Dimension of the matrices: [M x nUsedCarr]
V = zeros(M,nUsedCarr);
for c = 1:nUsedCarr %loop through all allocated subcarriers
SubcarrierIndex = allocatedSubcarriers(c);
V([1:M],c) = exp(2*pi*1i*([1:M]-1)*SubcarrierIndex/M); %generation of the IDFT vector
end
%Dolph-Chebyshev filter
f = chebwin(lFIR,FilterPar_dB);
% initialize helper matrices
F_all = [];
V_all = zeros(M*nPRB,nUsedCarr);
for iPRB = 1:nPRB
% shift to center carrier
Appendix – MATLAB Codes 60
carrierind = (blockSize+1)/2 + (iPRB-1)*blockSize; % center carrier
centerFshift = zeros(lFIR,1);
for n = 1:lFIR
centerFshift(n) = exp(2*pi*1i*(n-1)*carrierind/M);
end
% frequency-shifted FIR window
f1 = f.*centerFshift;
% generate Toeplitz matrix for convolution
F{iPRB} = toeplitz([f1;zeros(M-1,1)],[f1(1),zeros(1,M-1)]);
% stacked Toeplitz matrices implement multicarrier modulation
F_all = [F_all F{iPRB}];
% generate expanded IDFT matrix
V_all( (1+(iPRB-1)*M):(iPRB*M), ...
(1+(iPRB-1)*blockSize):(iPRB*blockSize)) = ...
V(:,(1+(iPRB-1)*blockSize):(iPRB*blockSize));
end
% final multicarrier modulation matrix T
T = F_all*V_all;
% Final normalized multicarrier modulation matrix
TimeDomainSig=T*ones(nUsedCarr,1);
T=T/sqrt(mean(abs(TimeDomainSig).^2)/nUsedCarr*M);
%determine FreqResp in pass-band
TimeDomainSig=T*ones(nUsedCarr,1);
FreqDomSig_oversampled=fft([TimeDomainSig.' zeros(1,2*M-length(TimeDomainSig))])/sqrt(M);
FreqDomSig=FreqDomSig_oversampled(1:2:end);
% Begin of main simulation loops
sqrt_nvar = 1/sqrt(10^(0.1*SNR_dB));
nvar = 1/(10^(0.1*SNR_dB)); %perfect knowledge of noise power assumed
% Tx
s_pilots = sQAM;
% Transformation to time domain
sUFMC = T*sQAM; %signal of user of interest
sUFMC_pilots = sUFMC; %pilots of user of interest (for ideal chanest)
% add noise
if AWGN == 1
n = sqrt_nvar*(1/sqrt(2))*(randn(lMCsym,N)+j*randn(lMCsym,N));
yUFMC = sUFMC + n; %superimpose layers and add noise
else
yUFMC = sUFMC;
end
yUFMC_pilots = sUFMC_pilots;
% Rx
w_ZF = pinv(T);
w_MMSE = inv(T'*T + nvar*diag(ones(size(T,2),1)))*T';
% obtain symbol estimates
for n=1:N
% ZF
s_est_ZF(:,n) = w_ZF*yUFMC(:,n);
% MMSE
s_est_MMSE(:,n) = w_MMSE*yUFMC(:,n);
end
switch est
case 'MMSE estimation'
rUFMC = s_est_MMSE;
case 'ZF estimation'
rUFMC = s_est_ZF;
end
%% OFDM %%%%%%%%%%%%%%%%
% Prototype Filter For OFDM
Appendix – MATLAB Codes 61
p1 = [zeros(1,M) ones(1,M) zeros(1,M)];
% OFDM TRANSMITTER
switch fOFDM
case 'Normal OFDM'
sOFDM=zeros(M,N);
sOFDM = ifft(sQAM,M,1);
case 'OFDM with chanEst'
Vofdm = zeros(M,nUsedCarr);
allocatedSubcarriers = [0:M-1]; % allocated subcarriers
for c = 1:nUsedCarr %loop through all allocated subcarriers
SubcarrierIndex = allocatedSubcarriers(c);
Vofdm([1:M],c) = exp(2*pi*1i*([1:M]-1)*SubcarrierIndex/M); %generation of the IDFT
vector
end
Tofdm=(1/norm(Vofdm))*Vofdm;
TimeDomainSig=Tofdm*ones(M,1);
Tofdm=Tofdm/sqrt(mean(abs(TimeDomainSig).^2)/M*M);
sOFDM = Tofdm*sQAM; %signal of user of interest
end
if AWGN == 1
n = sqrt_nvar*(1/sqrt(2))*(randn(size(sOFDM))+j*randn(size(sOFDM)));
yOFDM = sOFDM + n; %superimpose layers and add noise
else
yOFDM = sOFDM;
end
% OFDM RECEIVER
switch fOFDM
case 'Normal OFDM'
rOFDM = zeros(M,N);
rOFDM = fft(yOFDM,M,1);
case 'OFDM with chanEst'
wOFDM_ZF = pinv((1/norm(Vofdm))*Vofdm);
wOFDM_MMSE = inv(Tofdm'*Tofdm + nvar*diag(ones(size(Tofdm,2),1)))*Tofdm';
% obtain symbol estimates
for n=1:N
% ZF
s_est_OFDM_ZF(:,n) = wOFDM_ZF*yOFDM(:,n);
% MMSE
s_est_OFDM_MMSE(:,n) = wOFDM_MMSE*yOFDM(:,n);
end
switch est
case 'ZF estimation'
rOFDM = s_est_OFDM_ZF;
case 'MMSE estimation'
rOFDM = s_est_OFDM_MMSE;
end
end
%% PLOTS
axes(handles.axes1);
plot(sQAM,'or');
hold on
plot(rOFDM,'xk');
title('OFDM, o transmitted, x received');
hold off
axes(handles.axes2);
plot(sQAM,'or');
Appendix – MATLAB Codes 62
hold on
plot(rUFMC,'xk');
title('UFMC, o transmitted, x received');
hold off
axes(handles.axes3);
plot( [zeros(floor((length(p1)-length(f))/2),1); f ; zeros(floor((length(p1)-
length(f))/2),1)],'b-' );
hold on
ylabel('Amplitude');
xlabel('time (sec)');
title('UFMC-OFDM filter impulse response');
plot( p1,'g-' );
legend('UFMC','OFDM')
hold off
axes(handles.axes4);
[Hufmc,Wufmc] = freqz( f );
Hufmc=Hufmc./max ( Hufmc );
[Hofdm,Wofdm] = freqz( p1 );
Hofdm=Hofdm./max ( Hofdm );
plot(Wufmc/pi,20*log10(abs( Hufmc )),'b-');
hold on
plot(Wofdm/pi,20*log10(abs( Hofdm )),'g-');
legend('UFMC','OFDM')
plot(-Wufmc/pi,20*log10(abs( Hufmc )),'b-');
plot(-Wofdm/pi,20*log10(abs( Hofdm )),'g-');
grid on
ylabel('Amplitude in dB');
xlabel('Frequency');
title('UFMC-OFDM filter frequency response');
hold off
%% PSD ANALYSIS
axes(handles.axes5);
sr=4; % resample rate
[PxxUFMC, ftrUFMC] = pwelch(sUFMC(:)); % (:,1:N)
maxvalUFMC = max(PxxUFMC);
PxxUFMC = PxxUFMC./maxvalUFMC;
pxxUFMC=10*log10(PxxUFMC);
plot(ftrUFMC/(2*pi),pxxUFMC, 'b-')
hold on
[PxxOFDM,frxOFDM] = pwelch(sOFDM(:));
maxvalOFDM = max(PxxOFDM);
PxxOFDM = PxxOFDM./maxvalOFDM;
pxxOFDM=10*log10(PxxOFDM);
plot(frxOFDM/(2*pi),pxxOFDM, 'g-')
legend('UFMC','OFDM')
ylabel('PSD in dB');
xlabel('Frequency');
title('Power Spectral Density Analysis');
hold off;
%% COMM.EVM CALCULATION
[RMSEVMofdm,MaxEVMofdm,PercentileEVMofdm,NumSymOFDM] = EVMex(sQAM ( : ) ,rOFDM ( : ))
[RMSEVMufmc,MaxEVMufmc,PercentileEVMufmc,NumSymUFMC] = EVMex(sQAM ( : ) ,rUFMC ( : ))
output.RMSEVMofdm = RMSEVMofdm;
output.MaxEVMofdm = MaxEVMofdm;
output.PercentileEVMofdm = PercentileEVMofdm;
output.NumSymOFDM = NumSymOFDM;
Appendix – MATLAB Codes 63
output.RMSEVMufmc = RMSEVMufmc;
output.MaxEVMufmc = MaxEVMufmc;
output.PercentileEVMufmc = PercentileEVMufmc;
output.NumSymUFMC = NumSymUFMC;
%% COMM.CCDF
size (sOFDM)
size (sUFMC)
ssOFDM = overSample (sOFDM.', lMCsym);
axes(handles.axes6);
[CCDFy,CCDFx,AvgPwr,PeakPwr] = CCDFex (sUFMC(:), ssOFDM(:));
legend('sUFMC','sOFDM')
%% COMM.ACPR
[ACPRufmc,mainChnlPwrUFMC,adjChnlPwrUFMC] = ACPRuf (sUFMC ( : ),M,sr)
[ACPRofdm,mainChnlPwrOFDM,adjChnlPwrOFDM] = ACPRuf (sOFDM ( : ),M,sr)
output.ACPRufmc = ACPRufmc;
output.mainChnlPwrUFMC = mainChnlPwrUFMC;
output.adjChnlPwrUFMC = adjChnlPwrUFMC;
output.ACPRofdm = ACPRofdm;
output.mainChnlPwrOFDM = mainChnlPwrOFDM;
output.adjChnlPwrOFDM = adjChnlPwrOFDM;
end
ACPRuf.m
function [ACPR,mainChnlPwr,adjChnlPwr] = ACPRuf (S, M,sr)
s=resample(S,sr,1);
sps = 1*sr;
bw = M;
df=bw/M;
h = comm.ACPR('SampleRate',bw*sps,...
'MainChannelFrequency',bw/2,...
'MainMeasurementBandwidth',df,...
'AdjacentChannelOffset',3*bw/8,...
'AdjacentMeasurementBandwidth',df,...
'MainChannelPowerOutputPort', true,...
'AdjacentChannelPowerOutputPort',true);
[ACPR,mainChnlPwr,adjChnlPwr] = step(h,s);
end
ACPRfb.m
function [ACPR,mainChnlPwr,adjChnlPwr] = ACPRex (S, M,sr)
h = comm.ACPR('SampleRate',1,...
'MainChannelFrequency',0,...
'MainMeasurementBandwidth',0.125,...
'AdjacentChannelOffset',[-0.25 0.25],...
'AdjacentMeasurementBandwidth',0.125,...
'MainChannelPowerOutputPort', true,...
'AdjacentChannelPowerOutputPort',true);
[ACPR,mainChnlPwr,adjChnlPwr] = step(h,S);
end
Appendix – MATLAB Codes 64
CCDFex.m
function [CCDFy,CCDFx,AvgPwr,PeakPwr] = CCDFex (s1, s2)
hChan = comm.AWGNChannel('NoiseMethod',...
'Signal to noise ratio (SNR)', 'SNR', 15);
% Create a CCDF System object and request average power and peak power measurement outputs
hCCDF = comm.CCDF('AveragePowerOutputPort', true, ...
'PeakPowerOutputPort', true);
hChan.SignalPower = 1;
s1Noisy = step(hChan,s1);
s2Noisy = step(hChan,s2);
% Obtain CCDF measurements
[CCDFy,CCDFx,AvgPwr,PeakPwr] = step(hCCDF,[s1Noisy s2Noisy]);
% plot CCDF curves using the plot method of the CCDF object
plot(hCCDF)
end
EVMex.m
function [RMSEVM,MaxEVM,PercentileEVM,NumSym] = EVMex(refsym,rxsym)
% Create an EVM object, output maximum and 90-percentile EVM measurements, and symbol count
hEVM = comm.EVM('MaximumEVMOutputPort',true,...
'XPercentileEVMOutputPort', true, 'XPercentileValue', 90,...
'SymbolCountOutputPort', true);
% Calculate measurements
[RMSEVM,MaxEVM,PercentileEVM,NumSym] = step(hEVM,refsym,rxsym);
end
overSample.m
function overSampledS = overSample (S, nov)
[m,n] = size (S);
overSampledS = [];
for k = 1: floor (nov/n)
overSampledS = [overSampledS S];
end
if nov < n
overSampledS = S;
else
overSampledS = [overSampledS S(:, 1:mod (nov,n))];
end
end

More Related Content

What's hot (20)

MIMO.ppt (2) 2
MIMO.ppt (2) 2MIMO.ppt (2) 2
MIMO.ppt (2) 2
 
5G Fundamentals
5G Fundamentals5G Fundamentals
5G Fundamentals
 
Small scale fading and multipath measurements
Small scale fading and multipath measurementsSmall scale fading and multipath measurements
Small scale fading and multipath measurements
 
Ec 2401 wireless communication unit 3
Ec 2401 wireless communication   unit 3Ec 2401 wireless communication   unit 3
Ec 2401 wireless communication unit 3
 
Energy Efficient Wireless Communications
Energy Efficient Wireless CommunicationsEnergy Efficient Wireless Communications
Energy Efficient Wireless Communications
 
Fading Seminar
Fading SeminarFading Seminar
Fading Seminar
 
Dsp presentation
Dsp presentationDsp presentation
Dsp presentation
 
10. types of small scale fading
10. types of small scale fading10. types of small scale fading
10. types of small scale fading
 
Introduction to rf and microwave circuits
Introduction to rf and microwave circuitsIntroduction to rf and microwave circuits
Introduction to rf and microwave circuits
 
Design of Microstrip Patch Antenna for 5G Applications
Design of Microstrip Patch Antenna for 5G Applications Design of Microstrip Patch Antenna for 5G Applications
Design of Microstrip Patch Antenna for 5G Applications
 
Microwave Phase shifter
Microwave Phase shifterMicrowave Phase shifter
Microwave Phase shifter
 
Angle modulation
Angle modulationAngle modulation
Angle modulation
 
Optical Transport Network
Optical Transport NetworkOptical Transport Network
Optical Transport Network
 
APPLICATIONS OF COGNITIVE RADIO
APPLICATIONS OF COGNITIVE RADIOAPPLICATIONS OF COGNITIVE RADIO
APPLICATIONS OF COGNITIVE RADIO
 
Wireless Backhaul
Wireless BackhaulWireless Backhaul
Wireless Backhaul
 
MIMO-OFDM for 4G network
MIMO-OFDM for 4G networkMIMO-OFDM for 4G network
MIMO-OFDM for 4G network
 
Angle Modulation
Angle ModulationAngle Modulation
Angle Modulation
 
Channel capacity
Channel capacityChannel capacity
Channel capacity
 
Ofdma
OfdmaOfdma
Ofdma
 
Gmsk
GmskGmsk
Gmsk
 

Viewers also liked

Uni2go week4_LL
Uni2go week4_LLUni2go week4_LL
Uni2go week4_LLUNI2GO
 
Pieter nortje fitter with dual diesel and auto
Pieter nortje fitter with dual diesel and autoPieter nortje fitter with dual diesel and auto
Pieter nortje fitter with dual diesel and autoPieter Nortje
 
Mecanica de materiales_-_beer_3ed
Mecanica de materiales_-_beer_3edMecanica de materiales_-_beer_3ed
Mecanica de materiales_-_beer_3edfrontera24
 
Uni2go week4_interview summary
Uni2go week4_interview summaryUni2go week4_interview summary
Uni2go week4_interview summaryUNI2GO
 
KIDS_Lookbook_EMAIL_FINAL
KIDS_Lookbook_EMAIL_FINALKIDS_Lookbook_EMAIL_FINAL
KIDS_Lookbook_EMAIL_FINALDerek Smith
 
151118_IP_Brochure
151118_IP_Brochure151118_IP_Brochure
151118_IP_BrochureJan Nieboer
 
How to Prevent an International Incident: Communicating with Global Teams
How to Prevent an International Incident: Communicating with Global TeamsHow to Prevent an International Incident: Communicating with Global Teams
How to Prevent an International Incident: Communicating with Global TeamsMeredith Kramer
 
How to market your question/project on the web and offer money for solution
How to market your question/project on the web and offer money for solutionHow to market your question/project on the web and offer money for solution
How to market your question/project on the web and offer money for solutionpayforanswer
 
Uni2Go
Uni2GoUni2Go
Uni2GoUNI2GO
 
Build up array/build down 1
Build up array/build down 1Build up array/build down 1
Build up array/build down 1slidesareinform
 
Pieter nortje fitter with dual diesel and auto
Pieter nortje fitter with dual diesel and autoPieter nortje fitter with dual diesel and auto
Pieter nortje fitter with dual diesel and autoPieter Nortje
 

Viewers also liked (19)

Uni2go week4_LL
Uni2go week4_LLUni2go week4_LL
Uni2go week4_LL
 
Pieter nortje fitter with dual diesel and auto
Pieter nortje fitter with dual diesel and autoPieter nortje fitter with dual diesel and auto
Pieter nortje fitter with dual diesel and auto
 
Mecanica de materiales_-_beer_3ed
Mecanica de materiales_-_beer_3edMecanica de materiales_-_beer_3ed
Mecanica de materiales_-_beer_3ed
 
Uni2go week4_interview summary
Uni2go week4_interview summaryUni2go week4_interview summary
Uni2go week4_interview summary
 
KIDS_Lookbook_EMAIL_FINAL
KIDS_Lookbook_EMAIL_FINALKIDS_Lookbook_EMAIL_FINAL
KIDS_Lookbook_EMAIL_FINAL
 
AANDERSONRESUME
AANDERSONRESUMEAANDERSONRESUME
AANDERSONRESUME
 
151118_IP_Brochure
151118_IP_Brochure151118_IP_Brochure
151118_IP_Brochure
 
Sociobizz Education
Sociobizz EducationSociobizz Education
Sociobizz Education
 
How to Prevent an International Incident: Communicating with Global Teams
How to Prevent an International Incident: Communicating with Global TeamsHow to Prevent an International Incident: Communicating with Global Teams
How to Prevent an International Incident: Communicating with Global Teams
 
DSS_Resume_AF_1-19-26
DSS_Resume_AF_1-19-26DSS_Resume_AF_1-19-26
DSS_Resume_AF_1-19-26
 
How to market your question/project on the web and offer money for solution
How to market your question/project on the web and offer money for solutionHow to market your question/project on the web and offer money for solution
How to market your question/project on the web and offer money for solution
 
Green function
Green functionGreen function
Green function
 
Uni2Go
Uni2GoUni2Go
Uni2Go
 
Un 2015
Un 2015Un 2015
Un 2015
 
CV of Riana 2016
CV of Riana 2016CV of Riana 2016
CV of Riana 2016
 
PayForAnswer
PayForAnswerPayForAnswer
PayForAnswer
 
Build up array/build down 1
Build up array/build down 1Build up array/build down 1
Build up array/build down 1
 
Pieter nortje fitter with dual diesel and auto
Pieter nortje fitter with dual diesel and autoPieter nortje fitter with dual diesel and auto
Pieter nortje fitter with dual diesel and auto
 
Homberg_LeGes-e (2)
Homberg_LeGes-e (2)Homberg_LeGes-e (2)
Homberg_LeGes-e (2)
 

Similar to Non-Orthogonal Waveforms for 5G: FBMC and UFMC Comparison

Communication Networking_ An Analytical Approach ( PDFDrive ).pdf
Communication Networking_ An Analytical Approach ( PDFDrive ).pdfCommunication Networking_ An Analytical Approach ( PDFDrive ).pdf
Communication Networking_ An Analytical Approach ( PDFDrive ).pdfNaolLamu
 
Analysis and design of analog integrated circuits
Analysis and design of analog integrated circuitsAnalysis and design of analog integrated circuits
Analysis and design of analog integrated circuitsBadam Gantumur
 
Performance evaluation of 802.11p protocol for emergency application
Performance evaluation of 802.11p protocol for emergency applicationPerformance evaluation of 802.11p protocol for emergency application
Performance evaluation of 802.11p protocol for emergency applicationPratik Joshi
 
Communication systems-theory-for-undergraduate-students-using-matlab
Communication systems-theory-for-undergraduate-students-using-matlabCommunication systems-theory-for-undergraduate-students-using-matlab
Communication systems-theory-for-undergraduate-students-using-matlabSaifAbdulNabi1
 
Workshop on Synchrophasors and Control Applications for Power Systems
Workshop on  Synchrophasors and Control Applications for Power SystemsWorkshop on  Synchrophasors and Control Applications for Power Systems
Workshop on Synchrophasors and Control Applications for Power SystemsLuigi Vanfretti
 
Closed loop power control for lte uplink
Closed loop power control for lte uplinkClosed loop power control for lte uplink
Closed loop power control for lte uplinkPfedya
 
Understanding rf circuits with multisim 10
Understanding rf circuits with multisim 10Understanding rf circuits with multisim 10
Understanding rf circuits with multisim 10Dikshya Rath
 
Digital Phase Locked Loop
Digital Phase Locked LoopDigital Phase Locked Loop
Digital Phase Locked LoopJun Steed Huang
 
Amplitude Modulation Circuit Implementation for use in a Communication Course...
Amplitude Modulation Circuit Implementation for use in a Communication Course...Amplitude Modulation Circuit Implementation for use in a Communication Course...
Amplitude Modulation Circuit Implementation for use in a Communication Course...Huynh MVT
 
syllbus (2).docx
syllbus (2).docxsyllbus (2).docx
syllbus (2).docxashwkr07
 
PHASE CHANGE MEMORY
PHASE CHANGE MEMORYPHASE CHANGE MEMORY
PHASE CHANGE MEMORYSrinivas H V
 
Course descriptions cit-iae_20130517
Course descriptions cit-iae_20130517Course descriptions cit-iae_20130517
Course descriptions cit-iae_20130517Md Hasnain
 
Wireless Sensor Network Simulators: A Survey and Comparisons
Wireless Sensor Network Simulators: A Survey and ComparisonsWireless Sensor Network Simulators: A Survey and Comparisons
Wireless Sensor Network Simulators: A Survey and ComparisonsCSCJournals
 
36324442 biosignal-and-bio-medical-image-processing-matlab-based-applications...
36324442 biosignal-and-bio-medical-image-processing-matlab-based-applications...36324442 biosignal-and-bio-medical-image-processing-matlab-based-applications...
36324442 biosignal-and-bio-medical-image-processing-matlab-based-applications...Avinash Nandakumar
 

Similar to Non-Orthogonal Waveforms for 5G: FBMC and UFMC Comparison (20)

Communication Networking_ An Analytical Approach ( PDFDrive ).pdf
Communication Networking_ An Analytical Approach ( PDFDrive ).pdfCommunication Networking_ An Analytical Approach ( PDFDrive ).pdf
Communication Networking_ An Analytical Approach ( PDFDrive ).pdf
 
Analysis and design of analog integrated circuits
Analysis and design of analog integrated circuitsAnalysis and design of analog integrated circuits
Analysis and design of analog integrated circuits
 
Performance evaluation of 802.11p protocol for emergency application
Performance evaluation of 802.11p protocol for emergency applicationPerformance evaluation of 802.11p protocol for emergency application
Performance evaluation of 802.11p protocol for emergency application
 
Link & Match Program
Link & Match ProgramLink & Match Program
Link & Match Program
 
Communication systems-theory-for-undergraduate-students-using-matlab
Communication systems-theory-for-undergraduate-students-using-matlabCommunication systems-theory-for-undergraduate-students-using-matlab
Communication systems-theory-for-undergraduate-students-using-matlab
 
Workshop on Synchrophasors and Control Applications for Power Systems
Workshop on  Synchrophasors and Control Applications for Power SystemsWorkshop on  Synchrophasors and Control Applications for Power Systems
Workshop on Synchrophasors and Control Applications for Power Systems
 
Closed loop power control for lte uplink
Closed loop power control for lte uplinkClosed loop power control for lte uplink
Closed loop power control for lte uplink
 
Understanding rf circuits with multisim 10
Understanding rf circuits with multisim 10Understanding rf circuits with multisim 10
Understanding rf circuits with multisim 10
 
2371_Sledevic_web
2371_Sledevic_web2371_Sledevic_web
2371_Sledevic_web
 
vanderMerweMScEngThesis
vanderMerweMScEngThesisvanderMerweMScEngThesis
vanderMerweMScEngThesis
 
Digital Phase Locked Loop
Digital Phase Locked LoopDigital Phase Locked Loop
Digital Phase Locked Loop
 
Amplitude Modulation Circuit Implementation for use in a Communication Course...
Amplitude Modulation Circuit Implementation for use in a Communication Course...Amplitude Modulation Circuit Implementation for use in a Communication Course...
Amplitude Modulation Circuit Implementation for use in a Communication Course...
 
syllbus (2).docx
syllbus (2).docxsyllbus (2).docx
syllbus (2).docx
 
PHASE CHANGE MEMORY
PHASE CHANGE MEMORYPHASE CHANGE MEMORY
PHASE CHANGE MEMORY
 
Aisi2017 keynote speaker
Aisi2017 keynote speakerAisi2017 keynote speaker
Aisi2017 keynote speaker
 
Course descriptions cit-iae_20130517
Course descriptions cit-iae_20130517Course descriptions cit-iae_20130517
Course descriptions cit-iae_20130517
 
Wireless Sensor Network Simulators: A Survey and Comparisons
Wireless Sensor Network Simulators: A Survey and ComparisonsWireless Sensor Network Simulators: A Survey and Comparisons
Wireless Sensor Network Simulators: A Survey and Comparisons
 
Semmlow2004
Semmlow2004Semmlow2004
Semmlow2004
 
36324442 biosignal-and-bio-medical-image-processing-matlab-based-applications...
36324442 biosignal-and-bio-medical-image-processing-matlab-based-applications...36324442 biosignal-and-bio-medical-image-processing-matlab-based-applications...
36324442 biosignal-and-bio-medical-image-processing-matlab-based-applications...
 
D04812125
D04812125D04812125
D04812125
 

Non-Orthogonal Waveforms for 5G: FBMC and UFMC Comparison

  • 1. University of Applied Sciences Rosenheim Faculty of Engineering Electrical Engineering and Information Technology Master Program Master Thesis Non-Orthogonal Waveforms For 5G Comparison and Characterization Author: Muhammet Colak First Advisor: Prof. Dr. Markus Stichler Second Advisor: Prof. Dr. Holger Stahl
  • 2. Erklärung gemäß §31,5 RaPo Hiermit erkläre ich, dass ich die vorliegende Arbeit selbständig verfasst, noch nicht anderweitig für Prüfungszwecke vorgelegt, keine anderen als die angegebenen Quellen oder Hilfsmittel benützt, sowie wörtliche und sinngemäße Zitate als solche gekennzeichnet habe. ___________________ __________________ Ort, Datum Unterschrift
  • 3. 3 I. Acknowledgements At the end of my thesis I would like to thank all those people who made this thesis possible and an unforgettable experience for me. First of all, I would like to express my deepest sense of gratitude to my thesis advisor Prof. Dr. Michael Stichler for his patience and encouragement during thesis period. He steered me to the right direction whenever I need it. Also Digital Signal Processing and Advanced Digital Communication Systems lectures instructed by Prof. Dr. Stichler has been very important for me to gain necessary knowledge to do my thesis. I would like to thank to my second advisor Prof. Dr. Holger Stahl for his trust and support. Wireless Communication Systems Lecture he taught has been massive start to interest further about mobile commination Systems. My special thanks goes to my elder brother Mehmet Colak for his financial support during my studies in Germany. His encouragement during my master degree has been important. I feel gratefull for all my family in Turkey for their support and trust. I am gratefull to all my friends and classmates for their support and friendship which made me feel at home. Among my friends I would like to mention my colleague Aiyman Saad who has always welcome when I needed to discuss about Matlab simulations. I used several references but one is very important to start my thesis work. In order for me to gain fundamental signal processing knowledge necessary to do my thesis, I have studied the book ‘contemporary communication systems using Matlab, third edition ’ and practiced sample Matlab codes in the book. I would like to send many thanks to the authors of this book John G. Proakis, Masoud Salehi and Gerhard Bauch. I owe my special thanks to the other university Professors that I took lectures during my studies in Electrical Engineering and Information Technologies master degree program at the Rosenheim University of Applied Sciences. I learned a lot from the lectures and the laboratory experiements.
  • 4. 4 II. Abstract In this thesis two candidate multicarrier waveforms for the physical interface of 5G are compared to Orthogonal Frequency Division Multiplexing (OFDM). One candidate waveform is Filter Bank Multi-Carrier (FBMC) where each carrier is filtered before transmission to eliminate inter carrier interference and inter symbol interference. Second candidate waveform is Universal Filtered Multi-Carrier (UFMC) where blocks of subcarriers are filtered before transmission and reception for the same purpose of eliminating inter carrier and inter symbol interferences. Error Vector Magnitude analysis, Power Spectral Density analysis, Complementary Cumulative Distribution Function analysis, Adjacent Channel Power Ratio analysis and several other metric analysis are performed using Matlab simulations to characterize the waveforms. Keywords: Master Thesis, PPN FBMC, OFDM, UFMC, Matlab simulation.
  • 5. 5 III. Preface This thesis is written to fulfill the requirements of Masters of Engineering degree in the Electrical Engineering and Information Technologies master degree program. The project has been carried out over a period of 7 months at Rosenheim University of Applied Sciences. The supervisors for this Project were Prof. Dr. Marcus Stichler and Prof. Dr. Holger Stahl. Rosenheim, 31.05.2016 _____________________________________________ Muhammet COLAK Email: muhammetcolak@gmail.com
  • 6. 6 IV. Acronyms OFDM Orthogonal Frequency Division Multicarrier PPN Poly Phase Network FBMC Filter Bank Multi Carrier UFMC UL DL PRB PSD CCDF ACPR SNR MMSE ZF Universal-Filtered Multi-Carrier Up Link Down Link Physical Resource Block Power Spectral Density Complementary Cumulative Distribution Function Adjacent Channel Power Ratio Signal to Noise Ratio Minimum Mean Square Error equalization Zero Forcing equalization dB EVM RMS GUI QAM OQAM IoT WLAN DVB FFT IFFT deci-Bell Error Vector Magnitude Root Mean Square Graphical User Interface Quadrature Amplitude Modulation Offset QAM Internet of Things Wireless Local Area Network Digital Video Broadcasting Fast Fourier Transform Inverse Fast Fourier Transform
  • 7. 7 DFT IDFT CP ISI ICI RF FS-FBMC PPN-FBMC PAR Discrete Fourier Transform Inverse Discrete Fourier Transform Cyclic Prefix Inter Symbol Interference Inter Carrier Interference Radio Frequency Frequency Spreading Filter Bank Multi-Carrier Poly Phase Network Filter Bank Multi-Carrier Peak to Average Power Ratio
  • 8. 8 V. Contents I. Acknowledgements..................................................................................................................3 II. Abstract ....................................................................................................................................4 III. Preface......................................................................................................................................5 IV. Acronyms .................................................................................................................................6 V. Contents....................................................................................................................................8 VI. List of Figures ........................................................................................................................10 VII. List of Tables..........................................................................................................................11 1 Objectives...............................................................................................................................12 1.1 General Objective.........................................................................................................................12 1.2 Specific Objectives........................................................................................................................12 2 Introduction............................................................................................................................12 3 OFDM Basics.........................................................................................................................13 4 FBMC.....................................................................................................................................16 4.1 Prototype filter design .................................................................................................................16 4.2 PPN-FFT ........................................................................................................................................19 4.3 OQAM modulation.......................................................................................................................21 4.4 Matlab Simulations ......................................................................................................................24 4.4.1 Waveform filters...................................................................................................... 25 4.4.2 EVM Analysis ......................................................................................................... 26 4.4.3 Power spectral density (PSD) analysis:................................................................... 28 4.4.4 CCDF Analysis........................................................................................................ 28 4.5 AWGN Channel.............................................................................................................................29 5 UFMC.....................................................................................................................................31 5.1 UFMC Transmitter........................................................................................................................32 5.2 UFMC Receiver.............................................................................................................................34 5.3 Matlab Simulations ......................................................................................................................36 5.3.1 Waveform filters...................................................................................................... 36
  • 9. 9 5.3.2 EVM Analysis ......................................................................................................... 37 5.3.3 Power spectral density (PSD) analysis:................................................................... 41 5.3.4 CCDF Analysis........................................................................................................ 41 5.4 AWGN Channel.............................................................................................................................43 5.5 UFMC Filter...................................................................................................................................43 6 Conclusion..............................................................................................................................45 7 References ..............................................................................................................................46 Appendix – MATLAB Codes........................................................................................................47 GUI.m .......................................................................................................................................................47 FbmcFcn.m...............................................................................................................................................54 UfmcFcn.m ...............................................................................................................................................59 ACPRuf.m..................................................................................................................................................63 ACPRfb.m..................................................................................................................................................63 CCDFex.m .................................................................................................................................................64 EVMex.m ..................................................................................................................................................64 overSample.m ..........................................................................................................................................64
  • 10. 10 VI. List of Figures Figure 3.1: Basic OFDM Transceiver System............................................................................... 13 Figure 3.2: Multicarrier modulation with the FFT ........................................................................ 14 Figure 4.1: Basic PPN-FBMC Transceiver System ...................................................................... 16 Figure 4.2 Prototype filter frequency response for K=4................................................................ 17 Figure 4.3: Impulse response of the prototype filter for overlapping factor K=4 ......................... 18 Figure 4.4. Section of a filter bank based on the prototype with K=4 .......................................... 18 Figure 4.5: PPN-IFFT implementation of the transmitter filter bank ........................................... 20 Figure 4.6: A section of the PPN in the transmitter (K=4)............................................................ 21 Figure 4.7: Comparison between QAM and OQAM .................................................................... 22 Figure 4.8. OFDM and FBMC symbol mapping on carriers ........................................................ 22 Figure 4.9: An OQAM transmitter using the IFFT-PPN scheme.................................................. 23 Figure 4.10: FBMC&OFDM simulation Graphical User Interface .............................................. 24 Figure 4.11: FBMC Filter characteristics...................................................................................... 26 Figure 4.12: OFDM and FBMC signal constellation on perfect channel...................................... 27 Figure 4.13 FBMC&OFDM PSD analysis.................................................................................... 28 Figure 4.14 : FBMC&OFDM CCDF Analysis ............................................................................. 29 Figure 4.15 : FBMC&OFDM simulation in AWGN channel....................................................... 29 Figure 4.16: FBMC&OFDM simulation under AWGN channel with ZF estimation for OFDM 30 Figure 5.1:UFMC transceiver architecture.................................................................................... 32 Figure 5.2.General UFMC transmitter structure ........................................................................... 33 Figure 5.3.UFMC transmitter submodule ..................................................................................... 33 Figure 5.4: General UFMC receiver structure............................................................................... 35 Figure 5.5:UFMC&OFDM simulation Graphical User Interface ................................................. 36 Figure 5.6: Dolph Chebychev FIR filter charactersitics................................................................ 37 Figure 5.7:OFDM and UFMC transceiver signal constellation on perfect channel...................... 38 Figure 5.8: OFDM and UFMC signal constellation on 40 dB AWGN channel. .......................... 39 Figure 5.9: OFDM and UFMC constellation on noisy channel with MMSE channel estimation. 40 Figure 5.10: UFMC&OFDM PSD analysis .................................................................................. 41 Figure 5.11: UFMC&OFDM CCDF Analysis .............................................................................. 42 Figure 5.12: UFMC vs OFDM under AWGN of 40 dB channel with MMSE estimation............ 43 Figure 5.13: UFMC with longer filter length ................................................................................ 44
  • 11. 11 VII. List of Tables Table 4.1: Frequency domain prototype filter coefficients ........................................................... 17 Table 4.2: FBMC&OFDM simulation parameters........................................................................ 26 Table 5.1: Design elements for UFMC ......................................................................................... 34 Table 5.2: UFMC&OFDM simulation parameters ....................................................................... 38
  • 12. Objectives 12 1 Objectives 1.1 General Objective Analyze and characterize two multicarrier candidate waveforms for 5G; FBMC and UFMC, and compare their characteristics with OFDM, the multicarrier waveform for 4G, using Matlab simulations. 1.2 Specific Objectives - Research 5G candidate waveforms and understand the requirements. - Use Matlab simulations as a tool for analysis. 2 Introduction In this thesis two of the candidate waveforms for 5G is simulated and compared with the current LTE waveform OFDM which requires strict synchronicity in order to do its job properly. With the requirements for 5G it is becoming difficult to sustain orthogonality which is challenged by the following application scenarios of 5G technology [5GNOW31]: 1) Tactile Internet: Enabling real-time cyber-physical tactile control experiments. The real time constraint is the human tactile sense which distinguishes latencies in the order of 1ms. In the setting for 1ms round trip time requires a time budget on PHY of maximum 100μs [Fet12]. 2) Internet of Things (IoT): Although the business models have not started off yet, IoT is possibly going to be the most important application. 3) Gigabit Wireless Connectivity: Users will want to have quick downloads with download times in the order of 10 Gbit/s. 4) Fragmented Spectrum: In order to utilize the spectrum more efficiently, better localization is necessary and the waveform needs to enable fragmented spectrum usage. According to recent research [5GNOW31] there are strong indicators that at least for some of the mentioned applications, the OFDM waveform is not suitable. Therefore researchers are working on new waveforms for 5G such as filtered OFDM, FBMC, UFMC, GFDM and BFDM. In this thesis FBMC and UFMC waveforms are analyzed and their characteristics are compared to OFDM using Matlab simulations. For the basics of using Matlab for simulations of communication systems the reference book [Proakis] is recommended.
  • 13. OFDM Basics 13 In the following chapters basic theories of OFDM, FBMC and UFMC are given before the simulation results are analyzed. In chapter 4, OFDM basics are summarized, and then FBMC theory is given in chapter 5 followed by the analysis of the simulation results comparing FBMC and OFDM. In chapter 6 same approach is repeated for UFMC, that is, simulation results comparing the characteristics of UFMC and OFDM are analyzed following a background information on the theory of the UFMC. Finally concluding remarks are stated in the conclusion chapter. Matlab codes used for the simulations can be found in the Appendix. 3 OFDM Basics Orthogonal frequency division multiplexing (OFDM) is a multicarrier transmission technique where each carrier is selected to be orthogonal to the others so that they can be distinguished in the frequency domain at the receiver. OFDM is employed in the standard of today’s 4G network which plays an important role in many current applications such as digital video broadcasting (DVB) and wireless local area networks (WLANs). The basic OFDM transceiver system is shown in Figure 3.1. Figure 3.1: Basic OFDM Transceiver System Basically the input data to be transmitted is converted from serial to parallel form first. Each parallel block contains as many samples as the total number of subcarriers. Then the Inverse Fast Fourier Transform (IFFT) of the block is computed before adding the Cyclic Prefix (CP). After CP addition the result is converted to serial form and delivered to the channel for transmission. On the receiver side the operations employed on the transmitter are performed in reverse order. That is; after serial to parallel conversion, the CP is removed, Fast Fourier Transform (FFT) is computed to get the symbol estimates which are then converted to serial form. There are two issues regarding the OFDM transmission; Inter Symbol Interference (ISI) and Inter Carrier Interference (ICI). As the symbols travel one by one to the other end of the channel, the
  • 14. OFDM Basics 14 channel will introduce delay spread in time domain which results into OFDM symbol getting spread out and hence will interfere with consecutive OFDM symbols which is referred as ISI. The ISI can be eliminated by addition of guard interval between neighboring OFDM symbols. However each OFDM symbol still suffers from ICI when only guard interval is added. ICI is the result of delays in the multipath propagation environment and the frequency offset at the receiver. In order to eliminate ICI, some part at the end of the useful symbol period, which is called Cyclic Prefix (CP), is appended at the start. However there are still some issues regarding the OFDM which can be summarized as: - The guard interval wastes channel resources. - High sensitivity to phase, frequency, and clock offsets of the receiver, the transmitter or the channel makes it difficult to maintain orthogonally. - High Peak to Average power Ratio(PAR) requires highly linear RF Amplifiers. The issues summarized are the main challenges that OFDM faces when it comes to new 5G requirements. That is why new waveforms are investigated. In an ideal channel without any noise and any distorting effect of the channel there is no need for using CP. In this case the OFDM transceiver system becomes basically an IFFT block in the transmitter side and an FFT block in the receiver side as shown in Figure 3.2 as explained in [Primer] where the size of the IFFT & FFT is M and Figure 3.2: Multicarrier modulation with the FFT di(mM), a set of M data samples with 0 ≤ i ≤ M − 1, is provided to the IFFT input. For mM ≤ n < (m + 1)M the IFFT output is expressed by x(n) = ∑ di(mM)ej2π i(n−mM) MM−1 i=0 (3.1) The set of M samples obtained is called a multicarrier symbol and m is the symbol index. For transmission in the channel, a parallel-to-serial (P/S) converter is introduced at the output of the IFFT and the samples x(n) appear in serial form. When the sampling frequency of the transmitted
  • 15. OFDM Basics 15 signal is unity, there are M carriers and the carrier frequency spacing is 1/M. The duration of a multicarrier symbol T is the inverse of the carrier spacing, T=M. Note that T is also the multicarrier symbol period, which reflects the fact that successive multicarrier symbols do not overlap in the time domain. At the receive side, a serial-to-parallel (S/P) converter is introduced at the input of the FFT. The data samples are recovered by 𝑑𝑖(𝑚𝑀) = ∑ 𝑥(𝑛)𝑒−𝑗2𝜋 𝑖(𝑛−𝑚𝑀) 𝑀mM+𝑀−1 n=mM (3.2) For the proper functioning of the system, the receiver (FFT) must be perfectly aligned in time with the transmitter (IFFT). But, in the presence of a channel with multipath propagation, due to the channel impulse response, the multicarrier symbols overlap at the receiver input and it is no more possible to demodulate with just the FFT, because inter symbol interference has been introduced and the orthogonality property of the carriers has been lost. Then, there are 2 options: 1) extend the symbol duration by a guard time (and add CP as mentioned before) exceeding the length of the channel impulse response and still demodulate with the same FFT. 2) keep the timing and the symbol duration as they are, but add some processing to the FFT. The scheme is called FBMC, because this additional processing and the FFT together constitute a bank of filters. The next section explains this approach. In the reference implementation of OFDM for the purposes of this thesis two different circumstances are assumed; one is ideal channel and the other is a channel with only AWGN without multipath or any other channel effect. In both cases CP is not considered. For the latter case a linear receiver in an AWGN channel is simulated which utilize Minimum Mean Square Error (MMSE) and Zero Forcing filter (ZF) estimations by multiplying the received signal with the matrices accordingly: 𝑊𝑍𝐹 = ( 𝑉 𝑛𝑜𝑟𝑚(𝑉) )+ = (T)+ 𝑊 𝑀𝑀𝑆𝐸 = (𝑇 𝐻 𝑇 + 𝜎2 𝐼)−1 𝑇 𝐻 (3.3) Where V is the IFFT matrix, T+ is the Moore-Penrose-Inverse of the matrix T, 𝑇 𝐻 is the hermitian transpose and 𝜎2 is the noise variance and I is the identity matrix. In the following chapters, FBMC and UFMC waveforms are investigated using Matlab simulations and compared to OFDM.
  • 16. FBMC 16 4 FBMC The filter bank based multicarrier (FBMC) transmission introduces filter banks to the OFDM system and discards the CP in order to improve flexibility of the system to deal with some limitations of OFDM. The filter bank can be designed with different properties to satisfy the communication requirements, such as to reduce the sideband power loss and increase the spectral efficiency. There are two types of FBMC implementations, the frequency spreading filter bank multicarrier (FS-FBMC) and the poly-phase network filter bank multicarrier (PPN-FBMC). PPN- FBMC is selected as the model in this thesis as it reduces the high complexity which is introduced by the extra filtering operations at the transmitter and receiver. Figure 4.1 depicts the basic block diagram of a PPN – FBMC transceiver system. Figure 4.1: Basic PPN-FBMC Transceiver System The poly-phase network of filter bank (PPN) is used to filter each carrier before transmission. The filter bank needs to be selected carefully to satisfy the communication requirements. In the following sub sections include materials extracted from [Primer] to explain the filter design and its characteristics. 4.1 Prototype filter design Digital transmission is based on the Nyquist theory: the impulse response of the transmission filter must cross the zero axis at all the integer multiples of the symbol period. The condition translates in the frequency domain by the symmetry condition about the cut-off frequency, which is half the symbol rate. Then, a straightforward method to design a Nyquist filter is to consider the frequency coefficients and impose the symmetry condition. In transmission systems, the global Nyquist filter is generally split into two parts, a half-Nyquist filter in the transmitter and a half-Nyquist filter in the receiver. Then, the symmetry condition is satisfied by the squares of the frequency coefficients. The frequency coefficients of the half- Nyquist filter obtained for overlapping factors K=2, 3 and 4 are given in Table 4.1 [Primer].
  • 17. FBMC 17 Table 4.1: Frequency domain prototype filter coefficients K 𝐻0 𝐻1 𝐻2 𝐻3 𝜎2 (𝑑𝐵) 2 1 √2 2⁄ - - -35 3 1 0.911438 0.411438 - -44 4 1 0.971960 √2 2⁄ 0.235147 -65 The PPN filter satisfy the equation 1 𝐾 ∑ |𝐻 𝑘 2 |𝐾−1 𝑘=−𝐾+1 = 1 (4.1) In the frequency domain, the filter response consists of 2K-1 pulses for K=4. The continuous frequency response, shown in Figure 4.2, is obtained from the frequency coefficients through the interpolation formula for sampled signals which yields: H(f) = ∑ Hk sin(π(f− k MK )MK) MKsin(π(f− k MK )) K−1 k=−(K−1) (4.2) As a result, the out-of-band ripples are nearly disappeared and a highly selective filter is obtained. Figure 4.2 Prototype filter frequency response for K=4 The impulse response h(t) of the filter is given by the inverse Fourier transform of the pulse frequency response, which is ℎ(𝑡) = 1 + 2 ∑ 𝐻 𝑘 cos (2𝜋 𝑘𝑡 𝐾𝑇 )𝐾−1 𝑘=1 (4.3) Figure 4.3 shows the impulse response of the filter with length L=1024, the number of sub- channels M=256 and K=4.
  • 18. FBMC 18 Figure 4.3: Impulse response of the prototype filter for overlapping factor K=4 Once the prototype filter is designed, the filter bank is obtained by the frequency shifts 𝑘/𝑀. The filter with index k is obtained by multiplying the prototype filter coefficients by 𝑒 𝑗2𝜋𝑘𝑖/𝑀 . A section of the filter bank derived in that manner is shown in Figure 4.4 [Primer]. The sub-channel index corresponds to the frequency axis and the sub-carrier spacing is unity. A key observation is that the sub-channels with even index (odd index) do not overlap. In fact, a particular sub-channel overlaps in frequency with its neighbors only. Figure 4.4. Section of a filter bank based on the prototype with K=4 Considering the complete system in Figure 4.1, the frequency coefficients of the transmitter- receiver filter are the squares of those of the prototype. The corresponding responses are given by ℎ2(𝑡) = 1 + 2 ∑ 𝐻 𝑘 2 cos(2𝜋 𝑘𝑡 𝐾𝑇 )𝐾−1 𝑘=1 (4.4) and 𝐻2(𝑓) = ∑ 𝐻 𝑘 2 sin(𝜋(𝑓− 𝑘 𝑀𝐾 )𝑀𝐾) 𝑀𝐾𝑠𝑖𝑛(𝜋(𝑓− 𝑘 𝑀𝐾 )) 𝐾−1 𝑘=−(𝐾−1) (4.5)
  • 19. FBMC 19 An important parameter related to the prototype filter design is the “background noise” power. Actually, it is the residual interference power due to the non-orthogonality of the carriers beyond the neighboring sub-channels. It is measured, for example, by loading all the sub-channels but some with uncorrelated unit power signals and measuring the signal power in the unloaded sub- channels. 4.2 PPN-FFT In the time domain, the prototype filter is defined by a set of coefficients and the relationship between input and output sequences, which is 𝑦(𝑛) = ∑ ℎ𝑖 𝑥(𝑛 − 𝑖)𝐿−1 𝑖=0 (4.6) The filter impulse response, of length L, is the sequence of coefficients ℎ𝑖 (0 ≤ i ≤ 𝐿 −1) and the frequency response is expressed by 𝐻(𝑓) = ℎ𝑖 𝑒−𝑖2𝜋𝑖𝑓 (4.7) where the sampling frequency is assumed to be unity. The filter has linear phase if the coefficients are symmetrical and, in this case, the delay is 𝜏 = 𝐿−1 2 (4.8) In digital filtering, it is customary to use the Z-transfer function, which generalizes the frequency response and is defined by 𝐻(𝑍) = ∑ ℎ𝑖 𝑍−𝑖𝐿−1 𝑖=0 (4.9) The filter frequency response is the restriction of the Z-transfer function to the unit circle, i.e. it is obtained by letting 𝑍 = 𝑒 𝑗2𝜋𝑓 . Now, if we assume that the filter length is a product of two factors, 𝐿 = 𝐾. 𝑀, the sequence of filter coefficients can be decomposed into M interleaved sequences of K coefficients and the Z-transfer function can be expressed as a double summation 𝐻(𝑍) = ∑ 𝐻 𝑃(𝑍 𝑀 )𝑍−𝑃𝑀−1 𝑃=0 (4.10) 𝐻 𝑃(𝑍 𝑀 ) = ∑ ℎ 𝑘𝑀+𝑃 𝑍−𝑘𝑀𝐾−1 𝑘=0 (4.11) It turns out that each individual filter element, 𝐻 𝑃(𝑍 𝑀 ) , has the frequency response of a phase shifter, hence the name of poly-phase decomposition, and poly-phase network for the complete set. Now, turning to the filter bank in the transmitter, which is generated by shifting the response of the filter H( f ) by 1/M on the frequency axis leads to the function 𝐵1(𝑓) = 𝐻 (𝑓 − 1 𝑀 ) = ∑ ℎ𝑖 𝑒−𝑗2𝜋𝑖(𝑓− 1 𝑀 )𝐿−1 𝑖=0 (4.12) The corresponding Z-transfer function is
  • 20. FBMC 20 𝐵1(𝑍) = ∑ ℎ𝑖 𝑒 𝑗2𝜋𝑖/𝑀 𝑍−𝑖𝐿−1 𝑖=0 (4.13) and it is expressed in terms of the poly-phase decomposition by 𝐵1(𝑍) = ∑ 𝑒 𝑗 2𝜋 𝑀 𝑃 𝑍−𝑃 𝐻 𝑃(𝑍 𝑀 )𝑀−1 𝑃=0 (4.14) The key point here is that the functions 𝐻 𝑃(𝑍 𝑀 ) are not affected by the frequency shift. Then, considering all the shifts by multiples of 1/M and the associated filters, and letting 𝑊 = 𝑒− 𝑗 2𝜋 /𝑀 , a matrix equation is obtained [ 𝐵0(𝑍) 𝐵1(𝑍) .. 𝐵 𝑀−1(𝑍)] = [ 1 1 … 1 1 ⋮ 𝑊−1 … ⋮ 𝑊−𝑀+1 ⋮ 1 𝑊−𝑀+1 … 𝑊−(𝑀−1)2 ] [ 𝐻0(𝑍 𝑀 ) 𝑍−1 𝐻1(𝑍 𝑀 ) ⋮ 𝑍−(𝑀−1) 𝐻 𝑀−1(𝑍 𝑀 )] (4.15) The square matrix is the matrix of the inverse discrete Fourier transform (IDFT) and all the filters in the bank have the same filter elements 𝐻 𝑃(𝑍 𝑀 ). In the implementation, the transmitter output is the sum of the outputs of the filters of the bank. Thus, the processing associated with the filter elements 𝐻 𝑃(𝑍 𝑀) can be carried out after the summation which is performed by the IDFT. The structure for the implementation of the filter bank in the transmitter is shown in Figure 4.5 [Primer]. Figure 4.5: PPN-IFFT implementation of the transmitter filter bank The same scheme applies to the filter bank in the receiver. The difference is that the frequency shifts are multiples of –1/M and the discrete Fourier transform (DFT) replaces the IFFT. In fact, for each sub-channel, the signal of interest is shifted around the frequency origin and filtered. Again, the filter elements are the same for all the filters in the bank and, since it is the sum of the sub-channel signals which is received, the processing can be common and the separation of the signals can take place afterwards, with the help of the DFT. The block diagram of the transmission system was given in Figure 4.1. The size of the DFT is a power of two and the fast Fourier transform algorithm is implemented. Note that the system delay is K multicarrier symbol periods, due to the delay of the prototype filter in transmit and receive
  • 21. FBMC 21 filter banks. In terms of complexity, each section of the PPN has K multiplications, as shown in Figure 4.6 [Primer] for K=4, and the complete PPN requires KM multiplications, which is less than the IFFT, as soon as the number M of sub-channels becomes large. Figure 4.6: A section of the PPN in the transmitter (K=4) The transmitter can generate a real sequence, with almost the same computational complexity. The IFFT size has to be doubled and every input data element 𝑑𝑖(𝑚𝑀) is applied to two symmetrical inputs. Then, the IFFT output is real and, since the PPN coefficients are real, the transmitter output is real. The receiver can process real signals, with similar changes. 4.3 OQAM modulation In FBMC systems, any kind of modulation can be used whenever the sub-channels are separated. For example, if only the sub-channels with even (odd) index are exploited, there is no overlap and QAM modulation can be employed. However, if full speed is seeked, all the sub-channels must be exploited and a specific modulation is needed to cope with the frequency domain overlapping of the neighboring sub-channels. Two important aspects of the transmission systems is worth emphasizing here [Primer]. 1) due to the overlapping of neighboring sub-channels, orthogonality is needed. It is achieved by using the real part of the IFFT inputs with even index and the imaginary part of the IFFT inputs with odd index. But this implies a reduction of the capacity by the factor 2. In fact, full capacity can be restored with the second aspect. 2) Due to the symmetry of the transmitter and receiver filters and the fact that they are identical, the imaginary part of the impulse response of the sub-channel interference filter crosses the time axis at the integer multiples of the symbol period and the real part crosses the time axis at the odd multiples of half the symbol period. The time axis crossings are interleaved. Then, the strategy to reach full capacity is the following: double the symbol rate and, for each sub-channel, use alternatively the real and the imaginary part of the IFFT as seen in Figure 4.7 where k represents the subcarrier index, n represents the time index and Rkn+jYkn represents the complex data symbol.
  • 22. FBMC 22 Figure 4.7: Comparison between QAM and OQAM This way, the real and the imaginary part of a complex data symbol are not transmitted simultaneously as in OFDM, but the imaginary part is delayed by half the symbol duration. This is the so-called offset quadrature amplitude modulation (OQAM) and the term ‘offset’ reflects the time shift of half the inverse of the sub-channel spacing between the real part and the imaginary part of a complex symbol. Note that this type of modulation is used in single carrier systems, to improve the peak factor. In the present multicarrier context the throughput rate is the same as with QAM modulation, employed for example in OFDM systems, but without the guard time. Figure 4.8 [He15] illustrates the difference between QAM and OQAM modulation techniques. Figure 4.8. OFDM and FBMC symbol mapping on carriers For the implementation, the rate is doubled and, in the transmitter, consecutive blocks of M output samples overlap and the overlapping parts with M/2 samples are added. In the receiver, the
  • 23. FBMC 23 FFT window slides by M/2 samples instead of M samples. The PPN-FFT approach requires two chains, or a single FFT running at double rate and two PPN devices for the transmitter. As mentioned above, the blocks of M output samples coming out of PPN1 and PPN2 overlap by M/2 samples and an addition is introduced, as shown in Figure 4.9 [Primer]. Figure 4.9: An OQAM transmitter using the IFFT-PPN scheme In the next sub-sections Matlab simulation results are discussed.
  • 24. FBMC 24 4.4 Matlab Simulations Figure 4.10 below shows the Matlab Graphical User Interface (GUI) used for simulations. Figure 4.10: FBMC&OFDM simulation Graphical User Interface The GUI is used for making two comparisons; UFMC-OFDM, FBMC-OFDM. So the reference waveform to make comparisons in both cases is OFDM. It includes 6 figures and 5 input and output information panels. General Settings information panel is used to set the general simulation parameters: - Number of used carriers - Number of symbols in a frame - QAM Modulation level (e.g., 16 QAM, 64 QAM) - Select if AWGN noisy channel is used and select the SNR value of the channel - Select if channel estimation is going to be used for OFDM or not - Select the channel estimation (MMSE estimation, ZF estimation) for UFMC and for OFDM if it is selected in the previous combo box. Waveform Settings panel includes below parameter inputs about the selected waveforms: - UFMC block size, that is, the number of carriers in one block - UFMC number of blocks - Length of the Dolph-Chebychev FIR filter used for UFMC waveform
  • 25. FBMC 25 - The side band Attenuation intended by the UFMC filter - FBMC filter overlapping factor, the best choice is 4. This is relevant only when FBMC and OFDM are comparison related simulation. The remaining three panels are there for the results. Mainly Root Mean Square Error Vector Magnitude related results which reflect the error on the received signal, and the Adjacent Channel Power Ratio related results which reflect the power consumption on the signal and the wasted power when there is no signal. So the three results panels for FBMC, OFDM and UFMC includes the below parameter outputs: - RMS EVM - Max EVM - Percentile EVM - NumSym: Number of symbols used for calculations - ACPR: Adjacent Channel Power Ratio - mainChnPwr: Main Channel Power - adjChnPwr: Adjacent Channel Power As for the figures, there are 6 of them. For FBMC-OFDM comparisons the figures are: - OFDM transceiver constellation - FBMC transceiver constellation - FBMC-OFDM filter impulse response - FBMC-OFDM filter frequency response - Power Spectral Density Analysis - CCDF Measurement Analysis 4.4.1 Waveform filters Figure 4.11 below illustrates the filter characteristics used for FBMC and OFDM transceiver systems.
  • 26. FBMC 26 Figure 4.11: FBMC Filter characteristics The Overlapping Factor of the filter used for FBMC waveform is selected as 4. The frequency responses show that the FBMC filter sideband suppression is better than that of the OFDM filter which can enhance suppression of the sideband power dissipation. 4.4.2 EVM Analysis For the remaining simulations the parameters given in the below Table 4.2 are used with minor variations which will be highlighted when necessary. Table 4.2: FBMC&OFDM simulation parameters Total number of used carriers: 256 Number of symbols in a frame: 20 Modulation: 16 QAM Channel: Perfect, no noise Filter Overlapping Factor: 4
  • 27. FBMC 27 Figure 4.12 shows the transmitted and received signal constellation diagrams according to the simulation parameters given in Table 4.2 above. The transmitted signals are perfectly received. Along with the constellation, Root Mean Square (RMS) Error Vector Magnitude (EVM) values computed on the received signals are shown. Figure 4.12: OFDM and FBMC signal constellation on perfect channel. As it can be seen from the figure above, EVM values computed for OFDM are much smaller than those for FBMC. That is because of the filter used for FBMC which contributes distortion. Nevertheless this fact does not affect the correct reconstruction of the transmitted signal. Note that the EVM values are in percentage therefore no error on this scale can be noticed on the
  • 28. FBMC 28 constellation because the errors are too small. As expected OFDM performs better than FBMC as the channel is perfect without multipath effect and without noise which means that when there is no threat against the orthogonality of the OFDM signal it is the better solution. 4.4.3 Power spectral density (PSD) analysis: As can be seen by the Adjacent Channel Power Ratio (ACPR) analysis results (numbers in green color for OFDM, blue color for FBMC) it is seen that FBMC performs about 7 dB better than OFDM. This result is thanks to the PPN network applied in FBMC transmission. For this simulation FBMC and OFDM transmitted signals are resampled to increase the sampling rate by 4 and the frequency axis is normalized to unity. Figure 4.13 FBMC&OFDM PSD analysis 4.4.4 CCDF Analysis Complementary Cumulative Distribution Function (CCDF) shows the distribution of power in dB above average power which is an indication about Peak to Average power Ratio (PAR). PAR is better to be small in communication systems as high PAR values causes saturation in the transmitter and receiver electronics.
  • 29. FBMC 29 Figure 4.14 : FBMC&OFDM CCDF Analysis Figure 4.14 illustrates the behavior of the OFDM and FBMC transceivers. Vertical axis shows the probability of the existence of the signal power above the corresponding average power in dB represented by the horizontal axis. According to the figure OFDM has slightly higher probability of carrying signals with higher PAR. 4.5 AWGN Channel Figure 4.15 : FBMC&OFDM simulation in AWGN channel
  • 30. FBMC 30 For 40 dB of Signal to Noise Ratio (SNR) is assumed in an AWGN channel, the results will be in the above figure. As it can be appreciated EVM values are increased but still the signals could be detected. As noticed the EVM of OFDM has become larger than that of FBMC as the orthogonality of the OFDM signals are threatened more because the filtering has contributed robustness to FBMC. Also the ACPR values of the FBMC became better as compared to OFDM under the noisy channel. What happens if we add protection to OFDM in AWGN channel by Zero Forcing equalization? Figure 4.16: FBMC&OFDM simulation under AWGN channel with ZF estimation for OFDM As it can be noticed from Figure 4.16 above, EVM values for OFDM is decreased while the ACPR is improved. OFDM constellation seems less noisy as well. But still in terms of ACPR analysis, FBMC performs better.
  • 31. UFMC 31 5 UFMC In the state of the art of UFMC, the recent research reports and articles compares Filtered Orthogonal Frequency Division Multicarrier (fOFDM) and Filterbank based multi-carrier (FBMC) modulations. They differ in the filtering choices applied. FBMC applies a filtering functionality on a per subcarrier basis while OFDM filters the complete multicarrier band in a single shot. Both variants have various implications for transmitting data via a wireless link. Neither of the two schemes outperforms the other in every aspect relevant for communication. While FBMC provides a better subcarrier separation, filtered OFDM is less complex. Theoretical part of UFMC section includes extracted material from [5GNOW31]. The two schemes are the extreme cases of a more general waveform design: FBMC applies a filtering on a per subcarrier basis. By doing so, many advantages can be harvested on. Just to name one, inter-carrier interference is highly reduced in case of frequency jitter / offsets either due to Doppler or due to misaligned oscillators. However, the cost to pay are comparatively long filter lengths according to one of the natural laws of signal processing – Küpfmüller’s uncertainty principle according to which the product of the length and the bandwidth of a given pulse is constant [KK00]. Filtered OFDM is on the other side of the space of options. Filtering is done over the complete band. So, the filter bandwidth is much higher and thus the filter length is much smaller than with FBMC. Having identified this, a more universal solution appears: Universal Filtered Multicarrier (UFMC) which applies filtering to subsets of the complete band instead of single subcarriers or the complete band. Basic UFMC transceiver architecture is depicted in Figure 5.1 [Schaich].
  • 32. UFMC 32 Figure 5.1:UFMC transceiver architecture 5.1 UFMC Transmitter Figure 5.2 [5GNOW31] depicts an exemplary baseband structure of the UFMC transmitter with B sub-bands. The i-th UFMC sub-module, with i ϵ {1,2, ..., B}, generates the (N+Nfilter-1) dimensional time-domain baseband vector xi following the UFMC design criteria for the respective sub-band carrying the complex QAM symbol vector si with dimension ni x1. N is the required number of samples per symbol to represent all sub-bands which depends on the overall covered bandwidth, the sample rates of the single sub-bands have to be aligned to each other, Nfilter the length of the filter.
  • 33. UFMC 33 Figure 5.2.General UFMC transmitter structure One multi-carrier symbol out of a consecutive stream of symbol vectors is considered, dropping the temporal symbol index for the ease of notation. The single sub-band signals are combined to synthesize the transmit vector x. In case of downlink (DL) the single sub-modules cover the complete available frequency band(s), transporting data to multiple users. In uplink (UL) the single sub-modules cover only the frequency portion the respective user has been allocated to. A single sub-module is constructed according to Figure 5.3. Figure 5.3.UFMC transmitter submodule The ni complex QAM symbols are transformed to time-domain using an IDFT spreader. Then the sub-band filter is applied. The time-domain transmit vector for a particular multi-carrier symbol is the superposition of the sub-band-wise filtered components: 𝒙 = ∑ 𝑭𝒊 𝑽𝒊 𝒔𝒊 𝑩 𝒊=𝟏 (5.1) Vi being of dimension Nxni, includes the relevant columns of the inverse Fourier matrix according to the respective sub-band position within the overall available frequency range, Fi is a
  • 34. UFMC 34 Toeplitz matrix with dimension (N+Nfilter-1)xN, composed of the filter impulse response, enabling the convolution. The signal can be rewritten without the summation by the following definitions: 𝐹 = [ 𝐹1 𝐹2 ⋯ 𝐹𝐵] (5.2) 𝑉 = 𝑑𝑖𝑎𝑔 (𝑉1 , 𝑉2, … , 𝑉𝐵) (5.3) 𝒔 = [𝒔 𝟏 𝑻 , 𝒔 𝟐 𝑻 , ⋯ , 𝒔 𝑩 𝑻] 𝑻 (5.4) This enables column wise stacking of filter matrices, generating a block-diagonal IDFT matrix and stacking of all data symbols into one column, respectively. This results into: 𝐱 = 𝐅 𝐕 𝐬 (5.5) The following table summarizes the available design elements: Table 5.1: Design elements for UFMC B Number of sub-bands ni : blockSize Number of subcarriers in sub-band i N Overall number of subcarriers Filter i length/bandwidth, filter characteristic defined by FIR filter coefficients The choice of B depends on the spectral settings the UFMC transmitter has to deal with and on the system design targets. If the system is to be applied to a scenario with fragmented spectrum, B may be chosen according to the number of available spectral sub-bands. Alternatively, for streamlining the overall system and controlling the spectral characteristics more fine-grained, the single sub-bands may even be subdivided into smaller chunks with equal size in every sub-band. The single spectral chunks are then called as physical resource blocks (PRB), as in the terminology of LTE. For the choice of the filter characteristics FIR-coefficients defined by Dolph-Chebyshev windows which are parametrizable in their shape in terms of side lobe attenuation are applied. 5.2 UFMC Receiver UFMC receiver processing is done as depicted in Figure 5.4 [5GNOW31] below,
  • 35. UFMC 35 Figure 5.4: General UFMC receiver structure. where y is the received signal vector after propagation through the channel, represented by the convolution matrix H with Toeplitz structure, constructed by the time-domain channel impulse response, including the addition of noise n: 𝑦 = 𝐻𝑥 + 𝑛 = 𝐻 𝐹 𝑉 𝑠 + 𝑛 (5.6) Each UFMC Rx sub-module outputs the transmitted symbol vectors including distortions of the respective sub-band. In Up Link (UL) the sub-modules are covering the complete frequency range used for data transmission, in Down Link (DL) the receiver is part of the user equipment, and so, the single sub-modules are only active, if the respective sub-band/PRB carries data and/or control messages relevant for the respective user. Various design strategies for the receiver are possible. In the exemplary case of a linear receiver in an AWGN channel, Minimum Mean Square Error (MMSE) and Zero Forcing filter (ZF) can be written as 𝑊𝑍𝐹 = (𝐹𝑉)+ = 𝑇+ 𝑊 𝑀𝑀𝑆𝐸 = (𝑇 𝐻 𝑇 + 𝜎2 𝐼)−1 𝑇 𝐻 (5.7) with T+ being the Moore-Penrose-Inverse of a matrix, 𝑇 𝐻 is the hermitian transpose, 𝜎2 is the noise variance and I is the identity matrix. The receiver operation in Eq. 𝑊𝑍𝐹 = (𝐹𝑉)+ = 𝑇+ 𝑊 𝑀𝑀𝑆𝐸 = (𝑇 𝐻 𝑇 + 𝜎2 𝐼)−1 𝑇 𝐻 (5.75.7 can be viewed as a concatenation of inverse filtering and DFT despreading.
  • 36. UFMC 36 5.3 Matlab Simulations Figure 5.5 below shows the Graphical User Interface (GUI) used to compare OFDM and UFMC simulation results and make comparisons between the two waveforms. [Vakilian] and [5GNOW31] are used as references for the theory behind the Matlab codes of UFMC simulation. Figure 5.5:UFMC&OFDM simulation Graphical User Interface The GUI includes 6 figures and 5 input and output information panels. As mentioned before, the same GUI is used for making two comparisons; UFMC-OFDM, FBMC-OFDM. So the reference waveform to make comparisons is OFDM. Here UFMC-OFDM specific related to the GUI will be given which are the names of the 6 figures: - OFDM transceiver constellation - UFMC transceiver constellation - UFMC-OFDM filter impulse response - UFMC-OFDM filter frequency response - Power Spectral Density Analysis - CCDF Measurement Analysis 5.3.1 Waveform filters Below Figure 5.6 illustrates the filter characteristics used for UFMC and OFDM transceiver systems.
  • 37. UFMC 37 Figure 5.6: Dolph Chebychev FIR filter charactersitics - Length of the Dolph-Chebychev FIR filter used for UFMC waveform is selected as 7 - The side band Attenuation selected for the UFMC filter is 40 dB As can be appreciated from the figure, the UFMC filter sideband attenuation is better than the one for OFDM. The impulse responses show that the UFMC filter passband is narrower than the OFDM filter which can enhance the better use of the spectrum especially fragmented spectrum applications. 5.3.2 EVM Analysis For the remaining simulations the parameters given in the below Table 5.2 are used with minor variations which will be highlighted when necessary.
  • 38. UFMC 38 Table 5.2: UFMC&OFDM simulation parameters Total number of used carriers: 256 UFMC Block size: 16 Number of symbols in a frame: 20 UFMC number of resource blocks: 16 Modulation: 16 QAM Dolph-Chebychev Filter length: 7 UFMC estimation: MMSE estimation Dolph-Chebychev Filter sideband attenuation: 40 dB Total number of used carriers: 256 Channel: Perfect, no noise Figure 5.7 shows the transmitted and received signal constellation diagrams according to the simulation parameters given in Table 5.2 above. Figure 5.7:OFDM and UFMC transceiver signal constellation on perfect channel. The transmitted signals are perfectly received. Along with the constellation, Root Mean Square (RMS) Error Vector Magnitude (EVM) values computed on the received signals are shown. As it can be appreciated on the figure above, EVM values computed for OFDM are effectively zero
  • 39. UFMC 39 while those of UFMC reflect little bit of distortion because of the filter used for UFMC which contributes to this negligible distortion. Nevertheless this fact does not affect the correct reconstruction of the transmitted signal. As expected OFDM performs better than UFMC as the channel is perfect without multipath effect and without noise which means that when there is no threat against the orthogonality of the waveform OFDM is the better solution. Figure 5.8: OFDM and UFMC signal constellation on 40 dB AWGN channel. Figure 5.8 shows what happens if we use AWGN channel with 40 dB of SNR. It seems that OFDM has much more distortion than UFMC which is also reflected on the EVM results above.
  • 40. UFMC 40 This time EVM for UFMC is smaller than that of OFDM. The reason for that result is the MMSE channel estimation, which reduced the effect of noise in UFMC while no additional computation is performed for OFDM. Figure 5.9: OFDM and UFMC constellation on noisy channel with MMSE channel estimation. Figure 5.9 shows what happens when we add MMSE channel estimation to OFDM part as well on the same channel. The EVM values are more or less the same after the channel estimation when simulation is executed on the noisy channel.
  • 41. UFMC 41 5.3.3 Power spectral density (PSD) analysis: Figure 5.10 shows the PSD analysis results for the 40 dB SNR situation when both OFDM and UFMC utilize the MMSE estimation. As seen on the figure UFMC has around 20 dB better performance on the stop band thanks to the Dolph-Chabychev filter. This result is confirmed by the Adjacent Channel Power Ratio (ACPR) analysis results (numbers in green color for OFDM, brown color for UFMC) show that UFMC performs about 18 dB better than OFDM. Please note that the bandwidth subject to the PSD analysis is normalized to unity. Figure 5.10: UFMC&OFDM PSD analysis 5.3.4 CCDF Analysis Complementary Cumulative Distribution Function (CCDF) shows the distribution of power in dB above average power which is an indication about Peak to Average power Ratio (PAR). PAR is better to be small in communication systems as high PAR values causes saturation in the transmitter and receiver electronics.
  • 42. UFMC 42 Figure 5.11: UFMC&OFDM CCDF Analysis Figure 5.11 illustrates the behavior of the OFDM and UFMC transceivers. Vertical axis shows the probability of the existence of the signal power above the corresponding average power in dB represented by the horizontal axis. According to the figure OFDM has slightly higher probability of carrying signals with higher PAR.
  • 43. UFMC 43 5.4 AWGN Channel Figure 5.12: UFMC vs OFDM under AWGN of 40 dB channel with MMSE estimation Figure 5.12 shows the simulation results comparing UFMC and OFDM under AWGN of 40 dB channel. Both OFDM and UFMC have channel equalization of MMSE. Note that EVM values are increased due to noise and they are almost the same for both waveforms. Other results do not show significant difference from the previous results. 5.5 UFMC Filter Now let’s increase the filter length to see its impact on the simulation results. Figure 5.13 below shows the simulation results under the same conditions as the previous simulation except the filter length which is increased from 7 to 21.
  • 44. UFMC 44 Figure 5.13: UFMC with longer filter length First thing to notice is the ACPR of UFMC which is improved about 10 dB. That means with a longer filter length UFMC becomes more capable of suppressing the adjacent channel which is suitable for narrower block sizes. The effect can be seen on the frequency response of the filter selected for UFMC. The pass band of the filter became narrower. The flexibility of the Dolph- Chebychev filter is worth to mention here because both the filter length and the side band attenuation in dB are parameters to derive the filter to be used for a selected application. Here it can be concluded that the UFMC is a good solution for fragmented spectrum where the fragment bandwidth is variable.
  • 45. Conclusion 45 6 Conclusion Mobile communication requirements are increasing with the upcoming 5G applications such as Tactile Internet, Internet of Things and Fragmented Spectrum which will mean to necessitate the redesign of the physical layer. FBMC provides filtering of each subcarrier, which requires very long filter length, to suppress the out of band radiation and prevent Inter Carrier Interference. Although FBMC has several advantages as compared to the current OFDM of LTE, it is still not the optimal solution. With UFMC the objective is to merge the advantages of FBMC and filtered OFDM and get rid of some disadvantages of them. It is based on the idea of filtering a block of sub carriers which is provided with not so long filter length as in the case of FBMC. Like FBMC, UFMC is robust to multi-user interference, exhibits higher spectral efficiency and better suited to fragmented spectrum than OFDM.
  • 46. References 46 7 References [Fet12] G. Fettweis, “A 5G Wireless Communications Vision”, Microwave Journal, December 14, 2012 [5GNOW31] 5G Waveform Candidate Selection, D3.1, Version 1.0, 3/3/2015 [KK00] Küpfmüller, Karl; Kohn, Gerhard (2000), Theoretische Elektrotechnik und Elektronik, Berlin, Heidelberg: Springer-Verlag, ISBN 978-3-540-56500-0 [Schaich] Schaich, F.; Wild, T.; Chen, Y.; “Waveform contenders for 5G suitability for short packet and low latency transmissions,” submitted to IEEE Veh. Technol. Conf. Spring (VTC’14 Spring), Apr. 2014. [Vakilian] V. Vakilian, T. Wild, F. Schaich, S.t. Brink, J.-F. Frigon, "Universal-Filtered Multi- Carrier Technique for Wireless Systems Beyond LTE", 9th International Workshop on Broadband Wireless Access (BWA) @ IEEE Globecom'13, Atlanta, GA, USA, December 2013. [Primer] M.G. Bellanger et al, “FBMC physical layer: a primer”, 06/2010. [He15] Qinwei He, Comparison and evaluation between FBMC and OFDM systems, March 3-5 2015 [Proakis] J. Proakis, M. Salehi Contemporary Communication Systems Using MATLAB, 2012
  • 47. Appendix – MATLAB Codes 47 Appendix – MATLAB Codes GUI.m function varargout = GUI(varargin) %GUI M-file for GUI.fig % GUI, by itself, creates a new GUI or raises the existing % singleton*. % % H = GUI returns the handle to a new GUI or the handle to % the existing singleton*. % % GUI('Property','Value',...) creates a new GUI using the % given property value pairs. Unrecognized properties are passed via % varargin to GUI_OpeningFcn. This calling syntax produces a % warning when there is an existing singleton*. % % GUI('CALLBACK') and GUI('CALLBACK',hObject,...) call the % local function named CALLBACK in GUI.M with the given input % arguments. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help GUI % Last Modified by GUIDE v2.5 14-May-2016 19:08:24 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @GUI_OpeningFcn, ... 'gui_OutputFcn', @GUI_OutputFcn, ... 'gui_LayoutFcn', [], ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT % --- Executes just before GUI is made visible. function GUI_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin unrecognized PropertyName/PropertyValue pairs from the % command line (see VARARGIN) % Choose default command line output for GUI handles.output = hObject;
  • 48. Appendix – MATLAB Codes 48 % Update handles structure guidata(hObject, handles); % UIWAIT makes GUI wait for user response (see UIRESUME) % uiwait(handles.figure1); function Settings = refreshSettings(handles) Settings.M = str2num(get(handles.editM, 'String')); Settings.N = str2num(get(handles.editN, 'String')); Settings.Modulation = str2num(get(handles.editModulation, 'String')); Settings.SNRdB = str2num(get(handles.editSNRdB, 'String')); Settings.AWGN = get(handles.checkboxAWGN,'Value'); content1 = cellstr(get(handles.popupmenuUFMC,'String')); Settings.est = content1{get(handles.popupmenuUFMC,'Value')}; content2 = cellstr(get(handles.popupmenuFilteredOFDM,'String')); Settings.fOFDM = content2{get(handles.popupmenuFilteredOFDM,'Value')}; function UfmcSettings = refreshUfmcSettings(handles) UfmcSettings.blockSize = str2num(get(handles.editBlockSize, 'String')); UfmcSettings.nPRB = str2num(get(handles.editNPRB, 'String')); UfmcSettings.lFIR = str2num(get(handles.editLFIR, 'String')); UfmcSettings.FilterPar_dB = str2num(get(handles.editFilterParDB, 'String')); % UfmcSettings.estimation = get(handles.popupmenuUFMC, 'String'); function FbmcSettings = refreshFbmcSettings(handles) FbmcSettings.K = str2num(get(handles.editK, 'String')); % --- Outputs from this function are returned to the command line. function varargout = GUI_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output; % --- Executes on button press in pbFBMC. function pbFBMC_Callback(hObject, eventdata, handles) % hObject handle to pbFBMC (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) Settings = refreshSettings(handles); FbmcSettings = refreshFbmcSettings(handles); outFBMC = FbmcFcn(Settings, FbmcSettings, handles); set(handles.textRMSEVMfbmc,'String', num2str(outFBMC.RMSEVMfbmc)); set(handles.textMaxEVMfbmc,'String', num2str(outFBMC.MaxEVMfbmc)); set(handles.textPercentileEVMfbmc,'String', num2str(outFBMC.PercentileEVMfbmc)); set(handles.textNumSymFBMC,'String', num2str(outFBMC.NumSymFBMC)); set(handles.textACPRfbmc,'String', num2str(outFBMC.ACPRfbmc)); set(handles.textmainChnlPwrFBMC,'String', num2str(outFBMC.mainChnlPwrFBMC)); set(handles.textadjChnlPwrFBMC,'String', num2str(outFBMC.adjChnlPwrFBMC)); set(handles.textRMSEVMofdm,'String', num2str(outFBMC.RMSEVMofdm)); set(handles.textMaxEVMofdm,'String', num2str(outFBMC.MaxEVMofdm)); set(handles.textPercentileEVMofdm,'String', num2str(outFBMC.PercentileEVMofdm)); set(handles.textNumSymOFDM,'String', num2str(outFBMC.NumSymOFDM)); set(handles.textACPRofdm,'String', num2str(outFBMC.ACPRofdm));
  • 49. Appendix – MATLAB Codes 49 set(handles.textmainChnlPwrOFDM,'String', num2str(outFBMC.mainChnlPwrOFDM)); set(handles.textadjChnlPwrOFDM,'String', num2str(outFBMC.adjChnlPwrOFDM)); % --- Executes on button press in pbUFMC. function pbUFMC_Callback(hObject, eventdata, handles) % hObject handle to pbUFMC (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) Settings = refreshSettings(handles); UfmcSettings = refreshUfmcSettings(handles); outUFMC = UfmcFcn(Settings, UfmcSettings, handles); set(handles.textRMSEVMufmc,'String', num2str(outUFMC.RMSEVMufmc)); set(handles.textMaxEVMufmc,'String', num2str(outUFMC.MaxEVMufmc)); set(handles.textPercentileEVMufmc,'String', num2str(outUFMC.PercentileEVMufmc)); set(handles.textNumSymUFMC,'String', num2str(outUFMC.NumSymUFMC)); set(handles.textACPRufmc,'String', num2str(outUFMC.ACPRufmc)); set(handles.textmainChnlPwrUFMC,'String', num2str(outUFMC.mainChnlPwrUFMC)); set(handles.textadjChnlPwrUFMC,'String', num2str(outUFMC.adjChnlPwrUFMC)); set(handles.textRMSEVMofdm,'String', num2str(outUFMC.RMSEVMofdm)); set(handles.textMaxEVMofdm,'String', num2str(outUFMC.MaxEVMofdm)); set(handles.textPercentileEVMofdm,'String', num2str(outUFMC.PercentileEVMofdm)); set(handles.textNumSymOFDM,'String', num2str(outUFMC.NumSymOFDM)); set(handles.textACPRofdm,'String', num2str(outUFMC.ACPRofdm)); set(handles.textmainChnlPwrOFDM,'String', num2str(outUFMC.mainChnlPwrOFDM)); set(handles.textadjChnlPwrOFDM,'String', num2str(outUFMC.adjChnlPwrOFDM)); % --- Executes on button press in pbClearAll. function pbClearAll_Callback(hObject, eventdata, handles) % hObject handle to pbClearAll (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) clear all; clc; % --- Executes on button press in pbCloseAll. function pbCloseAll_Callback(hObject, eventdata, handles) % hObject handle to pbCloseAll (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) close all; function editM_Callback(hObject, eventdata, handles) % hObject handle to editM (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of editM as text % str2double(get(hObject,'String')) returns contents of editM as a double % --- Executes during object creation, after setting all properties. function editM_CreateFcn(hObject, eventdata, handles) % hObject handle to editM (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows.
  • 50. Appendix – MATLAB Codes 50 % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function editN_Callback(hObject, eventdata, handles) % hObject handle to editN (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of editN as text % str2double(get(hObject,'String')) returns contents of editN as a double % --- Executes during object creation, after setting all properties. function editN_CreateFcn(hObject, eventdata, handles) % hObject handle to editN (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function editModulation_Callback(hObject, eventdata, handles) % hObject handle to editModulation (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of editModulation as text % str2double(get(hObject,'String')) returns contents of editModulation as a double % --- Executes during object creation, after setting all properties. function editModulation_CreateFcn(hObject, eventdata, handles) % hObject handle to editModulation (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function editSNRdB_Callback(hObject, eventdata, handles) % hObject handle to editSNRdB (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of editSNRdB as text
  • 51. Appendix – MATLAB Codes 51 % str2double(get(hObject,'String')) returns contents of editSNRdB as a double % --- Executes during object creation, after setting all properties. function editSNRdB_CreateFcn(hObject, eventdata, handles) % hObject handle to editSNRdB (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes on button press in pbOFDM. function pbOFDM_Callback(hObject, eventdata, handles) % hObject handle to pbOFDM (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) function editK_Callback(hObject, eventdata, handles) % hObject handle to editK (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of editK as text % str2double(get(hObject,'String')) returns contents of editK as a double % --- Executes during object creation, after setting all properties. function editK_CreateFcn(hObject, eventdata, handles) % hObject handle to editK (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function editBlockSize_Callback(hObject, eventdata, handles) % hObject handle to editBlockSize (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of editBlockSize as text % str2double(get(hObject,'String')) returns contents of editBlockSize as a double % --- Executes during object creation, after setting all properties. function editBlockSize_CreateFcn(hObject, eventdata, handles) % hObject handle to editBlockSize (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows.
  • 52. Appendix – MATLAB Codes 52 % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function editNPRB_Callback(hObject, eventdata, handles) % hObject handle to editNPRB (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of editNPRB as text % str2double(get(hObject,'String')) returns contents of editNPRB as a double % --- Executes during object creation, after setting all properties. function editNPRB_CreateFcn(hObject, eventdata, handles) % hObject handle to editNPRB (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function editLFIR_Callback(hObject, eventdata, handles) % hObject handle to editLFIR (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of editLFIR as text % str2double(get(hObject,'String')) returns contents of editLFIR as a double % --- Executes during object creation, after setting all properties. function editLFIR_CreateFcn(hObject, eventdata, handles) % hObject handle to editLFIR (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function editFilterParDB_Callback(hObject, eventdata, handles) % hObject handle to editFilterParDB (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of editFilterParDB as text
  • 53. Appendix – MATLAB Codes 53 % str2double(get(hObject,'String')) returns contents of editFilterParDB as a double % --- Executes during object creation, after setting all properties. function editFilterParDB_CreateFcn(hObject, eventdata, handles) % hObject handle to editFilterParDB (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes on selection change in popupmenuUFMC. function popupmenuUFMC_Callback(hObject, eventdata, handles) % hObject handle to popupmenuUFMC (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = cellstr(get(hObject,'String')) returns popupmenuUFMC contents as cell array % contents{get(hObject,'Value')} returns selected item from popupmenuUFMC contents = cellstr(get(hObject,'String')); UfmcSettings.estimation = contents{get(hObject,'Value')}; % --- Executes during object creation, after setting all properties. function popupmenuUFMC_CreateFcn(hObject, eventdata, handles) % hObject handle to popupmenuUFMC (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called contents = cellstr(get(hObject,'String')); UfmcSettings.estimation = contents{get(hObject,'Value')}; % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes on button press in checkboxAWGN. function checkboxAWGN_Callback(hObject, eventdata, handles) % hObject handle to checkboxAWGN (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of checkboxAWGN % --- Executes on selection change in popupmenuFilteredOFDM. function popupmenuFilteredOFDM_Callback(hObject, eventdata, handles) % hObject handle to popupmenuFilteredOFDM (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = cellstr(get(hObject,'String')) returns popupmenuFilteredOFDM contents as cell array % contents{get(hObject,'Value')} returns selected item from popupmenuFilteredOFDM
  • 54. Appendix – MATLAB Codes 54 % --- Executes during object creation, after setting all properties. function popupmenuFilteredOFDM_CreateFcn(hObject, eventdata, handles) % hObject handle to popupmenuFilteredOFDM (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end FbmcFcn.m % FBMC PPN, OFDM and UFMC implementation % Muhammet COLAK % M-ENG @ EIT FH-ROSENHEIM % 2016 function output = FbmcFcn (setGeneral, setFBMC, handles) M = setGeneral.M; % Number of used subcarriers N = setGeneral.N; % Number of multicarrier symbols in a frame. Modulation = setGeneral.Modulation; % QAM Constellation AWGN = setGeneral.AWGN; SNR_dB = setGeneral.SNRdB; % Signal / Noise ratio q = log2(Modulation); % Number of bits for a symbol in the constellation fOFDM = setGeneral.fOFDM; % OFDM with AWGN channel estimation est = setGeneral.est; % flag to decide if estimation for AWGN channel is used echo off; % QAM and OQAM Modulator sQAM = []; for nf=0:N-1 X = rand(M*q,1)>0.5; xx = reshape(X,q,length(X)/q).'; xsym = bi2de(xx,'left-msb'); QAM = qammod(xsym,Modulation); % QAM modulation %Empty side data for PSD anlysis QAM(1:M/4+1,:)=complex(0); QAM(3*(M/4):M,:)=complex(0); sQAM = [sQAM QAM]; end %% %%%%%%%%%%%% FBMC %%%%%%%%%%%%%%%%%%%%%% % pre processing OQAM construction sOQAM = []; for nf=0:N-1 for k=0:2:M-1 OQAM(k+1,:)=[real(sQAM(k+1,nf+1)) imag(sQAM(k+1,nf+1))*j];% for k even OQAM(k+2,:)=[imag(sQAM(k+2,nf+1))*j real(sQAM(k+2,nf+1))];% for k odd end sOQAM = [sOQAM OQAM]; end %FBMC PROTOTYPE FILTER % Prototype Filter (Qinwei He, Anke Schmeink % "Comparison and evaluation between FBMC and OFDM systems", % WSA 2015 • March 3-5, 2015, Ilmenau, Germany) K=setFBMC.K; % the prototype filter for an overlapping factor K H31 = 0.911438; H32 = 0.411438; H21 = sqrt(2)/2;
  • 55. Appendix – MATLAB Codes 55 H1=0.971960; H2=sqrt(2)/2; H3=0.235147; s=2*pi/(K*M); p2(1)=0; p3(1)=0; p4(1)=0; del=0; for m=1:K*M-1 mdel=m+del; p4(m+1)=1-2*H1*cos(mdel*s)+2*H2*cos(2*mdel*s)-2*H3*cos(3*mdel*s);% prototype filter equation K=4 p3(m+1)=1-2*H31*cos(mdel*s)+2*H32*cos(2*mdel*s); % prototype filter equation K=3 p2(m+1)=1-2*H21*cos(mdel*s); % prototype filter equation K=2 end switch K case 4 h=p4; case 3 h=p3; case 2 h=p2; end hTx=reshape(h,M,K); %PPN1 s1IFFT=zeros(M,N); s1IFFT = ifft(sOQAM(:,1:2:2*N-1),M,1); outPPN1=zeros(M,N+K-1); for k=1:M outPPN1(k,:)=conv(hTx(k,:),s1IFFT(k,:)); end % PPN2 s2IFFT=zeros(M,N); s2IFFT = ifft(sOQAM(:,2:2:2*N),M,1); outPPN2=zeros(M,N+K-1); for k=1:M outPPN2(k,:)= conv(hTx(k,:),s2IFFT(k,:)); end % PPN1 + PPN2 Overlap and sum (FBMC Primer page 17, fig 15) for i = 1:2*(N+K-1) if i ==1 sFBMC(1:M/2,1) = outPPN1(1:M/2,1); sFBMC(1+M/2:M,1) = outPPN1(M/2+1:M,1)+outPPN2(1:M/2,1); elseif i == 2*(N+K-1) sFBMC(1:M/2,i) = outPPN1(M/2+1:M,i/2)+outPPN2(1:M/2,i/2); sFBMC(1+M/2:M,i) = outPPN2(M/2+1:M,i/2); elseif rem(i,2) == 0 sFBMC(1:M/2,i) = outPPN1(M/2+1:M,i/2)+outPPN2(1:M/2,i/2); sFBMC(1+M/2:M,i) = outPPN2(M/2+1:M,i/2)+outPPN1(1:M/2,i/2+1); elseif rem(i,2) == 1 sFBMC(1:M/2,i) = outPPN1(1:M/2,(i+1)/2)+outPPN2(1+M/2:M,(i-1)/2); sFBMC(1+M/2:M,i) = outPPN2(1:M/2,(i+1)/2) + outPPN1(1+M/2:M,(i+1)/2); end end sqrt_nvar = 1/sqrt(10^(0.1*SNR_dB)); nvar = 1/(10^(0.1*SNR_dB)); %perfect knowledge of noise power assumed % FBMC RECEIVER
  • 56. Appendix – MATLAB Codes 56 if AWGN == 1 n = sqrt_nvar*(1/sqrt(2))*(randn(size(sFBMC))+j*randn(size(sFBMC))); yFBMC = sFBMC + n; % add noise else yFBMC = sFBMC; end % receiver filter is the smetry of of the one for transmitter hRx(:,1:K) = hTx(:,K:-1:1); for i = 1:M r1(i,:) = conv(hRx(i,:), yFBMC(i,1:2:2*(N+K-1)-1)); end r(:,1:2:2*N-1) = r1(:,K:N+K-1); for i = 1:M r2(i,:) = conv(hRx(i,:), yFBMC(i,2:2:2*(N+K-1))); end r(:,2:2:2*N) = r2(:,K:N+K-1); %FFT rfft = zeros(M,2*N); rfft = fft(r(:,1:2*N),M,1)/(K^2); % Recover QAM from received OQAM and calculate error for n=1:2:2*N-1 rOQAM(1:2:M-1,n) = real(rfft(1:2:M-1,n)); rOQAM(2:2:M,n) = imag(rfft(2:2:M,n)).*j; rOQAM(1:2:M-1,n+1) = imag(rfft(1:2:M-1,n+1)).*j; rOQAM(2:2:M,n+1) = real(rfft(2:2:M,n+1)); % post processing QAM reconstruction rFBMC(:,(n+1)/2) = rOQAM(:,n) +rOQAM(:,n+1); end %% OFDM %%%%%%%%%%%%%%%% % Prototype Filter For OFDM p1 = [zeros(1,M) ones(1,M) zeros(1,M)]; % OFDM TRANSMITTER switch fOFDM case 'Normal OFDM' sOFDM=zeros(M,N); sOFDM = ifft(sQAM,M,1); case 'OFDM with chanEst' Vofdm = zeros(M,M); allocatedSubcarriers = [0:M-1]; % allocated subcarriers for c = 1:M %loop through all allocated subcarriers SubcarrierIndex = allocatedSubcarriers(c); Vofdm([1:M],c) = exp(2*pi*1i*([1:M]-1)*SubcarrierIndex/M); %generation of the IDFT vector end Tofdm=(1/norm(Vofdm))*Vofdm; TimeDomainSig=Tofdm*ones(M,1); Tofdm=Tofdm/sqrt(mean(abs(TimeDomainSig).^2)/M*M); sOFDM = Tofdm*sQAM; %signal of user of interest end if AWGN == 1 n = sqrt_nvar*(1/sqrt(2))*(randn(size(sOFDM))+j*randn(size(sOFDM))); yOFDM = sOFDM + n; %superimpose layers and add noise else yOFDM = sOFDM; end
  • 57. Appendix – MATLAB Codes 57 % OFDM RECEIVER switch fOFDM case 'Normal OFDM' rOFDM = zeros(M,N); rOFDM = fft(yOFDM,M,1); case 'OFDM with chanEst' wOFDM_ZF = pinv((1/norm(Vofdm))*Vofdm); wOFDM_MMSE = inv(Tofdm'*Tofdm + nvar*diag(ones(size(Tofdm,2),1)))*Tofdm'; % obtain symbol estimates for n=1:N % ZF s_est_OFDM_ZF(:,n) = wOFDM_ZF*yOFDM(:,n); % MMSE s_est_OFDM_MMSE(:,n) = wOFDM_MMSE*yOFDM(:,n); end switch est case 'ZF estimation' rOFDM = s_est_OFDM_ZF; case 'MMSE estimation' rOFDM = s_est_OFDM_MMSE; end end %% PLOTS axes(handles.axes1); plot(sQAM,'or'); hold on plot(rOFDM,'xk'); title('OFDM, o transmitted, x received'); hold off axes(handles.axes2); plot(sQAM,'or'); hold on plot(rFBMC,'xk'); title('FBMC OQAM, o transmitted, x received'); hold off axes(handles.axes3); plot( h,'b-' ); hold on ylabel('Amplitude'); xlabel('time (sec)'); title('FBMC-OFDM filter impulse response'); plot( [zeros(1,floor((length(h)-length(p1))/2)) p1 zeros(1,floor((length(h)- length(p1))/2),1)],'g-' ); legend('PPN-FBMC','OFDM') hold off axes(handles.axes4); [Hfbmc,w] = freqz( h ); Hfbmc=Hfbmc./max ( Hfbmc ); Lfbmc = length (w); wFBMC = w;%(Lfbmc/4:1:3*Lfbmc/4); Hfbmc = Hfbmc;%(Lfbmc/4:1:3*Lfbmc/4); [Hofdm,w1] = freqz( p1 ); Hofdm=Hofdm./max ( Hofdm ); Lofdm = length (w1); wOFDM = w;%(Lofdm/4:1:3*Lofdm/4); Hofdm = Hofdm;%(Lofdm/4:1:3*Lofdm/4);
  • 58. Appendix – MATLAB Codes 58 plot(wFBMC/pi,20*log10(abs( Hfbmc )),'b-'); hold on plot(wOFDM/pi,20*log10(abs( Hofdm )),'g-'); legend('PPN-FBMC','OFDM') plot(-wFBMC/pi,20*log10(abs( Hfbmc )),'b-'); plot(-wOFDM/pi,20*log10(abs( Hofdm )),'g-'); grid on ylabel('Amplitude in dB'); xlabel('Frequency'); title('FBMC-OFDM filter frequency response'); hold off %% PSD ANALYSIS sr=4; myTx1 = sFBMC(:) .* exp(-j*pi*[0:length(sFBMC(:))-1]).'; myTx=resample(myTx1,sr,1) axes(handles.axes5); [PxxFBMC, wFBMC] = pwelch(myTx); % (:,1:N) PxxFBMC = abs(fftshift(PxxFBMC)); PxxFBMC = PxxFBMC./max(PxxFBMC); pxx=10*log10(PxxFBMC); plot(wFBMC/(2*pi),pxx, 'b-'); hold on myTxOFDM1 = sOFDM(:).* exp(-j*pi*[0:length(sOFDM(:))-1]).'; myTxOFDM=resample(myTxOFDM1,sr,1), [PxxOFDM,wOFDM] = pwelch(myTxOFDM); PxxOFDM = abs(fftshift(PxxOFDM)); PxxOFDM = PxxOFDM./max(PxxOFDM); pxxOFDM=10*log10(PxxOFDM); plot(wOFDM/(2*pi),pxxOFDM, 'g-') legend('PPN-FBMC','OFDM') ylabel('PSD in dB'); xlabel('Frequency'); title('Power Spectral Density Analysis'); hold off; %% COMM.EVM CALCULATION [RMSEVMofdm,MaxEVMofdm,PercentileEVMofdm,NumSymOFDM] = EVMex(sQAM ( : ) ,rOFDM ( : )) [RMSEVMfbmc,MaxEVMfbmc,PercentileEVMfbmc,NumSymFBMC] = EVMex(sQAM ( : ) ,rFBMC ( : )) output.RMSEVMofdm = RMSEVMofdm; output.MaxEVMofdm = MaxEVMofdm; output.PercentileEVMofdm = PercentileEVMofdm; output.NumSymOFDM = NumSymOFDM; output.RMSEVMfbmc = RMSEVMfbmc; output.MaxEVMfbmc = MaxEVMfbmc; output.PercentileEVMfbmc = PercentileEVMfbmc; output.NumSymFBMC = NumSymFBMC; %% COMM.CCDF ssOFDM = overSample (sOFDM, 2*(N+K-1)); axes(handles.axes6); [CCDFy,CCDFx,AvgPwr,PeakPwr] = CCDFex (sFBMC(:), ssOFDM(:)); legend('PPN-FBMC','OFDM') %% COMM.ACPR [ACPRfbmc,mainChnlPwrFBMC,adjChnlPwrFBMC] = ACPRfb (myTx,M,sr) [ACPRofdm,mainChnlPwrOFDM,adjChnlPwrOFDM] = ACPRfb (myTxOFDM,M,sr) output.ACPRfbmc = ACPRfbmc; output.mainChnlPwrFBMC = mainChnlPwrFBMC;
  • 59. Appendix – MATLAB Codes 59 output.adjChnlPwrFBMC = adjChnlPwrFBMC; output.ACPRofdm = ACPRofdm; output.mainChnlPwrOFDM = mainChnlPwrOFDM; output.adjChnlPwrOFDM = adjChnlPwrOFDM; end UfmcFcn.m function output = UfmcFcn (setGeneral, setUFMC,handles) M = setGeneral.M; % Number of used subcarriers N = setGeneral.N; % Number of multicarrier symbols in a frame. Modulation = setGeneral.Modulation; % QAM Constellation AWGN = setGeneral.AWGN; SNR_dB = setGeneral.SNRdB; % Signal / Noise ratio q = log2(Modulation); % Number of bits for a symbol in the constellation fOFDM = setGeneral.fOFDM; est = setGeneral.est; echo off; % QAM and OQAM Modulator sQAM = []; for nf=0:N-1 X = rand(M*q,1)>0.5; xx = reshape(X,q,length(X)/q).'; xsym = bi2de(xx,'left-msb'); QAM = qammod(xsym,Modulation); % QAM modulation %Empty side data for PSD anlysis QAM(1:M/4+1,:)=complex(0); QAM(3*(M/4):M,:)=complex(0); sQAM = [sQAM QAM]; end %% %%%%%%%%%% UFMC %%%%%%%%%%%%%%%% blockSize = setUFMC.blockSize; % width of subband in number of subcarriers (needs to match to Filterbandwidth) nPRB = setUFMC.nPRB;% Allocation width in number of subbands (sub-band width defined in PAR.blockSize below) lFIR = setUFMC.lFIR; % filter length: 1 means OFDM, >1 uses a Dolph-Chebychev FIR filter FilterPar_dB = setUFMC.FilterPar_dB; % sideband attenuation (design parameter of Dolph-Chebychev filters) lMCsym = M + lFIR -1; % number of samples per multicarrier symbol nUsedCarr = nPRB*blockSize; % Allocation widths allocatedSubcarriers = [0:nUsedCarr-1]; % allocated subcarriers % Generation of IDFT spreading matrices - Dimension of the matrices: [M x nUsedCarr] V = zeros(M,nUsedCarr); for c = 1:nUsedCarr %loop through all allocated subcarriers SubcarrierIndex = allocatedSubcarriers(c); V([1:M],c) = exp(2*pi*1i*([1:M]-1)*SubcarrierIndex/M); %generation of the IDFT vector end %Dolph-Chebyshev filter f = chebwin(lFIR,FilterPar_dB); % initialize helper matrices F_all = []; V_all = zeros(M*nPRB,nUsedCarr); for iPRB = 1:nPRB % shift to center carrier
  • 60. Appendix – MATLAB Codes 60 carrierind = (blockSize+1)/2 + (iPRB-1)*blockSize; % center carrier centerFshift = zeros(lFIR,1); for n = 1:lFIR centerFshift(n) = exp(2*pi*1i*(n-1)*carrierind/M); end % frequency-shifted FIR window f1 = f.*centerFshift; % generate Toeplitz matrix for convolution F{iPRB} = toeplitz([f1;zeros(M-1,1)],[f1(1),zeros(1,M-1)]); % stacked Toeplitz matrices implement multicarrier modulation F_all = [F_all F{iPRB}]; % generate expanded IDFT matrix V_all( (1+(iPRB-1)*M):(iPRB*M), ... (1+(iPRB-1)*blockSize):(iPRB*blockSize)) = ... V(:,(1+(iPRB-1)*blockSize):(iPRB*blockSize)); end % final multicarrier modulation matrix T T = F_all*V_all; % Final normalized multicarrier modulation matrix TimeDomainSig=T*ones(nUsedCarr,1); T=T/sqrt(mean(abs(TimeDomainSig).^2)/nUsedCarr*M); %determine FreqResp in pass-band TimeDomainSig=T*ones(nUsedCarr,1); FreqDomSig_oversampled=fft([TimeDomainSig.' zeros(1,2*M-length(TimeDomainSig))])/sqrt(M); FreqDomSig=FreqDomSig_oversampled(1:2:end); % Begin of main simulation loops sqrt_nvar = 1/sqrt(10^(0.1*SNR_dB)); nvar = 1/(10^(0.1*SNR_dB)); %perfect knowledge of noise power assumed % Tx s_pilots = sQAM; % Transformation to time domain sUFMC = T*sQAM; %signal of user of interest sUFMC_pilots = sUFMC; %pilots of user of interest (for ideal chanest) % add noise if AWGN == 1 n = sqrt_nvar*(1/sqrt(2))*(randn(lMCsym,N)+j*randn(lMCsym,N)); yUFMC = sUFMC + n; %superimpose layers and add noise else yUFMC = sUFMC; end yUFMC_pilots = sUFMC_pilots; % Rx w_ZF = pinv(T); w_MMSE = inv(T'*T + nvar*diag(ones(size(T,2),1)))*T'; % obtain symbol estimates for n=1:N % ZF s_est_ZF(:,n) = w_ZF*yUFMC(:,n); % MMSE s_est_MMSE(:,n) = w_MMSE*yUFMC(:,n); end switch est case 'MMSE estimation' rUFMC = s_est_MMSE; case 'ZF estimation' rUFMC = s_est_ZF; end %% OFDM %%%%%%%%%%%%%%%% % Prototype Filter For OFDM
  • 61. Appendix – MATLAB Codes 61 p1 = [zeros(1,M) ones(1,M) zeros(1,M)]; % OFDM TRANSMITTER switch fOFDM case 'Normal OFDM' sOFDM=zeros(M,N); sOFDM = ifft(sQAM,M,1); case 'OFDM with chanEst' Vofdm = zeros(M,nUsedCarr); allocatedSubcarriers = [0:M-1]; % allocated subcarriers for c = 1:nUsedCarr %loop through all allocated subcarriers SubcarrierIndex = allocatedSubcarriers(c); Vofdm([1:M],c) = exp(2*pi*1i*([1:M]-1)*SubcarrierIndex/M); %generation of the IDFT vector end Tofdm=(1/norm(Vofdm))*Vofdm; TimeDomainSig=Tofdm*ones(M,1); Tofdm=Tofdm/sqrt(mean(abs(TimeDomainSig).^2)/M*M); sOFDM = Tofdm*sQAM; %signal of user of interest end if AWGN == 1 n = sqrt_nvar*(1/sqrt(2))*(randn(size(sOFDM))+j*randn(size(sOFDM))); yOFDM = sOFDM + n; %superimpose layers and add noise else yOFDM = sOFDM; end % OFDM RECEIVER switch fOFDM case 'Normal OFDM' rOFDM = zeros(M,N); rOFDM = fft(yOFDM,M,1); case 'OFDM with chanEst' wOFDM_ZF = pinv((1/norm(Vofdm))*Vofdm); wOFDM_MMSE = inv(Tofdm'*Tofdm + nvar*diag(ones(size(Tofdm,2),1)))*Tofdm'; % obtain symbol estimates for n=1:N % ZF s_est_OFDM_ZF(:,n) = wOFDM_ZF*yOFDM(:,n); % MMSE s_est_OFDM_MMSE(:,n) = wOFDM_MMSE*yOFDM(:,n); end switch est case 'ZF estimation' rOFDM = s_est_OFDM_ZF; case 'MMSE estimation' rOFDM = s_est_OFDM_MMSE; end end %% PLOTS axes(handles.axes1); plot(sQAM,'or'); hold on plot(rOFDM,'xk'); title('OFDM, o transmitted, x received'); hold off axes(handles.axes2); plot(sQAM,'or');
  • 62. Appendix – MATLAB Codes 62 hold on plot(rUFMC,'xk'); title('UFMC, o transmitted, x received'); hold off axes(handles.axes3); plot( [zeros(floor((length(p1)-length(f))/2),1); f ; zeros(floor((length(p1)- length(f))/2),1)],'b-' ); hold on ylabel('Amplitude'); xlabel('time (sec)'); title('UFMC-OFDM filter impulse response'); plot( p1,'g-' ); legend('UFMC','OFDM') hold off axes(handles.axes4); [Hufmc,Wufmc] = freqz( f ); Hufmc=Hufmc./max ( Hufmc ); [Hofdm,Wofdm] = freqz( p1 ); Hofdm=Hofdm./max ( Hofdm ); plot(Wufmc/pi,20*log10(abs( Hufmc )),'b-'); hold on plot(Wofdm/pi,20*log10(abs( Hofdm )),'g-'); legend('UFMC','OFDM') plot(-Wufmc/pi,20*log10(abs( Hufmc )),'b-'); plot(-Wofdm/pi,20*log10(abs( Hofdm )),'g-'); grid on ylabel('Amplitude in dB'); xlabel('Frequency'); title('UFMC-OFDM filter frequency response'); hold off %% PSD ANALYSIS axes(handles.axes5); sr=4; % resample rate [PxxUFMC, ftrUFMC] = pwelch(sUFMC(:)); % (:,1:N) maxvalUFMC = max(PxxUFMC); PxxUFMC = PxxUFMC./maxvalUFMC; pxxUFMC=10*log10(PxxUFMC); plot(ftrUFMC/(2*pi),pxxUFMC, 'b-') hold on [PxxOFDM,frxOFDM] = pwelch(sOFDM(:)); maxvalOFDM = max(PxxOFDM); PxxOFDM = PxxOFDM./maxvalOFDM; pxxOFDM=10*log10(PxxOFDM); plot(frxOFDM/(2*pi),pxxOFDM, 'g-') legend('UFMC','OFDM') ylabel('PSD in dB'); xlabel('Frequency'); title('Power Spectral Density Analysis'); hold off; %% COMM.EVM CALCULATION [RMSEVMofdm,MaxEVMofdm,PercentileEVMofdm,NumSymOFDM] = EVMex(sQAM ( : ) ,rOFDM ( : )) [RMSEVMufmc,MaxEVMufmc,PercentileEVMufmc,NumSymUFMC] = EVMex(sQAM ( : ) ,rUFMC ( : )) output.RMSEVMofdm = RMSEVMofdm; output.MaxEVMofdm = MaxEVMofdm; output.PercentileEVMofdm = PercentileEVMofdm; output.NumSymOFDM = NumSymOFDM;
  • 63. Appendix – MATLAB Codes 63 output.RMSEVMufmc = RMSEVMufmc; output.MaxEVMufmc = MaxEVMufmc; output.PercentileEVMufmc = PercentileEVMufmc; output.NumSymUFMC = NumSymUFMC; %% COMM.CCDF size (sOFDM) size (sUFMC) ssOFDM = overSample (sOFDM.', lMCsym); axes(handles.axes6); [CCDFy,CCDFx,AvgPwr,PeakPwr] = CCDFex (sUFMC(:), ssOFDM(:)); legend('sUFMC','sOFDM') %% COMM.ACPR [ACPRufmc,mainChnlPwrUFMC,adjChnlPwrUFMC] = ACPRuf (sUFMC ( : ),M,sr) [ACPRofdm,mainChnlPwrOFDM,adjChnlPwrOFDM] = ACPRuf (sOFDM ( : ),M,sr) output.ACPRufmc = ACPRufmc; output.mainChnlPwrUFMC = mainChnlPwrUFMC; output.adjChnlPwrUFMC = adjChnlPwrUFMC; output.ACPRofdm = ACPRofdm; output.mainChnlPwrOFDM = mainChnlPwrOFDM; output.adjChnlPwrOFDM = adjChnlPwrOFDM; end ACPRuf.m function [ACPR,mainChnlPwr,adjChnlPwr] = ACPRuf (S, M,sr) s=resample(S,sr,1); sps = 1*sr; bw = M; df=bw/M; h = comm.ACPR('SampleRate',bw*sps,... 'MainChannelFrequency',bw/2,... 'MainMeasurementBandwidth',df,... 'AdjacentChannelOffset',3*bw/8,... 'AdjacentMeasurementBandwidth',df,... 'MainChannelPowerOutputPort', true,... 'AdjacentChannelPowerOutputPort',true); [ACPR,mainChnlPwr,adjChnlPwr] = step(h,s); end ACPRfb.m function [ACPR,mainChnlPwr,adjChnlPwr] = ACPRex (S, M,sr) h = comm.ACPR('SampleRate',1,... 'MainChannelFrequency',0,... 'MainMeasurementBandwidth',0.125,... 'AdjacentChannelOffset',[-0.25 0.25],... 'AdjacentMeasurementBandwidth',0.125,... 'MainChannelPowerOutputPort', true,... 'AdjacentChannelPowerOutputPort',true); [ACPR,mainChnlPwr,adjChnlPwr] = step(h,S); end
  • 64. Appendix – MATLAB Codes 64 CCDFex.m function [CCDFy,CCDFx,AvgPwr,PeakPwr] = CCDFex (s1, s2) hChan = comm.AWGNChannel('NoiseMethod',... 'Signal to noise ratio (SNR)', 'SNR', 15); % Create a CCDF System object and request average power and peak power measurement outputs hCCDF = comm.CCDF('AveragePowerOutputPort', true, ... 'PeakPowerOutputPort', true); hChan.SignalPower = 1; s1Noisy = step(hChan,s1); s2Noisy = step(hChan,s2); % Obtain CCDF measurements [CCDFy,CCDFx,AvgPwr,PeakPwr] = step(hCCDF,[s1Noisy s2Noisy]); % plot CCDF curves using the plot method of the CCDF object plot(hCCDF) end EVMex.m function [RMSEVM,MaxEVM,PercentileEVM,NumSym] = EVMex(refsym,rxsym) % Create an EVM object, output maximum and 90-percentile EVM measurements, and symbol count hEVM = comm.EVM('MaximumEVMOutputPort',true,... 'XPercentileEVMOutputPort', true, 'XPercentileValue', 90,... 'SymbolCountOutputPort', true); % Calculate measurements [RMSEVM,MaxEVM,PercentileEVM,NumSym] = step(hEVM,refsym,rxsym); end overSample.m function overSampledS = overSample (S, nov) [m,n] = size (S); overSampledS = []; for k = 1: floor (nov/n) overSampledS = [overSampledS S]; end if nov < n overSampledS = S; else overSampledS = [overSampledS S(:, 1:mod (nov,n))]; end end