... | @@ -2,12 +2,7 @@ |
... | @@ -2,12 +2,7 @@ |
|
|
|
|
|
= OpenLab SignalToolkit - Signal Generator
|
|
= OpenLab SignalToolkit - Signal Generator
|
|
|
|
|
|
This section presents the Java [8] software application
|
|
This section presents the Java [8] software application which controls and monitors the OpenLab Signal Generator. Furthermore, the features and functions of this measurement tool, as well as the benefits for students, are discussed. The main window of the signal generator with its arbitrary signal generation function is illustrated in figure 1.
|
|
which controls and monitors the OpenLab Signal Generator.
|
|
|
|
Furthermore, the features and functions of this measurement
|
|
|
|
tool, as well as the benefits for students, are discussed. The
|
|
|
|
main window of the signal generator with its arbitrary signal
|
|
|
|
generation function is illustrated in figure 1.
|
|
|
|
|
|
|
|
{empty} +
|
|
{empty} +
|
|
|
|
|
... | @@ -15,66 +10,21 @@ image::https://es.technikum-wien.at/openlab/openlab_wiki/wikis/img/SignalToolkit |
... | @@ -15,66 +10,21 @@ image::https://es.technikum-wien.at/openlab/openlab_wiki/wikis/img/SignalToolkit |
|
|
|
|
|
{empty} +
|
|
{empty} +
|
|
|
|
|
|
The application is able to output standard waveforms such
|
|
The application is able to output standard waveforms such as sinusoidal, rectangular, saw tooth shaped, and triangular signals. Furthermore, students are able to generate arbitrary
|
|
as sinusoidal, rectangular, saw tooth shaped, and triangular
|
|
waveforms using the built in tool. This feature is especially useful during courses dedicated to audio signal processing and analog/digital signal processing.
|
|
signals. Furthermore, students are able to generate arbitrary
|
|
|
|
waveforms using the built in tool. This feature is especially
|
|
|
|
useful during courses dedicated to audio signal processing
|
|
|
|
and analog/digital signal processing.
|
|
|
|
|
|
|
|
{empty} +
|
|
{empty} +
|
|
|
|
|
|
The signal generator supports two different methods in order to output arbitrary
|
|
The signal generator supports two different methods in order to output arbitrary signals. The ”Definition Through Points and Interpolation” method enables the user to define a signal graphically by placing key-points on the graph. After pressing the ”Generate Waveform” Button, the software calculates the missing steps between the key-points, using interpolation, and displays the final waveform. This approach is best suited for beginner students, due to the easy-to-understand procedure. The ”Definition in Frequency Domain” method requires the user to specify the sine components that should occur in the output signal. Through the main menu of the user application,
|
|
signals. The ”Definition Through Points and Interpolation”
|
|
the user can open the input mask for the frequency components. In order to ensure correctness of the user input, the data is validated by the application. Students are able to choose the FFT Bin, the agnitude, and the angle of the harmonics. Based on the user input a wavetable with dedicated FFT
|
|
method enables the user to define a signal graphically by
|
|
Bins is stored and an Fast Fourier Transformation (iFFT) is performed on this set of values. For the iFFT the Cooley-Tukey algorithm [15] is used within the application. After the iFFT, the real components are extracted from the complex output and are scaled to the range of 1, in order to fit the allowed ranged of the wavetable values. The calculated data is displayed within the preview window of the application and can be applied to one of the signal generator outputs.
|
|
placing key-points on the graph. After pressing the ”Generate
|
|
|
|
Waveform” Button, the software calculates the missing steps
|
|
|
|
between the key-points, using interpolation, and displays the
|
|
|
|
final waveform. This approach is best suited for beginner
|
|
|
|
students, due to the easy-to-understand procedure. The
|
|
|
|
”Definition in Frequency Domain” method requires the user
|
|
|
|
to specify the sine components that should occur in the output
|
|
|
|
signal. Through the main menu of the user application, the
|
|
|
|
user can open the input mask for the frequency components.
|
|
|
|
In order to ensure correctness of the user input, the data is
|
|
|
|
validated by the application. Students are able to choose the
|
|
|
|
FFT Bin, the magnitude, and the angle of the harmonics.
|
|
|
|
Based on the user input a wavetable with dedicated FFT
|
|
|
|
Bins is stored and an Fast Fourier Transformation (iFFT) is
|
|
|
|
performed on this set of values. For the iFFT the Cooley-
|
|
|
|
Tukey algorithm [15] is used within the application. After the
|
|
|
|
iFFT, the real components are extracted from the complex
|
|
|
|
output and are scaled to the range of 1, in order to fit the
|
|
|
|
allowed ranged of the wavetable values. The calculated data
|
|
|
|
is displayed within the preview window of the application
|
|
|
|
and can be applied to one of the signal generator outputs.
|
|
|
|
|
|
|
|
{empty} +
|
|
{empty} +
|
|
|
|
|
|
This signal generator provides two channels which can be
|
|
This signal generator provides two channels which can be controlled separately. Students are able to vary the output frequency for each channel using the corresponding knob in the Frequency section. The same applies for adjusting the required signal amplitude and for adding any desired offset value.
|
|
controlled separately. Students are able to vary the output
|
|
In order to enable further development of the OpenLab Signal Generator, the user application is designed to support additional signal generator hardware. This means that the output logic is encapsulated and can be handled in a generic way. Each signal generator solution has to inherit from a specific class and implement all the functions to be compatible with the user application. It can be seen as a high level device driver that communicates with the device. As a result, students
|
|
frequency for each channel using the corresponding knob in
|
|
are able to design and built their own hardware, which can be added to the Java software using a common interface. In the current state of development, the OpenLab Signal Generator supports generic PC soundcard devices as signal source. To ensure platform independence, the Java software utilizes the open-source PortAudio [16] library. Even without the external signal processing hardware, described in V, students are able to perform basic measurement tasks. Therefore, in order to
|
|
the Frequency section. The same applies for adjusting the
|
|
demonstrate signal characteristics, only a PC running the OpenLab software is required.
|
|
required signal amplitude and for adding any desired offset
|
|
|
|
value.
|
|
|
|
In order to enable further development of the OpenLab
|
|
|
|
Signal Generator, the user application is designed to support
|
|
|
|
additional signal generator hardware. This means that the
|
|
|
|
output logic is encapsulated and can be handled in a generic
|
|
|
|
way. Each signal generator solution has to inherit from a
|
|
|
|
specific class and implement all the functions to be compatible
|
|
|
|
with the user application. It can be seen as a high level device
|
|
|
|
driver that communicates with the device. As a result, students
|
|
|
|
are able to design and built their own hardware, which can be
|
|
|
|
added to the Java software using a common interface. In the
|
|
|
|
current state of development, the OpenLab Signal Generator
|
|
|
|
supports generic PC soundcard devices as signal source. To
|
|
|
|
ensure platform independence, the Java software utilizes the
|
|
|
|
open-source PortAudio [16] library. Even without the external
|
|
|
|
signal processing hardware, described in V, students are able
|
|
|
|
to perform basic measurement tasks. Therefore, in order to
|
|
|
|
demonstrate signal characteristics, only a PC running the
|
|
|
|
OpenLab software is required.
|
|
|
|
|
|
|
|
{empty} +
|
|
{empty} +
|
|
|
|
|
... | | ... | |