... | @@ -2,7 +2,7 @@ |
... | @@ -2,7 +2,7 @@ |
|
|
|
|
|
= OpenLab SignalToolkit - Signal Generator
|
|
= OpenLab SignalToolkit - Signal Generator
|
|
|
|
|
|
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 [1] 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.
|
|
|
|
|
|
{empty} +
|
|
{empty} +
|
|
|
|
|
... | @@ -17,7 +17,7 @@ waveforms using the built in tool. This feature is especially useful during cour |
... | @@ -17,7 +17,7 @@ waveforms using the built in tool. This feature is especially useful during cour |
|
|
|
|
|
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 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
|
|
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.
|
|
Bins is stored and an Fast Fourier Transformation (iFFT) is performed on this set of values. For the iFFT the Cooley-Tukey algorithm [2] 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} +
|
|
|
|
|
... | @@ -26,12 +26,14 @@ In order to enable further development of the OpenLab Signal Generator, the user |
... | @@ -26,12 +26,14 @@ In order to enable further development of the OpenLab Signal Generator, the user |
|
|
|
|
|
{empty} +
|
|
{empty} +
|
|
|
|
|
|
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 [1] 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.
|
|
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 [3] 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} +
|
|
|
|
|
|
== Bibliography +
|
|
== Bibliography +
|
|
|
|
|
|
|
|
. ORACLE: _Java_ [Online] https://docs.oracle.com/javase/9
|
|
|
|
. Cooley, J. W. and J. Turkey: _An algorithm for the machine calculation of complex Fourier series_, Mathematics of Computation, 1965
|
|
. Benicina, Ross; Burk, Phil: _PortAudio Portable Real-Time Audio Library_ [Online] https://www.portaudio.com [PortAudio Portable Real-Time Audio Library]
|
|
. Benicina, Ross; Burk, Phil: _PortAudio Portable Real-Time Audio Library_ [Online] https://www.portaudio.com [PortAudio Portable Real-Time Audio Library]
|
|
|
|
|
|
{empty} +
|
|
{empty} +
|
... | | ... | |