|
|
|
The Signal Tools Digital Signal Analysis and
Processing System Introduction Lately I have been spending some time updating a general purpose signal processing system written a few years ago. Although the original system was difficult to use, it was very versatile and useful for experimenting with signal processing techniques. Pages of signal displays generated with this software have been very popular on the Internet. (See the Frequency Domain Processing and Signal Analysis Principles pages.) I also wanted a system that could be easily adapted for new geophysical applications. The new system takes advantage of developments in Microsoft's programming languages. In particular, Microsoft's COM (Component Object Model) specification and software support makes it easy to create reusable object oriented components that can be quickly assembled into an application. To date, signal and graph ActiveX components and a signal processing DLL library have been written. The ActiveX components are still being enhanced and debugged but they do currently work and have been used to create simple applications. A few basic processing routines have been written in the DLL library and I aim to eventually add all of the routines that were used in the original system.
ActiveX Components:
The Signal component (Figure 1) is used to hold the signal data for processing. The signal data is accessed through the components properties. Common functions to create/edit, open, save, cut, copy, paste and delete signal data are available by clicking on the icons on the component. The signal name is shown on the top of the control and the field selected for processing is shown in the list box on the control.
The Graph component (Figure 2) is used to view a signal. It can plot 1D or 2D data in various formats. The graph layout is controlled by setting the values of many of the control's properties. The control has several "Methods" or subroutines for controlling the plot. The Graph control is connected to a Signal control by calling one of the controls methods.
Signal Processing DLL Library A number of signal processing and utility functions and subroutines have been written into the Signal Processing Library, including: 1D Real FFT -- Fourier transforms a 1D real data set.
Output can be in real, imaginary or frequency, phase form.
Application Example
Figure 3 shows an application that was assembled very quickly using the geophysical signal analysis components. The Signal control takes care of reading and writing the signal data to disk and holding the data in RAM for processing. The Graph control shows a view of the signal data. It is linked to the Signal control by calling one of its "methods". The NMO Event Parameters section is the user interface assembled using standard Visual Basic 6 controls to get the parameters for a NMO event. (The red line on the Graph control is one of its elements used to show a preview of a new event shape and is updated as the NMO parameters are changed.) Pressing the "ADD NMO Event" button calls the NMO2D subroutine in the Signal Processing Library which adds the function to the signal data. As new functions and subroutines are added to the library, more advanced applications can be developed. Any number of Signal and Graph controls can be used on an application form (window), and an application can have multiple forms.
|