This HTML automatically generated with rman for NEMO
Table of Contents


tabtrend - difference rows from previous rows


tabtrend [parameter=value]


tabtrend takes a single column from an ASCII table, and differences subsequent values, creating a new column that is thus one row shorter.

Note that for a gaussian signal, differencing subsequent elements will create a distribution with a noise sqrt(2) larger than the input signal.

The parameter delta= is the distance in rows to compute the trend, which enables one to compute the phase structure function of the signal (see EXAMPLES below).


The following parameters are recognized in order; they may be given in any order if the keyword is also given. Use --help to confirm this man page is up to date.
Input file name. No default.
Column(s) to use [1]
Cumulative, instead of differences. Default: false
How far should the neighbor in the trend analysis be? [1]
Also show the original column (if selected it will be shown after the trend column [f]
Add the first row? [Default: f]


Create 10000 numbers gaussian distributed with dispersion 1, here are a few sequences showing a few operations that modify the observed dispersion:
seq $n | tabmath - - ’rang(0,1)’ all seed=-1 |                             tabhist
# sigma=1
seq $n | tabmath - - ’rang(0,1)’ all seed=-1 | tabsmooth - |               tabhist
# sigma=0.612 (sqrt(3/8)?)
seq $n | tabmath - - ’rang(0,1)’ all seed=-1 | tabtrend -  |               tabhist
# sigma=1.414 (sqrt(2))
seq $n | tabmath - - ’rang(0,1)’ all seed=-1 | tabsmooth - | tabtrend -  | tabhist
# sigma=0.5
seq $n | tabmath - - ’rang(0,1)’ all seed=-1 | tabtrend -  | tabsmooth - | tabhist
# sigma=0.5
Note that smoothing and trending are related, so their resulting dispersions in the last two examples do not multiply.

This also means if you don’t know if a signal had been applied a Hanning smoothing, compute the sigma before and after a difference operator. If that ratio is sqrt(2) , it means it was not, it was a pure un-correllated gaussian. However, if the ratio is sqrt(2/3) = 0.816, it was a Hanning smoothed signal to begin with.

By using different values of the delta= parameter, one can study the correlation length of the noise, .e.g to look at correlations on a scale of up to 64:

    rm -f
    seq 10000 | tabmath - - ’rang(0,1),%2+10*sind(%1*2)’ > tab1
    for i in $(seq 64); do
       rms=(tabtrend tab1 delta=$i |tabstat - qac=t | txtpar - p0=QAC,1,4)
       echo $i $rms >>

See Also

tabsmooth(1NEMO) , tabmath(1NEMO) , nemoinp(1NEMO) , tabhist(1NEMO)


Peter Teuben

Update History

26-Nov-2012    finally documented    PJT
13-oct-2014    better examples        PJT
15-jun-2016    added cumul=        PJT
26-may-2020    added orig=        PJT
1-may-2022    remove nmax= for table V2    PJT
6-jun-2022    add delta=    PJT

Table of Contents