IEEE.org
|
IEEE Xplore Digital Library
|
IEEE Standards
|
IEEE Spectrum
|
More Sites
Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Joshua Gay
IEEE P1765 Recommended Practice for EVM Measurement and Uncertainty Evaluation
Commits
54c974e1
Commit
54c974e1
authored
Jun 29, 2021
by
Martin Hudlicka
Browse files
Updated code
parent
41c4ff47
Changes
1
Hide whitespace changes
Inline
Side-by-side
03 P1765 Baseline EVM Algorithms/OFDM/IEEE_P1765_OFDM_Baseline_EVM_Algorithm.m
View file @
54c974e1
...
...
@@ -97,6 +97,17 @@
% introduced before MATLAB 2006a.
% Split titles of two constellation diagrams into two lines so that the
% entire titles are visible.
%
% Version 14 24 June 2021
% Updates on modularization by Paritosh Manurkar
% Removed EVM calculation with equalization to have a separate function
% Removed Computation of NPR and NMSE on oversampled signal to have a separate function
%
% Version 15 28 June 2021
% Updates on modularization by Paritosh Manurkar
% Used the generalized plotting function from the single-carrier case for
% plotting the OFDM constellation diagrams
%
%--------------------------------------------------------------------
%
% The OFDM ideal and impaired signals are read from two files
...
...
@@ -133,8 +144,11 @@ close all
%% Define global structure and initialize variables
global
structGlobal
structGlobal
.
evm_results_folder
=
'placeholder'
;
structGlobal
.
filename
=
'placeholder'
;
structGlobal
.
ideal_file
=
'placeholder'
;
structGlobal
.
impaired_file
=
'placeholder'
;
structGlobal
.
SISmn
=
'placeholder'
;
structGlobal
.
filename_results
=
'placeholder'
;
structGlobal
.
filename_constellation
=
'placeholder'
;
%% Choose more or less print and plot outputs
structGlobal
.
tracedebug
=
1
;
%1; % 0, 1 , 2, 3, 4, 5 or 6
...
...
@@ -142,12 +156,12 @@ structGlobal.printdebug = 1; %0; % 0, 1 or 2
%% User inputs for folder and filename
[
structGlobal
.
evm_results_folder
,
structGlobal
.
filename
,
ideal_file
,
impaired_file
]
=
F_UserInputs_Rx
();
F_UserInputs_Rx
();
%% Read signal files
xFideal
=
dlmread
(
ideal_file
,
'\t'
)
.'
;
% ideal bb signal file
xF
=
dlmread
(
impaired_file
,
'\t'
)
.'
;
% impaired bb signal file
xFideal
=
dlmread
(
structGlobal
.
ideal_file
,
'\t'
)
.'
;
% ideal bb signal file
xF
=
dlmread
(
structGlobal
.
impaired_file
,
'\t'
)
.'
;
% impaired bb signal file
%% Basic_Communication_Parameters
...
...
@@ -157,18 +171,4 @@ params = F_Basic_Communication_Parameters();
%% Calculate EVM using the P1765 OFDM Baseline EVM Algorithm
[
tau0
,
G_OPT
,
EVM
]
=
F_P1765_OFDM_Baseline_EVM_Algorithm
(
params
,
xFideal
,
xF
);
F_Save_Results
(
EVM
*
100
,
tau0
,
G_OPT
);
fprintf
(
'=================================================================\n'
)
%% Calculate Average of EVM on frequency channels e.g. with equalization
% Not a part of the P1765 OFDM Baseline EVM Algorithm, Refer to Section 9.1.2
[
G_OPT2
,
EVM_with_equalization
]
=
F_P1765_OFDM_Baseline_EVM_Algorithm_with_equalization
(
params
,
xFideal
,
xF
);
F_Save_Results_EVM_with_equalization
(
EVM_with_equalization
*
100
,
G_OPT2
)
fprintf
(
'=================================================================\n'
)
%% Computation of NPR and NMSE on oversampled signal
% Not a part of the P1765 OFDM Baseline EVM Algorithm, Refer to Section 7.5
[
NPR_EVM
,
NMSE
]
=
F_P1765_OFDM_NMSE_Algorithm
(
params
,
xFideal
,
xF
);
F_Save_Results_NPR_EVM_NMSE
(
NPR_EVM
*
100
,
10
*
log10
(
NMSE
));
fprintf
(
'=================================================================\n'
)
fprintf
(
'=================================================================\n'
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment