3.127 FAQ-750 How can I calculate propagation delay time between two signals?
Last Update: 10/13/2016
Assume we have two time-varying signal: Signal and Delay Signal, saved in worksheet column(B), column(D), respectively;
Assume we want to calculate the propagation delay between two signals, A model could be set up as below, f(t) is original signal while g(t) is delay signal.
for all , and is a constant.
Next, we will use the Nonlinear Curve Fit to calculate the , a user defined fitting function can be constructed in this way:
The graph shown that the is approximate to 0.8, so the initial value for fitting can be set to 0.8.
|| Origin C
// Fit Parameter(s):
// Independent Variable(s):
// Dependent Variable(s):
// Beginning of editable part
NLFitContext *pCtxt = Project.GetNLFitContext();
dr = pCtxt->GetSourceDataRange(); //Get the source data range
dr.GetRange(wks, c1, c2); //Get the source data worksheet
if ( pCtxt )
static vector vX, vY;
static double nSize;
BOOL bIsNewParamValues = pCtxt->IsNewParamValues();
if ( bIsNewParamValues )
Dataset dsx(wks, 0);
Dataset dsy(wks, 1);
vX = dsx;
vY = dsy;
nSize = vY.GetSize();
x1 = x-t0;
ocmath_interpolate( &x1, &y, 1, vX, vY, nSize );
// End of editable part
Please refer to this page for detailed steps about constructing user defined fitting function.
Fit the Curve
In the fitting function body, we read the response data directly from the active worksheet. So, you should perform the fit from the worksheet. Start with a new workbook and import the file \Samples\Curve Fitting\DelaySignal.dat
- Highlight column C and press Ctrl + Y to bring up the Nonlinear Fitting dialog.
- Go to the Function Selection page to select the fitdelay function you just defined.
- Click the Fit button to generate the results.
- The fitting results will be similar to this:
Keywords:Nonlinear Curve Fit, Signal Process