Il existe plusieurs façons de générer une fonction de fenêtre largement utilisée dans le traitement du signal avec python
.
Le comportement étant légèrement différent selon la méthode de génération, enregistrez-le sous forme de mémorandum.
(Limité aux fenêtres bourdonnantes ici. Peut-être que des choses similaires se produisent avec n'importe quelle fenêtre)
Il existe trois types de candidats à comparer. La largeur de la fenêtre est de $ N $.
numpy.hamming(N)
scipy.signal.hamming(N)
scipy.signal.get_window('hamming', N)
Idem quand $ N $ est impair.
>>> import scipy.signal, numpy
>>> N = 5
>>> numpy.hamming(N)
array([ 0.08, 0.54, 1. , 0.54, 0.08])
>>> scipy.signal.hamming(N)
array([ 0.08, 0.54, 1. , 0.54, 0.08])
>>> scipy.signal.get_window('hamming', N)
array([ 0.08, 0.54, 1. , 0.54, 0.08])
Cependant, la situation change lorsque $ N $ devient un nombre pair. (get_window
)
>>> import numpy, scipy.signal
>>> N = 4
>>> numpy.hamming(N)
array([ 0.08, 0.77, 0.77, 0.08])
>>> scipy.signal.hamming(N)
array([ 0.08, 0.77, 0.77, 0.08])
>>> scipy.signal.get_window('hamming', N)
array([ 0.08, 0.54, 1. , 0.54])
Cependant, si vous mettez «False» dans le troisième argument de «get_window», le résultat sera le même.
>>> scipy.signal.get_window('hamming', N, False)
array([ 0.08, 0.77, 0.77, 0.08])
scipy.signal.hamming
et numpy.hamming
sont par défaut
Générez la valeur de la fonction de fenêtre de sorte qu'elle soit symétrique.
D'un autre côté, get_window
génère une valeur" périodique "(?) Pour faciliter l'utilisation en FFT.
La définition du troisième argument sur «False» produit des valeurs symétriques faciles à utiliser pour le filtre.
Par conséquent, le comportement par défaut diffère selon la fonction.
http://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.hamming.html http://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.get_window.html
Recommended Posts