Project

General

Profile

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. 
 
Add picture from clipboard (Maximum size: 48.8 MB)