Polifase class
This reference is written in Italian: it comes from the comments of the source code, which are in Italian like the code of the books.
public static class PolifaseMethods
static double[] DecimaIngenuo(double[] x, double[] h, int m)Decimare di m nel modo ingenuo: tutte le uscite del filtro, poi una ogni m.
static double[] Decima(double[] x, double[] h, int m)Decimare di m calcolando solo le uscite tenute: m volte meno prodotti.
static double[] InterpolaIngenuo(double[] x, double[] h, int l)Interpolare di l nel modo ingenuo: l - 1 zeri dopo ogni campione, poi il filtro su tutto, zeri compresi. Il guadagno l rimette l'ampiezza, che gli zeri hanno diviso per l.
static double[] Interpola(double[] x, double[] h, int l)Interpolare di l con i sottofiltri: l'uscita n usa solo i coefficienti h[f], h[f + l], h[f + 2l]... con f = n mod l, cioe' quelli che cadono sui campioni veri. l volte meno prodotti.
static double[] DecimaMezzaBanda(double[] x, double[] h)Decimare di 2 con un mezza banda: i coefficienti pari lontani dal centro sono zero e gli altri sono simmetrici, quindi per ogni uscita bastano il centro e una moltiplicazione per coppia.