Inferensys

Glossary

Look-Up Table (LUT) Indexing

A method of implementing a memoryless predistorter by using the instantaneous input signal magnitude as an index to retrieve a complex gain correction factor from a pre-computed table.
Elegant overhead shot of a polished wooden communal table in a sun-drenched WeWork lounge, laptops and tablets displaying AI workflow dashboards, plants and pendant lights in background.
MEMORYLESS PREDISTORTION

What is Look-Up Table (LUT) Indexing?

A method of implementing a memoryless predistorter by using the instantaneous input signal magnitude as an index to retrieve a complex gain correction factor from a pre-computed table.

Look-Up Table (LUT) Indexing is a memoryless predistortion technique where the instantaneous magnitude of the complex baseband input signal directly addresses a pre-computed table of complex gain correction factors. The indexed value is applied to the input sample to compensate for the power amplifier's AM/AM and AM/PM nonlinearities, providing a computationally efficient linearization method for narrowband applications.

The LUT is populated during a calibration phase using extracted amplifier characteristics, mapping each input magnitude to its ideal inverse gain. While highly efficient for FPGAs due to simple addressing logic, this method assumes a memoryless system and cannot correct dynamic memory effects. Adaptive variants update table entries in real-time using feedback to track amplifier drift due to temperature or aging.

LUT INDEXING

Frequently Asked Questions

Core questions about implementing memoryless predistorters using magnitude-indexed look-up tables for real-time power amplifier linearization.

LUT indexing is a memoryless predistortion technique that uses the instantaneous magnitude of the complex baseband input signal as an address pointer to retrieve a pre-computed complex gain correction factor from a look-up table. The input IQ sample's envelope magnitude |x(n)| is quantized into discrete bins, each mapping to a specific complex-valued gain entry. This retrieved gain multiplies the original input sample to produce the predistorted output. The approach assumes the power amplifier's nonlinearity is static and memoryless, meaning the distortion depends only on the current input amplitude, not its history. LUT indexing is computationally efficient—requiring only magnitude calculation, table lookup, and complex multiplication—making it ideal for FPGA and ASIC implementations where deterministic latency and minimal resource utilization are critical.

MEMORYLESS PREDISTORTION

Key Characteristics of LUT Indexing

Look-Up Table indexing forms the computational backbone of memoryless digital predistortion, mapping instantaneous input magnitude to complex gain correction factors for real-time amplifier linearization.

01

Magnitude-Based Addressing

The instantaneous envelope magnitude |x(n)| of the complex baseband input signal serves as the direct index into the LUT. This one-dimensional mapping eliminates complex address calculations:

  • Uniform spacing: Table entries are evenly distributed across the input magnitude range
  • Non-uniform spacing: Entries are concentrated in regions of rapid gain variation (e.g., compression knee) for improved resolution
  • Address calculation: Index = floor(|x(n)| / step_size) for uniform tables

The magnitude-only addressing scheme assumes the PA's nonlinearity is memoryless and depends solely on instantaneous input power, making it suitable for narrowband applications where memory effects are negligible.

1-D
Addressing Dimension
< 10 ns
Typical Lookup Latency
02

Complex Gain Storage

Each LUT entry stores a complex-valued gain correction factor G(|x|) = G_I + jG_Q that multiplies the input sample to produce the predistorted output:

  • Gain magnitude: Compensates for AM-AM distortion (gain compression/expansion)
  • Gain phase: Compensates for AM-PM distortion (phase shift vs. input power)
  • Storage format: Typically 16-32 bits for I and Q components in fixed-point FPGA implementations

The predistorted output is computed as: y(n) = x(n) × G(|x(n)|) where G is retrieved from the table at the index corresponding to |x(n)|.

2×16-bit
Typical Entry Width
03

Interpolation Between Entries

To avoid quantization artifacts from finite table resolution, interpolation smooths the transition between adjacent LUT entries:

  • Linear interpolation: Computes G as a weighted average of two neighboring entries based on the fractional address
  • Cubic interpolation: Uses four neighboring points for smoother correction, at higher computational cost
  • No interpolation: Direct nearest-neighbor lookup, fastest but introduces stair-step distortion

Interpolation significantly reduces quantization noise in the predistorted signal, improving ACLR by 3-5 dB compared to un-interpolated lookup at the same table size.

04

Table Size vs. Linearity Trade-off

The number of LUT entries directly impacts both linearization performance and hardware resource utilization:

  • Small tables (64-128 entries): Minimal BRAM usage, faster adaptation, but coarser correction
  • Medium tables (256-512 entries): Good balance for most narrowband applications
  • Large tables (1024+ entries): Finer gain resolution, better ACLR, but increased memory footprint and slower coefficient updates

Typical FPGA implementations use 256-512 entries with linear interpolation, achieving ACLR improvements of 15-20 dB for memoryless PA characteristics while consuming minimal block RAM resources.

256-512
Optimal Entry Count
15-20 dB
Typical ACLR Improvement
05

Adaptive Table Update Mechanisms

LUT coefficients must adapt to track PA characteristic drift due to temperature, aging, and frequency changes:

  • Direct learning: Compares PA output to desired linear output, updates LUT entries using LMS or RLS algorithms
  • Indirect learning: First identifies PA model, then inverts it to populate the LUT
  • Selective updating: Only entries that were recently addressed are updated, reducing computation
  • Gain-based update rule: G_new = G_old - μ × e(n) × x*(n) / |x(n)|² where e(n) is the linearization error

Adaptation convergence time depends on the step size μ and signal statistics, typically requiring 10³-10⁴ samples per entry for stable convergence.

06

Limitations for Wideband Signals

LUT indexing assumes a memoryless nonlinearity, which breaks down for wideband signals where PA memory effects become significant:

  • Bandwidth threshold: Memory effects become non-negligible when signal bandwidth exceeds ~1% of the carrier frequency
  • Spectral regrowth asymmetry: Memoryless LUT cannot correct asymmetric IMD skirts caused by electrical and thermal memory
  • Mitigation approaches: Combine LUT with a linear FIR filter (Hammerstein structure) or migrate to memory polynomial DPD

For 5G NR signals with 100 MHz bandwidth at sub-6 GHz, pure LUT-based predistortion typically achieves only 5-10 dB ACLR improvement versus 15-20 dB for memory-capable models.

ARCHITECTURAL COMPARISON

LUT Indexing vs. Memory Polynomial DPD

Comparison of memoryless look-up table indexing against memory polynomial-based digital predistortion for power amplifier linearization

FeatureLUT IndexingMemory Polynomial DPDGeneralized Memory Polynomial

Memory Effect Compensation

Computational Complexity

Low (O(1) lookup)

Medium (O(M×K))

High (O(M×K + cross-terms))

Coefficient Count

256-4096 entries

M×K coefficients

M×K + M×M×K cross-terms

Adaptation Speed

Fast (direct update)

Moderate (LS/RLS solve)

Slow (large matrix inversion)

Linearization Bandwidth

Narrowband (< 20 MHz)

Wideband (20-100 MHz)

Ultra-wideband (> 100 MHz)

ACLR Improvement

8-12 dB

15-20 dB

18-25 dB

Hardware Resource Usage

Minimal (BRAM/registers)

Moderate (DSP slices + BRAM)

High (significant DSP + memory)

Sensitivity to PA Aging

High (requires full table update)

Moderate (coefficient retraining)

Low (robust to parameter drift)

Prasad Kumkar

About the author

Prasad Kumkar

CEO & MD, Inference Systems

Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.

His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.