Measure error vector magnitude

Utility Blocks

The EVM Measurement block measures the error vector magnitude (EVM), which is an indication of modulator or demodulator performance.

The block has one or two input signals: a received signal and, optionally, a reference signal. You must select if the block uses a reference from an input port or from a reference constellation.

The block normalizes to the average reference signal power,
average constellation power, or peak constellation power. For RMS
EVM, maximum EVM, and *X*-percentile EVM, the output
computations reflect the normalization method.

The default EVM output is the RMS EVM in percent, with an option
of maximum EVM or *X*-percentile EVM values. The
maximum EVM represents the worst-case EVM value per burst. For the *X*-percentile
option, you can enable an output port that returns the number of symbols
processed in the percentile computations.

The table shows the output type, the parameter that selects the output type, the computation units, and the corresponding measurement interval.

Output | Activation Parameter | Units | Measurement Interval |
---|---|---|---|

RMS EVM | None (output by default) | Percentage | `Current length` | `Entire history` | `Custom` | ```
Custom
with periodic reset
``` |

Maximum EVM | Output maximum EVM | Percentage | `Current length` | `Entire history` | `Custom` | ```
Custom
with periodic reset
``` |

Percentile EVM | Output X-percentile EVM | Percentage | `Entire history` |

Number of symbols | Output X-percentile EVM and Output
the number of symbols processed | None | `Entire history` |

The block accepts double, single, and fixed-point data types.
The output of the block is always `double`

.

**Normalize RMS error vector by**Selects the method by which the block normalizes measurements:

`Average reference signal power`

`Average constellation power`

`Peak constellation power`

The default is

`Average reference signal power`

.**Average constellation power**Normalizes EVM measurement by the average constellation power. This parameter is available only when you set

**Normalize RMS error vector**to`Average constellation power`

.**Peak constellation power**Normalizes EVM measurement by the peak constellation power. This parameter only is available if you set

**Normalize RMS error vector**to`Peak constellation power`

.**Reference signal**Specifies the reference signal source as either

`Input port`

or`Estimated from reference constellation`

.**Reference constellation**Specifies the reference constellation points as a vector. This parameter is available only when

**Reference signal**is`Estimated from reference constellation`

. The default is`constellation(comm.QPSKModulator)`

.**Measurement interval**Specify the measurement interval as:

`Input length`

,`Entire history`

,`Custom`

, or`Custom with periodic reset`

. This parameter affects the RMS and maximum EVM outputs only.To calculate EVM using only the current samples, set this parameter to

`'Input length'`

.To calculate EVM for all samples, set this parameter to

`'Entire history'`

.To calculate EVM over an interval you specify and to use a sliding window, set this parameter to

`'Custom'`

.To calculate EVM over an interval you specify and to reset the object each time the measurement interval is filled, set this parameter to

`'Custom with periodic reset'`

.

**Custom measurement interval**Specify the custom measurement interval in samples as a real positive integer. This is the interval over which the EVM is calculated. This parameter is available when

**Measurement interval**is`Custom`

or`Custom with periodic reset`

. The default is`100`

.**Averaging dimensions**Specify the dimensions over which to average the EVM measurements as a scalar or row vector whose elements are positive integers. For example, to average across the rows, set this parameter to

`2`

. The default is`1`

.This block supports var-size inputs of the dimensions in which the averaging takes place. However, the input size for the nonaveraged dimensions must be constant. For example, if the input size is

`[1000 3 2]`

and**Averaging dimensions**is`[1 3]`

, then the output size is`[1 3 1]`

. The number of elements in the second dimension is fixed at 3.**Output maximum EVM**Outputs the maximum EVM of an input vector or frame.

**Output X-percentile EVM**Enables an output

*X*-percentile EVM measurement. When you select this option, specify**X-percentile value (%)**.**X-percentile value (%)**This parameter is available only when you select

**Output X-percentile EVM**. The*X*th percentile is the EVM value below which X% of all the computed EVM values lie. The parameter defaults to the 95th percentile. That is, 95% of all EVM values are below this value.**Output the number of symbols processed**Outputs the number of symbols that the block uses to compute the

*X*-percentile value. This parameter is available only when you select**Output X-percentile EVM**.**Simulate using**Select the simulation mode.

`Code generation`

On the first model run, simulate and generate code. If the structure of the block does not change, subsequent model runs do not regenerate the code.

If the simulation mode is

`Code generation`

, System objects corresponding to the blocks accept a maximum of nine inputs.`Interpreted execution`

Simulate model without generating code. This option results in faster start times but can slow subsequent simulation performance.

Both the EVM block and the EVM object provide three normalization methods. You can normalize measurements according to the average power of the reference signal, average constellation power, or peak constellation power. Different industry standards follow one of these normalization methods.

The block or object calculates the RMS EVM value differently for each normalization method.

EVM Normalization Method | Algorithm |
---|---|

Reference signal | $$EV{M}_{RMS}=\sqrt{\frac{\frac{1}{N}{\displaystyle \sum _{k=1}^{N}({e}_{k})}}{\frac{1}{N}{\displaystyle \sum _{k=1}^{N}({I}_{k}^{2}+{Q}_{k}^{2})}}}*100$$ |

Average power | $$EV{M}_{RMS}=\sqrt{\frac{\frac{1}{N}{\displaystyle \sum _{k=1}^{N}({e}_{k})}}{{P}_{avg}}}*100$$ |

Peak power | $$EV{M}_{RMS}=\sqrt{\frac{\frac{1}{N}{\displaystyle \sum _{k=1}^{N}({e}_{k})}}{{P}_{\mathrm{max}}}}*\text{}100$$ |

Where:

*e*= $${({I}_{k}-\stackrel{~}{{I}_{k}})}^{2}+{({Q}_{k}-{\stackrel{~}{Q}}_{k})}^{2}$$_{k}*I*= In-phase measurement of the_{k}*k*th symbol in the burst*Q*= Quadrature phase measurement of the_{k}*k*th symbol in the burst*N*= Input vector length*P*= The value for_{avg}**Average constellation power***P*= The value for_{max}**Peak constellation power***I*and_{k}*Q*represent ideal (reference) values. $${\stackrel{~}{I}}_{k}$$ and $${\stackrel{~}{Q}}_{k}$$ represent measured (received) symbols._{k}

The max EVM is the maximum EVM value in a frame or $$EV{M}_{\mathrm{max}}=\underset{k\in [1,\mathrm{...},N]}{\mathrm{max}}\left\{EV{M}_{k}\right\}\text{\hspace{0.17em}},$$ where *k* is
the *k*th symbol in a burst of length *N*.

The definition for EVM_{k} varies depending
upon which normalization method you select for computing measurements.
The block or object supports these algorithms.

EVM Normalization | Algorithm |
---|---|

Reference signal | $$EV{M}_{k}=\sqrt{\frac{{e}_{k}}{\frac{1}{N}{\displaystyle \sum _{k=1}^{N}({I}_{k}^{2}+{Q}_{k}^{2})}}}*\text{}100$$ |

Average power | $$EV{M}_{k}=\sqrt{\frac{{e}_{k}}{{P}_{avg}}}*100$$ |

Peak power | $$EV{M}_{k}=\sqrt{\frac{{e}_{k}}{{P}_{\mathrm{max}}}}*\text{}100$$ |

The block or object computes the *X*-percentile
EVM by creating a histogram of all the incoming *EVM _{k}* values.
The output provides the EVM value below which X% of the EVM values
fall.

[1] IEEE Standard 802.16-2004. "Part 16: Air interface for fixed broadband wireless access systems." October 2004. URL: http://ieee802.org/16/published.html.

[2] 3 GPP TS 45.005 V8.1.0 (2008-05). "Radio Access Network: Radio transmission and reception".

[3] IEEE Standard 802.11a-1999. "Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) specifications: High-speed Physical Layer in the 5 GHz Band." 1999.

Was this topic helpful?