mirror of
git://projects.qi-hardware.com/ben-wpan.git
synced 2024-11-16 22:22:49 +02:00
8ea171512b
- usrp/range: ignore "-inf" values - usrp/range: print the average value when reporting an outlier
52 lines
762 B
Perl
Executable File
52 lines
762 B
Perl
Executable File
#!/usr/bin/perl
|
|
|
|
|
|
sub usage
|
|
{
|
|
print STDERR "usage: $0 [[-v] tolerance]\n";
|
|
exit(1);
|
|
}
|
|
|
|
|
|
$tol = 999;
|
|
|
|
if (@ARGV) {
|
|
$tol = shift @ARGV;
|
|
if ($tol eq "-v") {
|
|
$verbose = 1;
|
|
$tol = shift @ARGV;
|
|
}
|
|
&usage unless $tol =~ /^[0-9.]+$/;
|
|
&usage if @ARGV;
|
|
}
|
|
|
|
while (<>) {
|
|
chop;
|
|
next if $_ eq "-inf";
|
|
push(@v, $_);
|
|
$s += $_;
|
|
}
|
|
$avg = $s/@v;
|
|
|
|
$n = 0;
|
|
for (@v) {
|
|
$n++;
|
|
next if $_ eq "-inf";
|
|
if ($_ < $avg-$tol || $_ > $avg+$tol) {
|
|
print STDERR "sample $n is outlier ($avg): $_\n" if $verbose;
|
|
next;
|
|
}
|
|
$sum += $_;
|
|
$ns++;
|
|
$min = $_ if $_ < $min || !defined $min;
|
|
$max = $_ if $_ > $max || !defined $max;
|
|
}
|
|
|
|
if (!$ns) {
|
|
print STDERR "no samples\n";
|
|
exit(1);
|
|
|
|
}
|
|
|
|
print $sum/$ns, " $min $max\n";
|