#!/bin/sh

# Run dfir with a number of test cases

# $Id: tdfir,v 1.2 1993/02/05 13:12:18 kabal Exp $


if [ -f ./dfir ]; then
  DFIR=./dfir
elif [ -f ../dfir ]; then
  DFIR=../dfir
else
  DFIR=dfir
fi

L=""

#==================================
echo "$L BPF1: N=24 lowpass filter"
$DFIR << EoF
BPF
24

0    1 1
0.08 1 1
  TRANSITION BAND
0.16 0 1
0.5  0 1
EoF

#==================================
echo "$L BPF2: N=32 bandpass filter"
$DFIR << EoF
BPF
32

0,  0,10
0.1,0,10
  TRANSITION BAND
0.2 , 1, 1
0.35, 1, 1
  TRANSITION BAND
0.425,0,10
0.5,  0,10
EoF

#==================================
echo "$L BPF3: N=50 bandpass filter, unequal weighting"
$DFIR << EoF
BPF
50
temp.cof
0,   0,10
0.15,0,10
  TRANSITION BAND
0.2,1,1
0.3,1,1
  TRANSITION BAND
0.35,0,100
0.5, 0,100
EoF
cat temp.cof
rm -f temp.cof

#==================================
echo "$L BPF4: N=31 bandstop filter"
$DFIR << EoF
BPF
31

0,  1,1
0.1,1,1
  TRANSITION BAND
0.15,0,50
0.35,0,50
  TRANSITION BAND
0.42,1,1
0.5, 1,1
EoF

#==================================
echo "$L BPF5: N=55 multiband filter"
$DFIR << EoF
BPF
55
temp.cof
0,   0,10
0.05,0,10
  TRANSITION BAND
0.1, 1,1
0.15,1,1
  TRANSITION BAND
0.18,0,3
0.25,0,3
  TRANSITION BAND
0.3, 1,1
0.36,1,1
  TRANSITION BAND
0.41,0,20
0.5, 0,20
EoF
cat temp.cof
rm -f temp.cof

#==================================
echo "$L BPF6: N=32 constrained bandpass filter (c.f. BPF2)"
$DFIR << EoF
BPF
32

0,  0,10,0,1
0.1,0,10,0,1
  TRANSITION BAND
0.2, 1,1
0.35,1,1
  TRANSITION BAND
0.425,0,10
0.5,  0,10
EoF

#==================================
echo "$L BPF7: N=37 constrained bandstop filter"
$DFIR << EoF
BPF
37

0,  1,1,0.9,1
0.1,1,1,0.9,1
  TRANSITION BAND
0.15,  0,1,0,0.03
0.1995,0,1,0,0.03
  TRANSITION BAND
0.2,0,1,0,0.01
0.3,0,1,0,0.01
  TRANSITION BAND
0.3005,0,1,0,0.03
0.35,  0,1,0,0.03
  TRANSITION BAND
0.4,1,1,0.98,1.02
0.5,1,1,0.98,1.02
EoF

#==================================
echo "$L BPF8: N=76 constrained multiband filter"
$DFIR << EoF
BPF
76
temp.cof
0    0  200 0 0.0004
0.05 0  200 0 0.0004
  TRANSITION BAND
0.0505 0 0.05 0,1
0.0995 0 0.05 0,1
  TRANSITION BAND
0.1  1 1 0.92 1
0.15 1 1 0.92 1
  TRANSITION BAND
0.18 0 60 0 0.0013333
0.25 0 60 0 0.0013333
  TRANSITION BAND
0.2505 0 0.05 0 1
0.2995 0 0.05 0 1
  TRANSITION BAND
0.3  1 1 0.92 1
0.36 1 1 0.92 1
  TRANSITION BAND
0.41 0 400 0 0.0002
0.5  0 400 0 0.0002
EoF
cat temp.cof
rm -f temp.cof

#==================================
echo "$L BPF9: N=24 lowpass filter (Density 10, c.f. BPF2)"
$DFIR << EoF
BPF
24,1,10

0,   1,1
0.08,1,1
  TRANSITION BAND
0.16,0,1
0.5, 0,1
EoF

#==================================
echo "$L BPF10: N=24 lowpass filter (Max. Density, c.f. BPF2)"
$DFIR << EoF
BPF
24,1,maximum

0,   1,1
0.08,1,1
  TRANSITION BAND
0.16,0,1
0.5, 0,1
EoF

#==================================
echo "$L DIF1: N=32 differentiator"
$DFIR << EoF
DIF
32

0,  1,1
0.5,1,1
EoF

#==================================
echo "$L HIL1: N=20 Hilbert transformer"
$DFIR << EoF
HIL
20

0.05,1,1
0.5, 1,1
EoF

#==================================
echo "$L INT1: N=21 x4 interpolation filter, spectrum transition 0.3-0.4"
$DFIR << EoF
INT
4
21

0    1
0.3  1
0.4  0
EoF

#==================================
echo "$L INT2: N=22 x4 interpolation filter, spectrum transition 0.3-0.4"
$DFIR << EoF
INT
4
22,10

0.0  10
3.0  10
4.0  0
EoF

#==================================
echo "$L INT3: N=23 x4 interpolation filter, spectrum transition 0.3-0.4"
$DFIR << EoF
INT
4
23

0,  1
0.3,1
0.4,0
EoF

#==================================
echo "$L INT4: N=31 x5 interpolation filter, spectrum to 0.25"
$DFIR << EoF
INT
5
31
temp.cof
0    100
0.25 100
EoF
cat temp.cof
rm -f temp.cof

#==================================
echo "$L INT5: N=31 x5 interpolation filter, dc + spectrum to 0.25"
$DFIR << EoF
INT
5
31
temp.cof
0    10000 cos
0    100   psd
0.25 100   psd
EoF
cat temp.cof
rm -f temp.cof

#==================================
echo "$L MIN1: N=15 x4 minimum phase factor of a Nyquist filter"
$DFIR << EoF
MIN
4
15

0.1875,1
0.5,1
EoF

#==================================
echo "$L MIN2: N=32 x6 minimum phase factor of a Nyquist filter"
$DFIR << EoF
MIN
6
32
temp.cof
0.125 1
0.5   10
EoF
cat temp.cof
rm -f temp.cof

#==================================
echo "$L NYQ1: N=29 x4 Nyquist filter"
$DFIR << EoF
NYQ
4
29

0.1875,1
0.5,1
EoF

#==================================
echo "$L NYQ2: N=39 x5 Nyquist filter"
$DFIR << EoF
NYQ
5
39
temp.cof
0.125 1
0.5   10
EoF
cat temp.cof
rm -f temp.cof
