Exemple #1
0
def notch(f_data, z_data, progress_bar, var_col=0, f_col=1, z_col=2):
    #progress bar
    progress_bar.setMaximum(5)
    i_progress = 0
    progress_bar.setValue(i_progress)
    QApplication.processEvents()
    #calibration
    delay, amp_norm, alpha, fr, Qr, A2, frcal = rtx.do_calibration(
        f_data, z_data[0], ignoreslope=True)
    i_progress += 1
    progress_bar.setValue(i_progress)
    QApplication.processEvents()
    #normalization
    z_norm = rtx.do_normalization(f_data, z_data, delay, amp_norm, alpha, A2,
                                  frcal)
    i_progress += 1
    progress_bar.setValue(i_progress)
    QApplication.processEvents()
    #circlefit
    parameters = map(
        lambda x: rtx.circlefit(f_data, z_norm[x], calc_errors=True),
        xrange(len(z_norm)))
    i_progress += 1
    progress_bar.setValue(i_progress)
    QApplication.processEvents()
    #simulation
    z_data_sim = np.array(
        map(
            lambda p: to.S21(f_data,
                             fr=p["fr"],
                             Qr=p["Qr"],
                             Qc=p["absQc"],
                             phi=p["phi0"],
                             a=amp_norm,
                             alpha=alpha,
                             delay=delay), parameters))
    #residual values
    residual_amp = np.absolute(z_norm) - np.absolute(z_data_sim)
    residual_phase = np.angle(z_norm) - np.angle(z_data_sim)
    i_progress += 1
    progress_bar.setValue(i_progress)
    QApplication.processEvents()

    return {
        "z_sim": z_data_sim,
        "res_amp": residual_amp,
        "res_phase": residual_phase,
        "parameters": parameters,
        "amp_norm": amp_norm,
        "alpha": alpha,
        "delay": delay
    }
Exemple #2
0
def notch(f_data,z_data,progress_bar,var_col=0,f_col=1,z_col=2):
    #progress bar
    progress_bar.setMaximum(5)
    i_progress=0
    progress_bar.setValue(i_progress)
    QApplication.processEvents()
    #calibration
    delay,amp_norm,alpha,fr,Qr,A2,frcal=rtx.do_calibration(f_data,z_data[0],ignoreslope=True)
    i_progress+=1
    progress_bar.setValue(i_progress)
    QApplication.processEvents()
    #normalization
    z_norm = rtx.do_normalization(f_data,z_data,delay,amp_norm,alpha,A2,frcal)
    i_progress+=1
    progress_bar.setValue(i_progress)
    QApplication.processEvents()
    #circlefit
    parameters = map(lambda x: rtx.circlefit(f_data,z_norm[x],calc_errors=True), xrange(len(z_norm)))
    i_progress+=1
    progress_bar.setValue(i_progress)
    QApplication.processEvents()
    #simulation
    z_data_sim = np.array(map(lambda p: to.S21(f_data,fr=p["fr"],Qr=p["Qr"],Qc=p["absQc"],
                                   phi=p["phi0"],a=amp_norm,alpha=alpha,delay=delay), parameters))
    #residual values
    residual_amp = np.absolute(z_norm) - np.absolute(z_data_sim)
    residual_phase = np.angle(z_norm) - np.angle(z_data_sim)
    i_progress+=1
    progress_bar.setValue(i_progress)
    QApplication.processEvents()

    return {"z_sim":z_data_sim,
    "res_amp":residual_amp,
    "res_phase":residual_phase,"parameters":parameters,
    "amp_norm":amp_norm,"alpha":alpha,
    "delay":delay}
Exemple #3
0
##prepare data (remove delay, and normalize)
# step2#
z_data = rtx.do_normalization(f_data, z_data_raw, delay, amp_norm, alpha, A2, frcal)
print "Step 2: normalization finished"
# ----#

## optional plotting
# rtx.plot(f_data,z_data,'logamp')
# rtx.plot(f_data,z_data,'phase')
# rtx.plot(f_data,z_data,'circle')

##calculate Q values etc.
# step3#  (function assumes normalized data without cable delay or phase offsets, use step 1 and 2 to remove these)
# results = rtx.circlefit(f_data,z_data,fr,Qr,refine_results=False,calc_errors=True)  # use this for calculation with errors
results = rtx.circlefit(
    f_data, z_data, fr, Qr, refine_results=False, calc_errors=True
)  # calculation without errors (faster)

print "Step 3: circlefit finished"
# ----#

# optional data output (more available, see source)
print "Fit results:"
print results

# optional: least square fit of the entire model (slow)
# you have to give start values
# results2 = rtx.fit_S21data(f_data,z_data_raw,amp_norm,alpha,delay,Qr,absQc,phi0,fr,maxiter=0)

# optinal: plot function with fitted parameters
z_data_sim = np.array(