Main Content

EVM Measurement

Measure error vector magnitude


Utility Blocks

  • EVM Measurement block


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.

OutputActivation ParameterUnitsMeasurement Interval
RMS EVMNone (output by default)PercentageCurrent length | Entire history | Custom | Custom with periodic reset
Maximum EVMOutput maximum EVMPercentageCurrent length | Entire history | Custom | Custom with periodic reset
Percentile EVMOutput X-percentile EVMPercentageEntire history
Number of symbolsOutput X-percentile EVM and Output the number of symbols processedNoneEntire history

Data Type

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

Averaging dimensions over which to average the EVM measurements, specified as an integer or row vector of integers with element values in the range [1, 3]. 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 Xth 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.


expand all

Measure the RMS and 90th percentile EVM for an 8-PSK signal in an AWGN channel.

Open the model by typing doc_evm_example on the command line.

Run the model. The Display (Simulink) block shows the number of symbols used to estimate the EVM. The Time Scope shows the RMS and 90th percentile EVM values.

Observe that 90% of the symbols had an EVM value of less than 28% and that the average EVM is approximately 17%.

Experiment with the model by changing the signal-to-noise ratio in the AWGN Channel block. Examine its effect on the EVM values.


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 MethodAlgorithm
Reference signal


Average power


Peak power



  • ek = ek=(IkI˜k)2+(QkQ˜k)2

  • Ik is the in-phase measurement of the kth symbol in the burst

  • Qk is the quadrature phase measurement of the kth symbol in the burst

  • N is the input vector length

  • Pavg is the average constellation power

  • Pmax is the peak constellation power

  • Ik and Qk represent ideal (reference) values. I˜k and Q˜k represent measured (received) symbols.

The max EVM is the maximum EVM value in a frame or EVMmax=maxk[1,...,N]{EVMk}, where k is the kth symbol in a burst of length N.

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

EVM NormalizationAlgorithm
Reference signal


Average power


Peak power


The block or object computes the X-percentile EVM by creating a histogram of all the incoming EVMk 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.

[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.

Extended Capabilities

Introduced in R2009b