…für niedrige Frequenzen.

1. Literatur

John Atkinson, Measuring Loudspeakers, Part One (Nov 7, 1998), Part Two, (Dec 14, 1998), Part Three, (Jan 28, 1999).

Struck und Temme, Simulated Free Field Measurements, JAES Volume 42 Issue 6, 1994.

Nahfeld und Microphone-In-Box: Joe D’Appolito, Measuring Loudspeaker Low-Frequency Response

und ein ähnlicher, aber nicht identischer Artikel: Testing Loudspeakers at low Frequencies with CLIO

Unter anderem Nahfeld und Microphone-In-Box: Keele, Low-Frequency Loudspeaker Assessment by Nearfield Sound-Pressure Measurement, JAES Volume 22 Issue 3, April 1974.

1.1. Burst

Linkwitz, Shaped Tone-Burst Testing, JAES Volume 28 Issue 4, April 1980.

2. Ausgewählte Methoden

Eine echte Freifeldmessung ist auch in der Groundplane-Variante mit Burst oder MLS und time-gating nicht praktikabel, weil kein genügend großer Raum zur Verfügung steht.

Darum entscheide ich mich für Nahfeldmessungen und als Plausibilitätsprüfung der Methode zusätzlich für Microphone-In-Box.

Um das dynamische Verhalten zu beurteilen sollen außerdem Burst-Messungen gemacht werden.

3. Erster Vergleich

Es wird der alte Subwoofer meiner Jugend benutzt. Leider hat der zwei Bassreflexrohre, und da stellt sich die Frage, wie die Rechnung korrekt ist. In der Hilfe zu raa_sum_IR_nearfield habe ich geschrieben:

Sum impulse responses acquired by near field measurements.
The function expects an even number of arguments in pairs of
impulse response (a struct with fields 'h' -- impulse response
and 'fs' -- sampling rate) and effective area of port or driver.
The unit of all those areas has to be the same, but does not
matter otherwise.
Method and weighting:
 - Low-Frequency Loudspeaker Assessment by Nearfield Sound-Pressure Measurement
   D. B. KEELE, JR
   JOURNAL OF THE AUDIO ENGINEERING SOCIETY, APRIL 1974, VOLUME 22, NUMBER 3
   -> proportional to radius
 - Simulated Free Field Measurements
   CHRISTOPHER J. STRUCK, STEVE F. TEMME
   J. AudioEng. Soc., Vol. 42, No.6, 1994 June
   -> explicitly notes: sum of all port areas should be used
 - Measuring Loudspeaker Low-Frequency Response
   Joe D'Appolito
   audioxpress 2018
   https://audioxpress.com/article/measuring-loudspeaker-low-frequency-response
   -> weight every port/piston with its diameter or square root of its area
 - Measuring Loudspeaker Low-Frequency Response
   Joe D'Appolito
   http://www.audiomatica.com/wp/wp-content/uploads/Testing-Loudspeakers-at-low-Frequencies-with-CLIO.pdf
   This partly differs from the audioxpress article above.
   -> weight every port/piston with its diameter or square root of its area
 - AN 38, Near Field Measurement of Systems with Multiple Drivers and Ports
   Application Note to the KLIPPEL R&D SYSTEM
   Klippel GmbH
   -> weight every port/piston with square root of its area
For a vented box with two identical ports, what's the right way to do it?
Obviously 2*sqrt(1) > sqrt(2), so
raa_sum_IR_nearfield(ir_driver, S_driver, ir_port, S_port, ir_port, S_port) > raa_sum_IR_nearfield(ir_driver, S_driver, ir_port, 2*S_port)
The smaller result matches a microphone-in-box-measurement the author
made and is according to Struck/Temme above, but different from the others.

Zunächst wurden Membran und beide Ports mit drei verschiedenen Signalen (Sweep, Bursts, MLS) im Nahfeld gemessen. Das stimmt alles hübsch überein:

sub_nf.png

Danach die Box aufgemacht, Mikrofon ungefähr in der Mitte platziert, abgedichtet und gemessen. Der Vergleich mit beiden Rechenmethoden ergibt:

sub_cmp.png

Somit war mir zunächst nicht geholfen, ich sollte das noch an einer Box vergleichen, die nur ein Bassreflexrohr hat. Die vorhandene hatte zwar schon einige Umbauten mitgemacht, konnte aber mangels Rohr nicht auf ein einzelnes, größeres umgebaut werden.

3.1. MATAA

Den Code zur Messung kann ich hier nicht auf die schnelle wiedergeben, weil er aus der Zeit vor den raa-Funktionen stammt. Gerechnet und geplottet wird so:

cal = mataa_load_calibration('TS472_mod1.txt');
%
% Messungen mit Micro in der Box:
%
mib = raa_load('ls_mib.mat', cal);
mib2 = raa_load('ls_mib4.mat', cal);
mib3 = raa_load('ls_mib5_5.mat', cal);
mib4 = raa_load('ls_mib6_4.mat', cal);
mib7 = raa_load('ls_mib7_8.mat', cal);
mibdicht = raa_load('ls_mib_dicht.mat', cal);
cMIB = {mib, mib2, mib3, mib4, mib7, mibdicht};
ir_mib = raa_calc_IR(cMIB);
%
% Nahfeldmessungen:
%
nf_1 = raa_load('ls_nah_br1.mat', cal);
nf_2 = raa_load('ls_nah_br2.mat', cal);
nf_mem = raa_load('ls_nah_mem.mat', cal);
ir_nf = raa_calc_IR({nf_1 nf_2 nf_mem});
raa_plot_FR(ir_nf, 2, [], 0);
title('nearfield')
%
% Es ist klar, dass diese Varianten nicht das gleiche Ergebnis liefern:
% 2*sqrt(1) > sqrt(2)
% Aber was ist richtig?
A_mem  = 143;
A_port = pi*(2.44/2)^2;
ir_sum{1} = raa_sum_IR_nearfield(ir_nf{7}, A_mem, ir_nf{1}, 2*A_port);
ir_sum{2} = raa_sum_IR_nearfield(ir_nf{7}, A_mem, ir_nf{4}, 2*A_port);
ir_sum{3} = raa_sum_IR_nearfield(ir_nf{7}, A_mem, ir_nf{1}, A_port, ir_nf{4}, A_port);
ir_sum{4} = raa_sum_IR_nearfield(ir_nf{7}, A_mem, ir_nf{1}, A_port, ir_nf{1}, A_port);
%
% beide im Vergleich
%
raa_plot_FR([ir_sum {ir_mib{10}}], 3, [100 0], 0);
title('nearfield vs microphone-in-box')

4. Messung mit Phaseplug und zweiter Vergleich

Für das eigentliche Projekt hatte ich zwei Sätze Holz zuschneiden lassen, die beiden sollten sich im Volumen unterscheiden. Kurzerhand habe ich die größere davon als Bassreflexbox gebaut — nach einem vorhandenen Bauvorschlag, zu dem auch Frequenzgänge im Netz existieren; somit kann ich meine Messungen auch mit denen vergleichen.

Dummerweise hatte ich mir einen Treiber mit Phaseplug ausgesucht und keine Hinweise darauf gefunden, wie man denn sowas am besten im Nahfeld messen soll — unmittelbar im Zentrum und vor der Membran wird das ja nicht gut gehen, weil der Abstand zur Membran sehr groß ist.

Ich habe also zusätzlich die Nahfeldmessung an verschiedenen Messpositionen durchgeführt:

  • zentral: mittig auf Phaseplug

  • 2: Mitte des Mikros ist über der Spule (also über dem Spalt zwischen Membran und Phaseplug), Front des Mikros ist weiter innen als halbe Höhe des Phaseplug.

  • 3: Mikrofon in radialer Richtung so weit vom Phaseplug entfernt, dass der Mikrofonrand mit der Spule abschließt.

Hier mal die ungewichteten Messungen von Membran und Rohr:

nf_pp_einzeln.png

Hier die Ergebnisse der Nahfeldmessungen im Vergleich zur MIB-Messung, die anschließend durchgeführt wurde:

RS100PC_nf_mib.png

Jede Nahfeldmessung wird zweimal dargestellt, einmal mit dem vom Hersteller angegebenen SD=35.3 cm2 (welcher den Phaseplug enthält) und einem mit dem selbst gemessenen SD=31 cm2 ohne Phaseplug. Der Unterschied fällt kaum ins Gewicht. Deutlich sieht man jedoch, dass die Membranmessung zentral vor dem Phaseplug schlecht ist, während die beiden anderen plausibel sind.

Jede Messmethode hat ihre (Frequenz-)Grenzen, siehe Literatur. Die der MIB-Messung sieht man hier deutlich.

5. Nochmal verschiedene Positionen

…am Phaseplug. Bei diesen Messungen war das Loch der MIB-Messung wieder verschlossen und es war die vorgesehene Menge Dämmstoff in der Box (beim vorigen Mal nicht, weil ich das Mikrofon frei von Dämmstoff haben wollte).

Wieder verschiedene Positionen, dieses Mal auch mit Fotos:

a: zentral (kein Foto)

b: neben Phase Plug:

P5010443.JPG

c: zwischen Spule und Membran, noch senkrecht:

P5010446.JPG

d: Nicht senkrecht zur Lautsprecherebene, sondern einigermaßen senkrecht zur Membran:

P5010447.JPG

Hier wieder die ungewichteten Messungen von Membran und Rohr:

nf_pp_einzeln2.png

Wie beim vorigen Mal hat die Messung, bei welcher das Mikrofon über dem Spalt zwischen Membran und Phaseplug steht (b), einen Zappler bei 140 Hz.

Zusammengerechnet:

RS100PC_nf2.png

Für folgende Messungen mit diesem Treiber entscheide ich mich für die Position senkrecht zur Membran — auch weil es dabei einfacher ist, den Abstand zwischen Membran und Mikrofon einzuschätzen.

5.1. MATAA

Es wurde nur ein Testsignal benutzt. Messung:

fs=48000;
ts.sweep = mataa_signal_generator('sweep',fs,3,[10 2000]);
res = raa_measure_speaker({ts.sweep}, fs, 'br69', {}, 18/3);
res = raa_measure_speaker({ts.sweep}, fs, 'mem69a', {}, -18/3);
res = raa_measure_speaker({ts.sweep}, fs, 'mem69b', {}, -18/3);
res = raa_measure_speaker({ts.sweep}, fs, 'mem69c', {}, -18/3);
res = raa_measure_speaker({ts.sweep}, fs, 'mem69d', {}, -18/3);

Darstellung:

cal = mataa_load_calibration('TS472_mod1.txt');
% Sd nach eigener Messung:
Sd.Messung = pi * (3.4^2 - 1.3^2);
A_rohr = pi*(2.84/2)^2;
nf2_br69   = raa_load('raa_br69.mat',   cal);
nf2_mem69a = raa_load('raa_mem69a.mat', cal);
nf2_mem69b = raa_load('raa_mem69b.mat', cal);
nf2_mem69c = raa_load('raa_mem69c.mat', cal);
nf2_mem69d = raa_load('raa_mem69d.mat', cal);
ir_nf2 = raa_calc_IR({ nf2_br69 nf2_mem69a nf2_mem69b nf2_mem69c nf2_mem69d});
ir_sum2 = {};
for n=2:5
  ir_sum2{length(ir_sum2)+1} = raa_sum_IR_nearfield(ir_nf2{1}, A_rohr, ir_nf2{n}, Sd.Messung);
end
raa_plot_FR(ir_nf2, 1, [], 0)
raa_plot_FR(ir_sum2, 4, [66 0], 0)

6. Reproduzierbarkeit

Der Messaufbau ist provisorisch aber trotzdem nach Änderungen am Lautsprecher schnell reproduzierbar. Der "Mikrofonständer" wird dazu auf dem Lautsprecher selbst an aufgeklebten Anschlägen positioniert.

P5020457.JPG P5020459.JPG

7. Hinweise zu MATAA

7.1. MIB

Bei einer Microphone-In-Box-Messung mit raa_measure_speaker sollte man nicht vergessen bei den Tags (viertes Argument) auch 'MIB' anzugeben, damit bei der folgenden Verarbeitung die Korrektur des Frequenzgangs erfolgt. Wenn man das vergisst, kann man das Tag natürlich auch per Hand nach dem Laden einfügen:

mib5 = raa_load('raa_mib69.mat', cal);
mib5.tags = {'MIB'};

Oder auch die Datei korrigieren:

strDatei = 'raa_mib69.mat';
res = raa_load(strDatei);
res.tags = {'MIB'};
save('-binary', '-zip', strDatei, 'res');

7.2. Korrektur des Mikrofonverstärker-Frequenzgangs

Siehe obige Beispiele: ich füge die Information beim Laden der Messung ein. Es geht theoretisch auch anders, aber die so implementierte Methode funktionierte am besten.


Letzte Änderung: 19.12.2020 19:46
Jens W. Wulf

Impressum
Datenschutzerklärung