mirror of
git://projects.qi-hardware.com/ben-wpan.git
synced 2024-08-27 02:57:43 +03:00
90 lines
1.5 KiB
Bash
Executable File
90 lines
1.5 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
PATH=..:$PATH
|
|
|
|
usage()
|
|
{
|
|
echo "usage: $0 [-f font] [-m] [-o fft_file] [-p png_file] prefix \
|
|
frequency" 1>&2
|
|
exit 1
|
|
}
|
|
|
|
|
|
font=
|
|
term=
|
|
output=
|
|
show_max=false
|
|
out=
|
|
|
|
while true; do
|
|
case "$1" in
|
|
-f) [ "$2" ] || usage
|
|
shift
|
|
font=$1;;
|
|
-m) show_max=true;;
|
|
-o) [ "$2" ] || usage
|
|
shift
|
|
out=$1;;
|
|
-p) [ "$2" ] || usage
|
|
shift
|
|
term="set term png"
|
|
output="set output \"$1\"";;
|
|
-*) usage;;
|
|
*)
|
|
break;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
[ "$2" ] || usage
|
|
[ "$3" ] && usage
|
|
|
|
tmp=${out:-_tmp}
|
|
prefix=$1
|
|
f=$2
|
|
|
|
fft -s 100 -d -w hamming 100 <$prefix-$f >$tmp
|
|
set `norm $tmp`
|
|
|
|
xm=$1.0 # sample number of y peak
|
|
ym=$2 # magnitude of y peak
|
|
n=$3 # total number of samples
|
|
span=6.25 # ADC sample rate in MHz / decimation (100 MHz/16)
|
|
|
|
if [ ${ym#-} = $ym ]; then
|
|
ymbar=-$ym
|
|
ymbarlt=2
|
|
else
|
|
ymbar=$ym
|
|
ymbarlt=1
|
|
fi
|
|
|
|
gnuplot -persist <<EOF
|
|
$term
|
|
$output
|
|
|
|
set label "$prefix" at graph 0.03, graph 0.93 font "$font,22"
|
|
set label sprintf("%+.1f dB", $ym) at graph 0.03, graph 0.82 font "$font,18"
|
|
|
|
set label sprintf("%.1f MHz", $f-0.5) \
|
|
at graph 0.97, graph 0.93 right font "$font,22"
|
|
set label sprintf("%+.1f ppm", (($xm/$n-0.5)*$span+0.5)/($f-0.5)*1000000) \
|
|
at graph 0.97, graph 0.82 right font "$font,18"
|
|
|
|
set xrange [-2.5:2.5]
|
|
set yrange [-70:0]
|
|
|
|
set mxtics 10
|
|
set mytics 2
|
|
set grid
|
|
|
|
set xlabel "MHz from nominal frequency of test wave"
|
|
|
|
set style fill solid 1
|
|
plot "$tmp" using ((\$0/$n-0.5)*$span+0.5):(\$1-$ym) with lines notitle, \
|
|
"<echo -0.9 $ymbar 0.2" with boxes lt $ymbarlt notitle
|
|
EOF
|
|
|
|
[ "$out" ] || rm -f $tmp
|
|
$show_max && echo $ym
|