if applicable and creates confirmation (CONF) or indication
(IND) messages for the layer above.
During the searching BCH state the involved handles oper-
ate on consecutive samples, as there is no information about
the GSM timing available. This streaming based operation
is applied for the synchronization procedure and the power
measurements (c.f., the example shown in Figure 5). After
synchronization in frequency and time (in BCH state) the
execution is frame based as depicted in Figure 4.
Fig. 4. Frame based execution on the physical layer in dedicated mode.
The complex signal processing algorithms do not run fast
enough in Matlab to be executed in real time as required for
the physical layer implementation. As timing is essential in
GSM, we have implemented a TPU in phydev that emulates the
four specified GSM timebase counters. This TPU allows the
simulation of the timing between execution of primitives, L1
controller procedures, and communication with higher layers.
More specifically, handles are called according to the TPU
counter states. For each call, the counters are increased by
the number of samples the corresponding primitive function
processes. The corresponding L1CTL messages are generated
and transmitted to OsmocomBB.
B. Primitive Functions
To ensure that the execution of operations on I/Q samples is
carried out at the right time, functions which provide a result
after a predefined number of samples are necessary. To this
end, functions that process a fixed number of I/Q samples are
implemented in phydev, referred to as primitive functions. The
number of samples to be processed and other primitive-specific
parameters are input arguments of the functions. The output of
a primitive function is processed by the corresponding handle
and forwarded to the L1 controller. The signal processing
blocks represent entities as typically implemented as accel-
erator blocks or on the baseband processor, such as channel
equalization, digital filtering stages or correlations. In addition
to the primitive functions, auxiliary functions (auxiliaries) for
common RF transceiver operations like RF power control or
oscillator tuning (DCXO
tune) are provided.
In the following the main primitives and related signal
processing blocks are explained in detail.
1) Power Measurements (PM
meas): Mobile stations for
GSM have to measure the received signal power on all possible
GSM carriers after power on, as well as the received signal
power of the beacon carrier transmitted by surrounding base
stations during operation. These tasks can be performed with
the PM
meas primitive function. The input arguments of
PM
meas are the number of samples to be processed and
the absolute radio frequency channel number (ARFCN). The
output of PM
meas (RMS LEVEL) is the RMS power in
dBm computed over the amount of processed samples. The
L1CTL
PM REQ-handle maps the result to an integer value
RX
LEV and computes the running average according to the
GSM specifications in [8].
2) Frequency burst detection (FB
det): The first synchro-
nization step after the initial power measurements in the
cell search procedure is the detection of the frequency burst
(FB) on the beacon carrier, which is broadcast approx. every
47 ms. The FB is transmitted as a complex sinusoid, what
enables a variety of detection strategies at receiver side. In
this framework FB detection is performed according to [9],
where the predictability of a complex sinusoid is exploited. By
calling the FB
det primitive function, this detection algorithm
is computed on the samples to be processed given as input
arguments. The instance of time of the last successful FB
det
primitive call gives a coarse timing estimate which is used in
SB
synch.
3) Carrier frequency offset estimation (FB
est): Carrier
frequency estimation is crucial during cell search, but also
during normal operation. In our framework the carrier fre-
quency offset is estimated from the FB’s complex sinusoid by
using the T&F estimator from [10], where a correlation based
estimator is used. This approach has a significantly lower
computational complexity when compared to, e.g., costly
periodogram-based estimators. By calling the FB
est primitive
function, this carrier frequency offset estimation algorithm is
executed by processing the number of samples specified as
input arguments. The output of FB
est is the estimated carrier
frequency offset.
4) Synchronization burst detection (SB
synch): After syn-
chronization in frequency has been achieved, timing synchro-
nization needs to be performed. In GSM the detection of the
synchronization burst (SB) which is also broadcast on the
beacon carrier allows precise synchronization in time. A coarse
timing estimate is already provided by the FB detection and
given as input argument to the SB
synch primitive function.
Thus, the SB detection needs only to be performed on the
part of the received samples, which has been identified by the
coarse synchronization as SB. Finally, the position of the 64
bit extended training sequence of the SB is detected accurately
by performing a correlation between the received signal and
the known training sequence.
5) Synchronization burst demodulation (SB
demod): Some
of the GSM system information is transmitted on the SB
and needs to be extracted during the cell search procedure.
Demodulation of the symbols on the SB is performed with the
primitive function SB
demod, which is similar to NB demod
for the demodulation of symbols on a normal burst (NB),
which is explained in more detail in the next paragraph.
Different training sequence lengths of SB and NB require two
separate primitive functions.