Source code for wield.control.fitting.SISO.test.ratdisc.test_disc_convergence
# -*- coding: utf-8 -*-""""""importpytest# from wield.control.fitting.SISO import fittersfromwield.control.fitting.SISOimportfitters_rationalfromwield.control.fitting.SISOimportplotsfromwield.control.fitting.SISO.utilitiesimportrelpyimportnumpyasnpfromwield.pytestimporttjointry:fromwield.control.fitting.SISO.testing.test_dataimporttesting_data_devexceptImportError:module_import_skip=Trueelse:module_import_skip=False
[docs]@pytest.mark.skipif(module_import_skip,reason="cannot import IIRrational_test_data")deftest_disc_convergence():data=testing_data_dev("quad_M0_P2V_10Hz")SNR=np.minimum(data.SNR,100)F_nyquist_Hz=np.max(data.F_Hz)fitter=fitters_rational.RationalDiscFilter(F_Hz=data.F_Hz,data=data.data,W=SNR,F_nyquist_Hz=F_nyquist_Hz,npoles=100,nzeros=100,)print("data",fitter.data)print("W",fitter.W)print("h_a",fitter.h_a.xfer,fitter.h_a.lnG)print("h_b",fitter.h_b.xfer,fitter.h_b.lnG)fitter.fit_zeros()fitter.fit_poles()print("h_a",fitter.h_a.xfer[0],fitter.h_a.lnG)print("h_b",fitter.h_b.xfer[0],fitter.h_b.lnG)fitter.fit_zeros()print("h_a",fitter.h_a.xfer[0],fitter.h_a.lnG)print("h_b",fitter.h_b.xfer[0],fitter.h_b.lnG)fitter.fit_poles()fitter.fit_zeros()fitter.fit_SVD()fitter.fit_poles()fitter.fit_zeros()fitter.matched_pairs_clear(Q_rank_cutoff=0.3)fitter.stabilize=True# fitter.npoles = len(fitter.poles)# fitter.nzeros = len(fitter.zeros)##fitter.stabilize = Truefitter.fit_poles()fitter.fit_zeros()fitter.fit_poles()fitter.fit_zeros()fitter.fit_SVD()fitter.fit_poles()fitter.fit_zeros()fitter.fit_poles()fitter.fit_zeros()fitter.fit_poles()fitter.fit_zeros()fitter.matched_pairs_clear(Q_rank_cutoff=0.7)# TODO#!Make this a TEST so it doesn't plot all of the timeaxB=plots.plot_fit(fitter,plot_zp=True,# plot_past_data = False,plot_past_data=True,xscale="log",)axB.save(tjoin("disc-convergence"))return