Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Osmocom TETRA MAC/PHY experimentation code; Mirrored fromhttps://gitea.osmocom.org/tetra/osmo-tetra

License

NotificationsYou must be signed in to change notification settings

osmocom/osmo-tetra

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

(C) 2010-2016 by Harald Weltelaforge@gnumonks.org and contributors

This code aims to implement the sending and receiving part of theTETRA MAC/PHY layer.

If you read the ETSI EN 300 392-2 (TETRA V+D Air Interface), you willfind this code implementing the parts between the MAC-blocks (calledtype-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 conjunctionwith this program.

You will needlibosmocoreto build this softwar

Homepage

The official homepage of the project ishttps://osmocom.org/projects/tetra/wiki/OsmocomTETRA

GIT Repository

You can clone from the official osmo-tetra.git repository using

git clone https://gitea.osmocom.org/tetra/osmo-tetra

There is a web interface athttps://gitea.osmocom.org/tetra/osmo-tetra

Mailing List

Discussions related to osmo-tetra are happening on thetetra@lists.osmocom.org mailing list, please seehttps://lists.osmocom.org/mailman/listinfo/tetra for subscriptionoptions and the list archive.

Please observe theOsmocom Mailing ListRuleswhen posting.

Contributing

Our coding standards are described athttps://osmocom.org/projects/cellular-infrastructure/wiki/Coding_standards

We us a gerrit based patch submission/review process for managingcontributions. Please seehttps://osmocom.org/projects/cellular-infrastructure/wiki/Gerrit formore details

The current patch queue for osmo-tetra can be seen athttps://gerrit.osmocom.org/#/q/project:osmo-tetra+status:open

Demodulator

src/demod/python/cpsk.py

  • 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.)

src/demod/python/simdemod2.py

  • 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)

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 unpackedbits, 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 fornon-octet-aligned bitfields)lower_mac/tetra_conv_enc.[ch]
  • 16-state Rate-Compatible Punctured Convolutional (RCPC) coderlower_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 ofeach downlink burst)lower_mac/tetra_scramb.[ch]
  • Scramblinglower_mac/viterbi*.[ch]
  • Convolutional decoder for signalling and voice channelsphy/tetra_burst.[ch]
  • Routines to encode continuous normal and sync burstsphy/tetra_burst_sync.[ch]

Receiver Program

The main receiver program 'tetra-rx' expects an input file containing astream of unpacked bits, i.e. 1-bit-per-byte.

Transmitter Program

The main program conv_enc_test.c generates a single continuous downlinc syncburst (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 0src/float_to_bits /tmp/out.float /tmp/out.bitssrc/tetra-rx /tmp/out.bits

[8]ページ先頭

©2009-2025 Movatter.jp