By Newcastle Scientific INFO
Newcastle Scientific offers an ActiveX / OCX based numerical library which
includes easy to call functions for Linear and Non-Linear Least Squares
Fitting, Fast Fourier Transforms ( FFT ), Signal Processing, 2nd Order and
Spline Interpolation/Extrapolation, Kalman Filtering, Root/Minimum/Maximum
Searching, Encryption, and Numeric Sorting. Each order also includes
example Visual Basic source code and easy to follow instructions. The price
is only $79.95 for the entire math library consisting of all seven ActiveX
Freely distribute all MathLibX runtime files with your applications.
Download the user's manual (pdf format) for free to preview
|| LeastSqX: LeastSqX provides powerful linear
and non-linear least squares algorithms with an easy one-minute learning curve
interface. Write your own function for fitting and pass the function name to the
control, or simply rely on the default general polynomial function. Freely
distribute all LeastSqX runtime files with your finished application!
To use LeastSqX, simply make a single call to the FitData
method defined by the control. This call includes passing the number of points,
degrees of freedom to fit, array of independent variables (e.g., time), array of
dependent variables (e.g., measurements), array of uncertainties of these
measurements (may be all set to 0 for non-weighted fitting), function name (or 0
for a general polynomial fitting), and initial guess of the coefficients (may be
all 0 for linear least squares). Upon return, the coefficients are replaced by
the fitted values. Also returned are the one sigma uncertainties of the fit,
along with the Chisq value.
Example implimentations included with the control show linear
and non-linear fitting, and also a simple demonstration of how to use LeastSqX
to perform multidimensional fitting (e.g., z as a function of both x and
FFTX: The FFT control allows one to quickly calculate the
Fast Fourier Transform and the Inverse Fast Fourier Transform of a set of data.
The data can be a real or complex data set. The control also includes the option
of Welch windowing the data prior to FFT. The example code demonstrates how to
use this control for creating a smoothing filter. Other uses for the control
includes data convolution and deconvolution.
The control is extremely simple to use. To FFT data, simply
make a call to the FFT method, passing a vector of data, plus the number of
data. Upon return, the data vector has been replaced by its FFT. To take the
inverse, make a similar call to the IFFT method. To use Welch windowing prior to
FFT, just set the Welch window property to true.
For complex data sets, make a call to the complex FFT method
(CFFT) passing vectors of the real and imaginary components of the complex
numbers. Use the complex IFFT (ICFFT) to take the complex inverse.
SigProcX: The Digital Signal Processing Filter control
gives the user the capability to filter real-time data with a number of
different weighting schemes. The control includes several types of digital
filters including highpass, midpass, lowpass filters, and an Alpha Beta type
filter. The user only has to select the filter type, set several filter weight
constants, and the control is ready to start filtering data. Call the "Data"
method with each new unfiltered data point, and the lowpass, midpass, and
highpass filter values are returned. Call the "alpha_beta" method to perform
Alpha Beta filtering.
KalmanFtX: With this Kalman Filter control, one can easily
incorporate the power of linear Kalman filtering into your application. The
Kalman Filter is similar to least squares fitting, but allows for real-time
updates to the fit. The control allows user entries of the Process Noise (Q)
matrix, the Dynamics (Phi) matrix, the Partials (H) matrix, the measurement (Z)
vector, the initial Covariance (P) matrix, and the initial State (X) vector. A
single call to KalmanFtX propagates the state vector and covariance matrix, adds
the Q process noise to the covariance matrix, calculates the gain, updates
covariance matrix, and then updates the state vector.
A single call consists simply of "call KalmanFtX1.Kalman(Z, R,
X, P, H, Q, Phi, Nx, Nz)" where Nx are the number of states and Nz are the
number of measurements at this update.
SortX: The SortX control contains two
types of functions, those utilized for sorting a vector (VectorSort), and those
utilized for sorting an array of data based on a selected column (ColumnSort). A
property called SortOrder sets whether any future call to these sorting
functions will return the data sorted in ascending of descending order. The
control accepts data declared as double float, single float, long integer, and
Min Processor: 486, MS Visual Basic V5.0 or V6.0 (32 Bit)