2.6  EVM and MER

Two figures of merit often used in digital communications are the error vector magnitude (EVM) and the modulation error ratio (MER). Both are related to the SNR but take in account that when using a digital modulation, one can compare the symbols of a signal of interest to the constellation symbols (or estimates).

More specifically, let s~[n] denote a sequence of symbols extracted from the signal of interest and s[n] be the reference symbols. In many cases, one assumes that s[n] are the “correct” constellation symbols even if they are simple estimates obtained by the constellation nearest-neighbor of s~[n]. The error sequence used by both EVM and MER is e[n] = s[n] s~[n] and its average power is Pe = 𝔼[|e[n]|2]. Considering the average power of s[n] is Ps = 𝔼[|s[n]|2], the MER is given by

MER[dB]=def10log 10 (Ps Pe ) .
(2.6)

The RMS EVM can be defined as

EVM=def Pe Ps,
(2.7)

such that, in linear scale (not using dB):

MER = 1 EVM2.
(2.8)

It is also common to express EVM in dB or in percentage.

Similar to the SNR, there are several distinct definitions for MER and EVM. For example, the maximum power can be used instead of the average power (Ps) in Eq. (2.7). Or, alternatively, the reference symbols s[n] may not be available in a nondata-aided scheme, and their estimation used instead. This estimation can be done using the nearest-neighbor constellation symbol of each received symbol. But in this case, if there are errors (the SER or BER is not zero), obtaining the reference s[n] as the nearest-neighbor of s~[n] leads to an optimistic estimation because Pe would be larger in case the correct symbols were used. But this is not a problem when s~[n] is the transmit signal and the nearest-neighbor decision is always correct (SER and BER are zero).

Listing 2.1 provides an example of MER and EVM estimations for QAM modulation. In Line 14, this code illustrates that MER and EVM can be obtained one from the other.

Listing 2.1: MatlabOctaveCodeSnippets/snip_digi_comm_evm_mer.m
1M=64; %modulation order 
2constellation=ak_qamSquareConstellation(M); %QAM constellation 
3Ec=mean(abs(constellation).^2); %average energy constellation 
4N=10000; %number of random symbols 
5SNRdB=8; %desired SNR in dB 
6noisePower=Ec/(10^(0.1*SNRdB));%total noise power, half per dimension 
7indicesTx=ceil(M*rand(1,N)); %indices, check with: hist(indices,M) 
8transmitSymbols=constellation(indicesTx); %correct symbols 
9noise=sqrt(noisePower/2)*(randn(1,N)+1j*randn(1,N)); %noise (complex) 
10receiveSymbols=transmitSymbols+noise; %symbol-based AWGN channel 
11%% 1st option) Using the correct transmit symbols as reference 
12evm=ak_evm(transmitSymbols, receiveSymbols); %estimate RMS EVM (%) 
13mer=ak_mer(transmitSymbols, receiveSymbols); %estimate MER (dB) 
14mer2=10*log10(1/(evm/100)^2); %MER calculated from EVM 
15disp(['EVM=' num2str(evm) '%, MER=' num2str(mer) ' dB (correct)']) 
16%% 2nd option) Using the estimated transmit symbols as reference 
17[indicesRx, estimatedSymbols]=ak_qamdemod(receiveSymbols,M); 
18evm_est=ak_evm(estimatedSymbols, receiveSymbols); %estim. RMS EVM (%) 
19mer_est=ak_mer(estimatedSymbols, receiveSymbols); %estimate MER (dB) 
20disp(['EVM=' num2str(evm_est) '%, MER=' num2str(mer_est) ' dB']) 
21%% Other figures of merit 
22snr=10*log10(mean(abs(transmitSymbols).^2)/mean(abs(noise).^2)); %SNR 
23ser=sum(indicesRx+1 ~= indicesTx)/length(indicesTx); %estimate SER 
24disp(['SNR=' num2str(snr) ' dB, SER=' num2str(ser) '%'])
  

Listing 2.1 compares two options for the reference s[n]: using the transmit symbols or extracting it from the received signal. If the symbol error rate (SER) is zero, the results from these two options coincide. However, for SNRdB=8, the output of Listing 2.1 is:

EVM=39.8923%, MER=7.9822 dB (correct)
EVM=18.8403%, MER=14.4983 dB
SNR=7.9822 dB, SER=0.7647%

As discussed, both EVM and MER may be underestimated when the reference symbols are estimated from the received ones. In this case, the MER for the second option was 14.5 dB while the correct one is only 8 dB. Another observation is that, when the channel is AWGN, the MER coincides with the SNR in case the correct transmit symbols are used as reference. In the general case, MER and SNR may not coincide due to synchronization errors and other impairments.