# evaluate the phase corresponding to alpha Phi = phase_pol.eval_grid(alpha) # evaluate the generalised pupil function P corresponding to alpha P = np.exp(1j*Phi) # estimate the beta coefficients from P beta_hat = ip.fit(P) # plot the results phaseplot = PhasePlot(n=args.n_alpha) # to plot beta and the PSF betaplot = BetaPlot(args) # to plot the phase # plot alpha p.figure(10) p.subplot2grid((1, 3), (0, 0), colspan=2) h1 = p.plot(range(1, phase_pol.nk + 1), alpha, marker='o') p.legend(h1, [r'$\alpha$']) p.ylabel('[rad]') p.xlabel('$k$') p.subplot2grid((1, 3), (0, 2)) phaseplot.plot_alpha(alpha) p.title(r'$\alpha$') p.colorbar() # plot beta betaplot.plot_beta(beta_hat) p.show()
h1 = ax.plot(range(1, phase_pol.nk + 1), alpha_true, marker='o') h2 = ax.plot(range(1, phase_pol.nk + 1), alpha_hat, marker='x') p.legend(h1 + h2, [r'$\alpha$', r'$\hat{\alpha}$']) p.ylabel('[rad]') p.xlabel('$k$') # Zernike coefficients error between alpha_true and alpha_hat ax = p.subplot2grid((3, 3), (1, 0), colspan=3) err = alpha_true - alpha_hat ax.bar(range(1, phase_pol.nk + 1), np.abs(err)) p.title('error {:g} rms rad'.format(norm(err[1:]))) p.ylabel('[rad]') p.xlabel('$k$') ax = p.subplot2grid((3, 3), (2, 0)) phaseplot.plot_alpha(alpha_true) p.title(r'$\alpha$') p.colorbar() ax = p.subplot2grid((3, 3), (2, 1)) phaseplot.plot_alpha(alpha_hat) p.title(r'$\hat{\alpha}$') p.colorbar() ax = p.subplot2grid((3, 3), (2, 2)) phaseplot.plot_alpha(alpha_true - alpha_hat) p.title(r'$\alpha - \hat{\alpha}$') p.colorbar() p.tight_layout() p.show()