|
How to write a complex Digital Signal Processing(DSP) application with SignalLab using Delphi or C++ Builder
This is a step by step tutorial for writing a complex Digital Signal Processing (DSP) application in Delphi or C++ Builder VCL by using SignalLab. The steps are exactly identical in Delphi or C++ Builder versions 5 to 2007.
There is no code writing necessary to complete this application.
There is no need to know Delphi or C++ Builder in order to create this application.
Here is what our application will do:
- The application will generate random signal.
- The signal will be plotted on a scope component.
- The signal will be filtered by a LowPass filter.
- The filtered signal will be recorded into a file.
- The filtered signal also will be plotted on the Scope.
- The application will perform Fast Fourier Transformation (FFT) on both the original and the filtered signal.
- The results of both FFTs will be shown in a separated Scope, and the FFT of the filtered signal will be shown in a Waterfall.
All of this will be done in less than 2 minutes, and without writing a single line of code.
The steps bellow are captured using Delphi 2007, however they are identical in C++ Builder and older versions of the products.

The tutorial covers the following steps, which should take less than 5 minutes:
1. Add a TSLRandomGen Component to Your Application's Form:
2. Add a TSLLowPass Component to Your Application's Form:
3. Add 2 TSLFourier Components to Your Application's Form:
4. Add a TSLLogger Component to Your Application's Form:
5. Add 2 TSLScope Controls to Your Application's Form:
6. Add a TSLWaterfall Control to Your Application's Form:
7. Add 2 channels to both SLScope1 and SLScope2:



7.4 In the Channel Editor click on the to add a new channel, and select it:


7.6. Repeat the same steps with SLScope2 so it will also have 2 channels named “Random”, and “LowPass”.
8. Connect the SLRandomGen1.OutputPin to SLScope1.InputPins.Random, SLLowPass1.InputPin and SLFourier1.InputPin:


8.3. In the connection editor check the InputPins.Random of the SLScope1, InputPin of SLLowPass1 and InputPin of SLFourier1, then click OK:

9. Connect the SLLowPass1.OutputPin to SLScope1.InputPins.LowPass, SLLogger1.InputPin and SLFourier2.InputPin:


9.3. In the connection editor check the InputPins.LowPass of the SLScope1, InputPin of SLLogger1 and InputPin of SLFourier2, then click OK:

10. Connect the SLFourier1.OutputPin to SLScope2.InputPins.Random:


10.3. In the connection editor check the InputPins.Random of the SLScope2, and click OK:

11. Connect the SLFourier2.OutputPin to SLScope2.InputPins.Random and SLWaterfall1.InputPin:


11.3. In the connection editor check the InputPins.LowPass of the SLScope2, and InputPin of the SLWaterfall1, then click OK:

12. Select file name for the file to be recorded by the logger1:

12.2. In the SLLogger1 Properties select the FileName property and enter the path and the name of the file where you want to record the processed data:

13. Run the Application:

Here is a diagram of the OpenWire connections in this application:

|