19 lines
514 B
Matlab
19 lines
514 B
Matlab
function [evm,stdev] = calc_evm(vector_received,vector_ideal)
|
|
|
|
error_vector = (vector_received-vector_ideal);
|
|
|
|
k = unique(vector_ideal);
|
|
|
|
error = repmat(zeros(size(vector_ideal)),1,length(k));
|
|
|
|
for lvl = 1:length(k)
|
|
error(vector_ideal==k(lvl),lvl) = error_vector(vector_ideal==k(lvl));
|
|
end
|
|
|
|
error(error==0) = NaN;
|
|
|
|
stdev = std(error,"omitnan");
|
|
|
|
error = sqrt(error.^2);
|
|
evm = sqrt( 1/length(error) .* sum(error.^2,1,'omitnan') ) ;
|
|
end |