it also reconstructs period data :D (Pdb) quadhalfdata = np.concatenate([data[:4]] * 4) (Pdb) p micro_ift(micro_ft(quadhalfdata, 4), 4) array([0.06095369+0.00000000e+00j, 0.80908567+0.00000000e+00j, 0.63218561+0.00000000e+00j, 0.27129873-1.38777878e-17j, 0.06095369-3.46944695e-18j, 0.80908567+0.00000000e+00j, 0.63218561-5.55111512e-17j, 0.27129873+0.00000000e+00j, 0.06095369+0.00000000e+00j, 0.80908567+0.00000000e+00j, 0.63218561+0.00000000e+00j, 0.27129873+0.00000000e+00j, 0.06095369+0.00000000e+00j, 0.80908567+5.55111512e-17j, 0.63218561+0.00000000e+00j, 0.27129873+0.00000000e+00j]) (Pdb) p quadhalfdata array([0.06095369, 0.80908567, 0.63218561, 0.27129873, 0.06095369, 0.80908567, 0.63218561, 0.27129873, 0.06095369, 0.80908567, 0.63218561, 0.27129873, 0.06095369, 0.80908567, 0.63218561, 0.27129873]) but of course it does this at the original resolution; i'd need to process the data differently to upsample it