1
0
mirror of git://projects.qi-hardware.com/ben-wpan.git synced 2024-11-26 01:24:59 +02:00
ben-wpan/usrp/sps/viz

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