diff --git a/docs/examples/ZVL13.ipynb b/docs/examples/ZVL13.ipynb new file mode 100644 index 000000000..257bf0601 --- /dev/null +++ b/docs/examples/ZVL13.ipynb @@ -0,0 +1,392 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "19466733", + "metadata": {}, + "source": [ + "# Rohde & Schwarz ZVL13 Vector Network Analyzer example" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7fcdd82a", + "metadata": {}, + "outputs": [], + "source": [ + "import qcodes as qc\n", + "from qcodes.logger.logger import start_all_logging\n", + "import datetime\n", + "import numpy as np\n", + "%matplotlib notebook\n", + "from datetime import date,datetime\n", + "import pyvisa\n", + "import sys\n", + "import json\n", + "from qcodes_contrib_drivers.drivers.RohdeSchwarz.ZVL13 import ZVL13" + ] + }, + { + "cell_type": "markdown", + "id": "22756a22", + "metadata": {}, + "source": [ + "## Instrument and station initialization" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8c02c1fd", + "metadata": {}, + "outputs": [], + "source": [ + "start_all_logging()\n", + "\n", + "\n", + "#Instruments\n", + "VNA = ZVL13('ZVL', 'TCPIP0::vnarstafuri.fisica.unina.it::inst0::INSTR')\n", + "\n", + "\n", + "#Station inizialization\n", + "station = qc.Station()\n", + "station.add_component(VNA)" + ] + }, + { + "cell_type": "markdown", + "id": "9b3407d4", + "metadata": {}, + "source": [ + "# Parameters definition" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "10f15f4b", + "metadata": {}, + "outputs": [], + "source": [ + "#########################\n", + "##Parameters definition##\n", + "#########################\n", + "\n", + "parameter_snap={}\n", + "\n", + "S_parameter = 'S11'\n", + "meas_format = 'dbm'\n", + "start_freq = 4\n", + "end_freq = 8\n", + "#center_freq = 5\n", + "#span_freq = 1\n", + "VNA_power = -20\n", + "IF_bandwidth = 1000\n", + "Averages = 4\n", + "points_VNA = 101 #Max:4001\n", + "\n", + "\n", + "\n", + "VNA.npts(points_VNA)\n", + "VNA.S_parameter(S_parameter)\n", + "VNA.format(meas_format)\n", + "VNA.bandwidth(IF_bandwidth)\n", + "VNA.power(VNA_power)\n", + "VNA.avg(Averages)\n", + "VNA.start(start_freq*1e9)\n", + "VNA.stop(end_freq*1e9)\n", + "#VNA.center(center_freq*1e9)\n", + "#VNA.span(span_freq*1e9)\n" + ] + }, + { + "cell_type": "markdown", + "id": "281974ab", + "metadata": {}, + "source": [ + "## Trace acquisition in Network Analyzer Mode" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4dd622ff", + "metadata": {}, + "outputs": [], + "source": [ + "#########################\n", + "#######Mode setting######\n", + "#########################\n", + "\n", + "Mode = VNA.mode() \n", + "\n", + "if Mode == 'SAN':\n", + " VNA.mode('nwa')\n", + "\n", + "#########################\n", + "##Parameters definition##\n", + "#########################\n", + "\n", + "S_parameter = 'S11'\n", + "meas_format = 'dbm'\n", + "start_freq = 4 #GHz\n", + "end_freq = 8 #GHz\n", + "#center_freq = 5 #GHz\n", + "#span_freq = 1 #GHz\n", + "VNA_power = -20 #dBm\n", + "IF_bandwidth = 1000 #Hz\n", + "Averages = 4\n", + "points_VNA = 101 #Max:4001\n", + "\n", + "\n", + "#Parameters setting in the VNA\n", + "VNA.calibration() #Switches on the most recent calibration in the VNA \n", + "VNA.S_parameter(S_parameter)\n", + "VNA.npts(points_VNA)\n", + "VNA.format(meas_format)\n", + "VNA.bandwidth(IF_bandwidth)\n", + "VNA.power(VNA_power)\n", + "VNA.avg(Averages)\n", + "VNA.start(start_freq*1e9)\n", + "VNA.stop(end_freq*1e9)\n", + "#VNA.center(center_freq*1e9)\n", + "#VNA.span(span_freq*1e9)\n", + "\n", + "#VNA Timeout setting\n", + "original_timeout = VNA.timeout()\n", + "new_timeout = 10\n", + "VNA.timeout(new_timeout)\n", + "\n", + "#############################\n", + "##Experiment initialization##\n", + "#############################\n", + "\n", + "#Experiment definition\n", + "exp_name = 'exp_name'\n", + "sample = 'sample'\n", + "exp=qc.load_or_create_experiment(experiment_name=exp_name,\n", + " sample_name=sample)\n", + "\n", + "\n", + "\n", + "#Parameters registration\n", + "meas = qc.Measurement(exp=exp, station=station) \n", + "meas.register_parameter(VNA.trace) \n", + "meas.register_parameter(VNA.S_trace)\n", + "\n", + "#Start measurement\n", + "VNA.rf_power(1) #Switches on the power\n", + "VNA.cont_meas_on() #Switches on the sweep\n", + "VNA.electrical_delay_auto() #Removes the electrical delay automatically\n", + "\n", + "\n", + "with meas.run() as datasaver:\n", + " VNA.autoscale() #Autoscale the trace on the VNA display\n", + " get_v = VNA.trace.get() #Get the trace displayed on the VNA\n", + " get_v2 = VNA.S_trace.get() #Get the complex form of the scattering parameter under test\n", + " datasaver.add_result((VNA.trace, get_v))\n", + " datasaver.add_result((VNA.S_trace, get_v2))\n", + "\n", + "\n", + "#Shutdown devices\n", + "VNA.rf_power(0)\n", + "VNA.cont_meas_off()\n", + "\n", + "###############\n", + "##Data saving##\n", + "###############\n", + "\n", + "captured_run_id=datasaver.dataset.run_id\n", + "dataset = qc.load_by_run_spec(captured_run_id=captured_run_id)\n", + "freq = dataset.get_parameter_data('ZVL_ZVL_frequency')['ZVL_ZVL_frequency']['ZVL_ZVL_frequency']\n", + "save_trace = dataset.get_parameter_data('ZVL_trace')['ZVL_trace']['ZVL_trace']\n", + "S_trace = dataset.get_parameter_data('ZVL_S_trace')['ZVL_S_trace']['ZVL_S_trace']" + ] + }, + { + "cell_type": "markdown", + "id": "af854ac4", + "metadata": {}, + "source": [ + "### Plot" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "94e04c84", + "metadata": {}, + "outputs": [], + "source": [ + "plt.figure(figsize=(14*0.8, 10*0.8), dpi= 80) #facecolor='w', edgecolor='k'\n", + "\n", + "plt.plot(freq[0]*1e-9,save_trace[0])\n", + "\n", + "plt.rc('axes', labelsize=12) # fontsize of the x and y labels\n", + "plt.rc('xtick', labelsize=12*1.2) # fontsize of the tick labels\n", + "plt.rc('ytick', labelsize=12*1.2) \n", + "\n", + "x_label=''\n", + "y_label=''\n", + "plt.xlabel(x_label, size=25)\n", + "plt.ylabel(y_label, size=25)\n", + "plt.title(plot_title, size=18)\n", + "plt.xticks(fontsize=20)\n", + "plt.yticks(fontsize=20)\n", + "plt.grid(True)" + ] + }, + { + "cell_type": "markdown", + "id": "376ff36b", + "metadata": {}, + "source": [ + "## Trace acquisition in Spectrum Analyzer Mode" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b34a1b13", + "metadata": {}, + "outputs": [], + "source": [ + "# #######Mode setting######\n", + "#########################\n", + "\n", + "Mode = VNA.mode() \n", + "\n", + "if Mode == 'NWA':\n", + " VNA.mode('sa')\n", + "\n", + "#########################\n", + "##Parameters definition##\n", + "#########################\n", + "\n", + "\n", + "start_freq = 4 #GHz\n", + "end_freq = 8 #GHz\n", + "#center_freq = 5 #GHz\n", + "#span_freq = 1 #GHz\n", + "Averages = 4\n", + "points_VNA = 101 #Max:4001\n", + "\n", + "\n", + "#Parameters setting in the VNA\n", + "VNA.calibration() #Switches on the most recent calibration in the VNA \n", + "VNA.S_parameter(S_parameter)\n", + "VNA.npts(points_VNA)\n", + "VNA.format(meas_format)\n", + "VNA.bandwidth(IF_bandwidth)\n", + "VNA.power(VNA_power)\n", + "VNA.avg(Averages)\n", + "VNA.start(start_freq*1e9)\n", + "VNA.stop(end_freq*1e9)\n", + "#VNA.center(center_freq*1e9)\n", + "#VNA.span(span_freq*1e9)\n", + "\n", + "#VNA Timeout setting\n", + "original_timeout = VNA.timeout()\n", + "new_timeout = 10\n", + "VNA.timeout(new_timeout)\n", + "\n", + "#############################\n", + "##Experiment initialization##\n", + "#############################\n", + "\n", + "#Experiment definition\n", + "exp_name = 'exp_name'\n", + "sample = 'sample'\n", + "exp=qc.load_or_create_experiment(experiment_name=exp_name,\n", + " sample_name=sample)\n", + "\n", + "\n", + "\n", + "#Parameters registration\n", + "meas = qc.Measurement(exp=exp, station=station) \n", + "meas.register_parameter(VNA.spectrum) \n", + "\n", + "#Start measurement\n", + "VNA.cont_meas_on() #Switches on the sweep\n", + "\n", + "\n", + "with meas.run() as datasaver:\n", + " VNA.autoscale() #Autoscale the trace on the VNA display\n", + " get_v = VNA.spectrum.get() #Get the spectrum seen by Port 2\n", + " datasaver.add_result((VNA.spectrum, get_v))\n", + "\n", + "\n", + "#Shutdown devices\n", + "VNA.cont_meas_off()\n", + "\n", + "###############\n", + "##Data saving##\n", + "###############\n", + "\n", + "captured_run_id=datasaver.dataset.run_id\n", + "dataset = qc.load_by_run_spec(captured_run_id=captured_run_id)\n", + "freq = dataset.get_parameter_data('ZVL_ZVL_frequency')['ZVL_ZVL_frequency']['ZVL_ZVL_frequency']\n", + "save_trace = dataset.get_parameter_data('ZVL_trace')['ZVL_trace']['ZVL_trace']\n", + "S_trace = dataset.get_parameter_data('ZVL_S_trace')['ZVL_S_trace']['ZVL_S_trace']" + ] + }, + { + "cell_type": "markdown", + "id": "537efff5", + "metadata": {}, + "source": [ + "### Plot " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d2b08d86", + "metadata": {}, + "outputs": [], + "source": [ + "plt.figure(figsize=(14*0.8, 10*0.8), dpi= 80) \n", + "\n", + "plt.plot(freq[0]*1e-9,spectrum[0])\n", + "\n", + "plt.rc('axes', labelsize=12) \n", + "plt.rc('xtick', labelsize=12*1.2) \n", + "plt.rc('ytick', labelsize=12*1.2) \n", + "\n", + "x_label=''\n", + "y_label=''\n", + "plt.xlabel(x_label, size=25)\n", + "plt.ylabel(y_label, size=25)\n", + "plt.title(plot_title, size=18)\n", + "plt.xticks(fontsize=20)\n", + "plt.yticks(fontsize=20)\n", + "plt.grid(True)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.7" + }, + "nbsphinx": { + "execute": "never" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}