Field Guide · term

Also known as: BSCH, SCH/F, SCH/HD, SCH/HU, TETRA signalling channels

The TETRA logical channels are the named control-plane bearers a TETRA downlink carries — the broadcast, common-control and dedicated-signalling channels that ride inside its slots.1 Each channel is defined by a pair of sizes: how many type-1 information bits it accepts and how many type-5 on-air bits they become after channel coding. A receiver that knows those sizes and the coding chain can invert the chain and recover the bits, which are then a MAC PDU for the upper layers to parse.

type-1K1 info +CRC16+tail → type-2 RCPC 2/3→ type-3 interleave→ type-4 scrambletype-5 K3 BSCH 60→120 · SCH/HD 124→216 · SCH/HU 92→168 · SCH/F 268→432 AACH 14→30 is the exception: RM(30,14) block code, no RCPC or interleave
Every SCH-family channel runs the same four-stage chain — CRC, RCPC, interleave, scramble — differing only in its block sizes; the AACH is the exception, using a Reed–Muller block code instead.

The channels

Channel Type-1 → type-5 Role
BSCH 60 → 120 Broadcast Synchronisation Channel — the MAC SYNC that carries colour code, slot/frame numbering and the network identity used to seed the scrambler
SCH/HD 124 → 216 Signalling Channel / Half slot Downlink — dedicated downlink signalling
BNCH 124 → 216 Broadcast Network Channel — SYSINFO / network-broadcast (same coding as SCH/HD)
STCH 124 → 216 Stealing Channel — signalling that steals a traffic half-slot (same coding as SCH/HD)
SCH/HU 92 → 168 Signalling Channel / Half slot Uplink — random-access uplink signalling
SCH/F 268 → 432 Signalling Channel / Full slot — the full-slot signalling bearer, one MAC PDU per slot
AACH 14 → 30 Access Assignment Channel — RM(30,14), not the SCH chain

The coding chain

Except for the AACH, every one of these channels runs the same four stages, §8.3.1:

  1. CRC-16. A 16-bit CRC is appended over the K1 information bits (the (K1+16, K1) block code of §8.2.3.3). It is the standard CRC-CCITT — polynomial 0x1021, initial fill 0xFFFF, final XOR 0xFFFF — and is the gate a receiver uses to accept or reject each recovered block.
  2. Tail + RCPC. Four zero tail bits flush the encoder, and the RCPC code — a K=5 rate-1/4 mother convolutional code punctured to rate 2/3 — expands the type-2 bits to type-3 at a 3∶2 ratio.
  3. Interleaving. A block interleaver permutes the type-3 bits to type-4, spreading a burst of channel errors across the codeword so the Viterbi decoder sees them as scattered.
  4. Scrambling. The scrambler XORs a colour-code-seeded PN sequence over the bits to produce type-5. The BSCH is a special case: it is always scrambled with colour code 0 (§8.2.5.2) so a cold receiver with no configuration can decode it, then read the network identity it needs to form the extended colour code for every other channel.

GopherTrunk decodes each channel both hard-decision and soft-decision; the soft-input Viterbi recovers roughly 1.5–2 dB the hard slicer discards, which matters most on the longer SCH/F block where a marginal constellation accumulates more symbol errors before the CRC gate.

Relevance to SDR

internal/radio/tetra/channel_coding.go implements the whole set as EncodeBSCH / DecodeBSCH, EncodeSCHHD / DecodeSCHHD (also used for BNCH and STCH), EncodeSCHHU / DecodeSCHHU, and EncodeSCHF / DecodeSCHF, each with a …Soft twin, all composed from the shared signalingEncode / signalingDecode helpers plus the framing primitives. The BSCH decode is the bootstrap: sync_pdu.go parses its 60 bits into the SyncPDU whose MCC, MNC and colour code form the extended colour code that unlocks BNCH, SCH/HD and SCH/F, so getting the BSCH’s colour-0 rule right is what lets everything else on the cell decode without operator configuration.

Sources

  1. Terrestrial Trunked Radio — Wikipedia, on the TETRA logical-channel structure. 

See also