Add pre-packaged dependency libraries (ESP32-audioI2S and PNGdec)
This commit is contained in:
44
libraries/ESP32-audioI2S/examples/biquad/biquad.py
Normal file
44
libraries/ESP32-audioI2S/examples/biquad/biquad.py
Normal file
@@ -0,0 +1,44 @@
|
||||
import numpy as np
|
||||
# import matplotlib
|
||||
# matplotlib.use("TkAgg") # oder "QtAgg", falls Qt installiert ist
|
||||
import matplotlib.pyplot as plt
|
||||
from scipy.signal import freqz
|
||||
|
||||
# =========================
|
||||
# PARAMETER
|
||||
# =========================
|
||||
fs = 44100 # Samplerate
|
||||
N = 8192 # FFT-Auflösung
|
||||
|
||||
# Liste von Biquads (Reihenfolge = Signalfluss)
|
||||
biquads = [
|
||||
([1.026721, -1.919612, 0.901093], [1.0, -1.922258, 0.925168]), # LOWSHELF
|
||||
([0.802626, -1.424665, 0.670208 ], [1.0, -1.424665, 0.472834 ]), # PEAKINGEQ
|
||||
([2.092489, -2.262849, 0.808592], [1.0, -0.597000, 0.235232]), # HIGHSHELF
|
||||
]
|
||||
|
||||
w = np.linspace(0, np.pi, N)
|
||||
H = np.ones_like(w, dtype=complex)
|
||||
|
||||
for b, a in biquads:
|
||||
_, h = freqz(b, a, worN=w)
|
||||
H *= h
|
||||
|
||||
f = w * fs / (2*np.pi)
|
||||
mag_db = 20 * np.log10(np.abs(H) + 1e-12)
|
||||
|
||||
# =========================
|
||||
# PLOT
|
||||
# =========================
|
||||
plt.figure(figsize=(9,5))
|
||||
plt.semilogx(f, mag_db)
|
||||
plt.xlim(20, fs/2)
|
||||
plt.ylim(-15, 15)
|
||||
plt.grid(True, which='both')
|
||||
plt.xlabel("Frequency (Hz)")
|
||||
plt.ylabel("Amplitude (dB)")
|
||||
plt.title("Biquad frequency response")
|
||||
plt.tight_layout()
|
||||
# plt.show()
|
||||
plt.savefig("biquad_response.png", dpi=150)
|
||||
print("Plot gespeichert als biquad_response.png")
|
||||
Reference in New Issue
Block a user