Field Guide · technology

Also known as: EVRC

EVRC (Enhanced Variable Rate Codec) is a variable-rate speech coder based on ACELP that carries voice on CDMA2000 and earlier IS-95 cellular networks.1 Standardised by the TIA as IS-127 and adopted by 3GPP2, it replaced the older QCELP coder and was tuned to exploit CDMA’s soft-capacity property: by dropping to a lower rate during pauses and quieter speech, it frees channel capacity that other users’ signals can occupy, increasing the number of simultaneous callers a cell can hold.

fullhalf1/8full1/8 speechonsetsilencespeechsilence rate chosen per 20 ms frame → lower rate returns capacity to the CDMA cell
EVRC varies its coding rate frame by frame with voice activity, saving CDMA cell capacity during silence.

How it works

EVRC is a linear-prediction, analysis-by-synthesis coder in the CELP family, specifically the algebraic-codebook variant ACELP. Each 20 ms frame it fits a short-term LPC filter for the vocal-tract spectrum, an adaptive codebook for the pitch (long-term) prediction, and searches a sparse algebraic fixed codebook for the excitation that best reconstructs the frame through those filters. Only the LPC coefficients, pitch lag and codebook indices are sent.

What distinguishes EVRC is its rate-selection front end:

  • A rate-determination algorithm classifies each frame by voice activity and chooses full rate (~8.5 kbps) for active speech, half rate (~4 kbps) for transitions and lower-energy voiced sound, or eighth rate (~0.8 kbps) for background noise and silence.
  • Full and half rate use the full ACELP model; eighth rate sends only a coarse spectral and gain description to synthesise comfort noise, so silence costs almost nothing.
  • The coder includes noise suppression and echo-handling preprocessing suited to the handset environment.

Later members of the family widened its reach: EVRC-B added more rate options and better quality, and EVRC-WB extended it to wideband (16 kHz) audio for higher fidelity, all keeping the same variable-rate structure.

Relevance to SDR

EVRC is a cellular telephony vocoder, tightly bound to the CDMA physical layer rather than to land-mobile trunking. It matters to SDR as the voice codec that rode on top of CDMA2000/CDMA spreading — the reason those networks could pack many voice users into one carrier was the interplay between CDMA’s soft capacity and EVRC’s silence-driven rate reduction. It is not part of the P25/DMR/NXDN/TETRA world that GopherTrunk decodes; those systems use the MBE vocoder family, not ACELP. Recovering EVRC voice would also mean demodulating and de-spreading an encrypted commercial cellular link, which is outside GopherTrunk’s scope. GopherTrunk does not implement EVRC. It is included here to place the variable-rate ACELP branch of the vocoder family tree alongside the radio vocoders GT actually handles.

Sources

  1. Enhanced Variable Rate Codec — Wikipedia, on the variable-rate ACELP speech coder used across CDMA/CDMA2000 networks. 

See also