[PYTHON] Différence de sortie de la fonction de fenêtre de longueur paire

introduction

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)

Comparaison

Il existe trois types de candidats à comparer. La largeur de la fenêtre est de $ N $.

Résultat de la comparaison

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])

Pourquoi

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.

Les références

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

Différence de sortie de la fonction de fenêtre de longueur paire
Implémentation de la fonction de connexion dans Django
Arborescence de sortie des fichiers en Python
Sortie du nombre de cœurs de processeur en Python
Dessiner un graphique d'une fonction quadratique en Python
[Linux] Différence d'informations temporelles en fonction de l'ID d'horloge de la fonction clock_gettime ()
Récupérer l'appelant d'une fonction en Python
Lire la sortie du sous-processus, ouvrir en temps réel
Reconsidération de l'implémentation de la pagination par style Relay dans GraphQL (version utilisant la fonction Window)
Correction des arguments de la fonction utilisée dans map
Gacha écrit en python - Ajout d'une fonction de réglage de période -
Sortie sous la forme d'un tableau python
Dualité en fonction
Projet Euler # 6 "Différence de somme des carrés" en Python
Évaluation de la vitesse de sortie du fichier CSV en Python
Différence entre Ruby et Python en termes de variables
[Cinema 4D] fonction de vérification de tous les objets de la scène
[python] Calcul des mois et des années de différence de date / heure
Différence de résultats en fonction de l'argument du multiprocessus.
Exécuter des fonctions en parallèle
Sortie japonaise avec Python
Bases de python: sortie
Fonction de réglage NumPy
Avoir le graphique d'équation de la fonction linéaire dessiné en Python
Un mémo que j'ai écrit une fonction de base en Python en utilisant la récurrence
Rendre la fonction de dessin de polices japonaises dans OpenCV en général
Coordination de chaque processus dans MPI et mise en mémoire tampon de la sortie standard