Measure error vector magnitude
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|
|Maximum EVM||Output maximum EVM||Percentage|
|Percentile EVM||Output X-percentile EVM||Percentage|
|Number of symbols||Output X-percentile EVM and Output the number of symbols processed||None|
The block accepts double, single, and fixed-point data types. The output of the
block is always
- 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
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
- Measurement interval
Specify the measurement interval as:
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
To calculate EVM for all samples, set this parameter to
To calculate EVM over an interval you specify and to use a sliding window, set this parameter to
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 with periodic reset. The default is
- 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
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.
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.
Simulate model without generating code. This option results in faster start times but can slow subsequent simulation performance.
Measure RMS and 90th Percentile EVM
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
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 Method||Algorithm|
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. and represent measured (received) symbols.
The max EVM is the maximum EVM value in a frame or 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.
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.
 IEEE Standard 802.16-2004. "Part 16: Air interface for fixed broadband wireless access systems." October 2004.
 3 GPP TS 45.005 V8.1.0 (2008-05). "Radio Access Network: Radio transmission and reception".
 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.
C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.
To generate code in a model using this block, you must enable Dynamic Memory Allocation in MATLAB Functions. For more information, see Dynamic memory allocation in MATLAB functions (Simulink).