IEEE 802.15.4 subsystem
Sign in or create your account | Project List | Help
IEEE 802.15.4 subsystem Commit Details
Date: | 2011-03-05 23:34:07 (13 years 23 days ago) |
---|---|
Author: | Werner Almesberger |
Commit: | bcd6e09189b15d85f8fbd4c832391644412b28e8 |
Message: | usrp/sps/: added min/avg/max summary image - range: generate min/avg/max data from FFT files - vizr: plot the output of "range" - row: make "viz" keep the FFT output and use it to generate the summary |
Files: |
usrp/sps/range (1 diff) usrp/sps/row (1 diff) usrp/sps/vizr (1 diff) |
Change Details
usrp/sps/range | ||
---|---|---|
1 | #!/usr/bin/perl | |
2 | ||
3 | sub read | |
4 | { | |
5 | local ($n) = "$_[0].fft"; | |
6 | local (@f); | |
7 | local $i = 0; | |
8 | local $ym, $v; | |
9 | ||
10 | open(FILE, $n) || die "$n: $!"; | |
11 | while (<FILE>) { | |
12 | chop; | |
13 | push(@f, $_); | |
14 | $ym = $_ unless defined $ym && $ym > $_; | |
15 | } | |
16 | close FILE; | |
17 | for (@f) { | |
18 | $v = $_-$ym; | |
19 | $min[$i] = $v unless defined $min[$i] && $min[$i] < $v; | |
20 | $max[$i] = $v unless defined $max[$i] && $max[$i] > $v; | |
21 | $sum[$i] += $v; | |
22 | $i++; | |
23 | } | |
24 | } | |
25 | ||
26 | ||
27 | sub usage | |
28 | { | |
29 | print STDERR "usage: $0\n"; | |
30 | exit(1); | |
31 | } | |
32 | ||
33 | ||
34 | &usage if @ARGV; | |
35 | ||
36 | # | |
37 | # @@@ for future study: use an x axis proportional to the center frequency, | |
38 | # instead of an absolute frequency. | |
39 | # | |
40 | ||
41 | for ($f = 2405; $f <= 2480; $f += 5) { | |
42 | &read($f); | |
43 | &read($f+1); | |
44 | $n += 2; | |
45 | } | |
46 | ||
47 | $mhz_per_bin = 100.0/16/@sum; # 100 MHz ADC, decimation 16 | |
48 | ||
49 | $, = " "; | |
50 | for ($i = 0; $i != @sum; $i++) { | |
51 | print $mhz_per_bin*($i-@sum/2)+0.5, ""; | |
52 | print $min[$i], $sum[$i]/$n, $max[$i], "\n"; | |
53 | } |
usrp/sps/row | ||
---|---|---|
23 | 23 | color=' bgcolor="#a0e0ff"' |
24 | 24 | fi |
25 | 25 | last=$prefix |
26 | ||
27 | echo "<TR$color><TH>$prefix" | |
26 | ||
27 | echo "<TR$color><TH>$prefix<TD align=\"center\">Offset" | |
28 | 28 | f=2405 |
29 | 29 | while [ $f -le 2480 ]; do |
30 | echo "<TD align="center">$f MHz" | |
30 | echo "<TD align=\"center\">$f MHz" | |
31 | 31 | f=`expr $f + 5` |
32 | 32 | done |
33 | 33 | |
34 | echo "<TR><TD align="right">-0.5 MHz" | |
34 | echo "<TR>" | |
35 | echo "<TD><A href=\"$prefix.png\"><IMG src=\"$prefix-small.png\"></A>" | |
36 | echo "<TD align="right">-0.5 MHz" | |
37 | ||
35 | 38 | f=2405 |
36 | 39 | while [ $f -le 2480 ]; do |
37 | ./viz -f LiberationSans-Bold -p $prefix-$f.png $prefix $f | |
40 | ./viz -f LiberationSans-Bold -p $prefix-$f.png \ | |
41 | -o $f.fft $prefix $f | |
38 | 42 | convert -resize '15%' $prefix-$f.png $prefix-$f-small.png |
39 | 43 | echo "<TD><A href=\"$prefix-$f.png\"><IMG src=\"$prefix-$f-small.png\"></A>" |
40 | 44 | f=`expr $f + 5` |
41 | 45 | done |
42 | 46 | |
43 | echo "<TR><TD align="right">+0.5 MHz" | |
47 | echo "<TR>" | |
48 | echo "<TD>" | |
49 | echo "<TD align="right">+0.5 MHz" | |
50 | ||
44 | 51 | f=2405 |
45 | 52 | while [ $f -le 2480 ]; do |
46 | 53 | f1=`expr $f + 1` |
47 | ./viz -f LiberationSans-Bold -p $prefix-$f1.png $prefix $f1 | |
54 | ./viz -f LiberationSans-Bold -p $prefix-$f1.png \ | |
55 | -o $f1.fft $prefix $f1 | |
48 | 56 | convert -resize '15%' $prefix-$f1.png $prefix-$f1-small.png |
49 | 57 | echo "<TD><A href=\"$prefix-$f1.png\"><IMG src=\"$prefix-$f1-small.png\"></A>" |
50 | 58 | f=`expr $f + 5` |
51 | 59 | done |
52 | 60 | |
53 | done | |
61 | ffts=` | |
62 | f=2405 | |
63 | while [ $f -le 2480 ]; do | |
64 | echo $f.fft | |
65 | echo \`expr $f + 1\`.fft | |
66 | f=\`expr $f + 5\` | |
67 | done` | |
68 | ||
69 | ./range >_tmp | |
70 | ./vizr -f LiberationSans-Bold -p $prefix.png $prefix _tmp | |
71 | rm -f $ffts _tmp | |
54 | 72 | |
73 | convert -resize '15%' $prefix.png $prefix-small.png | |
74 | done | |
55 | 75 | cat <<EOF |
56 | 76 | </TABLE> |
57 | 77 | EOF |
usrp/sps/vizr | ||
---|---|---|
1 | #!/bin/sh | |
2 | ||
3 | usage() | |
4 | { | |
5 | echo "usage: $0 [-f font] [-p png_file] prefix range_file" 1>&2 | |
6 | exit 1 | |
7 | } | |
8 | ||
9 | ||
10 | font= | |
11 | term= | |
12 | output= | |
13 | ||
14 | while true; do | |
15 | case "$1" in | |
16 | -f) [ "$2" ] || usage | |
17 | shift | |
18 | font=$1;; | |
19 | -p) [ "$2" ] || usage | |
20 | shift | |
21 | term="set term png" | |
22 | output="set output \"$1\"";; | |
23 | -*) usage;; | |
24 | *) | |
25 | break;; | |
26 | esac | |
27 | shift | |
28 | done | |
29 | ||
30 | [ "$2" ] || usage | |
31 | [ "$3" ] && usage | |
32 | ||
33 | prefix=$3 | |
34 | file=$2 | |
35 | ||
36 | gnuplot -persist <<EOF | |
37 | $term | |
38 | $output | |
39 | ||
40 | set label "$prefix" at graph 0.03, graph 0.93 font "$font,22" | |
41 | ||
42 | set xrange [-2.5:2.5] | |
43 | set yrange [-70:0] | |
44 | ||
45 | set mxtics 10 | |
46 | set mytics 2 | |
47 | set grid | |
48 | ||
49 | set xlabel "MHz from nominal frequency of test wave" | |
50 | ||
51 | plot "$file" using 1:4 with lines title "max" lt 2, \ | |
52 | "$file" using 1:3 with lines title "avg" lt 3, \ | |
53 | "$file" using 1:2 with lines title "min" lt 1 | |
54 | EOF |