Signalverarbeitung in Python (1): Fourier-Transformation

Einführung

Lernmaterial für die Signalverarbeitung in Python.

Bibliothek zu verwenden

numpy, matplotlib scipy fftpack

Ausführungsinhalt

  1. Erzeugen Sie eine Sinuswelle mit einer bestimmten Frequenz. (numpy)
  2. Führen Sie die FFT aus. (scipy)
  3. Zeichnen Sie das Ausführungsergebnis. (Matplotlib)

Programmcode

1. Sinuswellenerzeugungsteil

N = 2**20 # data number
dt = 0.0001 # data step [s]
f1 = 5 # frequency[Hz]
A1 = 1 # Amplitude
p1 = 90*pi/180  # phase [rad]

#Wellenformbildung
t = np.arange(0, N*dt, dt) # time
freq = np.linspace(0, 1.0/dt, N) # frequency step
y = A1*np.sin(2*np.pi*f1*t + p1) 

2. Fourier-Transformationsteil

#Diskrete Fourier-Transformation&Standardisierung
yf = fft(y)/(N/2) 

# y :numpy Array
# N :Anzahl von Beispielen

Ganzer Code

fft.py


import numpy as np
from scipy.fftpack import fft
import matplotlib.pyplot as plt

#Umfangsverhältnis π
pi = np.pi

# parameters

N = 2**20 # data number
dt = 0.0001 # data step [s]
f1 = 5 # frequency[Hz]
A1 = 1 # Amplitude
p1 = 90*pi/180 # phase

#Wellenformbildung
t = np.arange(0, N*dt, dt) # time
freq = np.linspace(0, 1.0/dt, N) # frequency step

y = A1*np.sin(2*np.pi*f1*t + p1)

#Fourier-Transformation
yf = fft(y)/(N/2) #Diskrete Fourier-Transformation&Standardisierung

#Handlung
plt.figure(2)

plt.subplot(211)
plt.plot(t, y)
plt.xlim(0, 1)
plt.xlabel("time")
plt.ylabel("amplitude")

plt.subplot(212)
plt.plot(freq, np.abs(yf))
plt.xlim(0, 10)
plt.xlabel("frequency")
plt.ylabel("amplitude")

plt.tight_layout()
plt.savefig("01")

plt.show()

3. Ausführungsergebnis

Oben: Zeitbereichsdiagramm: Stellen Sie sicher, dass die Phase um 90 Grad phasenverschoben ist. Unten: Diagramm des Frequenzbereichs: 5-Hz-Frequenz wird bestätigt. Figure_2.png

Zusammenfassung

  1. Ich habe FFT in Python ausgeführt.

Impressionen

Ich habe Matlab bisher für die Signalverarbeitung verwendet, aber Pythons Scipy ist auch einfacher.

Referenzmaterial

Recommended Posts

Signalverarbeitung in Python (1): Fourier-Transformation
Dateiverarbeitung in Python
Multithread-Verarbeitung in Python
Textverarbeitung mit Python
Verarbeitung in Python beenden
Bildverarbeitung von Grund auf mit Python (5) Fourier-Transformation
UTF8-Textverarbeitung mit Python
Akustische Signalverarbeitung mit Python (2)
Asynchrone Verarbeitung (Threading) in Python
Bildverarbeitungssammlung in Python
Verwenden des Python-Modus in der Verarbeitung
100 Sprachverarbeitung Knock Kapitel 1 in Python
In Python geschriebener Fourier-Serien-Verifizierungscode
Verarbeiten Sie Bilder in Python ganz einfach mit Pillow
Doppelte Verbotsverarbeitung im GAE / Python-Datenspeicher
Status jedes Python-Verarbeitungssystems im Jahr 2020
Quadtree in Python --2
Python in der Optimierung
Metaprogrammierung mit Python
Python 3.3 mit Anaconda
Geokodierung in Python
SendKeys in Python
Python-Bildverarbeitung
Metaanalyse in Python
Unittest in Python
Epoche in Python
Zwietracht in Python
Deutsch in Python
DCI in Python
Python-Dateiverarbeitung
Quicksort in Python
nCr in Python
N-Gramm in Python
Programmieren mit Python
Plink in Python
Konstante in Python
FizzBuzz in Python
SQLite in Python
Schritt AIC in Python
LINE-Bot [0] in Python
CSV in Python
Reverse Assembler mit Python
Reflexion in Python
Konstante in Python
nCr in Python.
Format in Python
Scons in Python 3
Puyopuyo in Python
Python in Virtualenv
PPAP in Python
Quad-Tree in Python
Reflexion in Python
Chemie mit Python
Hashbar in Python
DirectLiNGAM in Python
LiNGAM in Python
In Python reduzieren
In Python flach drücken