20.08.2016, 15:40
Hallo Ulrich,
vielen Dank für die Beispiele. Ich rate nur aus den Dateinamen - was ist genau der Unterschied zwischen "1k+3klr3ProzSumme.wav" und "1k+3klr97+3summe.wav"?
Hier noch ein Schnipsel Python-Code, um selbst solche Signale zu erzeugen:
Viele Grüße
Andreas
Edit: ein Punkt an entscheidender Stelle: 10**(db / 20.), um Integer-Division zu vermeiden
vielen Dank für die Beispiele. Ich rate nur aus den Dateinamen - was ist genau der Unterschied zwischen "1k+3klr3ProzSumme.wav" und "1k+3klr97+3summe.wav"?
Hier noch ein Schnipsel Python-Code, um selbst solche Signale zu erzeugen:
Code:
import numpy as np
from scipy.io import wavfile
# Sampling-Rate
fs = 96000
# Gesamtlaenge
T = 10
# Grundton und 3. Teilton mit Amplitude 1
f1 = np.sin(2*np.pi * 1000 * np.arange(T*fs) / fs)
f3 = np.sin(2*np.pi * 3000 * np.arange(T*fs) / fs)
# Klirrfaktor und Vorfaktoren
k = 0.03
a1 = np.sqrt(1. - k**2)
a3 = k
# summieren und normalisieren
f = a1 * f1 + a3 * f3
f /= np.max(np.abs(f))
# noch ein wenig abschwaechen
db = -10
f *= 10**(db / 20.)
# ausgeben
wavfile.write('klirr.wav', fs,
np.array(f * np.iinfo(np.int16).max, dtype=np.int16))
Viele Grüße
Andreas
Edit: ein Punkt an entscheidender Stelle: 10**(db / 20.), um Integer-Division zu vermeiden