A Complex-Gain LUT is a memory-based predistortion structure where each table entry holds a single complex number representing both magnitude expansion and phase rotation. Unlike separate AM-AM and AM-PM correction tables, the complex-gain approach applies a unified I + jQ multiplication to the input signal, simultaneously compensating for gain compression and phase distortion in one operation. This architecture is the most common implementation in modern digital predistortion systems due to its computational efficiency.
Glossary
Complex-Gain LUT

What is Complex-Gain LUT?
A Complex-Gain LUT is a predistortion table architecture that stores a single complex-valued coefficient per entry to simultaneously correct both amplitude and phase distortion in a power amplifier.
During operation, the instantaneous input signal envelope indexes the table, and the retrieved complex coefficient is multiplied with the original signal sample. Adaptation algorithms such as LMS or RLS update these complex entries by correlating the error between the desired and actual amplifier output. The complex-gain structure inherently handles the interaction between amplitude and phase nonlinearities, making it particularly effective for Doherty amplifiers and GaN-based PAs where AM-PM conversion is significant.
Key Characteristics of Complex-Gain LUTs
A Complex-Gain LUT stores a single complex-valued coefficient per entry, simultaneously correcting both amplitude (AM-AM) and phase (AM-PM) distortion in a power amplifier with a unified memory structure.
Unified AM-AM and AM-PM Correction
Unlike dual-table architectures that separate gain and phase correction, a Complex-Gain LUT stores a single complex coefficient (I + jQ) per index. This inherently couples amplitude expansion with phase rotation, matching the physical behavior of power amplifiers where compression and phase shift occur simultaneously. The complex multiplication applies both corrections in one operation, reducing computational latency in the predistortion path.
Memory Addressing by Instantaneous Envelope
The LUT is indexed by the instantaneous input signal magnitude (|x(n)|) or squared magnitude (|x(n)|²). A quantizer maps the continuous envelope value to a discrete address. Key design parameters include:
- LUT Granularity: Spacing between adjacent entries
- Addressing Range: Normalized to the signal's peak-to-average ratio
- Non-Uniform Spacing: Higher density in compression regions for improved accuracy
Complex Multiplication in the Predistortion Path
The predistorter applies correction via a single complex multiply: x_pd(n) = x(n) × LUT(|x(n)|). This operation:
- Scales the magnitude to counteract gain compression
- Rotates the phase to cancel AM-PM conversion
- Preserves the original signal's spectral characteristics when properly converged Hardware implementations often use a single complex multiplier in the transmit datapath.
Adaptation via Complex Error Minimization
Coefficients are updated using the complex error signal between the desired output and the attenuated PA feedback. Common adaptation algorithms include:
- Complex LMS: Updates each entry proportionally to the conjugate of the error
- Complex RLS: Provides faster convergence at higher computational cost
- Secant-based methods: For direct inverse estimation without explicit model extraction The adaptation rate must balance tracking speed against steady-state noise.
Interpolation for Quantization Error Reduction
To mitigate LUT quantization error, interpolation between adjacent entries is employed. Common techniques:
- Linear interpolation: Simple, low-latency, sufficient for smooth nonlinearities
- Cubic interpolation: Higher accuracy for rapidly varying gain curves
- Farrow structure: Efficient hardware implementation of polynomial interpolation Interpolation allows smaller LUT sizes while maintaining ACLR performance.
Ping-Pong Buffer for Hitless Updates
In real-time systems, a Ping-Pong LUT architecture uses two identical memory banks. While one bank actively predistorts the transmit signal, the adaptation engine updates the other in the background. A synchronized switch occurs after convergence, ensuring zero glitching or transient spectral regrowth during coefficient updates. This is critical for live traffic in 5G NR base stations.
Frequently Asked Questions
Clarifying the architecture and operation of complex-gain look-up tables for digital predistortion.
A Complex-Gain LUT is a digital predistortion memory architecture that stores a single complex-valued coefficient (magnitude and phase) per entry to simultaneously correct both amplitude and phase distortion in a power amplifier. Unlike separate AM-AM and AM-PM tables, it applies a unified complex multiplication to the input signal. The instantaneous envelope power indexes the table, and the retrieved complex gain pre-distorts the signal to create an inverse nonlinearity. This architecture is highly efficient for hardware implementation because it requires only one complex multiplier in the signal path, reducing computational complexity while maintaining full vector correction capability.
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Related Terms
Understanding the Complex-Gain LUT requires familiarity with the core architectural components and adaptation mechanisms that govern its real-time performance in digital predistortion systems.
LUT Indexing
The process of mapping an input signal's instantaneous power or magnitude to a specific memory address. For a complex-gain LUT, the index is typically derived from the squared envelope of the baseband signal. The indexing scheme directly determines how the single complex coefficient is selected to counteract the PA's nonlinearity at that specific operating point.
LUT Interpolation
A mathematical technique to estimate predistortion values between discrete table entries. Since a complex-gain LUT has finite granularity, interpolation—often linear or polynomial—is critical for smoothing the correction. This prevents spectral regrowth caused by abrupt jumps in the applied complex gain factor.
LMS LUT Update
An iterative adaptation algorithm that minimizes the mean squared error between the desired linear output and the actual PA output. For a complex-gain LUT, the LMS algorithm recursively updates the single complex coefficient at the addressed index, driving both AM-AM and AM-PM distortion toward zero simultaneously.
LUT AM-AM & AM-PM
The two distortion components corrected by a single complex-gain entry. AM-AM represents the nonlinear gain compression, while AM-PM represents the input-power-dependent phase shift. The complex-gain LUT stores a single value whose magnitude corrects AM-AM and whose phase corrects AM-PM, unifying the compensation in one step.
LUT Granularity
The spacing between adjacent entries across the input signal dynamic range. In a complex-gain LUT, granularity defines the resolution of the predistortion function. Finer granularity reduces quantization error but increases memory footprint. Non-uniform spacing often concentrates entries in the high-compression region near saturation.
Ping-Pong LUT
A dual-buffer memory architecture ensuring seamless coefficient updates. While one complex-gain LUT is actively predistorting the transmit signal, the background buffer is being updated by the adaptation algorithm. A buffer swap occurs instantaneously, preventing transient distortion during coefficient transitions.

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.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us