Labor 01: Audio Interface Messtechnik

1. Überblick

Dieses Labor behandelte die systematische Charakterisierung von Audio-Interfaces durch präzise Messungen von Dynamikbereich, Klirrfaktor, und Frequenzgängen. Gemessen wurden drei verschiedene Geräte: RME Fireface UC, Mackie CR-1604 (Kanal 1 und 2).

2. Versuchsaufbau

2.1. Hardware-Konfiguration

  • Audio-Interface: RME Fireface UC (192 kHz Sampling-Rate)
  • Testobjekte: RME Fireface UC, Mackie CR-1604 Mischpult
  • Messschleife: Audio-Ausgang → Testobjekt → Audio-Eingang
  • Latenz: Niedrige Latenz-Einstellung für Echtzeit-Monitoring

2.2. Software-Umgebung

  • PyFar: Hauptbibliothek für Audio-Signalverarbeitung
  • SoundDevice: Hardware-Interface für Aufnahme/Wiedergabe
  • Waveform Analysis: Spezialisierte Funktionen (A-Bewertung)

3. Experiment 1: Maximalpegel und Rauschpegel

3.1. Messmethodik

Grundprinzip: Bestimmung der nutzbaren Aussteuerungsgrenzen von Audio-Geräten

Testsignal:

f_0 = 1000  # Hz
level = -np.inf  # dBFS (für Rauschpegelmessung)
duration = 0.5  # s
sine = pf.signals.sine(frequency=f_0, amplitude=10**(level/20), 
                       n_samples=duration*fs, sampling_rate=fs)

Signalverarbeitungsfunktionen:

  • RMS-Berechnung: np.sqrt(np.mean(x**2, axis=-1))
  • Peak-Erkennung: np.max(np.abs(x), axis=-1)
  • A-Bewertung: Frequenzabhängige Gewichtung für psychoakustische Relevanz
  • dBFS-Konversion: 20 * np.log10(np.abs(x))

3.2. Praktische Durchführung

  1. Signalerzeugung: Präzise Amplitude entsprechend dBFS-Wert
  2. Aufnahme: sd.playrec() mit konfigurierten Ein-/Ausgängen
  3. Fensterung: Entfernung systemischer Latenz durch zeitliche Beschneidung
  4. Auswertung: Automatisierte Berechnung aller Kennwerte

4. Experiment 2: Betriebskurven (Operating Curves)

4.1. Konzept

Ziel: Charakterisierung des Ein-/Ausgangsverhaltens über den gesamten Aussteuerungsbereich

Messverfahren:

  • Systematische Variation des Eingangspegels (-60 bis 0 dBFS)
  • Messung des resultierenden Ausgangspegels in dBu
  • Bestimmung des linearen Arbeitsbereichs

4.2. Klirrfaktormessungen

THD_R (Referenz: Gesamtsignal):

freq_harm = np.arange(2 * f_0, fs/2, f_0)  # Harmonische
ind_harm = x.find_nearest_frequency(freq_harm)
amp_harm = np.abs(x.freq[:, ind_harm])
thd_r = np.sqrt(np.sum(amp_harm**2, axis=-1)) / rms_amp

THD+N (Total Harmonic Distortion + Noise):

x_filtered = pf.dsp.filter.notch(x, f_0, Q=5)  # Grundton entfernen
thd_n = pf.dsp.rms(x_filtered_han) / pf.dsp.rms(x_han)

4.3. Ergebnisse

  • RME Fireface UC: Linearer Bereich bis ca. -3 dBFS, sehr niedrige Verzerrungen
  • Mackie CR-1604: Frühere Sättigung, höhere Grundverzerrungen
  • Unterschiede zwischen Kanälen: Fertigungstoleranzen sichtbar

5. Experiment 3: Frequenzgang-Messung

5.1. Sweep-basierte Messung

Anregungssignal: Exponential-Sweep

  • Kontinuierliche Frequenzvariation von 10 Hz bis 22 kHz
  • Gleichmäßige Energieverteilung über Frequenzbereich
  • Optimale Signal-Rausch-Verhältnis

Systemidentifikation:

sweep = pf.signals.exponential_sweep_time(...)
recording = sd.playrec(sweep, ...)
impulse_response = pf.dsp.deconvolve(recording, sweep)

5.2. Datenverarbeitung

Normierung: Alle Spektren auf 1 kHz bei 0 dB normiert

one_khz_index = np.argmin(np.abs(frequencies - 1000))
offset = 20 * np.log10(np.abs(signal_freq[one_khz_index]))
ir_data.freq = signal_freq / (10**(offset/20))

Darstellung:

  • Logarithmische Frequenzachse (50 Hz - 20 kHz)
  • Pegelbereich: -3 dB bis +1 dB für Detailanalyse
  • Vergleichende Darstellung aller Geräte

6. Wichtige Konzepte

6.1. Messtechnik

  • Kalibrierung: dBu-Offset-Korrektur für absolute Pegelmessungen
  • Windowing: Hann-Fenster zur Leckage-Reduktion
  • Multi-Level-Messungen: Automatisierte Pegelvariation

6.2. Systemcharakterisierung

  • Linearer Bereich: Konstante Verstärkung ohne Verzerrungen
  • Sättigungsverhalten: Soft-/Hard-Clipping-Unterscheidung
  • Rauschboden: Systemgrenzen bei niedrigen Pegeln

6.3. Audio-Standards

  • dBFS: Digitale Vollaussteuerung als Referenz
  • dBu: Analoge Spannungsreferenz (0.775 V RMS)
  • A-Bewertung: Psychoakustische Gewichtung für Rauschbewertung

7. Praktische Erkenntnisse

7.1. Geräteunterschiede

  • RME Fireface UC: Professionelle Qualität, hoher Dynamikbereich
  • Mackie CR-1604: Prosumer-Bereich, frühere Verzerrungen
  • Kanalvariationen: Importance of individual channel testing

7.2. Messtechnische Besonderheiten

  • Latenz-Kompensation: Wichtig für korrekter Impulsevent-Start
  • Frequenzbereich: Berücksichtigung der Nyqvist-Grenze
  • Signal-Conditioning: Appropriate input/output level setting

8. Programmier-Techniken

8.1. PyFar-Spezifika

# Signal creation with specific parameters
signal = pf.Signal(data, sampling_rate, domain='time')

# Multi-channel processing without loops
rms_values = np.sqrt(np.mean(signal.time**2, axis=-1))

# Frequency domain operations
spectrum = signal.freq  # Automatic FFT computation

8.2. Effizienz-Optimierungen

  • Vectorization: Batch-processing multiple levels
  • In-place operations: Memory-efficient signal modifications
  • Caching: Reuse computed spectra for multiple analyses

Dieses Labor vermittelte fundamentale Kenntnisse der elektroakustischen Messtechnik und deren praktische Anwendung in der Gerätecharakterisierung.

Command Palette

Search for a command to run...