How to use evm?
22 次查看(过去 30 天)
显示 更早的评论
How do I actually use the comms toolbox evm thing to calculate evm? The Matlab webpages show layers of object-oriented abstraction, but little actual info on how to use it. I just want to use it as a simple function so I don't have to write my own. No need for Simulink. For example, for a QPSK signal, I give it the original constellation and a noisy constellation, and I get back the RMS error. Something like this (greatly simplified):
constellation=[0.7071+0.7071i 0.7071-0.7071i -0.7071+0.7071i -0.7071-0.7071i];
awgn=randn(1,4)+1i*rand(1,4);
err=evm(constellation,constellation+awgn)
Is there any way do that, or any other evm function that does it? Or should I just write my own code?
Thanks.
0 个评论
采纳的回答
Yash
2023-8-21
Hi,
You can use the built-in comm.EVM object as it provides a convenient and standardized way to calculate EVM in MATLAB.
Here is the updated code snippet for the functionality:
constellation = [0.7071+0.7071i, 0.7071-0.7071i, -0.7071+0.7071i, -0.7071-0.7071i];
awgn = randn(1, 4) + 1i * rand(1, 4);
evm = comm.EVM; % creates an EVM measurement system object
err = evm(constellation, constellation + awgn);
For more details on using the comm.EVM object and its additional capabilities you can refer to the documentation: Measure error vector magnitude (EVM) of received signal - MATLAB (mathworks.com)
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 QPSK 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!