21modulation v110
21modulation v110
Chapter 21
Frequency Modulation
GMSK Modulation
Copyright 2003 Texas Instruments. All rights reserved.
Learning Objectives
ESIEE, Slide 2
Copyrigh
Digital Modulations
ESIEE, Slide 3
Copyrigh
Digital Modulation
ESIEE, Slide 4
Copyrigh
Carrier Frequency
ESIEE, Slide 5
Digital Modulation
Multicarrier Modulation
ESIEE, Slide 6
Copyrigh
S x (f) 1 S z (f fc ) S z (f fc ).
2
Sx(f) = Power spectral density of x(t)
ESIEE, Slide 7
Copyrigh
X(f)
Xa(f)
Z(f)
ESIEE, Slide 8
Copyrigh
GMSK Modulation
ESIEE, Slide 9
ESIEE, Slide 10
T = bit duration
B = 3dB Bandwidth of the shaping filter
BT = 0.3 for GSM
BT = 0.5 for DECT
Copyrigh
(t ) 2 h
a s( kT )d
ESIEE, Slide 11
1
s( )d 2
Copyrigh
q (t )
s( )d .
(t ) 2 hq(t ) 2 h s ( )d .
For t nT , (n 1)T
(t ) 2 h ak q(t kT )
a (t kT )
ESIEE, Slide 12
Copyrigh
a s t kT
a t kT
Bits ak
x(t )
VCO
h( t )
r (t )
Coder
s (t ) r (t ) * h(t )
cos 2 f ct
Coder
Bits ak
s(t )
s(t ) r (t ) * h(t )
ESIEE, Slide 13
cos()
2 h
a t kT
(t )
sin 2 f ct
+
-
x (t )
sin()
Copyrigh
ln(2) 2
H ( f ) exp
f
2
2B
ESIEE, Slide 14
Copyrigh
0.5
BTb 0,5
BTb 0,3
0.4
(t )
1.6
/2
BT b
1.4
1.2
BT
BT
0 .5
0 .3
0.8
0.3
0.6
0.2
0.4
0.1
0
0.2
-2
-1
-2
-1
ESIEE, Slide 15
Copyrigh
GMSK Signals
1
Binary sequence
0
-1
1
10
15
20
(t )
in rd
z I ( t ) cos ( t )
10
15
20
0
-5
1
10
15
20
0
-1
1
10
15
20
z Q ( t ) sin ( t ) 0
-1
ESIEE, Slide 16
t
0
10
15
20
Copyrigh
ESIEE, Slide 17
0.5
1.5
2
2.5
3
Frequency normalized by 1/T
3.5
Copyrigh
f inst h ak s ( kT ).
k
ESIEE, Slide 18
Copyrigh
ESIEE, Slide 19
Copyrigh
ESIEE, Slide 20
Copyrigh
Baseband components
z I (t ) cos (t )
zQ (t ) sin (t )
CarrierQ sin 2 f ct
ESIEE, Slide 21
Copyrigh
ESIEE, Slide 22
(t )
a (mT
a (t kT ).
kT ).
Copyrigh
(t ) 2 h s ( )d
(t ) 0 t 0
(t ) h t LT
ESIEE, Slide 23
Copyrigh
function [phi,s]=pul_phas(T_over_Ts,L,BT,T)
Ts=T/ T_over_Ts ;
% calculates the number of samples in phi in the interval 0 - LT
Nphi=ceil(T_over_Ts*L);
% calculates the number of samples in T
Nts=ceil(T_over_Ts);
Open Matlab
routine
pul_phas.m
phi=zeros(1,Nphi);
s=zeros(1,Nphi);
sigma=sqrt(log(2))/2/pi/(BT/T)
ESIEE, Slide 24
Copyrigh
t=[-L*T/2:Ts:L*T/2];
t=t(1:Nphi);
ta=t+T/2;
tb=t-T/2;
Qta=0.5*(ones(1,Nphi)+erf(ta/sigma/sqrt(2)));
Qtb=0.5*(ones(1,Nphi)+erf(tb/sigma/sqrt(2)));
expta=exp(-0.5*((ta/sigma).^2))/sqrt(2*pi)*sigma;
exptb=exp(-0.5*((tb/sigma).^2))/sqrt(2*pi)*sigma;
phi=pi/T/2*(ta.*Qta+expta-tb.*Qtb-exptb);
s=1/2/T*(Qta-Qtb);
ESIEE, Slide 25
Copyrigh
Start Matlab
Use:
[phi,s]=pul_phas(T_over_Ts,L,BT,T)
ESIEE, Slide 26
T_over_Ts=8
L=4
T=1
BT=0.3
plot(phi)
plot(s)
Copyrigh
ESIEE, Slide 27
Copyrigh
Phi=
[0.0001,
0.0062, 0.0127,
0.1884, 0.2740,
0.9299, 1.0672,
1.4945, 1.5262,
1.5696, 1.5703,
ESIEE, Slide 28
0.0002, 0.0005,
0.0246, 0.0446,
0.3798, 0.5036,
1.1910, 1.2968,
1.5462, 1.5581,
1.5706]
0.0012,
0.0763,
0.6409,
1.3824,
1.5646,
0.0028,
0.1231,
0.7854,
1.4476,
1.5680,
Copyrigh
Calculation of
Separation of evolutive and constant
parts of phi.
n L
a (t kT ) a (t kT )
k n L 1
ak (t kT ) with:
(t ) 0 t 0
h
(t ) h t LT
2
n
n
n L
(t ) ak ak (t kT ) phimem( n) ak (t kT )
2 k
k n L 1
k n L 1
ESIEE, Slide 29
Copyrigh
phimem( n) phimem( n 1) a( n L) .
2
(t ) phimem(n)
k n L 1
ak (t kT )
t mTS
(mTS ) phimem(n)
ESIEE, Slide 30
k n L 1
ak (mTS kT )
Copyrigh
Recursive Calculation of
Names of variables
Phase =
phi = array of evolutive part of ,
2 calculation steps:
ESIEE, Slide 31
Calculate
Calculate zI=cos( ) and zQ=sin( ) by table
reading
Copyrigh
Calculation of : Initialization
Initialization step:
ESIEE, Slide 32
phase((i-1)Ns+j)= phase((i-1)Ns+j)+phi(j)an(i)
Endfor
endFOR
phimem=an(1) /2
Copyrigh
FORi=L+1tolast_bit
Forj=(i1)Ns+1toj=(i1)Ns+Nphi
endFor
Forj=(i1)Ns+1toj=iNs
ESIEE, Slide 33
phase((i1)Ns+j)=phase((i1)Ns+j)+phi(j)an(i)
phase((i1)Ns+j)=phase((i1)Ns+j)+phimem
xi=cos(phase(i1)Ns+j)
xq=sin(phase((i1)Ns+j)
endFor
phimem=phimem+pi/2an(i+1L)
endFOR
Copyrigh
Thephasevaluein[ , [isrepresented
bythe16bitnumberIphase
2 phase
Iphase
ESIEE, Slide 34
Copyrigh
ESIEE, Slide 35
Copyrigh
Coding of phi
phi
ESIEE, Slide 36
phi= round(phi*2^15/pi);
.ref phi
.sect "phi"
.word 1,2,5,13,29,65,133,256
.word 465,795,1284,1965,2858,3961,5252,6685
.word 8192,9699,11132,12423,13526,14419,15100,15589
.word 15919,16128,16251,16319,16355,16371,16379,16382
Copyrigh
ESIEE, Slide 37
N cos N cos
i
,
1
2
2
deb_cos=firstaddressofthetable
mid_cos=addressofthetablemiddle
cos( i)isataddressmid_cos+i
Copyrigh
Wrappingphasein[ , [
Donebyamacro:testa02pi
ESIEE, Slide 38
- et , phase is in ACCU A
;
;
;
;
sub -2^(15)
test if phase is in [0,2pi[
sub -2^(15)
SUB -2^(15)
; add -2^(15)
; add -2^(15)
; add -2^(15)
; end of test
Copyrigh
ESIEE, Slide 39
Copyrigh
an=[ 0 1 1 0 0 1 0 1 0 0]
These bits are stored in a circular buffer:
Size NB = 10
Declaration of a section bits aligned on an
address which is a multiple of 16 bits.
AR5
deb_bit
NB
an
ESIEE, Slide 40
Copyrigh
AR1
1000
ESIEE, Slide 41
Copyrigh
AR3
phi
AR4
Nphi
phi
ESIEE, Slide 42
Nphi
phase
Copyrigh
debut,boucle
deb_cos, phi
deb_phase
resu
32
-32
4
128
64
32
10
8
resu,1000
Copyrigh
ESIEE, Slide 44
Copyrigh
Copyrigh
ESIEE, Slide 46
Copyrigh
ESIEE, Slide 47
; output of NS values
; and reset at 0 of NS words
#NB, BK
*AR5+%
#Nphi,BK
Ldeb, *AR6-
Copyrigh
ESIEE, Slide 48
Copyrigh
ESIEE, Slide 49
Copyrigh
ESIEE, Slide 50
Copyrigh
ESIEE, Slide 51
Copyrigh
File tabcos.asm
deb_cos
mid_cos
ESIEE, Slide 52
.def deb_cos,mid_cos
.sect "tab_cos"
.word -16384,-16364,-16305,-16207,-16069,-15893,-15679,-15426
.word -15137,-14811,-14449,-14053,-13623,-13160,-12665,-12140
.word -11585,-11003,-10394,-9760,-9102,-8423,-7723,-7005
.word -6270,-5520,-4756,-3981,-3196,-2404,-1606,-804
.word 0,804,1606,2404,3196,3981,4756,5520
.word 6270,7005,7723,8423,9102,9760,10394,11003
.word 11585,12140,12665,13160,13623,14053,14449,14811
.word 15137,15426,15679,15893,16069,16207,16305,16364
.word 16384,16364,16305,16207,16069,15893,15679,15426
.word 15137,14811,14449,14053,13623,13160,12665,12140
.word 11585,11003,10394,9760,9102,8423,7723,7005
.word 6270,5520,4756,3981,3196,2404,1606,804
.word 0,-804,-1606,-2404,-3196,-3981,-4756,-5520
.word -6270,-7005,-7723,-8423,-9102,-9760,-10394,-11003
.word -11585,-12140,-12665,-13160,-13623,-14053,-14449,-14811
.word -15137,-15426,-15679,-15893,-16069,-16207,-16305,-16364
.set deb_cos+64
Copyrigh
ESIEE, Slide 53
(infinite loop)
Copyrigh
ESIEE, Slide 54
Copyrigh
ESIEE, Slide 55
STLM
NOP
NOP
LD
STL
ST
BANZ
B,AR1
STM
MAR
STM
#NB, BK
*AR5+%
#Nphi,BK
*AR1,A
A,DXR1
#0,*AR3+%
nsbouc,*AR7-
Copyrigh
ESIEE, Slide 56
Copyrigh
Copyrigh
ESIEE, Slide 58
Copyrigh
Generation of:
ESIEE, Slide 59
ESIEE, Slide 60
Copyrigh
ESIEE, Slide 61
|dfc|<2-17fS.
Implementation on a C54x
We use: fs/fc=8=Ns.
The cosine table has 128 Values in Q14.
deb_cos
AR1
128
Cosine
values
ESIEE, Slide 62
Copyrigh
Implementation on a C54x
ESIEE, Slide 63
Copyrigh
ESIEE, Slide 64
File porteuse.asm
A file associated with DXR0 and DXR1
is used to save visual results obtained
with the CCS simulator.
Here cosine table goes from:
ESIEE, Slide 65
0 to 2
Copyrigh
ESIEE, Slide 66
Copyrigh
ESIEE, Slide 67
Copyrigh
ESIEE, Slide 68
Copyrigh
Tutorial
ESIEE, Slide 69
Copyrigh
Further Activities
ESIEE, Slide 70
Copyrigh