up [pdf]
from rsf.proj import *

import math

input = [0,0,0,0,0.5,0,1,0.5,1,0,0,0,0,0,0]

def filter(filt):
    return ('echo %s in=$TARGET n1=%d esize=0 data_format=ascii_float' %
            (string.join(map(str,filt),' '),len(filt)))

Flow('man0',None,filter(input))
Flow('man','man0','dd form=native')

Flow('syn-0',None,
     '''
     math n1=26 d1=0.004 output="sin(%g*x1)*exp(-%g*x1)" |
     pad n1=100 beg1=24
     ''' % (2*math.pi/(15.*0.004),10))
Flow('syn-1',None,'spike n1=100 k1=69')
Flow('syn','syn-0 syn-1','add ${SOURCES[1]}')

def plot(length):
    return '''
    pad n1=%d |
    cat axis=2 ${SOURCES[1:3]} |
    dots labels=filter:interp:given
    dots=2 connect=0 gaineach=0 overlap=1.35 labelsz=14
    ''' % length

for lag in [1,3]:
    man = 'man%d' % lag
    flt = 'flt%d' % lag
    Flow([man,flt],'man','misif na=3 lag=%d filtout=${TARGETS[1]}' % lag)
    Result(man,[flt,man,'man'],plot(len(input)))
    syn = 'syn%d' % lag
    flr = 'flr%d' % lag
    Flow([syn,flr],'syn',
         'misif na=%d lag=%d filtout=${TARGETS[1]}' % (lag+2,lag))
    Result(syn,[flr,syn,'syn'],plot(100))

###########################################################################

End()

sfdd
sfmath
sfpad
sfspike
sfadd
sfmisif
sfcat
sfdots