EVM in radial and circumferential directions?
1 view (last 30 days)
Show older comments
Can comm.EVM measure EVM in the radial and circumferential (i.e., along the unit circle) directions separately?
2 Comments
Accepted Answer
Abhimenyu
on 18 Oct 2023
Hi Jerry,
I understand that you want to measure EVM in radial and circumferential direction separately. ‘comm.EVM’ object measures the root mean squared (RMS) EVM, maximum EVM, and percentile EVM of a received signal. It gives overall EVM as a percentage of distance from the origin to ideal point. It does not separate the radial and circumferential components.
Please follow the example code below to understand the EVM measurements in different directions:
% Generate a reference signal (QPSK)
constellation = [-1-1i, -1+1i, 1-1i, 1+1i];
refSignal = constellation(randi([1, 4], 1000, 1));
% Generate a modulated signal with noise and distortion
SNR_dB = 20; % Signal-to-noise ratio in decibels
modSignal = awgn(refSignal, SNR_dB, 'measured'); % Add white Gaussian noise
modSignal = modSignal + 0.1 * exp(1i * pi / 4); % Add constant phase offset
modSignal = modSignal .* (1 + 0.2 * (randn(size(modSignal)))) + 1i * randn(size(modSignal)); % Add random amplitude and phase variation
% Compute the error vector
errorVector = modSignal - refSignal;
% Compute the radial component of the error vector
radialErrorVector = abs(errorVector);
% Compute the circumferential component of the error vector
circumferentialErrorVector = angle(errorVector);
% Calculate the RMS values of the radial and circumferential errors
rmsRadialError = rms(radialErrorVector);
rmsCircumferentialError = rms(circumferentialErrorVector);
% Normalize the error values by the magnitude of the reference signal to obtain the EVM in each direction
evmRadial = 100 * rmsRadialError / mean(abs(refSignal))
evmCircumferential = 100 * rmsCircumferentialError / mean(abs(refSignal))
Please follow the MATLAB documentation link below to learn more about the ‘comm.EVM’ object:
I hope this helps!
Thanks,
Abhimenyu
2 Comments
More Answers (0)
See Also
Categories
Find more on PHY Components in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!