How to use evm?
26 ビュー (過去 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)
2 件のコメント
その他の回答 (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!