print "Fitted f(x) = C / ((A**2-x**2)**2 + (x*B)**2) with"
print "A = %g, \t B = %g, \t C = %g" % (A, B, C)
- vib_plot(deflection_bits, freq_axis, power, A, B, C, plotVerbose=plotVerbose)
+ vib_plot(deflection_bits, freq_axis, power, A, B, C,
+ plotVerbose=plotVerbose)
# Our A is in uV**2, so convert back to Volts**2
return lorentzian_area(A,B,C) * 1e-12
print "plotting"
common._import_pylab()
common._pylab.figure(config.BASE_FIGNUM+2)
- common._pylab.hold(False)
# plot time series
common._pylab.subplot(311)
+ common._pylab.hold(False)
common._pylab.plot(deflection_bits, 'r.')
common._pylab.title("free oscillation")
# plot histogram distribution and gaussian fit
common._pylab.subplot(312)
+ common._pylab.hold(False)
n, bins, patches = \
common._pylab.hist(deflection_bits, bins=30,
normed=1, align='center')
- gaus = numpy.zeros((len(bins),))
+ gaus = numpy.zeros((len(bins),), dtype=numpy.float)
mean = deflection_bits.mean()
std = deflection_bits.std()
pi = numpy.pi
common._pylab.hold(False)
# plot FFTed data
- common._pylab.subplot(313)
+ axes = common._pylab.subplot(313)
+ common._pylab.hold(False)
common._pylab.semilogy(freq_axis, power, 'r.-')
+ fitdata = C / ((A**2-freq_axis**2)**2 + (B*freq_axis)**2)
+ xmin,xmax = axes.get_xbound()
+ ymin,ymax = axes.get_ybound()
+ common._pylab.hold(True)
+ common._pylab.plot(freq_axis, fitdata, 'b-');
+ common._pylab.hold(False)
+ axes.axis([xmin,xmax,ymin,ymax])
+
common._flush_plot()
- if (plotVerbose or config.GNUPLOT_VERBOSE):
+ if (plotVerbose or config.GNUPLOT_VERBOSE): # TODO: cleanup and test
# write all the ft data now
fd = file(datafilename, 'w')
for i in range(len(freq_axis)) :