OsmocomTETRA » History » Revision 2
Revision 1 (Anonymous, 02/19/2016 10:52 PM) → Revision 2/23 (laforge, 02/19/2016 10:52 PM)
= Osmocom TETRA MAC/PHY layer experimentation code Welcome to Trac 0.11.1 = This code aims Trac is a '''minimalistic''' approach to implement the sending '''web-based''' management of '''software projects'''. Its goal is to simplify effective tracking and receiving part handling of software issues, enhancements and overall progress. All aspects of Trac have been designed with the TETRA MAC/PHY layer. If single goal to '''help developers write great software''' while '''staying out of the way''' and imposing as little as possible on a team's established process and culture. As all Wiki pages, this page is editable, this means that you read can modify the ETSI EN 300 392-2 (TETRA V+D Air Interface), you will find contents of this code implementing page simply by using your web-browser. Simply click on the parts between "Edit this page" link at the MAC-blocks (called type-1 bits) and bottom of the bits that go to the DQPSK-modulator (type-5 bits). It is most useful to look at Figure 8.5, 8.6, 9.3 and 19.12 in conjunction with this program. You page. WikiFormatting will need [http://bb.osmocom.org/trac/wiki/libosmocore libosmocore] to link. == Demodulator == src/demod/python/cpsk.py * contains give you a gnuradio based pi4/DQPSK demodulator, courtesy detailed description of KA1RBI src/demod/python/tetra-demod.py * call demodulator on available Wiki formatting commands. "[wiki:TracAdmin trac-admin] ''yourenvdir'' initenv" created a 'cfile' new Trac environment, containing complex baseband samples src/demod/python/usrp1-tetra_demod.py * use demodulator in realtime with a USRP1 SDR src/demod/python/usrp2-tetra_demod.py * use demodulator in realtime with a USRP2 SDR The output default set of the demodulator is a file containing one float value for each symbol, containing the phase shift (in units of pi/4) relative wiki pages and some sample data. This newly created environment also contains [wiki:TracGuide documentation] to the previous symbol. help you get started with your project. You can use the "float_to_bits" program [wiki:TracAdmin trac-admin] to convert the float values configure [http://trac.edgewall.org/ Trac] to unpacked bits, i.e. 1-bit-per-byte better fit your project, especially in regard to ''components'', ''versions'' and ''milestones''. TracGuide is a good place to start. Enjoy! [[BR]] ''The Trac Team'' == PHY/MAC layer Starting Points == === library code === Specifically, it implements: lower_mac/crc_simple.[ch] * CRC16-CCITT (currently defunct/broken as we need it for non-octet-aligned bitfields) lower_mac/tetra_conv_enc.[ch] TracGuide -- Built-in Documentation * 16-state Rate-Compatible Punctured Convolutional (RCPC) coder lower_mac/tetra_interleave.[ch] * 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) lower_mac/tetra_scramb.[ch] * Scrambling lower_mac/viterbi*.[ch] * Convolutional decoder for signalling and voice channels phy/tetra_burst.[ch] * Routines to encode continuous normal and sync bursts phy/tetra_burst_sync.[ch] === Receiver Program === [http://trac.edgewall.org/ The main receiver program 'tetra-rx' expects an input file containing a stream of unpacked bits, i.e. 1-bit-per-byte. === Transmitter Program === The main program conv_enc_test.c generates a single continuous downlinc sync burst (SB), contining: Trac project] -- Trac Open Source Project * a SYNC-PDU as block 1 [http://trac.edgewall.org/wiki/TracFaq Trac FAQ] -- Frequently Asked Questions * a ACCESS-ASSIGN PDU as broadcast block * a SYSINFO-PDU as block 2 Scrambling is set to 0 (no scrambling) for all elements of the burst. It does not actually modulate and/or transmit yet. == Quick example == assuming you have generated a file samples.cfile at a sample rate of 195.312kHz (100MHz/512 == USRP2 at decimation 512) {{{ ./src/demod/python/tetra-demod.py -i /tmp/samples.cfile -o /tmp/out.float -s 195312 -c 0 ./src/float_to_bits /tmp/out.float /tmp/out.bits ./src/tetra-rx /tmp/out.bits }}} TracSupport -- Trac Support For a complete list of local wiki pages, see TitleIndex.