SDA Operator’s Manual
SDA-OM-E Rev H 249
newArray(i) = ScaleFactor * (unscaledData(i)) ^ 2
Next
OutResult.DataArray(False) = newArray ' signed long integer data output
Example Parameter Function Script: RMS of a waveform
' Example script to produce a parameter.
' This script calculates the root mean square
' of the input waveform.
' Note that a trace of nominal length 1000 has data from
' 0 to 1001. The 1001st point is not visible, so you
' normally use points 0 to 1000,
' giving 1001 points and 1000 intervals between points.
startData = 0
endData = InResult.Samples
LastPoint = endData - 1 ' because the last point is invisible.
ReDim newArray(InResult.Samples) ' to store the results
unscaledData = InResult.DataArray(True)
' InResult.DataArray(False) provides
' integer data from -32768 to 32767.
' InResult.DataArray(True) provides real data
' in the same unit as the vertical scale of the trace.
Total = 0
For i = 0 To LastPoint
Total = Total + (unscaledData(i)) ^ 2
Next
NewArray(0) = Sqr (Total / (LastPoint + 1)) Place the result in the
zeroth element.
OutResult.ValueArray(True) = newArray ' integer data output
The default waveform function script: explanatory notes
InResult.Samples is the number of points in the incoming waveform.
InResult.DataArray(Boolean) (or InResult1.DataArray or InResult2.DataArray) is the array of input
data. If the Boolean is True you get scaled real data in the units of the trace. If the Boolean is
false you get unscaled integer data in the range -32768 to + 32767.
The value of InResult.Samples is the total number of data in a trace. It is two more than the
nominal value given on the screen. The first point DataArray(0), coincides with the left edge of the
screen, apart from the wobble caused by the trigger-to-sample clock difference. If the trace length
is nominally 500, the right edge of the screen coincides with DataArray(500), which is the 501
st
point. The last point, number 502, is just off the right of the screen, and is never seen. That is why
the loop in the script runs only to endData - 1.
OutResult.Samples is the number of data in the output trace, and is set to be the same as the
number of data in the input trace. If you set the output length less than the input length, you get a
shorter trace, the remainder being made of zeroes. If you try to set the output values to
something illegal, you may find that a part of the trace retains the values from a previous
acquisition.