filterarray, convolve et correlate sont trois fonctions opérant sur des arrays of real permettant d'effectuer respectivement des opérations de filtrage, de convolution et de corrélation.
filterarray
Il s'agit d'une convolution, mais adaptée au filtrage d'un array of real de grande taille ns par un array of real de plus petite taille nr. Le résultat est de taille ns-nr+1.
(filterarray {1, 2, 2, 2, 3, 1, 2, 2, 2, 3} using {-1, 2, -1}) as list of real
-- {1.0, 0.0, -1.0, 3.0, -3.0, 1.0, 0.0, -1.0}
convolve
Calcule la corrélation de deux arrays of real de même taille n. Si les deux arguments n'ont pas la même taille, le plus petit est complété par des zéros. Le résultat est un array of real de taille 2*n-1.
Le paramètre booléen optionnel circular permet de calculer la corrélation sur des données périodiques. Si ce paramètre vaut true (ce qui est le cas par défaut), le résultat est un array of real de taille n.
set a to {1, 2, 3} as array of real
set b to {0, 1, 2} as array of real
(convolve a by b without circular) as list of real
-- {0.0, 1.0, 4.0, 7.0, 6.0}
correlate
Calcule le produit de corrélation de deux arrays of real de même taille n. Si les deux arguments n'ont pas la même taille, le plus petit est complété par des zéros. Le résultat est un array of real de taille 2*n-1.
Le paramètre booléen optionnel circular permet de calculer la corrélation sur des données périodiques. Si ce paramètre vaut true (ce qui est le cas par défaut), le résultat est un array of real de taille n.
set a to {1, 2, 3} as array of real
(correlate a to a without circular) as list of real
-- {-0.375, 0.25, 1.0, 0.25, -0.375}
|