reformat README file as markdown

Change-Id: I7b2602fa1614cafcfb6e6c4fad0d15ba183b0d1d
This commit is contained in:
Harald Welte 2017-03-16 20:34:20 +01:00
parent 0ca867eda2
commit fcbb5b7692
1 changed files with 31 additions and 21 deletions

View File

@ -1,6 +1,7 @@
TETRA MAC/PHY layer experimentation code
========================================
(C) 2010-2016 by Harald Welte <laforge@gnumonks.org> and contributors
======================================================================
This code aims to implement the sending and receiving part of the
TETRA MAC/PHY layer.
@ -15,17 +16,21 @@ with this program.
You will need libosmocore (http://bb.osmocom.org/trac/wiki/libosmocore) to link.
== Demodulator ==
Demodulator
===========
src/demod/python/cpsk.py
* contains a gnuradio based pi4/DQPSK demodulator, courtesy of KA1RBI
* contains a gnuradio based pi4/DQPSK demodulator, courtesy of KA1RBI
src/demod/python/osmosdr-tetra_demod_fft.py
* call demodulator on any source supported by gr-osmosdr
(uhd, fcd, hackrf, blaerf, etc.)
* call demodulator on any source supported by gr-osmosdr
(uhd, fcd, hackrf, blaerf, etc.)
src/demod/python/simdemod2.py
* call demodulator on a 'cfile' containing complex baseband samples
* call demodulator on a 'cfile' containing complex baseband samples
src/demod/python/{uhd,fcdp}-tetra_demod.py
* use demodulator directly with UHd or FCDP hadware (no gr-osmosdr)
* use demodulator directly with UHd or FCDP hadware (no gr-osmosdr)
The output of the demodulator is a file containing one float value for each symbol,
containing the phase shift (in units of pi/4) relative to the previous symbol.
@ -34,37 +39,41 @@ You can use the "float_to_bits" program to convert the float values to unpacked
bits, i.e. 1-bit-per-byte
== PHY/MAC layer ==
PHY/MAC layer
=============
=== library code ===
library code
------------
Specifically, it implements:
lower_mac/crc_simple.[ch]
* CRC16-CCITT (currently defunct/broken as we need it for
non-octet-aligned bitfields)
* CRC16-CCITT (currently defunct/broken as we need it for
non-octet-aligned bitfields)
lower_mac/tetra_conv_enc.[ch]
* 16-state Rate-Compatible Punctured Convolutional (RCPC) coder
* 16-state Rate-Compatible Punctured Convolutional (RCPC) coder
lower_mac/tetra_interleave.[ch]
* Block interleaving (over a single block only)
* Block interleaving (over a single block only)
lower_mac/tetra_rm3014.[ch]
* (30, 14) Reed-Muller code for the ACCH (broadcast block of
each downlink burst)
* (30, 14) Reed-Muller code for the ACCH (broadcast block of
each downlink burst)
lower_mac/tetra_scramb.[ch]
* Scrambling
* Scrambling
lower_mac/viterbi*.[ch]
* Convolutional decoder for signalling and voice channels
* Convolutional decoder for signalling and voice channels
phy/tetra_burst.[ch]
* Routines to encode continuous normal and sync bursts
* Routines to encode continuous normal and sync bursts
phy/tetra_burst_sync.[ch]
=== Receiver Program ===
Receiver Program
----------------
The main receiver program 'tetra-rx' expects an input file containing a
stream of unpacked bits, i.e. 1-bit-per-byte.
=== Transmitter Program ===
Transmitter Program
-------------------
The main program conv_enc_test.c generates a single continuous downlinc sync
burst (SB), contining:
@ -77,7 +86,8 @@ Scrambling is set to 0 (no scrambling) for all elements of the burst.
It does not actually modulate and/or transmit yet.
== Quick example ==
Quick example
=============
# assuming you have generated a file samples.cfile at a sample rate of
# 195.312kHz (100MHz/512 == USRP2 at decimation 512)