kantooon / osmo-tetra Goto Github PK
View Code? Open in Web Editor NEWLicense: GNU Affero General Public License v3.0
License: GNU Affero General Public License v3.0
TETRA MAC/PHY layer experimentation code (C) 2010-2011 by Harald Welte <[email protected]> ====================================================================== This code aims to implement the sending and receiving part of the TETRA MAC/PHY layer. If you read the ETSI EN 300 392-2 (TETRA V+D Air Interface), you will find this code implementing the parts between the MAC-blocks (called type-1 bits) and 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 will need libosmocore (http://bb.osmocom.org/trac/wiki/libosmocore) to link. == Demodulator == src/demod/python/cpsk.py * contains a gnuradio based pi4/DQPSK demodulator, courtesy of KA1RBI src/demod/python/tetra-demod.py * call demodulator on a 'cfile' 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 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. 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 == === 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] * 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 === 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: * a SYNC-PDU as block 1 * 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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.