[PYTHON] Animer ce qui se passe dans l'espace de fréquences lorsque la fréquence de Nyquist est dépassée

introduction

Il existe un théorème d'échantillonnage (théorème d'échantillonnage). En échantillonnant deux fois pour une longueur d'onde, le signal d'origine peut être complètement restauré. Cet intervalle d'échantillonnage est appelé la fréquence d'échantillonnage, et la moitié de la fréquence est appelée la fréquence de Nyquist. Les alias se produisent lorsque le signal à mesurer dépasse la fréquence de Nyquist. Même si je connaissais cela en tant que connaissance, je pensais que je n'avais jamais vu en animation à quoi cela ressemblerait dans l'espace de fréquences au-delà de la fréquence de Nyquist, alors je l'ai fait.

référence

Je l'ai lu pour rappeler le théorème d'échantillonnage. Ono Sokki: À propos de FFT Analyzer (page4)

programme

import numpy as np
import matplotlib.pyplot as plt

N = 512 #Exemple de score FFT
fs = 2000.0 #Taux d'échantillonnage
t = np.linspace(0.0,N/fs,N)
fft_freq = np.linspace(0.0,fs,N) #Axe de fréquence FFT
f_array = np.linspace(10.0,4000.0,200)

for i,f in enumerate(f_array):
    sig = np.sin(2.0*np.pi*f*t) * np.hamming(N)
    fft_amp = np.abs(np.fft.fft(sig)) / N * 2.0 / 0.54
    
    fig,axes = plt.subplots()
    axes.plot(fft_freq,fft_amp,label="{} Hz".format(np.round(f)))
    axes.set_xlabel("Frequency Hz")
    axes.set_ylabel("Amplitude")
    axes.set_ylim(0.0,1.1)
    axes.legend(loc="upper right")
    fig.savefig("{}.png ".format(i))
    plt.close()

Les photos du numéro de série ont été converties en animation avec GIMP.

résultat

Il se déplace comme un miroir à la fréquence de Nyquist. Cela vous donnera une bonne idée des raisons pour lesquelles vous ne devriez pas dépasser la fréquence de Nyquist. Vous pouvez voir la fréquence cette fois, mais si vous ne regardez que le résultat, vous ne pouvez pas dire s'il a été plié ou mesuré correctement. ナイキスト周波数_エイリアシング.gif

Résumé

Même si vous vous souvenez que vous ne devriez pas dépasser la fréquence de Nyquist, vous verrez rarement ce qui se passe si vous le faites. J'espère que cela aide quelqu'un.

Recommended Posts

Animer ce qui se passe dans l'espace de fréquences lorsque la fréquence de Nyquist est dépassée
Vérifiez à l'avance ce qui se passe lorsque la commande est exécutée
Que faire lorsque le type de valeur est ambigu en Python?
Qu'est-ce que "mahjong" dans la bibliothèque Python? ??
Lorsque la cible est Ubuntu 16.04 dans Ansible
Que faire lorsque le résultat téléchargé via scrapy est en anglais
Que faire lorsque l'avertissement "L'environnement est cohérent ..." apparaît dans l'environnement Anaconda
Qu'est-ce que wheezy dans l'image Docker Python?
[Question] Que se passe-t-il si vous utilisez% en python?
Qu'advient-il du journal d'accès lorsque le site Web est automatiquement accédé par sélénium-webdriver
Lorsque l'objet sélectionné dans bpy.context.selected_objects n'est pas renvoyé
Que faire quand n'est pas dans le fichier sudoers. Cet incident sera signalé.
Que faire lorsque seule la fenêtre est affichée et que rien ne s'affiche dans le pygame
Quel est l'attribut de domaine écrit dans la disposition de Plotly?
Incorporation dans datetime lorsque seule l'heure est connue
Quelle est la fonction d'activation?
A quoi sert l'interface ...
Qu'est-ce que la fonction de rappel?
Comment donner et signifier l'option des contraintes dans scipy.optimize.minimize
[Golang] "Le package exec n'est pas dans GOROOT" lors de l'exécution du test
Solution lorsque json.Marshal de go renvoie un objet vide
Que se passe-t-il lorsque je change les hyper paramètres de SVM (noyau RBF)?
[Python] Que faire en cas de violation de PEP8 lors du processus d'importation à partir du répertoire ajouté à sys.path
[python] Quelle est la clé triée?
Qu'est-ce que le système X Window?
À quoi sert le trait de soulignement Python (_)?
Lorsque le nœud disparaît dans rqt_graph
L'espace est-il remplacé par un signe plus ou% 20 dans le traitement du codage en pourcentage?
Quel genre de livre est le "Python Crash Course" le plus vendu au monde?
Notifier à l'aide du Centre de notifications lorsque l'environnement d'exécution est macOS en Python
Que faire lorsqu'un message d'avertissement est affiché dans la liste des pip