Documentation

lteEVM

Error vector magnitude calculation

Syntax

  • evm = lteEVM(x,r)
    example
  • evm = lteEVM(ev)

Description

example

evm = lteEVM(x,r) returns a structure, evm, containing error vector magnitude (EVM) information for the input vector, x, given the reference signal vector, r. The EVM is defined using the error, or difference, between the input values, x, and the reference signal, r.

The EVM values in the RMS and Peak structure fields are linear EVM, not EVM as a percentage. To obtain EVM as a percentage, multiply the value of the RMS and Peak structure fields by 100.

evm = lteEVM(ev) returns a structure, evm, for the input vector, ev, which is taken to be the normalized error vector given by the expression ev=(x-r)/sqrt(mean(abs(r.^2))). This syntax allows for peak and RMS EVM calculation for preexisting normalized error vectors. For example, it can be used to calculate the EVM across an array of previous EVM results, by extracting and concatenating the EV fields from the array to form the ev input vector.

Examples

collapse all

Measure LTE Symbol EVM

Generate a random QPSK constellation at a defined EVM level. Measure and confirm the added EVM.

Generate a stream of QPSK symbols.

txSym = lteSymbolModulate(randi([0,1],10000,1),'QPSK');

Add noise at a defined EVM level, evmPercent.

evmPercent = 14.0;
N0 = complex(randn(size(txSym)),randn(size(txSym)));
noise = N0 * (evmPercent/100)/sqrt(2);
rxSym = txSym + noise;

Measure and display the root mean square EVM level in percent.

evm = lteEVM(rxSym,txSym)
evm.RMS*100
evm = 

    Peak: 0.4260
     RMS: 0.1382
      EV: [5000x1 double]


ans =

   13.8234

Input Arguments

collapse all

x — Input vectornumeric column vector

Input vector, specified as a numeric column vector.

Data Types: double | single
Complex Number Support: Yes

r — Reference signal vectornumeric column vector

Reference signal vector, specified as a numeric column vector.

Data Types: double | single
Complex Number Support: Yes

ev — Normalized error vectornumeric column vector

Normalized error vector, specified as a numeric column vector.

Data Types: double | single
Complex Number Support: Yes

Output Arguments

collapse all

evm — EVM informationstructure

EVM information, returned as structure. evm contains the following fields.

RMS — Root mean square (RMS) EVMpositive numeric scalar

Root mean square (RMS) EVM, specified as a positive numeric scalar. It is the square root of the mean of the squares of all the values of the EVM.

Data Types: double | single

Peak — Peak EVMpositive numeric scalar

Peak EVM, returned as a positive numeric scalar. It is the largest single EVM value calculated across all input values.

Data Types: double | single

EV — Normalized error vectornumeric column vector

Normalized error vector, returned as a numeric column vector.

Data Types: double | single
Complex Number Support: Yes

Data Types: struct

Introduced in R2014a

Was this topic helpful?