32 lines
1.4 KiB
Plaintext
32 lines
1.4 KiB
Plaintext
|
|
(C) Copyright 2010, KA1RBI
|
|
|
|
This package contains implementations for a number of loosely related
|
|
GR blocks and related utilities including:
|
|
- improved ctcss squelch block
|
|
- general pipe block (gr seems to fight this)
|
|
- p25 framer / assembler block
|
|
- fsk4 slicer with settable decision points
|
|
- Combined Gardner/Costas loop block
|
|
- RS and BCH routines
|
|
|
|
-------------------------------------------------------------------------
|
|
|
|
Two key internal interfaces are used throughout the system:
|
|
|
|
1. 88-bit IMBE voice codewords (input to Pavel's decoder and output by the
|
|
encoder; also referred to as the u[] vectors) are represented as printable
|
|
"hex" strings of the format
|
|
"%03x %03x %03x %03x %03x %03x %03x %03x\n" (each string is 32 bytes)
|
|
When sent via UDP, the nine voice codewords (from the LDU1/2) result in a
|
|
packet payload size of 288 (9 * 32).
|
|
|
|
2. The "wireshark" packet interface: P25 frames are sent as packed bytes,
|
|
four symbols (8 bits) per byte, one UDP packet per P25 frame. The P25
|
|
frame sync (FS) is aligned starting at data offset zero of each UDP packet,
|
|
occupying the first six bytes. Example: total data length of voice packets
|
|
= 216 bytes (864 symbols * 0.25 bytes/symbol). All decoded symbol dibits
|
|
(including status symbols) are included. When unpacked into symbols (dibits)
|
|
this format is the 4800 baud stream that would be applied to a FM/PSK
|
|
modulator stage or would be as received out of a FSK4 decoder/slicer.
|