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.
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.
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
waveforms using the built in tool. This feature is especially
useful during courses dedicated to audio signal processing
and analog/digital signal processing.
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
waveforms using the built in tool. This feature is especially useful during courses dedicated to audio signal processing and analog/digital signal processing.
{empty} +
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, 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.
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,
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
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} +
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.
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.
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.
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.