[PYTHON] Essayez de générer une image avec aliénation

introduction

Lors de la conversion d'un signal analogique en signal numérique, vous ne pouvez observer que des fréquences jusqu'à 1/2 de la fréquence d'échantillonnage $ f_s $. Cette fréquence est appelée fréquence de Nyquist, mais on sait que même si les vibrations dépassant cette fréquence de Nyquist sont incluses, elles ne peuvent pas être observées. Les vibrations au-dessus de cette fréquence de Nyquist sont traitées comme des fréquences basses. Le traitement des vibrations haute fréquence qui dépassent la fréquence de Nyquist comme des fréquences basses est appelé aliasing (bruit de repliement).

Considérant la transformée de Fourier discrète des données avec des nombres $ N $ de $ x_0 $ à $ x_ {N-1} $

C_k = \frac{1}{N}\sum_{m=0}^{N-1} x_me^{-i\frac{2\pi km}{N}}
k = 0, 1, 2, …, N-1

La fréquence correspondant à k est

f_k = \frac{kf_s}{N}

Ce sera. Puisque k existe jusqu'à (N-1), il devient $ f_ {N-1} = \ frac {(N-1) f_s} {N} $, et même les vibrations dépassant la fréquence de Nyquist de $ f_s / 2 $ peuvent être exprimées. C'est vrai ..., $ C_k $ et $ C_ {Nk} $ sont connus pour être des nombres complexes conjugués l'un à l'autre.

C_k = C_{N-k}^*

Par conséquent, le wrapping se produit centré sur $ f_s / 2 $. N'ayez pas peur de vous méprendre, l'onde $ C_ {N-k} $ sera traitée comme une onde de fréquence $ C_k $.

Génération d'images

Utilisez numpy pour générer une image haute résolution (5000x5000). Ceci est considéré comme un signal pseudo analogique.


import numpy as np
import matplotlib.pyplot as plt

#Spécifiez la taille de l'image
img_size_origin = 5000
#Matrice zéro comme image
img = np.zeros([img_size_origin, img_size_origin])

#Les valeurs des pixels de l'image dépendent de la coordonnée y
y = np.arange(img_size_origin) 

#Période 100 pixels
amp = np.sin(2*np.pi*0.01*y)
for i in range(img_size_origin):
    img[:, i] = amp
    
plt.imshow(img, cmap="gray")
plt.show()

Cela générera une image avec 50 bandes. Puisqu'il a 50 bandes, si l'image entière est considérée comme un cycle, il y a des ondes de 50 Hz.

ig.png

Extrayez seulement 1 pixel par [comp × comp] de cette image et générez une nouvelle image. Si comp = 5, les pixels extraits seront aux coordonnées [3 + 5n, 3 + 5m]. (n> = 0, m> = 0)

comp = 99
#Calculer la taille de l'image de sortie
img_size = img.shape[0]//comp
print(img_size)
#Image de sortie
img_comp = np.zeros([img_size, img_size])

#[comp×comp]Extraire uniquement le pixel central des pixels de
for i in range(img_size):
    for j in range(img_size):
        img_comp[i, j] = img[(i*comp) + (comp//2), (j*comp) + (comp//2)]

plt.imshow(img_comp, cmap="gray")
plt.show()

plt.plot(img_comp[:, 0])
plt.show()

Quand comp est 99

Je n'ai pas pu bien observer l'onde de 50 Hz, et c'est devenu une onde de 0,5 Hz. img_comp.png

Lorsque comp est de 98

Je ne pouvais pas bien observer l'onde de 50 Hz, et c'est devenu une onde de 1 Hz. img_comp.png

Quand comp est 96

Je ne pouvais pas bien observer l'onde de 50 Hz, et il s'est avéré être une onde de 2 Hz.

img_comp.png

À la fin

Il semble que beaucoup d'images mystérieuses puissent être réalisées (petite sensation moyenne)

Recommended Posts

Essayez de générer une image avec aliénation
Essayez d'extraire une chaîne de caractères d'une image avec Python3
Comment recadrer une image avec Python + OpenCV
Essayez de générer automatiquement des documents Python avec Sphinx
Je veux convertir une image en WebP avec sucette
Essayez de défier le sol par récursif
[Evangelion] Essayez de générer automatiquement des lignes de type Asuka avec Deep Learning
Analyse d'image avec l'API Object Detection à essayer en 1 heure
Découpez une image avec python
Essayez d'exploiter Facebook avec Python
Convertir une chaîne en image
Essayez de brouiller l'image avec opencv2
Convertir un PDF en image avec ImageMagick
Essayez de créer un visualiseur de différence de chemin d'exécution avec angr + bingraphvis
J'ai essayé de créer une fonction de similitude d'image avec Python + OpenCV
Essayez de générer une image de veste de type death metal avec DCGAN + grattez le site de base de données de métaux pour cela
Essayez de reproduire un film couleur avec Python
Créer une application de fractionnement d'image avec Tkinter
mail html avec image à envoyer avec python
Classification d'image avec Keras - Du prétraitement au test de classification -
Créer une visionneuse de traitement d'image avec PySimpleGUI
Introduction au remplissage d'image Python Remplissage d'image à l'aide d'ImageDataGenerator
Essayez de prédire les fleurs de cerisier avec XG Boost
Essayez rapidement de visualiser votre ensemble de données avec des pandas
Essayez facilement la génération automatique d'images avec DCGAN-tensor flow
Premier YDK à essayer avec Cisco IOS-XE
Exemple de conversion en ondelettes d'images en Python
[TCP / IP] Après avoir étudié, essayez de créer un client HTTP avec Python
Essayez d'imaginer les données d'élévation du National Land Research Institute avec Python
[AWS] Comment gérer WordPress "Une erreur s'est produite lors du recadrage d'une image."
Essayez de créer votre propre AWS-SDK avec bash
Essayez de résoudre le problème du fizzbuzz avec Keras
Résumé de la comparaison des bibliothèques pour générer des PDF avec Python
Essayez d'ajouter la distorsion de l'objectif fisheye à l'image
Coupez l'image aux coins arrondis avec pythonista
Essayez d'agréger les données de musique doujin avec des pandas
Convertir un PDF en image (JPEG / PNG) avec Python
Générer et publier des données d'image factice avec Django
J'ai essayé d'obtenir une image en grattant
Ajouter des lignes à un tableau vide avec numpy
Envoyez un email à l'adresse de Spushi avec python
Créez une application de composition d'images avec Flask + Pillow
Essayez de résoudre le diagramme homme-machine avec Python
Essayez d'extraire le document Azure document DB avec pydocumentdb
Essayez de dessiner une courbe de vie avec python
Essayez de communiquer avec EV3 et PC! (MQTT)
Je veux être OREMO avec setParam!
Comment essayer l'algorithme des amis d'amis avec pyfof
Essayez de monter votre visage avec le test AB
Essayez de créer un code de "décryptage" en Python
Comment lire un tableau avec ConfigParser de Python
Créer une image avec des caractères avec python (japonais)
[Python] Génère automatiquement un exemple d'image de type liste d'animation.
J'ai essayé d'extraire le dessin au trait de l'image avec Deep Learning
J'ai essayé de détecter un objet avec M2Det!
Essayez de créer un groupe de dièdre avec Python
Essayez de créer un serveur HTTP en utilisant Node.js
Essayez de détecter un objet avec RaspberryPi ~ Partie 1: Comparaison de la vitesse de détection ~
Essayez de créer un environnement pour MayaPython avec VisualStudioCode