Convoluzione class
public static class ConvoluzioneMetodi
static double[] Diretta(double[] x, double[] h)La convoluzione lineare dalla definizione: lunga x + h - 1 campioni, x.Length·h.Length prodotti.
static double[] CorrelazioneDiretta(double[] x, double[] h)La correlazione dalla definizione, per i ritardi da 0 a x.Length - h.Length: quanto somiglia h al pezzo di x che parte da ciascun ritardo.
static double[] ConFft(double[] x, double[] h)La stessa convoluzione con la FFT: si allungano x e h con zeri fino a una potenza di 2 che contenga tutto il risultato, si moltiplicano gli spettri, si torna indietro con l'inversa.
static double[] Circolare(double[] x, double[] h, int n)La convoluzione circolare: la FFT senza allungare con zeri. La coda del risultato rientra dall'inizio: e' cio' che la FFT calcola davvero, e il motivo degli zeri in ConFft.
static double[] CorrelazioneConFft(double[] x, double[] h)La correlazione con la FFT: lo spettro di x per il coniugato di quello di h. Restituisce gli stessi ritardi di CorrelazioneDiretta.