0

I have an equalized constellation for 16 QAM. The constellation is equalized by LMS algorithm.

I want to calculate the EVM for the equalized constellation. How can I calculate this so that the EVM lies within the threshold limit?

Marcus Müller
  • 30,525
  • 4
  • 34
  • 58

2 Answers2

2

The Error Vector is the Euclidean distance from the actual sample at the optimum timing location in each symbol to the actual symbol location in a reference constellation (as the distance to closest decision boundary, just prior to decision). The measurement metric Error Vector Magnitude (EVM) is computed as an rms quantity over multiple error vectors, where the waveform and the decision boundaries are scaled to either the rms amplitude or a maximum amplitude in the constellation, depending on which standard is used. We can therefore use one sample for every symbol to compute a sufficient number of errors to derive a statistical quantity.

Below shows a single Error Vector for 16 QAM, and the error vector magnitude would be the root-mean-square of all error vectors as given by the formula above (once the constellation and the received signal are properly normalized as described). It also must be mentioned that the normalization by the rms of the waveform assumes the symbols in the waveform are equally distributed, but if not normalization can occur through known training sequences. The idea is that the error vector magnitude should be zero if all the symbols land on the exact locations in the constellation.

error vector

To compute EVM normalize the constellation (by either the rms, the peak level of an outermost point, or the rms of the magnitudes depending on which definition is used). The waveform samples just prior to decision (one sample per symbol) are similarly normalized which would then minimize the computed EVM (this is consistent with what the receiver would do anyway just prior to decision to minimize error rate, so it is very easy to compute).

Once properly scaled the EVM computation in its general form is just the formula for the standard deviation of samples from a zero mean random process and given as a percentage quantity; so the average error magnitude given as a percentage of a normalized constellation:

$$EVM = \frac{\sqrt{\frac{\sum_n|t_n-\hat t_n|^2}{N}}}{S} \times 100\%$$

(Where $S$ is given by whatever normalization is used for the constellation)

Notice at Wikipedia en.wikipedia.org/wiki/Error_vector_magnitude it is defined as "The ideal signal amplitude reference can either be the maximum ideal signal amplitude of the constellation, or it can be the root mean square (RMS) average amplitude of all possible ideal signal amplitude values in the constellation. ". In this paper they define the normalization as the rms of the constellation: eprints.soton.ac.uk/263112/1/paper_101.pdf , while here the outermost point is used: ieee802.org/16/tg1/contrib/802161c-01_28.pdf .

Point being, if an EVM computation result is being provided or used, it is important to provide the definition and equation that is being used for that particular computation.

Dan Boschen
  • 50,942
  • 2
  • 57
  • 135
  • But after LMS equalization I have less symbols then the ideal Tx wave form. How can I normalize this data? Thanks – Umar Farooq May 04 '20 at 15:28
  • You would do this on the converged symbols only. You can have a rate of convergence as another metric. This also assume you have done proper timing recovery as the computation is on the samples at the right decision locations only. – Dan Boschen May 04 '20 at 15:35
  • So the equalized symbols are the converged symbols you mean? – Umar Farooq May 04 '20 at 15:52
  • Yes since the equalizer first needs to be trained to learn the channel. – Dan Boschen May 04 '20 at 16:43
  • Can I upload my code here. Can you please check my code? There is something wrong in the code which I don't understand. – Umar Farooq May 06 '20 at 12:23
  • No don’t upload your whole code as I won’t be able to debug it- this site isn’t for that but I suggest that you narrowit down to the core problem and then ask questions specific to that. – Dan Boschen May 06 '20 at 12:25
  • You ask about EVM; given two data sets from the 16QAM constellation, one ideal and another with noise added—- are you then able to compute EVM? If not that would be a good example to work from and you can expand your question highlighting what your issue or question is. – Dan Boschen May 06 '20 at 12:27
  • I normalize the ideal Tx and the equalized Eq signal and end up with these two values. Nor Tx=1.5836, Nor Eq=1.5891 – Umar Farooq May 06 '20 at 12:33
  • Update your question to show your equations and show your first 20 samples—- you normalized each by their standard deviation? It may help if you try a QPSK first Just to simplify it in case the problem is more obvious. – Dan Boschen May 06 '20 at 12:38
  • My both ideal Tx and Equalized signals were normalized ny absolute values. Then I took RMS of both wave forms and then calculated the difference of both RMS's. – Umar Farooq May 06 '20 at 12:47
  • Normalizing by absolute values is incorrect. You want to normalize my the root-mean-square as we wrote. If that doesn’t help you please do what I suggested (write out the actual equation you are using and put it in your question along with the first 20 samples.) – Dan Boschen May 06 '20 at 13:29
  • How can I normalize both waveforms by their own RMS level? – Umar Farooq May 06 '20 at 13:50
  • You compute the root mean square value for each waveform and divide by that— is your question how to compute the RMS value of any waveform? – Dan Boschen May 06 '20 at 13:59
  • (See x rms here for the equation for a discrete sequence: https://en.m.wikipedia.org/wiki/Root_mean_square ) – Dan Boschen May 06 '20 at 14:01
  • For two waveforms I have I took the RMS of both of them, now then I have to divide the waveforms with the RMS values I got. My waveforms are complex double and the RMS values are just double in (Matlab) – Umar Farooq May 06 '20 at 14:38
  • Yes the rms is the scaling for each waveform- each waveform is divided by its own rms value— experiment with some simple test cases so you see exactly what it going on—- have a clean constellation and another one that is the same with a small amount of random noise added. Scale each my some random magnitude and you should see that once you normalize by their RMS they align very well. If not then the constellation was not randomly distributed and you will need to normalize differently such that they perfectly align (on average) – Dan Boschen May 06 '20 at 14:57
  • I calculated for Tx but when I take RMS of Equalized signal it comes out=inf. Now this is the problem. – Umar Farooq May 06 '20 at 15:11
  • We’re really not supposed to go into extended chat here but keep it to a simple Q&A of your question but the back and forth is discouraged. Please follow my suggestion above and post a new question if needed. I think we answered this question for you. Thanks! – Dan Boschen May 06 '20 at 15:18
1

From my experience EVM is defined as $$ EVM = \sqrt{\frac{1}{NP_{avg}}\sum_{n=0}^{n=N-1}(|x_n-x^*_n|^2)}\\ EVM_{\%} = EVM \times 100 $$ where $x_n$ is the equalized symbol, and $x^*_n$ is the corresponding ideal value of the symbol. $N$ is the number of symbols, and $P_{avg}$ is the average power of equalized constellation. $P_{avg}=\frac{1}{N}\sum_0^{N-1} |x_n|^2$. Only thing you need to take care is scaling should be same for $x_n$ and $x^*_n$. If you are comparing $x_n$ against a normalized ideal constellation 16QAM set, that is $$ x^*_n \in \frac{1}{\sqrt{10}}(\pm 1+\pm j),\frac{1}{\sqrt{10}}(\pm 3+\pm j3),\frac{1}{\sqrt{10}}(\pm 3+\pm j),\frac{1}{\sqrt{10}}(\pm 1+\pm 3j) $$ then you need to scale $x^*_n$ by $\sqrt{P_{avg}}$.

jithin
  • 2,263
  • 2
  • 9
  • 16