Introduction#
+Introduction#
Genalyzer is a C++ library that facilitates the computation of commonly used data-converter RF performance metrics in a standards-complaint manner. Genalyzer supports generation of waveforms for characterizing data-converters as well as the computation of performance metrics given the time- or frequency-domain response of data-converters to such waveforms. In other words, users not only have the option of selecting whether or not to opt for waveform generation to characterize data-convereters, but are also able to utilize time-series data or FFT of samples captured from a data-convereter to directly compute the desired performance metrics.
Thus, Genalyzer can support a simulation-only scenario or a data-capture scenario. In the first case, the response of a data-converter is simulated given its specifications, in order to compute the expected performance metrics. In the second case, the response of a data-converter is available for Genalyzer to process in the form of a text or binary file. Genalyzer facilitates the computation of common data converter performance metrics in a standards-complaint manner. The terminology and definitions for various common performance metrics are adopted from the IEEE Standard for Terminology and Test Methods for Analog-to-Digital Converters (IEEE 1241-2010) and the IEEE Standard for Terminology and Test Methods of Digital-to-Analog Converter Devices (IEEE 1658-2011) both published by Instrumentation and Measurement/Waveform Generation, Measurement, and Analysis - Technical Committee 10 (IM/WM&A - TC10).
Introduction
+
-
+
diff --git a/master/02_using_genalyzer.html b/master/02_using_genalyzer.html
index 97dfe1b..13946ac 100644
--- a/master/02_using_genalyzer.html
+++ b/master/02_using_genalyzer.html
@@ -1,13 +1,13 @@
-
+
-
+
Using Genalyzer - Genalyzer v0.0.1 documentation
-
+
@@ -200,7 +200,7 @@
-Using Genalyzer#
+Using Genalyzer#
As mentioned previously, Genalyzer is a C++ library designed to support computation of RF performance metrics using either simulation data or data captured from a physical instrument. Bindings are provided to enable users to write C- or Python-based scripts to compute the desired performance metrics. In both cases, the overall structure of a C-example script that links to genalyzer library is similar, as shown in the next section. The overall structure in a simulation-only scenario consists of three stages:
Test Configuration
@@ -255,9 +255,9 @@ Using Genalyzer
-Test Configuration#
+Test Configuration#
-Tone-based Test Configuration#
+Tone-based Test Configuration#
In tone-based test configuration, config_tone_meas()
allows users to indicate test settings such as, number of tones, their frequencies, phases, scales, whether real sinusoidal or complex-exponential waveforms are to be generated, the sample-rate, full-scale range of the converter, its resolution etc. Similarly, users can indicate whether the data that will be loaded in the second stage is time-series data or interleaved FFT samples. Moreover, in data-capture scenario i.e., when FFT data is provided to Genalyzer in the second step, the tone frequency, scale and phase information is not required. This test configuration is used for measurements such as SFDR, THD, TIL etc.
An example of the config_tone_meas()
function call is shown by the following example.
// configuration
@@ -281,7 +281,7 @@ Tone-based Test Configuration
-Ramp-based Test Configuration#
+Ramp-based Test Configuration#
In ramp-based test configuration, config_ramp_meas()
allows users to indicate test settings such as, the starting and ending values of the ramp waveform in addition to the full-scale range and the resolution of the data converter under test. This test configuration is primarily used in non-linearity based measurements.
An example of the config_ramp_meas()
function call is shown by the following example.
// configuration
@@ -298,7 +298,7 @@ Ramp-based Test Configuration
-Noise-based Test Configuration#
+Noise-based Test Configuration#
In noise-based test configuration, config_noise_meas()
allows users to indicate test settings such as, the noise power level in addition to the full-scale range and the resolution of the data converter under test. This test configuration is primarily used for computing noise spectral density.
An example of the config_noise_meas()
function call is shown by the following example.
// configuration
@@ -318,7 +318,7 @@ Noise-based Test Configuration
-Waveform Generation#
+Waveform Generation#
The second step, as shown previously, involves either generating the waveform and quantizing it or loading the waveform from a file. The following options are currently supported.
cosine/sine and complex exponential waveforms of arbitrary frequency and sample rate
@@ -352,7 +352,7 @@ Waveform Generation
-Performance Metric Computation#
+Performance Metric Computation#
The final stage involves simply computing the desired performance metric. Metric computation is done by a call to metric()
where, the last argument is one of:
Using Genalyzer#
+Using Genalyzer#
As mentioned previously, Genalyzer is a C++ library designed to support computation of RF performance metrics using either simulation data or data captured from a physical instrument. Bindings are provided to enable users to write C- or Python-based scripts to compute the desired performance metrics. In both cases, the overall structure of a C-example script that links to genalyzer library is similar, as shown in the next section. The overall structure in a simulation-only scenario consists of three stages:
Test Configuration
@@ -255,9 +255,9 @@ cosine/sine and complex exponential waveforms of arbitrary frequency and sample rate
@@ -352,7 +352,7 @@
Using Genalyzer
-Test Configuration#
+Test Configuration#
-Tone-based Test Configuration#
+Tone-based Test Configuration#
In tone-based test configuration, config_tone_meas()
allows users to indicate test settings such as, number of tones, their frequencies, phases, scales, whether real sinusoidal or complex-exponential waveforms are to be generated, the sample-rate, full-scale range of the converter, its resolution etc. Similarly, users can indicate whether the data that will be loaded in the second stage is time-series data or interleaved FFT samples. Moreover, in data-capture scenario i.e., when FFT data is provided to Genalyzer in the second step, the tone frequency, scale and phase information is not required. This test configuration is used for measurements such as SFDR, THD, TIL etc.
An example of the config_tone_meas()
function call is shown by the following example.
// configuration
@@ -281,7 +281,7 @@ Tone-based Test Configuration
-Ramp-based Test Configuration#
+Ramp-based Test Configuration#
In ramp-based test configuration, config_ramp_meas()
allows users to indicate test settings such as, the starting and ending values of the ramp waveform in addition to the full-scale range and the resolution of the data converter under test. This test configuration is primarily used in non-linearity based measurements.
An example of the config_ramp_meas()
function call is shown by the following example.
// configuration
@@ -298,7 +298,7 @@ Ramp-based Test Configuration
-Noise-based Test Configuration#
+Noise-based Test Configuration#
In noise-based test configuration, config_noise_meas()
allows users to indicate test settings such as, the noise power level in addition to the full-scale range and the resolution of the data converter under test. This test configuration is primarily used for computing noise spectral density.
An example of the config_noise_meas()
function call is shown by the following example.
// configuration
@@ -318,7 +318,7 @@ Noise-based Test Configuration
-Waveform Generation#
+Waveform Generation#
The second step, as shown previously, involves either generating the waveform and quantizing it or loading the waveform from a file. The following options are currently supported.
Waveform Generation
-Performance Metric Computation#
+Performance Metric Computation#
The final stage involves simply computing the desired performance metric. Metric computation is done by a call to metric()
where, the last argument is one of:
Tone-based Test Configuration#
+Tone-based Test Configuration#
In tone-based test configuration, config_tone_meas()
allows users to indicate test settings such as, number of tones, their frequencies, phases, scales, whether real sinusoidal or complex-exponential waveforms are to be generated, the sample-rate, full-scale range of the converter, its resolution etc. Similarly, users can indicate whether the data that will be loaded in the second stage is time-series data or interleaved FFT samples. Moreover, in data-capture scenario i.e., when FFT data is provided to Genalyzer in the second step, the tone frequency, scale and phase information is not required. This test configuration is used for measurements such as SFDR, THD, TIL etc.
An example of the config_tone_meas()
function call is shown by the following example.
// configuration
@@ -281,7 +281,7 @@ Tone-based Test Configuration
-Ramp-based Test Configuration#
+Ramp-based Test Configuration#
In ramp-based test configuration, config_ramp_meas()
allows users to indicate test settings such as, the starting and ending values of the ramp waveform in addition to the full-scale range and the resolution of the data converter under test. This test configuration is primarily used in non-linearity based measurements.
An example of the config_ramp_meas()
function call is shown by the following example.
// configuration
@@ -298,7 +298,7 @@ Ramp-based Test Configuration
-Noise-based Test Configuration#
+Noise-based Test Configuration#
In noise-based test configuration, config_noise_meas()
allows users to indicate test settings such as, the noise power level in addition to the full-scale range and the resolution of the data converter under test. This test configuration is primarily used for computing noise spectral density.
An example of the config_noise_meas()
function call is shown by the following example.
// configuration
@@ -318,7 +318,7 @@ Noise-based Test Configuration
-Waveform Generation#
+Waveform Generation#
The second step, as shown previously, involves either generating the waveform and quantizing it or loading the waveform from a file. The following options are currently supported.
Waveform Generation
-Performance Metric Computation#
+Performance Metric Computation#
The final stage involves simply computing the desired performance metric. Metric computation is done by a call to metric()
where, the last argument is one of: