Você está na página 1de 56

DEPARTMENT OF COMPUTER SCIENCE

PI/4 DQPSK Modem Implementation




Muhammad Zuhair Arfeen


A dissertation submitted to the University of Bristol in accordance with the requirements
of the degree of Master of Science in the Faculty of Engineering
September 2008 CSMSC-08
Declaration

A dissertation submitted to the University of Bristol in
accordance with the requirements of the degree of Master of Science in
the Faculty of Engineering. It has not been submitted for any other
degree or diploma of any examining body. Except where
specifically acknowledged, it is all the work of the Author.


Muhammad Zuhair Arfeen, September 2008
Page | i
ABSTRACT
The project undertaken has made a comprehensive review of digital modulation and
demodulation techniques and it has two phases of implementation. The 1
st
phase is real-time
implementation of phase lock loop for carrier phase synchronisation between transmitter and
receiver. The 2
nd
phase is real-time synchronisation of transmitter DSP board and receiver DSP
board so as to inform the receiver about the start of data. The modulator and demodulator use
pi/4 DQPSK scheme and the implementation is carried out on TIs DSP platform
TMS320C6416.
When the carrier is transmitted in channel, it undergoes delays. The receiver must know exact
timing delays for perfect operation and demodulation. Various techniques for carrier phase
synchronisation are studied which include deriving carrier phase from unmodulated carrier or
using modulated signal for carrier phase estimate including decision directed and non decision
directed loops. Finally classical analogue phase lock loop is implemented in real-time as it
simplifies receiver circuitry and is commonly used in mobile cellular environment.
Synchronisation is achieved in real-time by transmitting a training sequence known at the
receiver. The receiver first detects the training sequence and then it starts decoding the data. The
receiver used is correlator receiver and look up tables are used for pi/4 DQPSK modulation and
demodulation. The receiver is working satisfactory with out employing Symbol Timing
Recovery (STR) Loop as the final data is decoded absolutely on the basis of correlated sum.
When the correlated sum is positive decision is made in favour of binary 1 and when the
correlated sum is negative decision is made in favour of binary 0.
Phase lock loop is working satisfactory at varying input frequencies and at different sampling
frequencies provided Nyquist rule of sampling is followed. Synchronisation is achieved in real-
time for a frequency of 100 Hz which can be increased up to 480 Hz, but the receiver gets
unsynchronized from transmitter for more than expected time. The remedy proposed is use of
error correction and detection scheme which is an essential component in any communication
system.
Another future development proposed is use of VOCODER (Voice Coder and Decoder) for
upgrading the MODEM to Voice grade MODEM. VOCODER uses PCM / ADPCM to compress
the data and decrease the data rate, so that DSP board can handle real-time voice easily.
Page | ii
ACKNOWLEDGEMENT
The author would like to acknowledge Dr. N. Dahnoun for his supervision and constant guidance
throughout the research and implementation phase.
The author would also like to thank Electrical Engineering laboratory technicians and staff for
their support.
Page | iii
Table of Contents
ABSTRACT...........................................................................................................................................i
ACKNOWLEDGEMENT ...................................................................................................................ii
1 Introduction ...................................................................................................................................1
1.1 Aims and Objectives .............................................................................................................2
1.2 Previous Work Analysis........................................................................................................2
1.3 Organization of thesis............................................................................................................4
2 Review of Digital Modulation Techniques .................................................................................5
2.1 Digital Modulation ................................................................................................................5
2.2 The need for Modulation.......................................................................................................5
2.3 Types of Digital Modulation Techniques ............................................................................5
3 System Overview........................................................................................................................20
3.1 Phase Lock Loop .................................................................................................................20
3.2 Synchronisation in pi/4 DQPSK MODEM........................................................................21
4 Carrier Phase Estimation ............................................................................................................22
4.1 Maximum Likelihood Carrier Phase Estimate ..................................................................23
4.2 Phase Lock Loop .................................................................................................................27
4.3 Decision directed loops.......................................................................................................29
4.4 Non Decision Directed Loops ............................................................................................30
4.5 Implementation Issues.........................................................................................................32
5 Synchronisation...........................................................................................................................34
5.1 Synchronisation in FSK MODEM.....................................................................................34
5.2 Synchronisation in pi/4 DQPSK MODEM........................................................................37
6 Future Work ................................................................................................................................41
6.1 Use Of VOCODER For Voice Grade Modem..................................................................41
6.2 Error Detection and Correction ..........................................................................................41
6.3 Wireless Link.......................................................................................................................41
6.4 Rake Receiver for Removal of Multipath Fading .............................................................42
7 Bibliography................................................................................................................................43
8 Appendices ..................................................................................................................................44
8.1 Appendix A IIR Filter as Oscillator ...................................................................................44
8.2 Appendix B Program Listing..............................................................................................47
Page | iv
List of Figures
(Figure 2.1 ASK Modulated wave) .....................................................................................................6
(Figure 2.2 Block Diagram of ASK Modulator).................................................................................7
(Figure 2.3 Block Diagram of ASK Demodulator) ............................................................................7
(Figure 2.4 FSK Modulation).............................................................................................................8
(Figure 2.5 FSK Modulator) ................................................................................................................9
(Figure 2.6 Demodulation using Goertzel Algorithm).................................................................10
(Figure 2.7 BPSK Modulator Block Diagram).................................................................................11
(Figure 2.8 BPSK Demodulator Block Diagram).............................................................................12
(Figure 2.9 QPSK Modulator Block Diagram).................................................................................14
(Figure 2.10 QPSK Demodulator Block Diagram) ..........................................................................15
(Figure 2.11 pi/4 QPSK Constellation Diagram) .............................................................................16
(Figure 2.12 BER vs. E
b
/N
o
) ..............................................................................................................19
(Figure 3.1 System Level Block Diagram for Implementation of Phase Lock Loop) ...................20
(Figure 3.2 Synchronisation in pi/4 DQPSK MODEM)..................................................................21
(Figure 4.1 Maximum Likelihood Phase Estimate with Unmodulated carrier) .............................26
(Figure 4.2 Phase Lock Loop) ..........................................................................................................27
(Figure 4.3 Decision Directed Feedback Loop)...............................................................................30
(Figure 4.4 Mth power loop)..............................................................................................................31
(Figure 8.1 IIR filter working as an oscillator).................................................................................45
(Figure 8.2 Pole Zero Plot).................................................................................................................46
PI/4 DQPSK Modem Implementation
Page | 1
1 Introduction
Software Defined Solutions (SDS) offer great advantage over complete hardware solutions as
Software Defined Solutions are programmable and flexible. With ever changing communication
protocols it is very easy to update or modify software in DSP. However, they need a front end
RF circuitry. Digital Signal Processors are very cheap compared to analog counter parts. Now
with fast growing digital signal processors and processing techniques it becomes almost
impossible for analog signal processors to achieve the same performance.
Quadrature amplitude modulation (QAM) is a widely used technique for transmitting digital
data. QAM technique is now widely used in modems based on CCITT V series. Programmable
digital signal processors can provide necessary performance and throughput to implement base
band modem (modulator demodulator) functions. These functions include symbol timing
recovery, automatic gain control, symbol detection, pulse-shaping, and matched filters. Many of
these functions were formally implemented in hardware. With the event of high-performance
DSPs and the growing need for multipurpose hardware designs, many of these functions are
implemented in DSP software.
Digital communication techniques are currently focus of intensive research as they provide
higher signal reliability, extremely low error rates, error detection and correction. Analog counter
parts are relatively faster since the speed of digital systems is limited by the input ADCs and
output DACs. However, digital circuits are more reliable and can be reproduced at a lower cost
than analog counter parts.
Digital modulation techniques include ASK (Amplitude Shift Keying), FSK (Frequency Shift
Keying), PSK (Phase Shift Keying), MSK (Minimum Shift Keying). The choice for which
modulation technique to select depends upon various factors including data rate, probability of
symbol Error, transmitted Power, channel bandwidth, resistance of interfering signals and circuit
complexity.
Pi/4 DQPSK (pi/4 Differential-Quadrature Phase Shift Keying) is a four level modulation
scheme first proposed by Baker in 1962. The technique is currently implemented in the
American Digital Cellular, Japanese Handy Phone and the European TETRA systems and is used
in wireless protocols as IS-95 (Interim Standard 95) and WCDMA (Wideband Code Division
Multiple Access).
Pi/4 QPSK preserves the constant envelope property better than the band limited QPSK but is
more susceptible to envelope variations than OQPSK. The main focus of this project is efficient
implementation of pi/4 DQPSK modulation and demodulation on DSP.
PI/4 DQPSK Modem Implementation
Page | 2
The aims of this project are:
1) To produce a comprehensive review of modulation and demodulation techniques and to
implement a Pi/4 DQPSK Modem on the TMS320C6416 digital signal processor.
2) To modulate input data and transmit in real-time from one board (Transmitter) to the other
board (Receiver). The receiver will synchronize with the transmitter and demodulate the input
data in real-time and display it on the scope.
3) There are many issues in modulation and demodulation including clock recovery (carrier
phase recovery), synchronisation between transmitter and receiver, symbol timing recovery. All
of these functions minimize the error rate in the data. This project aims to review and finally
implement carrier phase recovery and synchronisation between transmitter and receiver on DSP.
1.2.1 Stirrup, Rodney MSc project in year 1996 (University of Bristol)
Stirrup, Rodney covered a broad and in depth review of modulation and demodulation
techniques. Stirrup simulated signal mapping of pi/4 DQPSK technique and also covered
filtering techniques. He simulated root raised cosine filter. Stirrup finally came up with
implementation based on advance / retard technique. However, he has not addressed any real-
time issues.
1.2.2 Hedwige, Shenal Undergraduate project in year 2007 (University of Bristol)
Hedwige has reviewed modulation and demodulation techniques. He has successfully
implemented non real-time MODEM but could not synchronize two boards in real-time.
1.2.3 Bertele, ICS Undergraduate project in year 1999 (University of Bristol)
Bertele has covered Pulse shaping filters. Bertele has also implemented non real-time modulator
and demodulator but has not covered real-time implementation. Bertele has reviewed techniques
for symbol timing recovery but has not implemented it. All his work is done in assembly
language.
1.1 Aims and Objectives
1.2 Previous Work Analysis
PI/4 DQPSK Modem Implementation
Page | 3
1.2.4 Webber, JL Undergraduate project in year 1996 (University of Bristol)
Webber, JL has reviewed modulation and demodulation of shift pi/4 DQPSK. Webber has
covered Analog to Digital and Digital to Analog conversion issues. He has also covered root
raised cosine, FIR and IIR filtering techniques. He has elaborated three different methods for
modulation and demodulation of pi/4 DQPSK i.e. by algorithm, by look up table using offsets
and by look up table using circular buffer. He has also covered symbol timing recovery
mechanism but has not implemented it. His work is based on assembly language.
1.2.5 Weiss S., Braithwaite S. J. and Stewart R. D. Software pi/4 DQPSK Modem: A
Student Project Using the TMS320-C6201 EVM Board in year 2000 (University of
Southampton)
The project undertaken in not completely real-time as the input is taken as pre-stored array.
However my thesis has taken input in real-time with under sampling the input before
modulation. My thesis has also covered issues of carrier phase synchronisation (i.e. Phase Lock
Loop) which Weiss, S. et al. have not covered. However Weiss, S. et al. have covered pulse
shaping and synchronisation issues between transmitter and receiver.
PI/4 DQPSK Modem Implementation
Page | 4
The thesis is organized into 6 chapters.
Chapter 1 defines the problem, the aim and the objectives and evaluates the work done by
previous students in the area.
Chapter 2 takes a comprehensive review of digital modulation techniques and elaborates
advantages, disadvantages of each of modulation techniques. It also includes block diagrams of
modulator and demodulator of various modulation techniques.
Chapter 3 focuses on System Overview and describes different components in the project with
specifications of input frequency, voltage levels and data rates achieved.
Chapter 4 focuses on Carrier Phase Synchronisation, with background theory of decision
directed and non decision directed loops. Finally Implementation of phase lock loop is described
in the chapter.
Chapter 5 focuses on Synchronisation between Transmitter and Receiver in FSK MODEM and
then in pi/4 DQPSK MODEM. It explains the pseudo code of modulator and demodulator,
reasons of critical decisions, frequencies and data rates at various interfaces.
Chapter 6 describes future work in connection to the thesis.
1.3 Organization of thesis
PI/4 DQPSK Modem Implementation
Page | 5
2 Review of Digital Modulation Techniques
Modulation is a technique in which some characteristic of carrier signal (amplitude, frequency or
phase) is varied based on information in the message signal to be transmitted.
Modulation is primarily used for transmission purposes. In digital modulation, digital data
having discrete levels is transmitted after being imposed on the carrier signal.
Modulation serves a big advantage by reducing antenna size. Antenna size is proportional to /4
where is the wavelength. Suppose a message signal of 1 kHz is required to transmit
unmodulated. The wavelength is given by = c / f where c is speed of light. So the wavelength
comes out to be 300 km and antenna size corresponding to this wavelength is 75 km which is
unrealistic.
For cellular communication, lets say 1800 MHz carrier is used (used in CDMA), so the antenna
length or diameter comes out to be 4 cm. Due to reduced antenna size the carrier frequency is
stepped up in essentially all radio communication systems.
Typical types of Digital Modulation Techniques are:
- Amplitude Shift Keying (ASK)
- Frequency Shift Keying (FSK)
- Phase Shift Keying (PSK)
2.3.1 Amplitude Shift Keying (ASK)
In Amplitude Shift Keying (ASK) binary 1 is transmitted with an amplitude say A1 and
binary 0 is transmitted with a different amplitude say A2 which may or may not be zero
as shown in figure below. In ASK phase and frequency of carrier is not varied.
2.1 Digital Modulation
2.2 The need for Modulation
2.3 Types of Digital Modulation Techniques
PI/4 DQPSK Modem Implementation
Page | 6
(Figure 2.1 ASK Modulated wave)
2.3.1.1Advantage(s)
1) Simple circuitry for modulation and demodulation.
2.3.1.2Disadvantages
1) More noise susceptible since noise can get superimpose on one amplitude level
and change it into the other amplitude level.
2) Envelope of transmitted signal is not constant so processing like power
amplification becomes more difficult as it can make the signal non linear.
3) Higher power consumption since two distinct levels and power supply must be
greater than both.
2.3.1.3 Modulator Block Diagram
The input data is first fed to a decision device. Based on either 1 or 0 the amplitude of
carrier is assigned to be either A1 or A2 as shown in figure below:
PI/4 DQPSK Modem Implementation
Page | 7

(Figure 2.2 Block Diagram of ASK Modulator)
2.3.1.4 Demodulator Block Diagram
For demodulation the received signal is correlated with the carrier having amplitude
A = (A1+A2) / 2. The correlated signal is compared with a pre set threshold. If the
correlation output is greater than threshold than binary 1 is decoded else binary 0 is
decoded as shown in figure below where t is discrete and periodic with step change of
1/Fs (sampling frequency) and frequency f :
(Figure 2.3 Block Diagram of ASK Demodulator)
1 or
0
Input data
Amplitude
A1
Amplitude
A2
1
0
X Rx
sig
N-1

n=0
A cos wt
> Thr
Binary 1
Binary 0
1
0
PI/4 DQPSK Modem Implementation
Page | 8
2.3.2 Frequency Shift Keying (FSK)
In frequency shift keying frequency of carrier is varied according to the message signal.
Binary 1 is assigned a frequency f1 whereas binary 0 is assigned a different frequency
f2 as shown in figure below:
(Figure 2.4 FSK Modulation)
2.3.2.1 Advantage(s)
1) Constant envelope.
2.3.2.2 Disadvantages
1) Relatively complex circuitry than ASK.
2) Probability of bit error is double than BPSK (Binary Phase Shift Keying).
3) Higher Bandwidth requirement (BW = f2 f1)
2.3.2.3 Modulator Block Diagram
The input data is first fed to a decision device. Based on either 1 or 0 the frequency of
carrier is assigned to be either f1 or f2 as shown in figure below:
PI/4 DQPSK Modem Implementation
Page | 9
(Figure 2.5 FSK Modulator)
2.3.2.4 Demodulator Block Diagram
Demodulation of FSK modulated signal can be done by using Discrete Fourier Transform
(DFT) or Fast Fourier Transform (FFT) but to minimize computational complexity
(number of MACs), an optimized algorithm known as Goertzel Algorithm is used which is
based on DFT and exploits the phase factor periodicity exp (-j2tk / N) of the signal. (1)
The characteristics equations of Goertzel Algorithm are given below:
) 2 ( ) 1 ( ) / 2 cos( 2 ) ( ) ( + = n Q n Q N k n x n Q t
(2.1)
)
2
sin
2
(cos * ) 1 ( ) ( ) (
N
k
j
N
k
n Q n Q n y
t t
=
(2.2)
)
2
cos( * ) 1 ( ) ( 2 ) 1 ( ) ( | ) ( |
2 2 2
N
k
n Q n Q n Q n Q n y
t
+ =
(2.3)
The square of modulus is not problematic in this calculation as the concern is magnitude
not phase. Where the constant coefficient k is given by
s
in
f
f
N k * =
(2.4)
Where N is the number of samples in one frequency:
In figure below the feedback path is evaluated N times where as feed forward path is
evaluated once as evident from above equations. Based on above output and pre-
calculated coefficient (coeff = 2*cos (2k/N)) the frequency of signal is decided.
1 or
0
Input data
Frequency
f1
Frequency
f2
1
0
PI/4 DQPSK Modem Implementation
Page | 10
(Figure 2.6 Demodulation using Goertzel Algorithm)
2.3.2.5 Probability of Error
The probability of bit error is given by (2)
) ( * 5 . 0
o
b
e
N
E
erfc P =
(2.5)
2.3.3 Phase Shift Keying (PSK)
2.3.3.1 Binary Phase Shift Keying (BPSK)
In Binary Phase Shift Keying (BPSK) the phase of the carrier is varied according to
the message signal. In BPSK binary 0 and 1 are distinguished by 180 degree phase
shift.
2.3.3.1.1 Advantages
1) BPSK modulated wave has constant envelope.
+
x(n)
+
z
-1
z
-1
2*cos(2k
/N)
+
-1
-exp(-j2k/N)
Y(n)
Q(n)
Q(n-1)
Q(n-2)
PI/4 DQPSK Modem Implementation
Page | 11
2) Lesser Bandwidth requirement compared to FSK.
3) Lesser complex demodulation circuitry.
2.3.3.1.2 Disadvantages
1) There is 180 degree phase shift which produces non linear effects.
2) Higher bandwidth required compared to QPSK.
2.3.3.1.3 Modulator Block Diagram
(Figure 2.7 BPSK Modulator Block Diagram)
2.3.3.1.4 Demodulator Block Diagram
The received signal is correlated with carrier and if the correlator output is greater than
zero then 1 is detected else 0 is detected.
1 or
0
Input data
A cos wt
A cos (Wt+)
1
0
PI/4 DQPSK Modem Implementation
Page | 12
(Figure 2.8 BPSK Demodulator Block Diagram)
2.3.3.1.5 Probability of bit error
The Probability of bit error is calculated using likelihood function based on the fact that if
zero is transmitted then one is received or vice versa.
The likelihood function of AWGN channel for 0 to be transmitted and one received given
in (3) is as under,
] ) 1 (
1
exp[
1
2
1 b
o
o
X
E x
N
N
f + =
t
(2.6)
The probability of error is given by,
1
0
1
) 0 | 1 ( ) 0 ( dx x f P
X e
}

=
(2.7)
) 1 ( ) ( * 5 . 0 ) 0 (
e
o
b
e
P
N
E
erfc P = =
(2.8)
The probability of error of BPSK is half of FSK given same bit energy (E
b
).
X Rx
sig
N-1

n=0
A cos wt
> 0
Binary 1
Binary 0
1
0
PI/4 DQPSK Modem Implementation
Page | 13
2.3.4 Quadrature Phase Shift Keying (QPSK)
In QPSK instead of sending data bits by bits, data is coupled into two bits (dibits) and
every time a dibit is transmitted. Each symbol is represented by two bits so four possible
phases. The signal mapping is shown below:
(Table 2.1: Signal Mapping of QPSK)
The transmitted signal is represented by equation below:
]
4
) 1 2 (
cos[
2
) (
t
e

+ =
i
t
T
E
t s
c i
(2.9)
Where i=1, 2, 3, 4 and E is the transmitted symbol energy per symbol and T is
symbol time period. The transmitted signal is zero outside T.
Chia Liang et al, (4) have proposed a method for modulation of QPSK using cubic
spline interpolation between every two neighboring values of
k
. They have shown
that this scheme produces spectral and power efficient modulation which can be non
linearly amplified. They have also shown that pi/4 QPSK is 20% to 30% more
spectrally efficient than that of GMSK (Gaussian Minimum Shift Keying) with BT
b
=
0.3 for attenuation between 40 dB to 70 dB.
2.3.4.1 Advantages
1) Bandwidth efficient compared to BPSK. It takes half of the bandwidth compared
to BPSK.
2) It also has constant envelope.
Symbol Phase
SO (00) -3/4
S1 (01) 3/4
S2 (10) -/4
S3 (11) /4
PI/4 DQPSK Modem Implementation
Page | 14
2.3.4.2 Disadvantages
1) Complex circuitry.
2) Zero crossings are not periodic.
3) 180 degree phase shift can occur so phase reversal is possible.
4) Probability of bit error is double than BPSK.
5) High transmission power required compared to BPSK.
2.3.4.3 Modulator Block Diagram
Input data is divided into dibits and converted into parallel through serial to parallel
converter (SPC). The Even bit is multiplied by In phase carrier (cos wt) whereas the Odd
bit is multiplied by Quadrature carrier (sin wt) and added together to transmit as shown in
figure below:
(Figure 2.9 QPSK Modulator Block Diagram)
SPC
X
X
+
cos wt
sin wt
Tx signal
input
PI/4 DQPSK Modem Implementation
Page | 15
2.3.4.4 Demodulator Block Diagram
The received data is correlated in parallel with In phase and Quadrature carriers. When the
correlated output is positive then 1 is decoded and vice versa. The even and odd channels
are demultiplexed together to decode the transmitted data.
(Figure 2.10 QPSK Demodulator Block Diagram)
2.3.5 pi/4 Quadrature Phase Shift Keying (pi/4 QPSK)
pi/4 QPSK avoids 180 phase shift in QPSK by altering the constellation. If one of two
consecutive dibits is sent on integral multiple of /4 radians then the next consecutive
dibit is sent on integral multiple of /2 radians so the phase shift is /4 or 3/4 or
-/4 or - 3/4. The constellation diagram is shown below:
X
cos wt
X
sin wt
N-1

n=0
N-1

n=0
> 0 or
< 0
> 0 or
< 0
DeMux
Rx sig
Binary out
PI/4 DQPSK Modem Implementation
Page | 16
(Figure 2.11 pi/4 QPSK Constellation Diagram)
2.3.5.1 Advantages
1) There is no 180 phase reversal since it works on altering constellation.
2.3.5.2 Disadvantages
1) Complex circuitry compared to QPSK.
2) Zero crossings are not uniform or periodic so use of zero crossing detector for
frequency detection is not feasible.
2.3.5.3 Modulator
Since pi/4 QPSK works on altering constellation so essentially on one of two consecutive
dibits it works on modulator of simple QPSK shown in fig.2.9 and on the next dibit it
sends either cosine wave (when symbol is 10) or minus of cosine wave (when symbol is
01) or sine wave (when symbol is 11) or minus of sine wave (when symbol is 00).
2.3.5.4 Demodulator
On one of two consecutive dibits it works same as simple QPSK so demodulator is same as
that of QPSK as shown in fig. 2.10. Even for next dibit the demodulator is same as in fig.
2.10 except that threshold is changed a bit. For detecting sine wave in phase value is zero
and quadrature value is positive. For detecting minus sine wave in phase value is zero and
quadrature value is negative.
I
Q
3(11)
0(00)
2(10)
1(01)
0(0,0)
1(1,0)
3(0,1)
2(-1,0)
PI/4 DQPSK Modem Implementation
Page | 17
For detecting cosine wave in phase value is positive and quadrature value is zero. For
detecting minus cosine wave in phase value is negative and quadrature value is zero.
2.3.6 pi/4 Differential Quadrature Phase Shift Keying (pi/4 DQPSK)
Xion, Fuqin et al. (10) has shown that in light or medium fading Rician channels at about 1
dB gain in Eb/No at BER = 10
-4
can be achieved by using four symbol differential
detection compared to two symbol differential detection. They have also shown that
multiple symbol differential detection is not possible for severe fading Rician or Rayleigh
channels. The signal mapping and phase change in pi/4 DQPSK in the following table:
Previous
Symbol
Present symbol
00 01 10 11
00 45 135 -135 -45
01 45 135 -135 -45
10 45 135 -135 -45
11 45 135 -135 -45
(Table 2.2. Phase shift in pi/4 DQPSK Modulation)
From constellation shown in Fig. 2.11 the signal mapping is shown below:
Previous
Symbol
Present symbol
00 01 10 11
11 (0,1) (-1,0) (0,-1) (1,0)
10 (-1,0) (0,-1) (1,0) (0,1)
01 (1,0) (0,1) (-1,0) (0,-1)
00 (0,-1) (1,0) (0,1) (-1,0)
(Table 2.3 Signal mapping when previous symbol is integral multiple of pi/4 phase)
PI/4 DQPSK Modem Implementation
Page | 18
Previous
Symbol
Present symbol
00 01 10 11
3 (0,1) 10 00 01 11
2 (-1,0) 00 01 11 10
1 (1,0) 11 10 00 01
0 (0,-1) 01 11 10 00
(Table 2.4 Signal mapping when previous symbol is on IQ axis)
2.3.6.1 Advantages
1) No envelope variation.
2) Non coherent detection is possible.
2.3.6.2 Disadvantages
1) Higher probability of error than pi/4 QPSK since because of differential nature
the error propagates in the frame.
2.3.6.3 Probability of bit error
Rappaport (5) has showed that in Flat Fading radio environment BPSK offers 2.8 dB
improvement at high E
b
/N
o
and 3.0 dB improvement at low E
b
/N
o
over pi/4 DQPSK.
However pi/4 DQPSK offers 3 dB increase in capacity for a given spectrum which makes
it most appropriate modulation technique for in building flat fading mobile radio channels.
The Probability of bit error for QPSK signal, given in (3) is as under:
) ( ) 0 (
o
b
e
N
E
erfc P =
(2.10)
PI/4 DQPSK Modem Implementation
Page | 19
which is double than that of BPSK. The probability of error for DQPSK signal is given as
under:
) * 54 . 0 (
o
b
e
N
E
erfc P ~
(2.11)
So, DQPSK has 3dB poorer performance than coherent QPSK. For same performance E
b
has to be increase by a factor of 1.707. The probability of error for pi/4 DQPSK in AWGN
(Additive White Gaussian Noise) channel as given in (5) is:
) * 176 . 1 (
o
b
e
N
E
Q P ~
(2.12)
(Figure 2.12 BER vs. E
b
/N
o
as in (3))
PI/4 DQPSK Modem Implementation
Page | 20
3 System Overview
The project undertaken has two major portions: Carrier Phase Synchronisation using Phase Lock
Loop and Synchronisation of Transmitter and Receiver using Training Sequence. Both the
systems are not integrated because of lack of time.
(Figure 3.1 System Level Block Diagram for Implementation of Phase Lock Loop)
The input is taken in real-time from function generator as sinusoid of 1 kHz frequency, 1 V (pk-
pk) amplitude but the phase of input is random. The PLL works at frequency of 1 kHz and can
work for any frequency but the coefficients (calculated from Matlab simulations and DSP
simulations) need to be changed accordingly. The sampling frequency used in implementation is
24 kHz, but the phase lock loop can be shown to be operational for any sampling frequency.
Generally, the higher the sampling frequency, the more samples are there for phase offset
calculations so better performance is achieved. But increased sampling rate, increases clock rate
of CODEC so power consumption is increased which is an important performance issue in
cellular devices. The DSP TMS320C6416 can work for sampling frequencies of 8 kHz, 16 kHz,
24 kHz, 44 kHz and 96 kHz. It is not possible for it to sample for more than 96 ksamples/sec.
For correct operation of PLL, the phase difference between incoming carrier and on board VCO
(voltage controlled oscillator) must be small. For the implementation the PLL work satisfactory
for phase difference of up to 90 degrees. During the initial phase of implementation it was
assumed that phase difference is within the range of 90 degrees, but the results achieved were
not satisfactory. So a remedial action was taken and it was ensured that the corrective action will
be taken provided phase difference is small. This is a key difference between real-time input and
on board stored input, because the phase of on board input is controllable but real-time input is
random.
3.1 Phase Lock Loop
Function
Generator
PC
Oscilloscope
DSP
Output
PI/4 DQPSK Modem Implementation
Page | 21
(Figure 3.2 Synchronisation in pi/4 DQPSK MODEM)
The communication system between transmitter (DSP1) and receiver (DSP2) is wired and
simplex. The input in pure sinusoid at frequency of 100 Hz and has an amplitude of 1 V (pk-pk).
The MODEM can be upgraded to voice graded MODEM using VOCODER, which is left as
further work to the project. VOCODER compresses the input and is an essential component of
mobile communication system.
The sampling frequency used is 96 kHz with 24 samples to represent the unmodulated carrier
(sine or cosine). The maximum input frequency achievable is 200 Hz which can be increased to
480 Hz with 5 samples to represent the unmodulated carrier. The relevant calculations are shown
in section 5.2.3.
The reason for low frequency system is that every sample of input from function generator is
represented by 16 bits (because ADC is of 16 bits). So against a single sample there is a need for
16 bits transmission and each bit (or in case of QPSK dibit) is represented by 24 samples. So,
in real-time there is an inherent under sampling ratio of (number of bits / sample) * (number of
samples in unmodulated carrier) : 1.
Consequently under sampling is used at input in which 100 Hz input is sampled at 96 kHz.
Ideally for 100 Hz input sampled at 96 kHz, there are 960 samples per period. In the
implementation undertaken instead of 960 samples, 10 samples are taken. Relevant calculations
are shown in section 5.2.3.
The channel is working for maximum possible data rate which can be handled by TMS320C6416
i.e. 96 ksamples/sec * 16 bit/sample = 1536 kbps.
3.2 Synchronisation in pi/4 DQPSK MODEM
Function
Generator

PC
DSP DSP

PC
Oscilloscope Channel
PI/4 DQPSK Modem Implementation
Page | 22
4 Carrier Phase Estimation
When the signal is transmitted, it undergoes delays and phase offsets due to channel
impairments. For correct demodulation or detection of transmitted information, correct estimate
of carrier phase is necessary. Suppose the transmitted signal is,
) * cos( ) ( | + = t Wc A t s
(4.1)
Due to channel impairments the phase changes and the received signal is,
) ' * cos( ) ( | + = t Wc A t r
(4.2)
The phase of carrier is given by,
t t | * 2 fc =
(4.3)
From the above equation it appears that phase can only be estimated with the correct knowledge
of time delay since carrier frequency is known. But in practice it is not the case since local
oscillators at transmitter and receiver are not phase synchronous and they may drift in frequency
in opposite direction as worst case. So, both phase and time delay must be estimated for correct
recovery of message.
Usually carrier frequency is large in the order of MHzs, so small delay in time can cause large
phase errors.
There are two ways for correct carrier phase estimation:
1) first is to transmit carrier with the message information and the receiver will use the Phase
Lock Loop (PLL) to track the phase. This technique uses more power since carrier is
transmitted. This technique is used in telephony and mobile communication where a number
of users in a cell share the same clock and hence power is divided among all users. The
obvious advantage is simple circuitry of receiver.
2) Another technique widely used having relatively complex circuitry is to derive the carrier
phase directly from modulated signal. It is power efficient.
PI/4 DQPSK Modem Implementation
Page | 23
The first technique in which unmodulated carrier is transmitted is investigated mathematically as
under:
As shown in (3) the received signal is expressed as under:
) ( ) , ; ( ) ( t n t s t r + = t
(4.4)
where phase and time delay are the parameters to be estimated. Let and be expressed jointly
as so signal is represented as s (t; ).
So the above equation becomes:
) ( ) ; ( ) ( t n t s t r + =
(4.5)
The likelihood function of the above received signal given errors have occurred in the signal
is:

H
=
N
n
n n N
s r
r p
1
2
2
}
2
)] ( [
exp{ * )
2
1
( ) | (
o

(4.6)
where r is the received signal expressed in vector form and noise is Gaussian with zero mean.
r
n
and s
n
are given by the following equations:
}
=
To
n n
dt t f t r r ) ( * ) (
(4.7)
}
=
To
n n
dt t f t s s ) ( * ) ; ( ) (
(4.8)
The likelihood function can be re-written as:
4.1 Maximum Likelihood Carrier Phase Estimate
PI/4 DQPSK Modem Implementation
Page | 24
}
= A
TO
dt t s t r
No
} ] )] ; ( ) ( [
1
exp{ ) (
2

(4.9)
Now consider are a QAM / M-ary PSK signal expressed as;
) ' sin( ) ' cos( ) ( | | + + = t Wc B t Wc A t s
(4.10)
The in phase and quadrature carriers are expressed as:
) ( cos ) ( | + = t Wc t c
I
(4.11)
) ( sin ) ( | + = t Wc t c
Q
(4.12)
To get the message back the incoming signal is multiplied by in phase and quadrature
components and passed through Low pass filter to remove double frequency terms:
) ' sin( 5 . 0 ) ' cos( 5 . 0 ) ( | | | | = B A t y
I
(4.13)
) ' sin( 5 . 0 ) ' cos( 5 . 0 ) ( | | | | = A B t y
Q
(4.14)
The above two equations show that due to carrier phase offset the power level of the signal is
reduced by cos
2
( ) and the in phase and quadrature components have cross talk between
them.
The likelihood function can be further expanded into:
} } }
+ + = A
TO TO TO
dt t s
dt t s t r dt t r
No
}] ) ; (
) ; ( * ) ( 2 ) ( {
1
exp[ ) (
2
2
|
|
(4.15)
where = 0 in the above expression and the first and third terms are constant since 1st term is
independent of and the third term represents signal power. The second term represents the
cross correlation between the received signal and the transmitted signal.
So the above expression can be represented as:
PI/4 DQPSK Modem Implementation
Page | 25
] ) ; ( * ) ( {
2
exp[ ) ( dt t s t r
No
C
TO
}
= A |
(4.16)
Now suppose the unmodulated carrier is transmitted the received signal is expressed as:
) ( ) cos( ) ( t n t Wc A t r + + = |
(4.17)
The likelihood function is expressed as:
(
(

+ = A
}
dt t Wc A t r
No
C
TO
) cos( * ) (
2
exp ) ( |
(4.18)
Taking log of above equation to get log likelihood fn.
(
(

+ = A
}
dt t Wc t r
No
A
TO
L
) cos( * ) (
2
) ( |
(4.19)
Differentiate w.r.t ,
(
(

+ = A
}
dt t Wc t r
d
d
No
A
d d
TO
L
) cos( * ) (
2
/ ) ( |
|
|
(4.20)
To maximize the log likelihood function set above equation to zero.
PI/4 DQPSK Modem Implementation
Page | 26
] ) cos( * ) ( [ 0 dt t Wc
d
d
t r
TO
ML
}
+ = |
|
(4.21)
] ) sin( ) ( [ 0 dt t Wc t r
TO
ML
}
+ = |
(4.22)
] sin cos ) ( cos sin ) ( [ 0 dt Wct t r t Wc t r
TO TO
ML ML
} }
+ = | |
(4.23)
}
}
=
TO
c
TO
c
ML
tdt W t r
tdt W t r
cos ) (
sin ) (
n ta
1
|
(4.24)
The above equation gives a one shot estimate of the phase of unmodulated carrier and is
represented in fig. below:
(Figure 4.1 Maximum Likelihood Phase Estimate with Unmodulated carrier)
TO
X
X
ML=tan
-1
(B/A)
cos W
c
t
-sin W
c
t
TO
A
B
Rx sig
PI/4 DQPSK Modem Implementation
Page | 27
(Figure 4.2 Phase Lock Loop)
The output of VCO is given by,
r(t) = sin (W
c
t + ) (4.25)
where as,
s
VCO
(t) = cos (W
c
t + ) (4.26)
4.2 Phase Lock Loop
FIR filter
X
VCO
e(t)
cos(W
c
t+)
sin (W
c
t + )
PI/4 DQPSK Modem Implementation
Page | 28
So the input to the Loop filter e (t) is given by,
e(t) = r(t) s
VCO
(t) = cos (W
c
t + ) sin (W
c
t + ) (4.27)
= 0.5 sin (2W
c
t + + ) + 0.5 sin ( - ) (4.28)
After passing through the FIR filter the error signal e (t) becomes:
e(t) = 0.5 * sin ( - ) (4.29)
The FIR filter acting as Low Pass filter is always stable. The output of FIR filter in digital
domain is given as:

=
=
1
0
) ( ) (
N
k
k
k n x b n y
(4.30)
The transfer function is given as,
1
1
2
1
1
0
.....
) (



+ + +
=
N
N
N N
z
b z b z b
z H
(4.31)
Since all the poles of transfer function are at origin (within unit circle (|z| < 1)) so the FIR filter is
always stable.
The output phase of VCO depends upon e (t) given as:
}

+ = +
t
c c
d e K t W t t W t t | ) ( ' ) ( '
(4.32)
}

=
t
d e K t t t | ) ( ' ) ( '
(4.33)
when is small then sin ( ) ~ ( )
PI/4 DQPSK Modem Implementation
Page | 29
When the transmitted signal carrier information I
n
then its difficult to maximize ML function.
The information I
n
can either be known or random. In decision directed loops the information is
considered to be known whereas in non decision directed loops it is considered to be random.
The received equivalent LP signal as given in (3) is:
) ( ) ( ) exp( ) ( t z nT t g I j t r
n
n
+ =

(4.34)
) ( ) exp( ) ( ) ( t z j t s t r
l
+ = |
(4.35)
]} ) exp( ) ( ) (
1
exp{Re[ ) (
*
dt j t s t r
N
C
l
To
l
o
| |
}
= A
(4.36)
Taking log of above eq and maximizing it by setting,
0 / ) ( = A | | d d
L
(4.37)
we get
(

=


=
-

=
-
) Re( / ) Im( tan
1
0
1
0
1
n
K
n
n n
K
n
n ML
y I y I |
(4.38)
Where
dt nT t y t r y
T n
nT
l n
) ( ) (
) 1 (
=
-
+
}
(4.39)
For M-ary PSK where the phase of message contains the information:
) 1 (
2
'
H
= m
M
m
u
(4.40)
Now we calculate r (t) cos (W
c
t + ) sin
m
and r (t) sin (W
c
t + ) cos
m
, add them together
and pass them through low pass filter to remove double frequency terms, we get the error signal,
4.3 Decision directed loops
PI/4 DQPSK Modem Implementation
Page | 30
) ' cos( ) ( 5 . 0 ) ' sin( ) ( 5 . 0 ) ' sin( 5 . 0 ) (
m Q m I
t n t n A t e | | | | | | | | + + =
(4.41)
Where n
I
(t) and n
Q
(t) are the in phase and quadrature noise components. The loop shows phase
ambiguity of 360
0
/M (90
0
in QPSK) which can be avoided by differentially encoding and
decoding.
The block diagram for carrier phase estimate using Decision directed loop is shown below:
(Figure 4.3 Decision Directed Feedback Loop)
In non decision directed loops I
n
(information) is treated as random variable and likelihood
function is averaged over these random variables.
Mth power loop is an example of Non Decision Directed loops.
4.4 Non Decision Directed Loops
X
X
90
0
phase shift Rx sig
Delay
+
X
X
Loop
Filter
VCO
Delay
T ( )dt
cos
Sampler
Sampler
T ( )dt
-sin
Phase
Estimator
PI/4 DQPSK Modem Implementation
Page | 31
QPSK modulated signal is expressed as:
) ( )] 1 (
2
cos[( ) ( t n m
M
t W A t r
c
+
H
+ + = |
(4.42)

By taking Mth power we get cos (MW
c
t + M) and use BPF at Mf
c
to get:
0 ) 1 ( 2 ) 1 (
2
= H =
H
m M m
M
(4.43)
This loop also exhibits 360/M phase ambiguity so need of differential encoding and decoding.
(Figure 4.4 Mth power loop)
The Quantitative analysis performed by (6) has shown that variance of Decision directed
Feedback loop is 4 to 10 times better than Non Decision Directed Feedback Loop for SNR per
bit above 0dB.
Usually jitter performance of data aided ones is worse than non data aided algorithms, but data
aided techniques are slow and more erroneous. Kim, Beomsup et al. (7) have shown that if
instead of square law device, absolute value rectifier is used for non data aided ones then jitter
performance closer to data aided techniques can be achieved which is fast and removes error
accumulation problem.
Donally T, et al. (8) have proposed DSP based Clock recovery algorithm which uses IIR filter
whose poles are on unit circle. They showed that IIR filter clock recovery technique
synchronizes within symbol time of first received transition. Kato S. et al. (9) have proposed a
dual carrier filter (DCF) based clock recovery scheme which shows an improvement of 1.5 dB at
P
e
= 10
-4
compared with Coastas loop scheme.
Mth power
device
BPF
at Mf
c
X
Loop
Filter
VCO
Divide
my M
Output Carrier
To Demod

input
PI/4 DQPSK Modem Implementation
Page | 32
Out of the above techniques discussed above, unmodulated carrier phase estimation technique
using Phase Lock Loop is used to implement on the Digital Signal Processor. The reasons for
selection of this technique are:
1) It simplifies the receiver circuitry and essentially the area, which is necessary in mobile
cellular phones and other equipment.
2) It consumes more bandwidth since unmodulated carrier is transmitted with message,
which is not an issue in mobile cellular environment since in mobile environment cellular
phone operators have bandwidth in the range of MHz. WCDMA (Wide band Code
Division Multiple Access) has 5 MHz bandwidth.
3) This technique consumes more power since carrier is transmitted. Since in telephony
and mobile communication a number of users in a cell share the same clock and hence
power is divided among all users.
4) Decision directed and non decision directed loops have complex circuitry which
maximizes the area which is highly undesirable. And these loops contain more feedback
elements so more stability issues have to be addressed.
The block diagram used for implementation is shown in Fig. 4.2. The pseudo code for
implementation is:
1) Take sample as input.
2) Multiply the input sample with the VCO which is stored in an array in the code.
3) Perform FIR filtering of the multiplied signal. (The work of FIR filter is not done by
author, it is given by Dr. Dahnoun.
4) Ensure that phase difference is less than equal to 90 degree by checking the positive
slope of input sine wave faces how many positive and negative values of VCO.
If number of positive samples of VCO during positive slope of input is greater than or
equal to number of negative samples of VCO
Then go to step 5 else go to step 1.
4.5 Implementation Issues
PI/4 DQPSK Modem Implementation
Page | 33
5) Based on the output of the FIR filter (fir_out) perform shift in the VCO.
If (fir_out 0) shift = 0
Else if ( thr1fir_outthr2 ) shift = 1 ( circular shift left the VCO by 1 )
Else if ( thr3fir_outthr4 ) shift = 2 ( circular shift left the VCO by 2 )
Else if ( thr5fir_outthr6 ) shift = 3 ( circular shift left the VCO by 3 )
Else if ( thr7fir_outthr8 ) shift = 4 ( circular shift left the VCO by 4 )
Else if ( thr9fir_outthr10 ) shift = 5 ( circular shift left the VCO by 5 )
Else if ( thr11fir_outthr12) shift = 6 ( circular shift left the VCO by 6 )
Else if ( -thr2fir_out-thr1) shift = -1 ( circular shift right the VCO by 1 )
Else if ( -thr4fir_out -thr3) shift = -2 ( circular shift left the VCO by 2 )
Else if ( -thr6fir_out -thr5) shift = -3 ( circular shift left the VCO by 3 )
Else if ( -thr8fir_out -thr7) shift = -4 ( circular shift left the VCO by 4 )
Else if ( -thr10fir_out- thr9) shift = -5 ( circular shift left the VCO by 5 )
Else if ( -thr12fir_out-thr11)shift = -6 ( circular shift left the VCO by 6 )
(All the coefficients are calculated from Matlab and real-time Simulations)
6) Shift the VCO left or right based on the value of shift.
7) Make the VCO Sample out
8) Go to step 1.
PI/4 DQPSK Modem Implementation
Page | 34
5 Synchronisation
The transmitter and receiver need to be tightly synchronized for correct data recovery. The
receiver does not know the right sampling instant where the data starts. So a training sequence
known at the receiver is send periodically. The receiver first detects the training sequence and
when it is detected the receiver starts demodulating the data.
In the implementation PN code (pseudo random code) is chosen as Training sequence. It is
unlikely that the PN code is present in the data. For the PN sequence of N bits the probability of
finding the same sequence in data is 1/2
N
. For instance when N = 14 the probability of finding
PN sequence is 6.1e-5 which is very low.
In the implementation synchronisation is first achieved in FSK (Frequency Shift Keying)
MODEM and then with pi/4 DQPSK MODEM.
In FSK, binary 1 is assigned a frequency f1 a binary 0 is assigned a different frequency f2.
The demodulation is done using Goertzel Algorithm which is described in section 2.3.2. The
work of Goertzel Algorithm implementation is not done by the author, it is given by Dr. N.
Dahnoun.
The pseudo code for modulator and demodulator are described as under:
5.1.1 Pseudo Code for FSK Modulator
1. Send PN sequence bit by bit.
2. Take sample as input from function generator (in Q15 format).
3. Truncate 4 least significant bits (4 LSBs) so only 12 most significant bits (MSBs) are
used for transmission.
4. For each logical 1 send frequency f1 and for each logical 0 send frequency f2.
5. Repeat steps 2, 3 and 4 for a pre-set number of times and when that time is elapsed go to
step 1.
5.1 Synchronisation in FSK MODEM
PI/4 DQPSK Modem Implementation
Page | 35
5.1.2 Pseudo Code for FSK Demodulator
1. Take sample as input.
2. Decode it using Goertzel algorithm and store the decoded digit.
3. Compare with the stored PN (pseudo-random) sequence.
4. Repeat steps 1, 2 and 3 until PN sequence is found.
5. Take input sample.
6. Decode and store it until 12 bits are accumulated.
7. Sample the data out.
8. Repeat steps 5, 6 and 7 until the pre-set number of times as in modulator. When the pre-
set time is elapsed got step 1.
5.1.3 Implementation Issues
The input sine at 100 Hz is sampled at 96 kHz (or 96000 samples / sec). So each period is
represented by 960 sample points (n = F
s
/ f
in
). Each sample is represented by 12 data bits (where
4 LSBs are truncated since they dont effect accuracy much). In the code each of logical 1 or 0
is represented by 8 samples. So for every sample taken as input there is a need for sending 96
samples out (12 data bits * 8 samples / bit = 96 samples).
Therefore, the input is under sampled by 96 times and in effect 10 samples are taken from input
which leads to effective frequency of input 9.6 kHz (96000 / 10 = 9600). Each logical 1 is
represented with frequency 24 kHz (96000 / 4 = 24000) and binary 0 is represented by
frequency of 12.5 kHz (96000 / 8 = 12500).
The maximum frequency achievable under this condition is 200 Hz but it will be distorted since
it is represented by 5 samples / period only. This can also be visualize from the fact that for 100
Hz input sine wave, each logical 1 is represented with 24 kHz, so for 200 Hz input wave, each
logical 1 must be represented with 48 kHz which is half of sampling frequency. According to
Nyquist theorem the sampling frequency must be greater than double of maximum frequency
component. So the output is distorted for 200 Hz.
PI/4 DQPSK Modem Implementation
Page | 36
The data rate at which channel is operating is 1536 kbps (96 ksamples/s * 16 bits / sample = 15,
36, 000). The effective data rate at which input data is operated is 12 kbps. The effective input
sampling frequency is 1000 Hz because of under sampling by 96 times. So input data rate is
1000 samples / sec * 12 bits /sample = 12000 bps.
The data is sent in the form of frames with each frame consisting of two fields i.e. training
sequence and data. The length (number of samples, number of bits) of each field and time of its
transmission is shown below:
Training Sequence Data
112 samples,1792
bits, 1.1167 ms
7680 samples, 122880 bits, 80ms
- Training sequence
Since training sequence has 14 digits and each digit is represented by 8 samples so total
number of samples in training sequence is 112 samples.
Since each sample is represented by 16 bits so total number of bits in T.S is 1792 bits.
As the sampling rate is 96 kHz so the time which training sequence takes to transmit is
1.1167 ms.
- Data
Each sample in data is represented by 12 digits and each digit is represented by 8
samples, and data is sent periodically 80 times so total number of samples in data is 7680
samples (80 samples * 12 bits * 8 samples / bit).
Since each sample is represented by 16 bits so total number of bits in data field is 122880
bits. input data rate is 1000 samples / sec * 12 bits /sample = 12000 bps.
As the sampling rate is 96 kHz so the time which training sequence takes to transmit is 80
ms.
A number of combinations with different length of T.S and data were experimented but
the above combination showed the optimum results.
5.1.4 Results Achieved
- At 100 Hz the output is satisfactory i.e. the receiver is reconstructing the original
message, but as the frequency is increased to 200 Hz the output gets distorted.
PI/4 DQPSK Modem Implementation
Page | 37
- Observations have showed that the receiver decoded the data correctly for 9.426 sec. So
117 data frames (9.426 s / 80 ms = 117) are decoded properly.
- After 9.426 sec there is an average delay for 1.1960 sec for checking the training
sequence. This average delay should be around 1 to 2 ms. The possible reasons for higher
delay may be:
1) Errors in modulation.
2) Errors in transmission.
3) Errors in demodulation.
4) Inherent delay of 112 samples or more before comparison with PN sequence.
- A possible solution proposed for the large delay is use of some error correction
mechanism like Viterbi coding/decoding, Convolutional coding/decoding, FEC (forward
error correction).
In pi/4 DQPSK scheme input is sampled into dibits (group of two bits) and each dibit is assigned
a phase depending on the current and previous dibit as discussed in section 2.3.6.
The pseudo code for modulator and demodulator are described as under:
5.2.1 Pseudo Code for Modulator
1. Send PN sequence.
2. Take sample as input from Function Generator (in Q15 format).
3. Truncate 8 Least Significant Bits (4 LSBs) so only 8 Most significant bits (MSBs) or 4
dibits are used for transmission.
4. For each dibit send a phase as elaborated in Section 2.3.6.
5. Repeat steps 2, 3 and 4 for a pre-set number of times and when that time is elapsed go to
step 1.
5.2 Synchronisation in pi/4 DQPSK MODEM
PI/4 DQPSK Modem Implementation
Page | 38
5.2.2 Pseudo Code for Demodulator
1. Take sample as input.
2. Decode it using look up table for DQPSK demodulation explained in Section 2.3.6 and
store the decoded digit.
3. Compare with the stored PN sequence.
4. Repeat steps 1, 2 and 3 until PN sequence is found.
5. Take input sample.
6. Decode and store it until 4 dibits are accumulated.
7. Sample the data out.
8. Repeat steps 5, 6 and 7 until the pre-set number of times as in modulator. When the pre-
set time is elapsed go to step 1.
5.2.3 Implementation Issues
In pi/4 DQPSK implementation training sequence is sent in simple QPSK modulated format. The
reason for not choosing pi/4 DQPSK scheme for sending training sequence are:
- In pi/4 DQPSK scheme phases are sent differentially. When the receiver suddenly wakes
up and starts demodulation without the knowledge of first or initial phase,
synchronisation is not possible.
- pi/4 DQPSK scheme works on altering constellation with alternate phases are sent on IQ
axes where only sines or cosines which are just 90 degrees phase shifted are sent. If the
transmitter and receiver are 90 degree phase shifted then whole data will be decoded
erroneous.
The input sine at 100 Hz is sampled at 96 kHz (or 96000 samples / sec). So each period is
represented by 960 sample points (n = F
s
/ f
in
). Each sample is represented by 4 dibits (where 8
LSBs are truncated since they dont effect accuracy much). In the code each dibit is represented
PI/4 DQPSK Modem Implementation
Page | 39
by 24 samples. So for every sample taken as input 96 samples are sent out (24 data bits * 8
samples / bit = 96 samples).
Therefore, the input is under sampled by 96 times and in effect 10 samples are taken from input
which leads to effective frequency of input 9.6 kHz (96000 / 10 = 9600). Each dibit is
represented with frequency 4 kHz (96000 / 24 = 4000). If each dibit is represented with 5
samples (minimum possible) then frequency of each dibit will be 19.2 kHz (96000/5=19200).
This frequency is 4.8 times higher than 4 kHz frequency used in implementation so the
maximum input frequency attainable in this case in 480 Hz.
The data rate at which channel of MODEM is working is 1536 kbps (96 ksamples/s * 16 bits /
sample = 15,36,000). The input data rate is 8 kbps. Since effective input sampling rate is 1 kHz
and 8 bits are used to represent each sample so 1000 samples / sec * 8 bits / sample = 8000 bps.
The data is sent in the form of frames with each frame consisting of two fields i.e. training
sequence and data. The length (number of samples, number of bits) of each field and time of its
transmission is shown below:
Training Sequence Data
168 samples, 2688
bits, 1.75 ms
76800 samples, 1228800 bits, 0.8 s
- Training sequence
Since training sequence has 7 dibits and each dibit is represented by 24 samples so total
number of samples in training sequence is 168 samples.
Since each sample is represented by 16 bits so total number of bits in T.S is 2688 bits.
As the sampling rate is 96 kHz so the time which training sequence takes to transmit is
1.75 ms.
- Data
Each dibit is represented by 24 samples, and data is sent periodically 3200 times so total
number of samples in data is 76800 samples (3200 samples * 24 samples / dibit).
Since each sample is represented by 16 bits so total number of bits in data field is
1228800 bits.
As the sampling rate is 96 kHz so the time in which data is transmitted is 0.8 s.
PI/4 DQPSK Modem Implementation
Page | 40
A number of combinations with different length of T.S and data were experimented but
the above combination showed the optimum results.
5.2.4 Results Achieved
- At 100 Hz the output is satisfactory i.e. the receiver is reconstructing the original
message, but as the frequency is increased to 200 Hz the output gets distorted.
- Observations have showed that the receiver decoded the data correctly for 6.4 sec. So 8
data frames (6.4 s / 800 ms = 8) are decoded properly.
- After 6.4 secs there is an average delay for 1.21 sec for tracing the training sequence.
This average delay should be around 2 ms. The possible reasons for higher delay are:
1) Errors in modulation.
2) Errors in transmission.
3) Errors in demodulation.
4) Inherent delay of 168 samples or more before comparison with PN sequence.
- A possible solution proposed for improving the performance is use of some error
detection and correction mechanism like Viterbi coding/decoding, Convolutional codes,
FEC (forward error correction). Since in DQPSK symbols are sent differentially so the
error propagates through out the frame. So, in DPQSK scheme employing error
correction mechanism is essential.
- Data is decoded without the use of symbol timing recovery loop as the decision is based
absolutely on the bases of the correlated sum output. When the output is positive then
decision is made in favour of 1 and when it is negative decision is made in favour of
0.
PI/4 DQPSK Modem Implementation
Page | 41
6 Future Work
For voice Modems, the input voice has maximum frequency of 4000 Hz, so minimum sampling
rate of 8 kHz is required. For transmission 16 bit sample must be compressed into 2 to 8 bits so
that data rate of 16 kbps to 64 kbps can be easily handled by DSP. The author tried to use
freeware VOCODER Smart Audio Converter downloaded from internet, which claims to
convert recorded voice in PCM format to different formats i.e. 64 kbps PCM, 32 kbps ADPCM,
64 kbps CCITT u-LAW, 13 kbps GSM format. The author plugged in these audio files to DSP
but it was observed that the samples are still 16 bits instead of being compressed into 2 to 8 bits.
Many other free ware softwares from online resources were tried but they didnt work as
expected.
It is now left as future work to implement real-time Voice Compression using PCM / ADPCM
(Adaptive Differential Pulse Code Modulation) techniques and integrate into the system so that
real-time voice can be transmitted.
Error detection and correction is an essential component of any communication system. And it is
essentially must in a technique like pi/4 DQPSK where phases are sent differentially i.e. current
phase depends upon its previous phase and previous phase depends on its previous phase, and so
on. So an error in a single phase is likely to propagate through out the frame.
It is proposed that error detection and correction techniques like Convolution Encoding /
Decoding, Viterbi Encoding / Decoding or Forward Error Correction must be integrated into the
communication system.
In the implementation carried in this project, transmitter and receiver are connected through
wired medium. A possible and easy conversion from wired to wireless medium can be done by
using Walkie Talkie. But this is only possible after incorporation of VOCODER. Instead of
wired link between two DSPs, the output of transmitter should be connected to one walkie talkie
6.1 Use Of VOCODER For Voice Grade Modem
6.2 Error Detection and Correction
6.3 Wireless Link
PI/4 DQPSK Modem Implementation
Page | 42
which transmits it on air. Another walkie talkie will receive the voice and should be connected to
the DSP at receiver. The receiver will then demodulate the message and the final output will be
listened at the audio jack out of DSP.
When a signal is transmitted on RF channel, it undergoes reflection, dispersion, diversion from
different obstacles. So different multipaths are formed and each multipath has different
amplitude and carries different information. At the receiver they all must be combined using
MRC (maximal ratio combining) to get the original signal back with maximum strength. The
idea is to use multiple correlator receivers, each for a different multipath and each mutipath is
correlated with a known signal at receiver. Rake receivers are commonly used in CDMA /
WCDMA (Wideband Code Division Multiple Access) systems. For implementing Rake receiver
the correlator receiver is copied N times provided there are N multipaths. Each correlator
receiver is said to be a finger. Each fingers operational timings are controlled by the peaks of
matched filter response.
It is left as future work to copy the receiver for appropriate number of times depending upon the
channel information and integrate it with the system.
6.4 Rake Receiver for Removal of Multipath Fading
PI/4 DQPSK Modem Implementation
Page | 43
7 Bibliography
1. Dahnoun, Naim. Lecture 17, Goertezel Algorithm. s.l.: Univeristy of Bristol, UK, 2004.
2. Haykin, Simon. Digital Communications. New York: John Wiley & Sons, 1988. 0-471-
62947-2.
3. Proakis, John G. Digital Communications. 4th. New York: McGraw-Hill, 2001. 0-07-
232111-3.
4. An Efficient Constant Envelope pi/4 QPSK Modulation Scheme. Tong Fu Lee, Shih Ho
Wang, Chia Liang Liu. s.l. : Circuits and Systems, Proceedings of the 40th Midwest
Symposium on Persistent Link, 1997, Vol. 1.
5. BER Expression for Differentially Detected pi/4 DQPSK Modulation. Leonard E. Miller,
Jhong S.Lee. 1, s.l. : IEEE Transactions on Communcations, 1998, Vol. 46.
6. WC Lindsey, MK Simon. Telecommunication Systems Engineering. Englewood Cliffs NJ :
Prentice Hall, 1973.
7. Baseband Clock Recovery Algorithm for pi/4 QPSK Modulated Signals. J E Lee, S H Choi, B
Kim. s.l. : Vehicular Technology Conference, IEEE 47th, 1997, Vol. 3.
8. DSP based Clock Recovery Implemented in a Field Programmable Gate Array. P M
Smithson, M Tomlinson, T Donnelly. s.l. : New Synchronisation Techniques for Radio
Systems,IEE Colloquium on Persistent Link , 1995.
9. A New Carrier Recovery Circuit for Land Mobile Satellite Communication. K. Kobayashi. T.
Sakai, S. Kubota, M.Morikura, S. Kato. s.l. : IEEE Journal on Selected Areas in
Communication, 1992, Vol. 10.
10. Chassaing, Rulph. DSP Applications Using C and the TMS320C6x. New York : John Wiley
& Sons, 2002. 0-471-20754-3.
11. Dahnoun, Naim. Lecture 17, Goertzel Algorithm. s.l. : Univeristy of Bristol, UK., 2004.
PI/4 DQPSK Modem Implementation
Page | 44
8 Appendices
For implementation of voltage controlled oscillator to use in PLL, the author tried IIR (Infinite
Impulse Response) filter to act as voltage controlled oscillator. The frequency of sinusoid was
changed successfully based on coefficient value but the phase can not be changed by changing
the coefficient value.
For IIR filter when the poles are placed on the unit circle then it yields an oscillatory response.
The general difference equation for IIR filter is given as:
) ( ) ( ) (
0 0
m n y b l n x a n y
N
l
M
m
m l
=

= =
(7.1)
The equation shows recursive nature of IIR filter, that is, present output depends upon previous
outputs.
As mentioned in (10) difference equation used for generation of sinusoid used is:
) 1 ( ) 2 ( ) 1 ( ) ( + = n Cx n y n Ay n y
(7.2)
with initial conditions
A = 2 cos wt
C = sin wt
y(-1) = -sin wt
y(-2) = -sin 2WT
W = 2f and T = 1/F
s
For f = 1 kHz and F
s
= 8 kHz, so A = 1.414 and C = 0.707
If an impulse is applied at n = 1 so, x(0) = 1 and zero else where.
y(0) = Ay(-1) y(-2) + C x(0) = 2 cos wt * - sinWT + sin 2WT + 0 = 0
From Matlab simulation and CCS implementation it is observed that above difference equation
works satisfactory as sine wave generator as shown in fig 8.1 below:
8.1 Appendix A IIR Filter as Oscillator
PI/4 DQPSK Modem Implementation
Page | 45
(Figure 8.1 IIR filter working as an oscillator)
The poles of the above IIR filter are on unit circle as shown in fig 8.2 below:
PI/4 DQPSK Modem Implementation
Page | 46
(Figure 8.2 Pole Zero Plot)
Note: x denotes poles and o denotes zeros.
The mathematical proof is as under;
The transfer function of the IIR filter under above described conditions is
1 414 . 1
707 . 0
) (
2
+
=
z z
z
z H
(7.3)
By setting the denominator of above transfer function to be zero, the poles are found to be 0.707
j0.707. So the magnitude of pole is |z| = 1.
The author tried to change the phase of oscillator by introducing one more term to coefficients:
A = 2 cos (wT + phase)
C = sin (wT + phase)
It was expected that this constant phase term will change the phase of the oscillator but
simulations showed that it also affected the frequency and not the phase. So the idea was left out.
PI/4 DQPSK Modem Implementation
Page | 47
Phase Lock Loop
int main(void)
{
// Set codec frequency to 24 kHz
DSK6416_AIC23_setFreq(hCodec, DSK6416_AIC23_FREQ_24 KHZ );
while (1)
{
// Read sample from left channel
while (!DSK6416_AIC23_read(hCodec, &IN_L));
// Read sample from the right channel
while (!DSK6416_AIC23_read(hCodec, &IN_R));
t2 = t1 ; //storing previous sample
t1 = IN_L; //storing present sample
sine_val = (short) IN_L;
OUT_L = vco_inuse[j];
temp1 = sine_val*OUT_L; //generating error signal
temp1 = temp1 >> 15 ; //converting to Q15 format
mul = (short) temp1;
fir_out = fir_filter(mul); //takes FIR filtering of error signal
shift = numberofshift (fir_out); //calculates the shift based on FIR output
vco_phase_change(shift); //changes the phase of VCO
// Send output sample to the left channel
while (!DSK6416_AIC23_write(hCodec, OUT_L));
// Send output sample to the right channel
while (!DSK6416_AIC23_write(hCodec, OUT_R));
} //end while (1)
} //end main()
8.2 Appendix B Program Listing
PI/4 DQPSK Modem Implementation
Page | 48
Pi/4 DQPSK Modulator
void main(void)
{
// Set codec frequency to 96 kHz
DSK6416_AIC23_setFreq(hCodec, DSK6416_AIC23_FREQ_96 KHZ );
while (1)
{
//transmitting Training Seq and Data in form of periodic frame
PN_transmit();
Modulator ();
}
}
void Modulator ()
{
arr[0] = (input>>8) & 0x0003; //extracting dibit after trucating 8 LSBs
if ( arr[0] == 0 )
{ for (i=0; i<24; i++)
{
out = (short) (0.707*(-sine_table[i] - cosine_table[i]));
//normal QPSK modulation
}
}
//same procedure for 1, 2 or 3 dibit.
for (j = 1 ; j < (80*40) ; ) //Data Frame
{
arr[j] = (input >> shift) & 0x0003 ; //extracting dibit
//deciding what to transmit based on LUT
to_send_first = array_even[to_send_second][arr[j]] ;
if ( to_send_first == minus_sine )
{
for (i=0; i<24 ; i++)
out = -1*sine_table[i]; //transmission on IQ Axes
}
PI/4 DQPSK Modem Implementation
Page | 49
//same procedure repeated for sine, cosine, and minus cosine

j++;
// deciding what to transmit based on LUT
to_send_second = array_odd[to_send_first][arr[j]];

if ( to_send_second == 0 )
{
for (i=0; i<24; i++)
out = (short) (0.707*(-sine_table[i] - cosine_table[i]));
//QPSK modulation
}
// same procedure for 1, 2 or 3 valued dibit
}
}
Pi/4 DQPSK demodulator
void main(void)
{
while (1)
{

y = PN_detect();
//PN_detect checks for training sequence, works roughly same as demodulator but under hard
constraints
x = Demodulator();
}
}
int Demodulator(void)
{
for (i=0; i<24; i++) //performing correlation
{
temp1 = (input_hold[i] * cosine_table[i])>>15;
corr1[i] = (short) temp1;
sum1+=corr1[i];
PI/4 DQPSK Modem Implementation
Page | 50
temp2 = (input_hold[i] * sine_table[i])>>15;
temp2 = temp2 >> 15 ;
corr2[i] = (short) temp2;
sum2+=corr2[i];
}
//decoding dibit based on value of sum1 and sum2
if (sum1 > 0 && sum2 > 0)
received[0] = 3;
else if (sum1 > 0 && sum2<0)
received[0] = 1 ;
else if (sum1 < 0 && sum2>0)
received[0] = 2 ;
else if (sum1 < 0 && sum2<0)
received[0] = 0;
for (l=1; l < (80*40); l+=2)
{
temp = IQ_Detect(l) ; //fn to find out IQ value i.e dibit on IQ axis
//for IQ dibit either I=0 or Q=0
received[l] = array_even_decode[ temp1 ][ temp ]; //decoding using LUT.
temp1 = piby4(l+1) ; //fn to find out pi/4 values
received[l+1] = array_odd_decode[ temp ][ temp1 ]; // decoding using LUT.
}
}

Você também pode gostar