# -*- coding: utf-8 -*- """ Created on Sat Jan 31 14:07:10 2015 @author: mespence """ from numpy import linspace, argmin from pylab import plot, xlabel, ylabel, grid, title VNP = 10e-6 vnn = 1e-6 SNR = 4 Delta0 = 100e-6 Econv0 = 50e-12 Pamp0 = 1e-6 fs = 20e3 k = 1.38e-23 T = 310.5 C = 10e-9 gamma = 2/3.0 a = 1-VNP**2/vnn**2/8/SNR b = gamma*k*T/C/vnn**2 c1 = k*T/C/vnn**2 c2 = Delta0**2/vnn**2/12 print -b/a/2, b**2/a**2/4 -c1/a, -c2/a def A(B): return -b/a/2 + (b**2/a**2/4 -c1/a -c2/a/B**2)**0.5 B = linspace(0.05,4,2000) Ptot = Pamp0*A(B)+fs*Econv0*B**3 Bopt = B[argmin(Ptot)] Avopt = A(Bopt) LSBopt = Delta0/Bopt Vswopt = VNP*Avopt print Bopt, Avopt, LSBopt, Vswopt, Vswopt/LSBopt plot(B,1e6*Ptot) xlabel("B") ylabel("Total Power [uW]") grid('on') title('Total Power vs. LSB Scaling Factor')