From 99d97f76bb458889b13e7762f9b8b777ef8e1900 Mon Sep 17 00:00:00 2001 From: Craig Warren Date: Tue, 26 Jan 2016 15:11:31 +0000 Subject: [PATCH] Changed axes settings to seconds and Hertz, rather than nano-seconds and giga-Hertz. --- tools/plot_antenna_params.py | 89 ++++++++++++++++++------------------ 1 file changed, 44 insertions(+), 45 deletions(-) diff --git a/tools/plot_antenna_params.py b/tools/plot_antenna_params.py index a321d878..5b2f93f7 100644 --- a/tools/plot_antenna_params.py +++ b/tools/plot_antenna_params.py @@ -46,11 +46,10 @@ iterations = f.attrs['Iterations'] time = np.arange(0, dt * iterations, dt) time = time[0:iterations] df = 1 / np.amax(time) -time = time / 1e-9 -print('Time window: {:g} secs ({} iterations)'.format(np.amax(time) * 1e-9, iterations)) -print('Time step: {:g} secs'.format(dt)) -print('Frequency bin spacing: {:g} MHz'.format(df / 1e6)) +print('Time window: {:g} s ({} iterations)'.format(np.amax(time), iterations)) +print('Time step: {:g} s'.format(dt)) +print('Frequency bin spacing: {:g} Hz'.format(df)) # Read/calculate voltages and currents path = '/tls/tl' + str(args.tln) + '/' @@ -96,8 +95,8 @@ pltrange = np.s_[pltrangemin:pltrangemax] # Print some useful values from s11, input impedance and admittance s11minfreq = np.where(s11[pltrange] == np.amin(s11[pltrange]))[0][0] -print('s11 minimum: {:g} dB at {:g} MHz'.format(np.amin(s11[pltrange]), freqs[s11minfreq + pltrangemin] / 1e6)) -print('At {:g} MHz...'.format(freqs[s11minfreq + pltrangemin] / 1e6)) +print('s11 minimum: {:g} dB at {:g} Hz'.format(np.amin(s11[pltrange]), freqs[s11minfreq + pltrangemin])) +print('At {:g} Hz...'.format(freqs[s11minfreq + pltrangemin])) print('Input impedance: {:.1f}{:+.1f}j Ohms'.format(np.abs(zin[s11minfreq + pltrangemin]), zin[s11minfreq + pltrangemin].imag)) print('Input admittance (mag): {:g} S'.format(np.abs(yin[s11minfreq + pltrangemin]))) print('Input admittance (phase): {:.1f} deg'.format(np.angle(yin[s11minfreq + pltrangemin], deg=True))) @@ -109,20 +108,20 @@ gs1 = gridspec.GridSpec(4, 2, hspace=0.7) ax = plt.subplot(gs1[0, 0]) ax.plot(time, Vinc, 'r', lw=2, label='Vinc') ax.set_title('Incident voltage') -ax.set_xlabel('Time [ns]') +ax.set_xlabel('Time [s]') ax.set_ylabel('Voltage [V]') ax.set_xlim([0, np.amax(time)]) ax.grid() # Plot frequency spectra of incident voltage ax = plt.subplot(gs1[0, 1]) -markerline, stemlines, baseline = ax.stem(freqs[pltrange]/1e9, Vincp[pltrange], '-.') +markerline, stemlines, baseline = ax.stem(freqs[pltrange], Vincp[pltrange], '-.') plt.setp(baseline, 'linewidth', 0) plt.setp(stemlines, 'color', 'r') plt.setp(markerline, 'markerfacecolor', 'r', 'markeredgecolor', 'r') -ax.plot(freqs[pltrange]/1e9, Vincp[pltrange], 'r', lw=2) +ax.plot(freqs[pltrange], Vincp[pltrange], 'r', lw=2) ax.set_title('Incident voltage') -ax.set_xlabel('Frequency [GHz]') +ax.set_xlabel('Frequency [Hz]') ax.set_ylabel('Power [dB]') ax.grid() @@ -130,20 +129,20 @@ ax.grid() ax = plt.subplot(gs1[1, 0]) ax.plot(time, Iinc, 'b', lw=2, label='Vinc') ax.set_title('Incident current') -ax.set_xlabel('Time [ns]') +ax.set_xlabel('Time [s]') ax.set_ylabel('Current [A]') ax.set_xlim([0, np.amax(time)]) ax.grid() # Plot frequency spectra of incident current ax = plt.subplot(gs1[1, 1]) -markerline, stemlines, baseline = ax.stem(freqs[pltrange]/1e9, Iincp[pltrange], '-.') +markerline, stemlines, baseline = ax.stem(freqs[pltrange], Iincp[pltrange], '-.') plt.setp(baseline, 'linewidth', 0) plt.setp(stemlines, 'color', 'b') plt.setp(markerline, 'markerfacecolor', 'b', 'markeredgecolor', 'b') -ax.plot(freqs[pltrange]/1e9, Iincp[pltrange], 'b', lw=2) +ax.plot(freqs[pltrange], Iincp[pltrange], 'b', lw=2) ax.set_title('Incident current') -ax.set_xlabel('Frequency [GHz]') +ax.set_xlabel('Frequency [Hz]') ax.set_ylabel('Power [dB]') ax.grid() @@ -151,20 +150,20 @@ ax.grid() ax = plt.subplot(gs1[2, 0]) ax.plot(time, Vtotal, 'r', lw=2, label='Vinc') ax.set_title('Total (incident + reflected) voltage') -ax.set_xlabel('Time [ns]') +ax.set_xlabel('Time [s]') ax.set_ylabel('Voltage [V]') ax.set_xlim([0, np.amax(time)]) ax.grid() # Plot frequency spectra of total voltage ax = plt.subplot(gs1[2, 1]) -markerline, stemlines, baseline = ax.stem(freqs[pltrange]/1e9, Vtotalp[pltrange], '-.') +markerline, stemlines, baseline = ax.stem(freqs[pltrange], Vtotalp[pltrange], '-.') plt.setp(baseline, 'linewidth', 0) plt.setp(stemlines, 'color', 'r') plt.setp(markerline, 'markerfacecolor', 'r', 'markeredgecolor', 'r') -ax.plot(freqs[pltrange]/1e9, Vtotalp[pltrange], 'r', lw=2) +ax.plot(freqs[pltrange], Vtotalp[pltrange], 'r', lw=2) ax.set_title('Total (incident + reflected) voltage') -ax.set_xlabel('Frequency [GHz]') +ax.set_xlabel('Frequency [Hz]') ax.set_ylabel('Power [dB]') ax.grid() @@ -172,20 +171,20 @@ ax.grid() ax = plt.subplot(gs1[3, 0]) ax.plot(time, Itotal, 'b', lw=2, label='Vinc') ax.set_title('Total (incident + reflected) current') -ax.set_xlabel('Time [ns]') +ax.set_xlabel('Time [s]') ax.set_ylabel('Current [A]') ax.set_xlim([0, np.amax(time)]) ax.grid() # Plot frequency spectra of reflected current ax = plt.subplot(gs1[3, 1]) -markerline, stemlines, baseline = ax.stem(freqs[pltrange]/1e9, Itotalp[pltrange], '-.') +markerline, stemlines, baseline = ax.stem(freqs[pltrange], Itotalp[pltrange], '-.') plt.setp(baseline, 'linewidth', 0) plt.setp(stemlines, 'color', 'b') plt.setp(markerline, 'markerfacecolor', 'b', 'markeredgecolor', 'b') -ax.plot(freqs[pltrange]/1e9, Itotalp[pltrange], 'b', lw=2) +ax.plot(freqs[pltrange], Itotalp[pltrange], 'b', lw=2) ax.set_title('Total (incident + reflected) current') -ax.set_xlabel('Frequency [GHz]') +ax.set_xlabel('Frequency [Hz]') ax.set_ylabel('Power [dB]') ax.grid() @@ -193,20 +192,20 @@ ax.grid() #ax = plt.subplot(gs1[4, 0]) #ax.plot(time, Vref, 'r', lw=2, label='Vref') #ax.set_title('Reflected voltage') -#ax.set_xlabel('Time [ns]') +#ax.set_xlabel('Time [s]') #ax.set_ylabel('Voltage [V]') #ax.set_xlim([0, np.amax(time)]) #ax.grid() # ## Plot frequency spectra of reflected voltage #ax = plt.subplot(gs1[4, 1]) -#markerline, stemlines, baseline = ax.stem(freqs[pltrange]/1e9, Vrefp[pltrange], '-.') +#markerline, stemlines, baseline = ax.stem(freqs[pltrange], Vrefp[pltrange], '-.') #plt.setp(baseline, 'linewidth', 0) #plt.setp(stemlines, 'color', 'r') #plt.setp(markerline, 'markerfacecolor', 'r', 'markeredgecolor', 'r') -#ax.plot(freqs[pltrange]/1e9, Vrefp[pltrange], 'r', lw=2) +#ax.plot(freqs[pltrange], Vrefp[pltrange], 'r', lw=2) #ax.set_title('Reflected voltage') -#ax.set_xlabel('Frequency [GHz]') +#ax.set_xlabel('Frequency [Hz]') #ax.set_ylabel('Power [dB]') #ax.grid() # @@ -214,20 +213,20 @@ ax.grid() #ax = plt.subplot(gs1[5, 0]) #ax.plot(time, Iref, 'b', lw=2, label='Iref') #ax.set_title('Reflected current') -#ax.set_xlabel('Time [ns]') +#ax.set_xlabel('Time [s]') #ax.set_ylabel('Current [A]') #ax.set_xlim([0, np.amax(time)]) #ax.grid() # ## Plot frequency spectra of reflected current #ax = plt.subplot(gs1[5, 1]) -#markerline, stemlines, baseline = ax.stem(freqs[pltrange]/1e9, Irefp[pltrange], '-.') +#markerline, stemlines, baseline = ax.stem(freqs[pltrange], Irefp[pltrange], '-.') #plt.setp(baseline, 'linewidth', 0) #plt.setp(stemlines, 'color', 'b') #plt.setp(markerline, 'markerfacecolor', 'b', 'markeredgecolor', 'b') -#ax.plot(freqs[pltrange]/1e9, Irefp[pltrange], 'b', lw=2) +#ax.plot(freqs[pltrange], Irefp[pltrange], 'b', lw=2) #ax.set_title('Reflected current') -#ax.set_xlabel('Frequency [GHz]') +#ax.set_xlabel('Frequency [Hz]') #ax.set_ylabel('Power [dB]') #ax.grid() @@ -236,13 +235,13 @@ ax.grid() fig2, ax = plt.subplots(num='Antenna parameters', figsize=(20, 12), facecolor='w', edgecolor='w') gs2 = gridspec.GridSpec(3, 2, hspace=0.5) ax = plt.subplot(gs2[0, 0]) -markerline, stemlines, baseline = ax.stem(freqs[pltrange]/1e9, s11[pltrange], '-.') +markerline, stemlines, baseline = ax.stem(freqs[pltrange], s11[pltrange], '-.') plt.setp(baseline, 'linewidth', 0) plt.setp(stemlines, 'color', 'g') plt.setp(markerline, 'markerfacecolor', 'g', 'markeredgecolor', 'g') -ax.plot(freqs[pltrange]/1e9, s11[pltrange], 'g', lw=2) +ax.plot(freqs[pltrange], s11[pltrange], 'g', lw=2) ax.set_title('s11') -ax.set_xlabel('Frequency [GHz]') +ax.set_xlabel('Frequency [Hz]') ax.set_ylabel('Power [dB]') #ax.set_xlim([0.88, 1.02]) #ax.set_ylim([-50, -8]) @@ -250,13 +249,13 @@ ax.grid() # Plot input resistance (real part of impedance) ax = plt.subplot(gs2[1, 0]) -markerline, stemlines, baseline = ax.stem(freqs[pltrange]/1e9, np.abs(zin[pltrange]), '-.') +markerline, stemlines, baseline = ax.stem(freqs[pltrange], np.abs(zin[pltrange]), '-.') plt.setp(baseline, 'linewidth', 0) plt.setp(stemlines, 'color', 'g') plt.setp(markerline, 'markerfacecolor', 'g', 'markeredgecolor', 'g') -ax.plot(freqs[pltrange]/1e9, np.abs(zin[pltrange]), 'g', lw=2) +ax.plot(freqs[pltrange], np.abs(zin[pltrange]), 'g', lw=2) ax.set_title('Input impedance (resistive)') -ax.set_xlabel('Frequency [GHz]') +ax.set_xlabel('Frequency [Hz]') ax.set_ylabel('Resistance [Ohms]') #ax.set_xlim([0.88, 1.02]) #ax.set_ylim([0, 1000]) @@ -264,13 +263,13 @@ ax.grid() # Plot input reactance (imaginery part of impedance) ax = plt.subplot(gs2[1, 1]) -markerline, stemlines, baseline = ax.stem(freqs[pltrange]/1e9, zin[pltrange].imag, '-.') +markerline, stemlines, baseline = ax.stem(freqs[pltrange], zin[pltrange].imag, '-.') plt.setp(baseline, 'linewidth', 0) plt.setp(stemlines, 'color', 'g') plt.setp(markerline, 'markerfacecolor', 'g', 'markeredgecolor', 'g') -ax.plot(freqs[pltrange]/1e9, zin[pltrange].imag, 'g', lw=2) +ax.plot(freqs[pltrange], zin[pltrange].imag, 'g', lw=2) ax.set_title('Input impedance (reactive)') -ax.set_xlabel('Frequency [GHz]') +ax.set_xlabel('Frequency [Hz]') ax.set_ylabel('Reactance [Ohms]') #ax.set_xlim([0.88, 1.02]) #ax.set_ylim([-1000, 1000]) @@ -278,13 +277,13 @@ ax.grid() # Plot input admittance (magnitude) ax = plt.subplot(gs2[2, 0]) -markerline, stemlines, baseline = ax.stem(freqs[pltrange]/1e9, np.abs(yin[pltrange]), '-.') +markerline, stemlines, baseline = ax.stem(freqs[pltrange], np.abs(yin[pltrange]), '-.') plt.setp(baseline, 'linewidth', 0) plt.setp(stemlines, 'color', 'g') plt.setp(markerline, 'markerfacecolor', 'g', 'markeredgecolor', 'g') -ax.plot(freqs[pltrange]/1e9, np.abs(yin[pltrange]), 'g', lw=2) +ax.plot(freqs[pltrange], np.abs(yin[pltrange]), 'g', lw=2) ax.set_title('Input admittance (magnitude)') -ax.set_xlabel('Frequency [GHz]') +ax.set_xlabel('Frequency [Hz]') ax.set_ylabel('Admittance [Siemens]') #ax.set_xlim([0.88, 1.02]) #ax.set_ylim([0.009, 0.015]) @@ -292,13 +291,13 @@ ax.grid() # Plot input admittance (phase) ax = plt.subplot(gs2[2, 1]) -markerline, stemlines, baseline = ax.stem(freqs[pltrange]/1e9, np.angle(yin[pltrange], deg=True), '-.') +markerline, stemlines, baseline = ax.stem(freqs[pltrange], np.angle(yin[pltrange], deg=True), '-.') plt.setp(baseline, 'linewidth', 0) plt.setp(stemlines, 'color', 'g') plt.setp(markerline, 'markerfacecolor', 'g', 'markeredgecolor', 'g') -ax.plot(freqs[pltrange]/1e9, np.angle(yin[pltrange], deg=True), 'g', lw=2) +ax.plot(freqs[pltrange], np.angle(yin[pltrange], deg=True), 'g', lw=2) ax.set_title('Input admittance (phase)') -ax.set_xlabel('Frequency [GHz]') +ax.set_xlabel('Frequency [Hz]') ax.set_ylabel('Phase [degrees]') #ax.set_xlim([0.88, 1.02]) #ax.set_ylim([-45, 45])