Skip to content

Instantly share code, notes, and snippets.

@jfrobbins
Last active March 4, 2025 19:54
Show Gist options
  • Select an option

  • Save jfrobbins/bea28cb42b101bc319c572d66c09dbed to your computer and use it in GitHub Desktop.

Select an option

Save jfrobbins/bea28cb42b101bc319c572d66c09dbed to your computer and use it in GitHub Desktop.
Notes on de-embedding EVM values
###################################
# these are the variables to use for the de-embedding.
# the system EVM floor that you want to deEmbed is EVM_systemFloor(dB)
# EVM_minSystemFloor(dB) is the floor to add back in, to keep things reasonable
#
# Update the EVM system floor values below in the dictionary.
#
# This script assumes that your data is already loaded into a Pandas Dataframe `df`
###################################
global evm_db_to_percent, evm_deembed_pct, evm_embed_pct, evm_percent_to_db
import numpy as np
import pandas as pd
import re
###################################
# Global minimum system EVM floor (dB)
gMinSystemEvmFloor_db = -58.0
###################################
# Update the EVM system floor values below in the dictionary.
###################################
# Dictionary of system EVM floors with tuples as keys (modType, bandwidth, frequency)
# Values are scaled based on the reference point: ("be", 320, 6500) -> -47.0 dB
evm_system_floors_db_dict = {
("be", 320, 5500): -48.0, # Wi-Fi 7, 320 MHz, 5.5 GHz
("be", 320, 6500): -47.0, # Wi-Fi 7, 320 MHz, 6.5 GHz
("be", 320, 6700): -47.2, # Wi-Fi 7, 320 MHz, 6.7 GHz
}
###################################
# Supporting functions
###################################
def getTupleFromModulation(modulation, frequency):
"""
Parse a modulation string and frequency to return a tuple (modType, bandwidth, frequency).
The modulation string may contain extra characters after the modulation type and bandwidth.
Args:
modulation (str): Waveform name, e.g., 'be320_extra_info', 'ac80_more_data', 'n20'
frequency (int/float): Center frequency in MHz, e.g., 5500
Returns:
tuple: (modType, bandwidth, frequency), e.g., ('be', 320, 5500)
Raises:
ValueError: If the modulation string does not contain a valid modulation type and bandwidth
"""
match = re.search(r'([a-zA-Z]+)(\d+)', modulation)
if match:
modType = match.group(1)
bandwidth = int(match.group(2))
return (modType, bandwidth, frequency)
else:
raise ValueError("Modulation string does not contain a valid modulation type and bandwidth")
def evm_percent_to_db(evm_percent):
"""Convert EVM from percentage to dB (vectorized)."""
return 20 * np.log10(evm_percent / 100)
def evm_db_to_percent(evm_db):
"""Convert EVM from dB to percentage (vectorized)."""
return 100 * 10 ** (evm_db / 20)
def evm_embed_pct(evm1_pct, evm2_pct):
"""Adds evm2 to evm1 (both in percent) using quadrature addition (vectorized)."""
return np.sqrt(np.square(evm1_pct) + np.square(evm2_pct))
def evm_deembed_pct(evm1_pct, evm2_pct, minSystemEvmFloor_pct):
"""
De-embeds evm2 from evm1 (both in percent) using quadrature subtraction (vectorized).
If evm2_pct > evm1_pct for any element, that element returns evm1_pct.
Otherwise, the de-embedded value is computed with the minimum system floor added back.
"""
diff = np.sqrt(np.maximum(np.square(evm1_pct) - np.square(evm2_pct), 0))
result = evm_embed_pct(diff, minSystemEvmFloor_pct)
return np.where(evm2_pct > evm1_pct, evm1_pct, result)
def evm_deembed_db(evm1_dB, evm2_to_deembed_dB, minSystemEvmFloor_db=gMinSystemEvmFloor_db):
"""
De-embeds evm2 from evm1 (both in dB) using quadrature subtraction (vectorized).
"""
evm1_pct = evm_db_to_percent(evm1_dB)
evm2_pct = evm_db_to_percent(evm2_to_deembed_dB)
minSystemEvmFloor_pct = evm_db_to_percent(minSystemEvmFloor_db)
evm_de_pct = evm_deembed_pct(evm1_pct, evm2_pct, minSystemEvmFloor_pct)
return evm_percent_to_db(evm_de_pct)
###################################
# Vectorized tuple extraction for better performance
###################################
def extract_modulation_tuple(modulation_series, frequency_series):
"""
Vectorized extraction of modulation tuples from series of modulation strings and frequencies.
Args:
modulation_series (pd.Series): Series of modulation strings.
frequency_series (pd.Series): Series of frequencies in MHz.
Returns:
pd.Series: Series of tuples (modType, bandwidth, frequency) or NaN if invalid.
"""
def extract_single(mod, freq):
try:
return getTupleFromModulation(mod, freq)
except ValueError:
return np.nan
# Apply extraction to each element efficiently
return pd.Series(list(map(extract_single, modulation_series, frequency_series)), index=modulation_series.index)
###################################
# DataFrame operations with improved performance and documentation
###################################
# Assuming df is your DataFrame with columns 'EVM(dB)', 'Modulation', 'Frequency(MHz)'
col_mod = "Modulation"
col_freq = "Frequency(MHz)"
col_evm = "EVM(dB)"
# DataFrame Processing Steps:
# 1. Extract modulation tuples in a vectorized manner to improve performance for large datasets.
# 2. Map the tuples to EVM system floors using the dictionary, assigning NaN for unmatched tuples.
# 3. Add the global minimum system EVM floor as a constant column for reference.
# 4. Calculate the de-embedded EVM using vectorized operations for efficiency.
# Step 1: Extract modulation tuples efficiently
df["mod_tuple"] = extract_modulation_tuple(df[col_mod], df[col_freq])
# Step 2: Map tuples to EVM system floors
df["EVM_systemFloor(dB)"] = df["mod_tuple"].map(evm_system_floors_db_dict).astype(float)
# Step 3: Add the global minimum system floor
df["EVM_minSystemFloor(dB)"] = gMinSystemEvmFloor_db
# Step 4: Calculate de-embedded EVM and add column
df["EVMde(dB)"] = evm_deembed_db(
df[col_evm],
df["EVM_systemFloor(dB)"],
df["EVM_minSystemFloor(dB)"]
)
# Optional: Clean up by dropping temporary column
df.drop(columns=["mod_tuple"], inplace=True)
###################################################################################

Whitepaper: De-Embedding System EVM Floors for High-Bandwidth Wi-Fi Measurements

Overall Summary

This white paper addresses the challenges of accurately measuring Error Vector Magnitude (EVM) in high-bandwidth Wi-Fi systems, such as Wi-Fi 7, where the test system’s EVM floor can obscure the true performance of the Device Under Test (DUT). It introduces a Python-based script designed to de-embed the system EVM floor from measured EVM values, leveraging pandas DataFrames and NumPy for efficient processing of large datasets. A detailed Theory of Operation section explains the principles behind this process, ensuring readers understand how the DUT’s intrinsic EVM is isolated. The paper is structured to flow logically, with practical examples and considerations to support its application in real-world RF testing scenarios.


Table of Contents

  1. Introduction to EVM
  2. Importance of EVM in Modern Communication Systems
  3. Challenges in Measuring EVM for High-Bandwidth Signals
  4. Theory of Operation for EVM De-Embedding
  5. Mathematical Foundation
  6. Practical Implementation
  7. Case Studies and Examples
  8. Validity and Considerations
  9. Conclusion and Future Considerations

Introduction to EVM

Error Vector Magnitude (EVM) is a fundamental metric in digital communication systems, quantifying the accuracy of a transmitted signal by measuring the deviation between its actual and ideal states. In wireless technologies like Wi-Fi, EVM is critical for assessing the performance of transmitters and receivers. It is typically expressed as a percentage or in decibels (dB), with lower values indicating higher signal fidelity.

In a constellation diagram—a graphical representation of a modulation scheme—each point corresponds to an ideal signal state (e.g., a specific amplitude and phase). The error vector is the difference between the measured signal and its ideal constellation point. EVM is then calculated as the root mean square (RMS) of these error magnitudes over many symbols:

EVM Formula

where "e_i" is the error vector for the i-th symbol, and "N" is the number of symbols. This metric encapsulates impairments such as noise, distortion, and phase noise, making it a comprehensive indicator of system quality.

Understanding EVM is the first step toward addressing measurement challenges in modern Wi-Fi systems, where increasing complexity amplifies the need for precision.


Importance of EVM in Modern Communication Systems

The evolution of wireless communication systems has heightened the significance of EVM. As Wi-Fi standards progress—most recently with Wi-Fi 7 (802.11be)—they incorporate wider channel bandwidths (up to 320 MHz) and higher-order modulation schemes like 4096-QAM to achieve unprecedented data rates and spectral efficiency. These advancements, while beneficial, place stringent demands on signal integrity.

Several factors underscore EVM’s importance in this context:

  • Complex Modulation: Higher-order schemes like 4096-QAM feature densely packed constellation points, leaving little margin for error. Small deviations can cause symbol misidentification, degrading performance.
  • Wider Bandwidths: Larger channels increase throughput but also amplify noise and impairments, necessitating precise EVM measurements to ensure quality.
  • Standards Compliance: Regulatory bodies and Wi-Fi standards (e.g., IEEE 802.11) impose strict EVM thresholds to guarantee interoperability and reliability, making accurate measurement a prerequisite for certification.

As Wi-Fi systems push these boundaries, the test equipment used to evaluate them becomes a limiting factor. The system EVM floor—the inherent error introduced by the measurement setup—can obscure the DUT’s true performance, particularly in high-bandwidth scenarios. This challenge sets the stage for EVM de-embedding, a process designed to reveal the DUT’s intrinsic capabilities.


Challenges in Measuring EVM for High-Bandwidth Signals

Accurately measuring EVM in high-bandwidth Wi-Fi systems is complicated by the test system’s own limitations. The system EVM floor arises from imperfections in signal generators, spectrum analyzers, cables, connectors, and other components. In earlier Wi-Fi generations with narrower bandwidths (e.g., 20–80 MHz), this floor was typically negligible compared to the DUT’s EVM. However, with the advent of Wi-Fi 7 and its 320 MHz channels, several factors elevate the system EVM floor:

  • Increased Noise Bandwidth: Wider channels capture more thermal noise, raising the baseline noise level.
  • Higher Sampling Requirements: Measuring broad bandwidths demands faster sampling rates, which can introduce quantization noise and jitter in the test equipment.
  • RF Component Limitations: At higher frequencies and bandwidths, amplifiers, filters, and mixers exhibit greater non-linearities and phase noise, further degrading the system floor.

Consequently, the measured EVM (EVM_measured) is a composite of the DUT’s intrinsic EVM (EVM_DUT) and the system EVM floor (EVM_system). When EVM_system approaches or exceeds EVM_DUT, the measurement no longer reflects the DUT’s true performance, potentially leading to incorrect conclusions about its quality. De-embedding the system EVM floor becomes essential to isolate EVM_DUT, enabling engineers to assess and optimize device performance accurately.


Theory of Operation for EVM De-Embedding

EVM de-embedding is a systematic process that removes the test system’s contribution from the measured EVM, revealing the DUT’s standalone performance. The theory hinges on the principle that the DUT’s errors and the system’s errors are uncorrelated, allowing their contributions to be separated using quadrature subtraction. Below, we outline the operational steps that underpin this technique, providing a foundation for its mathematical and practical implementation.

Step 1: Understanding the Composite Measurement

The total measured EVM combines the DUT’s EVM and the system EVM floor in quadrature, reflecting their independent nature:

Composite EVM

This relationship assumes both EVM_DUT and EVM_system are expressed in linear units (e.g., percent). The quadrature sum arises because the error vectors from the DUT and the system are statistically uncorrelated, meaning their combined effect is the square root of the sum of their squared magnitudes.

Step 2: Isolating the DUT’s Contribution

To extract EVM_DUT, the system’s influence must be subtracted from the total measurement:

DUT EVM

This step, known as quadrature subtraction, effectively “de-embeds” the system EVM floor, assuming EVM_measured > EVM_system. If this condition is not met, the result becomes invalid, a scenario addressed in later steps.

Step 3: Addressing Edge Cases

When EVM_system exceeds EVM_measured, the expression under the square root becomes negative, yielding an imaginary result. Physically, this indicates that the system’s impairments dominate the measurement, making it impossible to isolate a meaningful EVM_DUT. In practice, such cases suggest either an exceptionally high-quality DUT or an inaccurate system floor estimate. The de-embedding process must then revert to the original measured EVM to avoid misleading outcomes.

Step 4: Incorporating a Minimum Floor

After de-embedding, the calculated EVM_DUT may approach zero if EVM_measured is very close to EVM_system, implying an unrealistically perfect DUT. To ensure conservative and realistic results, a small minimum system floor (EVM_min)—representing the irreducible noise of an ideal test setup—is added back in quadrature:

De-Embedded EVM

This adjustment prevents over-optimistic estimates and aligns the output with practical expectations.

Step 5: Managing Units

EVM measurements are often reported in dB, requiring conversions to linear units for de-embedding calculations. The conversions are:

  • From dB to percent:

EVM Percent Conversion

  • From percent to dB:

EVM dB Conversion

The de-embedding process performs all intermediate calculations in the linear domain, converting the final result back to dB for consistency with industry norms.

By following these steps, EVM de-embedding provides a robust method to isolate the DUT’s performance, setting the stage for its mathematical formalization and practical application.


Mathematical Foundation

The mathematical basis for EVM de-embedding builds on the theory outlined above, formalizing the relationship between measured, system, and DUT EVM values. Below, we derive the key equations to solidify the process.

Modeling the Error Vector

For a given symbol, the error vector is defined as the difference between the measured signal vector (including DUT and system effects) and the ideal constellation point:

Error Vector

The EVM is the RMS of these error magnitudes:

EVM RMS

When the test system contributes its own error, the total error becomes the sum of the DUT error and system error:

Total Error

Quadrature Sum of Uncorrelated Errors

Assuming the DUT and system errors are uncorrelated, the expected value of the total error magnitude squared is:

Expected Error Magnitude

Thus, the measured EVM is:

Composite EVM

De-Embedding Equation

To isolate the DUT’s EVM:

DUT EVM

Incorporating the minimum floor:

De-Embedded EVM Simplified

This equation forms the core of the de-embedding algorithm, ensuring mathematical rigor in practical implementations.


Practical Implementation

The de-embedding process is operationalized in a Python script optimized for RF testing workflows. Using pandas DataFrames and NumPy, it efficiently handles large datasets typical of Wi-Fi performance evaluation. The implementation follows these steps:

Step 1: Data Parsing

The script extracts modulation type (e.g., "be" for Wi-Fi 7), bandwidth (e.g., 320 MHz), and frequency (e.g., 6500 MHz) from input fields like "Modulation" and "Frequency(MHz)". Regular expressions parse these into a tuple (e.g., ("be", 320, 6500)).

Step 2: System Floor Retrieval

A predefined dictionary maps each tuple to its corresponding EVM_system value, determined from prior calibration of the test setup. Unmatched tuples are assigned NaN to flag potential data gaps.

Step 3: De-Embedding Calculation

For each measurement:

  • Convert EVM_measured, EVM_system, and EVM_min from dB to percent.
  • Compute the DUT’s EVM using the de-embedding equation.
  • Add EVM_min in quadrature to get the final de-embedded EVM.
  • Convert back to dB.

Step 4: Edge Case Handling

If EVM_system exceeds EVM_measured, the script retains EVM_measured to avoid invalid results.

Step 5: Output Generation

The de-embedded EVM is stored in a new column (e.g., "EVMde(dB)"), preserving the original data for comparison.

This implementation ensures scalability and accuracy, making it a valuable tool for engineers working with high-bandwidth Wi-Fi systems.


Case Studies and Examples

To demonstrate the utility of EVM de-embedding, consider these illustrative scenarios:

Example 1: High-Performance DUT

  • Measured EVM: -45 dB (0.562%)
  • System EVM Floor: -47 dB (0.447%)
  • Minimum System Floor: -58 dB (0.126%)

De-embedding yields:

EVM_DUT Example 1

With the minimum floor:

EVM_de-embedded Example 1

This corresponds to approximately -48.5 dB, revealing the DUT’s superior performance.

Example 2: System-Dominated Measurement

  • Measured EVM: -40 dB (1.0%)
  • System EVM Floor: -42 dB (0.794%)
  • Minimum System Floor: -58 dB (0.126%)

De-embedding yields:

EVM_DUT Example 2

With the minimum floor:

EVM_de-embedded Example 2

This corresponds to approximately -44.2 dB, providing a realistic DUT assessment.

Example 3: Invalid Case

  • Measured EVM: -50 dB (0.316%)
  • System EVM Floor: -48 dB (0.398%)
  • Minimum System Floor: -58 dB (0.126%)

Since EVM_system exceeds EVM_measured, de-embedding is skipped, retaining -50 dB.

These examples highlight the method’s ability to refine EVM measurements while safeguarding against erroneous outputs.


Validity and Considerations

EVM de-embedding is powerful but requires careful application:

  • System Floor Accuracy: Errors in EVM_system can skew results, necessitating precise calibration.
  • Error Correlation: The assumption of uncorrelated errors may not always hold, potentially affecting accuracy.
  • Minimum Floor Effect: Adding EVM_min ensures conservatism but may slightly overestimate EVM_DUT.
  • Data Completeness: The dictionary must cover all test conditions to avoid gaps.

When presenting results, transparency is key—disclose the methodology, system floor values, and the role of EVM_min to build trust and set realistic expectations.


Conclusion and Future Considerations

EVM de-embedding is an indispensable technique for evaluating high-bandwidth Wi-Fi devices, enabling engineers to isolate DUT performance from test system limitations. Its integration of theory, mathematics, and practical implementation makes it a cornerstone of modern RF testing.

Looking ahead, enhancements could include:

  • Adaptive System Floors: Real-time estimation of EVM_system based on test conditions.
  • Correlation Modeling: Techniques to adjust for correlated errors.
  • Broader Integration: Embedding de-embedding into automated test platforms.

As Wi-Fi technology advances, refining EVM measurement methods will remain vital for innovation and compliance.


Word Count: Approximately 2,600 words

Technical Note on De-Embedding System EVM Floors from Measured Data

Version 1.0 Date: 2025-03-04


Table of Contents

  1. [TL;DR Summary]
  2. Introduction
  3. Theory of Operation
  4. Method of Operation
  5. Why De-Embedding is Useful
  6. Concerns and Validity Considerations
  7. Best Practices for Sharing Data
  8. Conclusion

TL;DR Summary

This technical note explains how to de-embed the system EVM floor from measured data to better reveal the true performance of a device under test (DUT). It outlines that:

  • EVM Basics: EVM quantifies the error between the ideal and measured signal constellations and is impacted by both the DUT and the measurement system’s noise floor.

  • De-Embedding Process: The technique involves converting EVM values from dB to percentages, performing quadrature subtraction (i.e., using a root-sum-square approach) to remove the system’s contribution, and optionally converting the result back to dB.

  • Assumptions & Limitations: This method is a first-order approximation, assuming that the DUT and system errors are uncorrelated and that the system floor is accurately known. Limitations include sensitivity to measurement noise and non-linear effects.

  • Use Cases & Best Practices: De-embedding is especially useful for high-bandwidth systems where the system noise floor may mask the DUT’s true performance. It’s critical to accompany de-embedded data with raw measurements, detailed documentation of the method, and disclosure of assumptions.

Overall, de-embedding helps engineers more accurately assess device performance, but its approximative nature means transparency and careful documentation are essential.

Introduction

Error Vector Magnitude (EVM) is a critical metric used in RF and high-bandwidth modulation systems to quantify the performance of a transmitter or receiver. In essence, EVM measures the difference between the ideal reference signal and the actual transmitted signal, quantifying how far the measured constellation points deviate from their ideal positions. This error is expressed either in percentage or in decibels (dB).

In practice, any measured signal’s EVM comprises contributions from both the Device Under Test (DUT) and the measurement system itself. The measurement system introduces its own imperfections, often referred to as the system EVM floor. This floor represents the inherent error of the test equipment and can mask the true performance of the DUT. Especially when evaluating high-performance designs, the measured EVM may be limited by this system floor rather than by the actual impairments in the DUT.

To address this, engineers employ a technique known as de-embedding. De-embedding involves mathematically subtracting the known contribution of the measurement system (the system EVM floor) from the overall measured EVM. The goal is to estimate what the DUT’s performance would be if the test system were perfect. The de-embedding process uses a first-order approximation based on quadrature subtraction (i.e., subtracting in the root-sum-square (RSS) sense), acknowledging that it is a simplified model of the error contributions.

In modern RF design and validation—especially for technologies like Wi-Fi 7 or other high-bandwidth modulation schemes—the de-embedded EVM value is essential. It often turns out that high-bandwidth modulation systems have a measured EVM floor that is significantly higher than the specification limits for front-end modules (FEM). In such cases, the de-embedding process allows engineers to better understand the true performance of the DUT and whether it meets the necessary requirements.

This technical note provides a high-level overview with technical details of the de-embedding process, discussing both its theoretical and practical aspects. The content is organized into several sections:

  • Theory of Operation: A look into the mathematical background and the rationale behind using quadrature subtraction.

  • Method of Operation: A step-by-step guide to performing the de-embedding using measured data.

  • Why De-Embedding is Useful: An explanation of situations where the technique becomes indispensable.

  • Concerns and Validity Considerations: A discussion of the limitations and the assumptions inherent in the approximation.

  • Best Practices for Sharing Data: Recommendations on how to communicate de-embedded results transparently, especially when delivering data to customers.

Ultimately, the goal of this report is to ensure that any engineer using de-embedding understands both its benefits and its limitations. It should serve as both a practical guide and a reference document for discussions with peers, management, and customers about EVM measurements in high-performance systems.


Theory of Operation

Background on EVM

EVM is defined as the root-mean-square (RMS) difference between the measured symbol positions and the ideal symbol positions in a constellation diagram. Expressed in percentage, it gives an indication of how much the signal has degraded relative to the ideal state. In decibels (dB), it is typically given by the formula:

EVM in dB formula

The measurement, however, does not only reflect the imperfections of the DUT. It also includes the intrinsic noise and distortions of the measurement system. For this reason, if the DUT’s performance is better than the capabilities of the measurement system, the measured EVM will be dominated by the system’s floor.

Quadrature Addition and Subtraction

The fundamental principle behind de-embedding is that the total EVM (as a percentage) can be thought of as the quadrature sum of the DUT’s true EVM and the system’s EVM floor. Mathematically, if we denote:

  • EVMmeas as the measured EVM (in %),

  • EVMDUT as the DUT’s intrinsic EVM (in %),

  • EVMsys as the system’s EVM floor (in %),

then we have:

Quadrature addition formula

Thus, the de-embedded (or corrected) DUT EVM can be estimated as:

De-embedding formula

Converting Between dB and Percentage

Since EVM can be expressed in both percentage and dB, conversion functions are essential. The conversion from dB to percentage is given by:

EVM percentage formula

And vice versa, the conversion from percentage to dB is:

EVM dB conversion formula

First-Order Approximation

It is important to emphasize that the de-embedding process described is a first-order approximation. It assumes that:

  • The noise contributions are independent and additive in quadrature.

  • The measurement system’s floor is accurately known and does not vary significantly.

  • Other error sources (such as non-linearities, IQ imbalance, phase noise, etc.) are either corrected separately or negligible.

In reality, these conditions are idealized. While de-embedding gives a reasonable approximation for the DUT’s performance, it may not capture all nuances of the measurement system’s behavior. Hence, the de-embedded value should be viewed as an estimate rather than an absolute correction.


Method of Operation

Step 1: Data Acquisition and Preparation

The first step in the process is to acquire the measurement data. This data should include:

  • The measured EVM (in dB or %).
  • The modulation type and frequency of the signal.
  • Additional parameters that might affect the measurement (such as bandwidth).

For practical purposes, the data is often stored in a structured format, such as a Pandas DataFrame in Python. Each measurement should include the necessary metadata so that the appropriate system EVM floor can be identified.

Step 2: Identify the Appropriate System Floor

Different measurement conditions (e.g., modulation type, bandwidth, frequency) might require different system EVM floor values. The process involves measuring test system loopback data (e.g. bathtub curves) and using the minimum trough value as the system EVM floor for that (modulation type, bandwidth, frequency) tuple.

In code, this involves mapping the measurement parameters to a pre-determined dictionary of system floors. For example, the dictionary might contain entries such as:

  • Wi-Fi 7, 320 MHz, 5.5 GHz: system floor = -48 dB

  • Wi-Fi 7, 320 MHz, 6.5 GHz: system floor = -47 dB

  • Wi-Fi 7, 320 MHz, 6.7 GHz: system floor = -47.2 dB

A helper function parses the modulation string (which might include extraneous information) and returns a tuple of relevant parameters. The appropriate floor value is then mapped from this tuple.

evm_system_floor_diagram.png

Step 3: Convert EVM Values

Before de-embedding, the EVM values (both measured and the system floor) are converted from dB to percentage. This conversion ensures that the quadrature subtraction is performed in a linear domain:

Conversion from dB to percentage

and

System floor conversion

Step 4: Perform Quadrature Subtraction

Once the values are in percentage, the de-embedding is performed using the following operation:

Quadrature subtraction for de-embedding

To ensure that the de-embedded value does not become undefined (for example, if the system floor is greater than the measured value), the implementation uses a safeguard:

  • If EVMsys > EVMmeas, then EVMDUT is simply set to EVMmeas (since subtracting the floor would not be meaningful).

  • A minimum system floor is also added back in quadrature to ensure that the de-embedded value remains reasonable.

Step 5: Convert Back to dB (Optional)

After performing the quadrature subtraction in the percentage domain, the result is converted back to dB:

Conversion back to dB

This allows the de-embedded EVM to be directly compared with specifications that are often provided in dB.

Step 6: Data Presentation

The final step involves integrating the de-embedded data into the overall dataset. In a typical workflow:

  • The original measured EVM data is retained.

  • A new column is created for the de-embedded EVM.

  • Visualizations (such as scatter plots or line charts) are generated to compare measured and de-embedded values across different test conditions.

A simple diagram of the process is provided below:

De-Embedding Diagram

Figure: Block diagram showing the measurement process. The measured EVM is split into two paths: one representing the system’s inherent error (system floor) and the other representing the DUT’s true performance. The quadrature subtraction of these two components yields the de-embedded EVM.

Each of these steps should be clearly documented in your internal processes, ensuring that anyone reviewing the data understands the transformation that has been applied.


Why De-Embedding is Useful

In many modern high-bandwidth modulation systems, the performance limitations of test equipment become apparent. Here are some key reasons for employing de-embedding:

Overcoming Equipment Limitations

High-bandwidth systems often exhibit very low EVM values. However, the measurement system’s own noise floor can be relatively high, meaning that even if a DUT is exceptionally good, the measured EVM might appear worse than it truly is. De-embedding attempts to “remove” this floor, revealing the underlying performance of the DUT.

For example, if a DUT has a true EVM of 1% but the measurement system contributes an additional 0.5% of error, the measured value may be closer to 1.12% when combined in quadrature. De-embedding adjusts this value back to the DUT’s true performance.

Ensuring Compliance with Specifications

Front-End Module (FEM) specifications and other industry standards often require precise EVM measurements. Without de-embedding, a DUT might appear to fail these requirements simply because the measurement system’s floor is too high. Correcting for the system’s contribution ensures that engineers and customers have a more accurate picture of device performance relative to the specifications.

Performance Optimization and Benchmarking

When engineers are optimizing the design of a transmitter or receiver, knowing the true EVM is critical. De-embedding allows for more precise benchmarking of design improvements. This is particularly important when performance enhancements are marginal and could be easily masked by the measurement system’s inherent limitations.

Facilitating Comparisons

By standardizing the method to de-embed the system floor, different teams and organizations can compare results on a level playing field. Whether comparing different DUTs, test setups, or even different measurement systems, de-embedding provides a common reference point for performance evaluation.


Concerns and Validity Considerations

While de-embedding is a useful technique, it comes with several caveats and potential pitfalls that must be carefully considered.

Assumptions and Limitations

  1. First-Order Approximation: De-embedding as described is a first-order approximation. It assumes that the DUT’s EVM and the system floor combine in quadrature, which holds under the assumption of uncorrelated, random errors. In practice, however, some errors might be correlated or may not behave in a strictly additive manner.

  2. System Floor Accuracy: The process assumes that the system floor is known precisely. Variations in the measurement system or changes in operating conditions may cause fluctuations in the floor value. Even small errors in the floor measurement can lead to significant inaccuracies in the de-embedded result—especially when the DUT’s EVM is close to the system’s floor.

  3. Non-linear Effects and Noise Sources: Additional error sources such as non-linear distortion, IQ imbalance, or phase noise may not be fully accounted for by a simple de-embedding procedure. If these effects are significant, the assumption that the system’s error can be cleanly subtracted may not hold, and more advanced analysis techniques might be required.

Validity in Different Regimes

  • Low EVM Regime: When the DUT’s true EVM is very low, de-embedding becomes more sensitive to measurement uncertainties. For instance, if the measured EVM is only marginally above the system floor, then the subtraction process may amplify any errors in the floor measurement, leading to unreliable de-embedded values.

  • High EVM Regime: Conversely, if the DUT’s EVM is high relative to the system floor, the impact of de-embedding is minimal. In such cases, the correction does little more than validate that the measurement system is not the limiting factor, and the benefits of de-embedding are diminished.

Potential Sources of Error

  1. Measurement Noise: Random noise in the measurement can cause fluctuations in both the measured EVM and the estimated system floor. This noise can propagate through the de-embedding calculation, particularly affecting results in the low EVM regime.

  2. Data Processing Errors: The conversion between dB and percentage, and vice versa, involves logarithmic operations that can be sensitive to rounding errors. Care should be taken to maintain numerical precision, especially when dealing with small differences between measured and floor values.

  3. Environmental Variations: Factors such as temperature, humidity, and electromagnetic interference can affect the performance of the measurement system. If the system floor changes with these variables, a static de-embedding value might not be valid under all conditions.

  4. Assumption of Independence: The method assumes that the DUT’s errors and the system’s errors are statistically independent. If there is any correlation between the two, then subtracting the floor in quadrature could either under- or overestimate the true DUT performance.

Recommendations for Mitigation

  • Validation Measurements: Regularly perform validation measurements where the DUT is known to be ideal (or nearly so) to verify that the de-embedding procedure yields expected results.

  • Uncertainty Analysis: Document the uncertainty in both the measured EVM and the system floor. Propagate these uncertainties through the de-embedding calculation and report them alongside the de-embedded EVM.

  • Calibration: Ensure that the measurement system is well-calibrated and that the system floor is updated periodically. Any change in the measurement environment should trigger a re-evaluation of the floor value.

  • Complementary Techniques: Consider employing complementary measurement techniques or enhanced algorithms (e.g., cross-correlation methods) to further reduce the impact of the system floor.


Best Practices for Sharing Data

When sharing de-embedded EVM data with customers or within an engineering team, transparency is key. The following guidelines help ensure that the data is communicated accurately and responsibly:

Include All Relevant Data Sets

  • Original Measured Data: Always provide the raw measurement data alongside the de-embedded results. This allows recipients to understand the starting point of the analysis.

  • System Floor Data: Share the measured system floor values and explain how they were obtained. Include details about the measurement conditions and any calibration procedures that were followed.

  • Processed Data: Clearly indicate the data that has been de-embedded. Use separate columns or labels to differentiate between measured EVM, system floor values, and de-embedded EVM.

Document the Methodology

  • Algorithm Description: Provide a high-level description of the de-embedding method. For example, state that the de-embedding is performed using quadrature subtraction, with the DUT’s true EVM estimated as:

    De-embedding exact formula

  • Assumptions and Limitations: Clearly list any assumptions made in the calculation (e.g., error independence, constant system floor) and discuss any limitations of the approximation. This context is critical for reviewers to assess the reliability of the results.

  • Visual Aids: Use diagrams and charts to illustrate the process. For example, a chart showing the measured EVM vs. the de-embedded EVM across a range of test conditions can visually demonstrate the impact of the correction. Annotate these figures with the system floor value and any relevant thresholds.

Recommendations for Data Sharing

  • Provide Contextual Documentation: When presenting de-embedded data, accompany the numerical results with a document that details the testing conditions, the measurement system configuration, and the environmental factors that might have influenced the results.

  • Highlight Uncertainties: Include error bars or confidence intervals where applicable. This is particularly important in cases where the de-embedded EVM is close to the measurement floor. Providing a clear indication of uncertainty helps maintain credibility and informs decision-making.

  • Use Clear Labeling: In tables and plots, ensure that each data set is clearly labeled. For example, columns should be named “Measured EVM (dB)”, “System Floor (dB)”, and “De-Embedded EVM (dB)”. Legends in graphs should unambiguously distinguish between the different data series.

  • Keep Raw Data Available: Encourage recipients to review the raw data. If necessary, provide a link to a repository or include the raw data as an appendix to your report. This transparency fosters trust and allows for independent verification of the de-embedding process.

  • Regular Updates: If the measurement system is recalibrated or if new techniques are developed, update the documentation accordingly. A dated revision history can help track changes in methodology and ensure that all stakeholders are using the most current information.


Conclusion

De-embedding system EVM floors is a powerful technique that enables engineers to extract a more accurate estimate of a DUT’s performance when limited by the measurement system’s inherent noise floor. By applying quadrature subtraction to remove the system’s contribution, one can better assess whether the DUT meets stringent performance specifications—particularly in high-bandwidth modulation systems where measured EVM is often constrained by the test equipment.

However, this process is a first-order approximation and carries with it several assumptions and limitations. The reliability of the de-embedded results hinges on the accuracy of the system floor measurement, the validity of the assumption of uncorrelated errors, and the operational regime of the DUT’s EVM. As such, engineers should always complement de-embedded data with full disclosure of the original measurements, clear documentation of the methodology, and an analysis of the uncertainties involved.

When used responsibly, de-embedding is not just a mathematical trick—it is a critical step towards ensuring that engineering decisions are based on the most accurate representation of device performance. By following the best practices outlined in this document, engineers can confidently use de-embedded data in design reviews, compliance assessments, and customer communications, ensuring that all parties have a clear and transparent understanding of the underlying performance metrics.

Diagrams

De-embedding process

flowchart TD
    A["Measured EVM (dB)"]
    B["System Floor EVM (dB)"]
    A --> C["Convert to Percentage"]
    B --> D["Convert to Percentage"]
    C --> E["Measured EVM (%)"]
    D --> F["System Floor (%)"]
    E --> G["Quadrature Subtraction<br> sqrt(E² - F²)"]
    F --> G
    G --> H["De-Embedded EVM (%)"]
    H --> I["Convert Back to dB (Optional)"]
    I --> J["De-Embedded EVM (dB)"]

![deembedding evm process](./evm_deembedding_diagram.png)

## System EVM Floor

![system evm floor](./evm_system_floor_diagram.png)
Loading

Requirements Specification: EVM De-Embedding Script

1. Objective

Develop a Python script to de-embed system EVM floors from measured EVM values in Wi-Fi testing, focusing on high-bandwidth signals (e.g., Wi-Fi 7 with 320 MHz bandwidth), to isolate the DUT’s true performance.


2. Functional Requirements

  • Inputs:
    • Pandas DataFrame containing:
      • "EVM(dB)": Measured EVM in dB.
      • "Modulation": String (e.g., "be320_extra_info") indicating modulation type and bandwidth.
      • "Frequency(MHz)": Center frequency in MHz.
  • Outputs:
    • Updated DataFrame with:
      • "EVM_systemFloor(dB)": Retrieved system EVM floor.
      • "EVM_minSystemFloor(dB)": Configurable minimum system floor (e.g., -58.0 dB).
      • "EVMde(dB)": De-embedded EVM in dB.
  • Key Functions:
    • Parse modulation strings into tuples (e.g., ("be", 320, 6500)).
    • Retrieve system EVM floors from a dictionary using tuples.
    • Perform quadrature subtraction and add a minimum floor.
  • Error Handling: Assign NaN to EVMde(dB) for unrecognized modulation/frequency pairs.

3. Performance Requirements

  • Speed: Process large datasets (e.g., 100,000+ rows) efficiently.
  • Optimization: Use NumPy for vectorized operations to minimize loops.
  • Scalability: Support batch processing via DataFrame operations.

4. Design Constraints

  • Parsing Flexibility: Handle modulation strings with extra characters (e.g., "be320_extra").
  • Dictionary: Allow easy updates to system EVM floor mappings.
  • Minimum Floor: Configurable via a global variable for adaptability.

5. Validation and Testing

  • Unit Tests:
    • Validate tuple extraction from modulation strings.
    • Confirm dB-to-percent conversions and de-embedding calculations.
    • Check handling of edge cases (e.g., ( \text{EVM}\text{system} > \text{EVM}\text{measured} )).
  • Edge Case Tests:
    • Invalid or malformed modulation strings.
    • Missing dictionary entries.
  • Performance: Benchmark runtime on large datasets to ensure efficiency.

6. Documentation

  • In-Code: Comment variables, functions, and logic for developer clarity.
  • User Guide: Explain how to update the system floor dictionary and adjust the minimum floor.
  • Whitepaper: Detail the de-embedding methodology, formulas, and limitations (see above).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment