evm_wlan_ofdm()
Returns EVM (error vector magnitude) analysis results for WLAN OFDM (IEEE 802.11a) voltage signals
Syntax
evm = evm_wlan_ofdm(voltage{, mirrorSpectrum, start, averageType, burstsToAverage, subcarrierModulation, guardInterval, searchTime, resultLengthType, resultLength, measurementOffset, measurementInterval, subcarrierSpacing, symbolTimingAdjust, sync, output})
Arguments
| Name | Description | Range | Type | Default | Required |
|---|---|---|---|---|---|
| voltage | complex envelope WLAN OFDM (orthogonal frequency division multiplexing) voltage signal | (-∞, ∞) | complex | yes | |
| mirrorSpectrum | specifies whether the input signal should be mirrored or not | See Notes | string | NO | no |
| start | specifies the start time for the EVM analysis | [0, max(indep(voltage))] | real | first point of the input data | no |
| averageType | specifies what type of averaging is done | See Notes | string | OFF | no |
| burstsToAverage | number of bursts over which the results will be averaged | (0, ∞) | integer | 20 | no |
| subcarrierModulation | data subcarrier modulation format | See Notes | string | "Auto Detect" | no |
| guardInterval | guard interval length for the OFDM symbols (as a fraction of the FFT time period) | [0, 1] | real | 0.25 | no |
| searchTime | search time | [0, max(indep(voltage))] | real | 80 µsec | no |
| resultLengthType | specifies how the result length is determined | See Notes | string | "Auto Select" | no |
| resultLength | result length in OFDM symbols | [1, 1367] | integer | 60 | no |
| measurementOffset | measurement offset in OFDM symbols | [0, ∞) | integer | 0 | no |
| measurementInterval | measurement interval in OFDM symbols | (0, ∞) | integer | 11 | no |
| subcarrierSpacing | frequency spacing between the subcarriers | (0, ∞) | real | 312.5 kH | no |
| symbolTimingAdjust | specifies (as a percent of the FFT time period) the timing adjustment done on the OFDM symbols before performing the FFT | [-100*guardInterval, 0] | real | -3.125 | no |
| sync | preamble sequence that will be used for synchronization | See Notes | string | Short Training Seq | no |
| output | EVM analysis result to be returned | See Notes | string | EVMrms_percent | no |
Examples
evmRMS = evm_wlan_ofdm(Vout[1])
where Vout is a named node in a Circuit Envelope simulation, will return the evm rms value in percent for the voltage envelope at the fundamental frequency. The voltage data Vout[1] must contain at least one complete OFDM burst.
iqOffset = evm_wlan_ofdm( Vout[1], , , "RMS (Video)", 5, , 0.125, 200e-6, , , 5, 10, , , , "IQ_Offset_dB")
where Vout is a named node in a Circuit Envelope simulation, will return the IQ offset in dB for the voltage envelope at the fundamental frequency. Five bursts will be analyzed and their results averaged. The guard interval used in the generation of the input signal must be 0.125. Since searchTime is set to 200 µsec, the first 200 µsec of Vout[1] must contain at least one complete OFDM burst. In addition, since 5 bursts need to be averaged Vout[1] must contain at least 5 complete OFDM bursts. Only the OFDM symbols 6 to 15 (measurementOffset = 5 and measurementInterval = 10) will be considered for the EVM analysis.
Defined in
Built in
See Also
Notes/Equations
Used in Circuit Envelope simulation and Data Flow simulation.
This expression can be used with input data of up to two dimensions. Only complex envelope input signals are allowed as input.
The evm_wlan_ofdm() expression performs an EVM measurement for WLAN OFDM (IEEE 802.11a) signals. Available Measurement Results for evm_wlan_ofdm() seen below, displays the available measurement results.
Available Measurement Results for evm_wlan_ofdm()
| Measurement Result | Description |
|---|---|
| EVMrms_percent | average EVM rms in percentage |
| EVM_dB | average EVM in dB |
| PilotEVM_dB | average pilot EVM in dB |
| CPErms_percent | average Common Pilot Error rms in percentage |
| IQ_Offset_dB | average IQ offset in dB |
| SyncCorrelation | average sync correlation |
The following is a brief description of the algorithm used (the algorithm used is the same as the one used in the Agilent 89600 VSA) and a detailed description of its arguments. Structure of an OFDM burst. shows the structure of an OFDM burst. Many of the terms mentioned later in these notes such as the preamble, SIGNAL symbol, DATA symbols, guard intervals (GI) are shown in this figure.

Structure of an OFDM burst.
Starting at the time instant specified by the start argument, a signal segment of length searchTime is acquired. This signal segment is searched in order for a complete burst to be detected. The burst search algorithm looks for both a burst on and a burst off transition. In order for the burst search algorithm to detect a burst, an idle part must exist between consecutive bursts and the bursts must be at least 15 dB above the noise floor.
If the acquired signal segment does not contain a complete burst, the algorithm will not detect any burst and the analysis that follows will most likely produce incorrect results. Therefore, searchTime must be long enough to acquire at least one complete burst. Since the time instant specified by the start argument can be a little after the beginning of a burst, it is recommended that searchTime is set to a value approximately equal to 2 x burstLength, where burstLength is the duration of a burst in seconds including the duration of the idle part. If it is known that the time instant specified by the start argument is a little before the beginning of a burst, then searchTime can be set to burstLength.
After a burst is detected, synchronization is performed based on the value of the sync argument. The burst is then demodulated. Finally, the burst is analyzed to get the EVM measurement results.
If averageType is set to Off , only one burst is detected, demodulated, and analyzed.
If averageType is set to RMS (Video) , after the first burst is analyzed the signal segment corresponding to it is discarded and new signal samples are acquired to fill in the signal buffer of length searchTime. When the buffer is full again a new burst search is performed and when a burst is detected it is demodulated and analyzed. These steps repeat until burstsToAverage bursts are processed.
If for any reason a burst is mis-detected, the results from its analysis are discarded. The EVM results obtained from all the successfully detected, demodulated, and analyzed bursts are averaged to give the final result.
The mirrorSpectrum argument accepts the following strings: "NO" and "YES". This argument can be used to mirror (conjugate) the input signal before any other processing is done. Mirroring the input signal is necessary if the configuration of the mixers in your system has resulted in a mirrored signal compared to the one at the input of the up-converter. The demodulation process recovers a lot of the information about the burst from the burst preamble and SIGNAL symbol. If the input signal is mirrored, then some of this information may not be recovered correctly and the demodulation will most likely fail.
The start argument sets the starting point for acquiring the signal to be processed. By default, the starting point is the beginning of the input signal (voltage argument). However, if for any reason an initial part of the input signal needs to be omitted this can be done by setting the start argument appropriately.
The averageType argument accepts the following strings: "Off" and "RMS (Video)". This argument can be used to turn on/off video averaging. If set to "Off" the EVM result returned is from the processing of only one burst. Otherwise, multiple bursts are processed and the results are averaged.
The burstsToAverage argument set the number of bursts whose results will be averaged if averageType is set to "RMS (Video)". If averageType is set to "Off" this argument is ignored.
The subcarrierModulation argument accepts the following strings: "Auto Detect", "BPSK", "QPSK", "QAM 16", and "QAM 64". This argument sets the data subcarrier modulation format. If subcarrierModulation is set to " Auto Detect" , the algorithm will use the information detected within the OFDM burst (SIGNAL symbol - RATE data field) to automatically determine the data subcarrier modulation format. Otherwise, the format determined from the OFDM burst will be ignored and the format specified by the subcarrierModulation argument will be used in the demodulation for all data subcarriers. This argument has no effect on the demodulation of the pilot subcarriers and the SIGNAL symbol, whose format is always BPSK.
The guardInterval argument sets the guard interval (also called cyclic extension) length for the OFDM symbols. The value is expressed as a fraction of the FFT time period and so its valid range is [0, 1]. The value must match the guard interval length actually used in the generation of the input signal in order for the demodulation to work properly.
The searchTime argument sets the duration of the signal segment that is acquired and searched in order to detect a complete OFDM burst. Recommendations on how to set this argument are given in the brief description of the algorithm used by this expression earlier in these Notes/Equations section.
The resultLengthType argument accepts the following strings: "Auto Select" and "Manual Override". The resultLengthType and resultLength arguments control how much data is acquired and demodulated.
- When resultLengthType is set to " Auto Select", the measurement result length is automatically determined from the information in the decoded SIGNAL symbol (LENGTH data field). In this case, the argument resultLength defines a maximum result length for the burst in symbol times; that is, if the measurement result length that is automatically detected is bigger than resultLength it will be truncated to resultLength.
- When resultLengthType is set to " Manual Override ", the measurement result length is set to resultLength regardless of what is detected from the SIGNAL symbol of the burst. The value specified in resultLength includes the SIGNAL symbol but does not include any part of the burst preamble.
Measurement Result Length Setting table shown below, summarizes the differences between how "Auto Select" and " Manual Override " modes determine the measurement result length. The table lists the measurement result lengths actually used for "Auto Select" and " Manual Override" modes for three different values of the resultLength argument (30, 26 and 20 symbols). It is assumed that the input burst is 26 symbols long.
Measurement Result Length Setting
| resultLengthType | resultLength | Measurement Result Length Actually Used |
|---|---|---|
| Auto Select | 20 | 20 |
| Auto Select | 26 | 26 |
| Auto Select | 30 | 26 |
| Manual Override | 20 | 20 |
| Manual Override | 26 | 26 |
| Manual Override | 30 | 30 |
Note that when resultLengthType is set to " Manual Override" and resultLength=30 (greater than the actual burst size) the algorithm will demodulate the full 30 symbols even though this is 4 symbols beyond the burst width.
The measurementOffset and measurementInterval arguments can be used to isolate a specific segment of the burst for analysis. Both are expressed in number of OFDM symbols. The offset starts counting from the SIGNAL symbol. An offset of 0 will include the SIGNAL symbol in the EVM analysis, an offset of 1 will exclude the SIGNAL symbol, and an offset of 5 will exclude the SIGNAL symbol as well as the first 4 DATA symbols.
Interrelationship between searchTime, resultLength, measurementInterval, and measurementOffsetnshown below illustrates the interrelationship between searchTime, resultLength, measurementInterval, and measurementOffset.

Interrelationship between searchTime, resultLength, measurementInterval, and measurementOffset.
The subcarrierSpacing argument sets the frequency spacing between the subcarriers of the OFDM signal. The value must match the subcarrier spacing actually used in the generation of the input signal in order for the demodulation to work properly.
The symbolTimingAdjust argument sets the timing adjustment done on the OFDM symbols before performing the FFT. The value is expressed as a percent of the FFT time period. Its valid range is [-100*guardInterval, 0]. Normally, when demodulating an OFDM symbol, the guard interval is skipped and an FFT is performed on the last portion of the symbol. However, this means that the FFT will include the transition region between this symbol and the following symbol. To avoid this, it is generally beneficial to back away from the end of the symbol and use part of the guard interval. The symbolTimingAdjust argument controls how far the FFT part of the symbol is adjusted away from the end of the symbol. Note that the value of this argument is negative because the FFT start time is moved back by the amount specified by it. The definition of symbolTimingAdjust shown below, explains this concept graphically. When setting this argument, care should be taken to not back away from the end of the symbol too much because this may make the FFT include corrupt data from the transition region at the beginning of the symbol.

Definition of symbolTimingAdjust.
The sync argument accepts the following strings: "Short Training Seq", "Channel Estimation Seq". This argument determines which preamble sequence will be used for synchronization.
The output argument accepts the following strings (see Available Measurement Results for evm_wlan_ofdm()): "EVMrms_percent", "EVM_dB", "PilotEVM_dB", "CPErms_percent", "IQ_Offset_dB", "SyncCorrelation". This argument selects which EVM analysis result will be returned.
Relationship Between WLAN_802_11a Source Parameters and evm_wlan_ofdm() Expression Arguments summarizes how some of the arguments of the evm_wlan_ofdm() expression should be set based on the parameter values of the WLAN_802_11a source.
Relationship Between WLAN_802_11a Source Parameters and evm_wlan_ofdm() Expression Arguments
| WLAN_802_11a | evm_wlan_ofdm() | Comments | |
|---|---|---|---|
| DataRate (default is 54 Mbps) | searchTime (default is 80 µsec) | The recommended searchTime is: 2 × BurstLength. BurstLength= {[5 + (1 + OFDMSymbolsPerBurst)*(1 + GuardInterval)]*64} / Bandwidth + IdleInterval, where: OFDMSymbolsPerBurst = ceil[(22 + 8 *DataLength)* 250000 / DataRate] | |
| Bandwidth (default is 20 MHz) | |||
| DataLength (default is 100) | |||
| IdleInterval (default is 4 µsec) † | |||
| GuardInterval (default is 0.25) | |||
| MirrorSpectrum (default is NO) | mirrorSpectrum (default is NO) | If DUT introduces spectrum mirroring, then mirrorSpectrum must be set to "NO" ("YES") when MirrorSpectrum is set to "YES" ("NO"); otherwise mirrorSpectrum must be set to the same value as MirrorSpectrum. | |
| Bandwidth (default is 20 MHz) | subcarrierSpacing (default is 312.5 kHz) | subcarrierSpacing must be set to Bandwidth/64. | |
| GuardInterval (default is 0.25) | guardInterval (default is 0.25) | guardInterval must be set to the same value as GuardInterval. | |
| † The source IdleInterval must be >= 2 μsec because the EVM measurement provided by the evm_wlan_ofdm() needs enough Idle Interval to detect the burst start time. | |||
Privacy
Statement
|
Terms of Use
|
Legal |
Contact Us
|
© Agilent 2000-2008 ![]()