#! /bin/bash # Last edited on 2008-10-18 13:37:43 by stolfi # Plots the "binned" spectrum table produced by {test_spectrum_table}. # Usage: "plot_spectrum_binned {NAME}" # Reads file "{NAME}.txt", writes "{NAME}-n.eps", "{NAME}-p.eps" name="$1"; shift; # Convert the binned spectrum "${name}.txt" to a histogram plot "${tmp}.txt". # Each line has "{FREQ} {TOT_NTERMS} {TOT_POWER}" tmp="/tmp/$$" cat ${name}.txt \ | gawk \ ' BEGIN { ofr = 0; on = 0; op = 0; printf "%24.16e %24.16e %24.16e\n", ofr, on, op; } /[0-9]/ { fmin = $1; fmax = $2; fr = $3; n = $4; p = $5; if (fmin < ofr) { printf "freq out of order\n" > "/dev/stderr"; exit(1); } if (ofr < fmin) { on = 0; op = 0; printf "%24.16e %24.16e %24.16e\n", ofr, on, op; } ofr = fmin; on = n; op = p; printf "%24.16e %24.16e %24.16e\n", ofr, on, op; ofr = fmax; printf "%24.16e %24.16e %24.16e\n", ofr, on, op; } END { fmin = sqrt(0.5); on = 0; op = 0; if (ofr < fmin) { printf "%24.16e %24.16e %24.16e\n", ofr, on, op; } ofr = fmin; printf "%24.16e %24.16e %24.16e\n", ofr, on, op; } ' \ > ${tmp}.txt # Plot the histograms: gnuplot <