Also known as: EMB, embedded signalling header
The DMR EMB (Embedded signalling header) is the 16-bit control word that frames the signalling carried inside the 48-bit sync field of voice bursts B–F.1 A voice burst has no room for a separate signalling channel, so DMR reuses the central field: 16 EMB bits, split into an 8-bit half at each end, wrap a 32-bit fragment in the middle. The EMB itself carries three things — the 4-bit Color Code, a 1-bit PI (privacy/encryption indicator), and the 2-bit LCSS that marks where the enclosed fragment sits within a longer message — and is nominally protected by a QR(16,7,6) quadratic-residue code.2
Fields and LCSS
GopherTrunk reads the EMB systematically in internal/radio/dmr/emb.go. Within the 16-bit word
(MSB-first) the Color Code is bits 15–12, PI is bit 11, and LCSS is bits 10–9; the remaining bits
are spare. The LCSS (Link Control Start/Stop) is what turns four separate fragments into one
message:
| LCSS | Bits | Meaning |
|---|---|---|
| Single | 00 |
single-fragment payload — a Reverse Channel word or the null idle |
| First | 01 |
first fragment of a Full Link Control (burst B) |
| Continuation | 11 |
continuation fragment (bursts C, D) |
| Last | 10 |
last fragment of a Full LC (burst E) |
SplitEmbeddedField takes the 48-bit field (one bit per byte, MSB-first) and returns the decoded
EMB plus the 32-bit fragment; AssembleEmbeddedField is its inverse for building synthetic
streams. A First → Continuation → Continuation → Last sequence across bursts B–E signals a
four-fragment embedded Link Control; a Single fragment is handled
on its own.
Impl-gap: QR(16,7) not applied
The ETSI spec protects the 7 EMB information bits with a QR(16,7,6) code. GopherTrunk does not
apply it. The EMB bits are read systematically, and integrity is enforced downstream rather
than at the EMB: the four-fragment embedded LC block has its own
BPTC(128,72) + 5-bit checksum, and a single RC fragment is gated by the caller’s LCSS framing plus
a null/idle rejection. This mirrors the capture-pending posture documented for the other embedded
FEC layers (see emb.go and docs/status.md) — the QR check is a natural follow-up but is not on
the critical path while the BPTC/CRC layers are the integrity gate.
Relevance to SDR
The EMB is what makes DMR’s in-band signalling usable to a downlink scanner. Reading it on every voice burst is how GopherTrunk knows a Color Code (a second, per-burst confirmation of the system identity from the slot type), whether the traffic is encrypted (PI), and — via LCSS — how to route each 32-bit fragment: accumulate it toward a Full LC, or decode it as a Reverse Channel word. The voice superframe decoder drives all of this from bursts B–E, so the EMB sits directly on the path from raw voice dibits to a labelled talkgroup call.
Sources
-
Digital mobile radio — Wikipedia, on the DMR standard and its embedded voice-burst signalling. ↩
-
Quadratic residue code — Wikipedia, on the QR code family the EMB’s nominal FEC belongs to. ↩