Es gibt übrigens tatsächlich Räume, die nach diesem Prinzip designed sind. Sie haben praktisch kein geometrischen Reflexionen aber trotzdem eine sehr dichte Nachhallfahne.
Ankündigung
Einklappen
Keine Ankündigung bisher.
Künstliche Raumimpulsantwort erzeugen
Einklappen
X
-
EDIT: Hier stand Unfug zur Berechnung. Geht nicht wie ich dachte, habs eben ausprobiert.
Es gibt übrigens tatsächlich Räume, die nach diesem Prinzip designed sind. Sie haben praktisch kein geometrischen Reflexionen aber trotzdem eine sehr dichte Nachhallfahne.Zuletzt geändert von fabi; 11.02.2012, 21:24.
-
Selbstverständlich gibt es Reflexionen, aber eben keine diskreten, geometrischen. Das Schallfeld ist sofort diffus.
Die Räume schauen ziemlich verrückt aus.
http://www.mh-audio.nl/gif/skyline_diffuser2web.jpg
Kommentar
-
Jetzt wollte ich dir gerade antworten, daß ich nicht ganz verstanden hab, was du geschrieben hast, aber beim Antworten war deine Antwort schon wieder weg.
Ich kann mir im Moment überhaupt nicht vorstellen, wie die Übertragungsfunktion von so einer Raumimpulsantwort aussieht.
Aber mal generell: Ich gebe einen Impuls auf den Raum, der kommt nach einer Weile bei mir an, der Nachhall dürfte erst eine Weile später ankommen. Oder?
Messen tut man sowas aber anders: Man gibt Rauschen auf den Raum, läßt das eine Weile laufen, bis ein stationärer Zustand erreicht ist und schaltet das Rauschen schlagartig ab. Die Zeit, die zwischen dem Abfall das Pegels um 5dB und dem um 35dB vergeht, ist die halbe Nachhallzeit.
Aber wie gießt man das in eine Impulsantwort?
PS: Was mich bei solchen Räumen immer irritiert, ist der Kontrast zwischen dem riesigen Aufwand an den vergleichsweise weit von den Boxen entfernten Wänden und dem direkt darunterstehenden Mischpult.
Kommentar
-
Es gibt zwei Verfahren die Nachhallzeit zu bestimmen. Wenn man es mit abgeschaltetem Rauschen macht, ist es tatsächlich so simpel wie du beschreibst.
Die Alternative kann ganz ähnlich klingen, man nimmt aber ein MLS oder anderes bekanntes Rauschen (bzw. 2-Kanal). Neben dem Pegel wird auch die Phasenlage aufgezeichnet und daraus die Raumimpulsantwort per inverse FFT berechnet.
Was ich beschrieben habe gibt tatsächlich eine Raumimpulsantwort, die Filterung ist auch notwendig und man hat auch am Ende wieder einen geraden Frequenzgang. Nur leider ist die Nachhallzeit nicht konstant sondern fällt mit der Frequenz. Auf mehr Matlab hab ich am Samstagabend dann doch keine Lust mehr.
Letztlich ist das ein FIR-Design, bei dem man im Frequenzbereich anfängt. Der Pegel bleibt konstant und die Phasenlage wird manipuliert. Quasi das Gegenteil eines Linearphasigen Filters bei dem nur die Amplitude verändert wird und die Phase konstant bleibt.
Das ist leider dann nicht ganz trivial. Es würde mich aber fast wundern, wenn es so ein Skript bzw. eine Software nicht gäbe, die das kann.
Kommentar
-
Von Filtern hab ich nicht genug Ahnung, um das zu verstehen (sollte ich glaube ich mal ändern).
Eigentlich weiß ich ja, was das »System« tut. Dann müßte ich doch auch einfach die Impulsantwort »hinschreiben« können.
Aber irgendwie halt nicht …
PS: Hab grad noch ein wenig überlegt.
Mal angenommen, irgendwo in diesem fiktiven Raum steht eine ideale Punktschallquelle, die zwei Sinustöne abstrahlt, zum Beispiel einer mit 100Hz, einer mit 1000Hz. Direkt an der Schallquelle sind die beiden Töne in Phase, wenn sie an einem anderen Punkt im Raum ankommen – wo sie gleichzeitig ankommen – sind sie es nicht unbedingt. Sie haben dort den gleichen Pegel – fast, Luftschalldämmung ist frequenzabhängig, aber hier wohl vernachlässigbar – und die gleiche Laufzeit dorthin. Wegen unterschiedlicher Periodendauer ist aber die Phasenlage von der Entfernung abhängig.
Das Erste, was am Meßpunkt ankommt, ist der Direktschall, im Phasenverlauf stecken Informationen über die Entfernung.
Danach kommen die Reflexionen an, und nur das interessiert mich. Ich will nur Diffusschall erzeugen, der fehlt nämlich noch. Die Nachhallzeit soll absolut frequenzunabhängig sein, damit müßte auch der Pegel frequenzunabhängig sein. Aber wie sieht die Phase aus?Zuletzt geändert von Mr.E; 12.02.2012, 00:28.
Kommentar
-
Eine einfache Lösung ist der Schroeder Allpassfilter, der den Amplitudenfrequenzgang unbeeinflusst lässt, die Phasenlage aber insofern ändert, dass künstlicher Nachhall entsteht. Das passiert direkt im Zeitbereich. Dieser Nachhall klingt leider auch künstlich, weil sich die Reflexionsdichte im Gegensatz zu einem natürlichen Raum mit der Zeit nicht erhöht. Jedes bessere Effektgerät hat eine Vielzahl der Schroeder-Filter implementiert und kann damit ansteigende Reflexionsdichte erzeugen, wie gesagt, man kann das sicher schreiben und bestimmt gibt es das auch als Matlab-Code.
Schau dir mal folgendes Paper an, wenn du Zugang dazu hast
M.R. Schroeder, “Natural Sounding Artificial Reverberation”, 13th AES annual meeting, 1961
Ich habe das vor einiger Zeit dazu ein Skript geschrieben. Ich sehe keinen Grund, warum die Nachhallzeit frequenzabhängig sein sollte. Spiel damit mal rum, wenn du die Parameter entsprechend änderst sollte das funktionieren. Lass mich wissen ob es funktioniert. Den Filter kannst du in ARTA importieren und direkt als Impulsantwort auswerten, d.h. die Nachhallzeit berechnen lassen.
Wenn das passt, falte damit das trockene Signal.
clear all
close all
clc
N=75; %length of impulse response
fs=48000; %sampling frequency
tau=5; %delay between spikes
g=0.4;
FFTlength=4096; %FFT length for frequency response
x=zeros(1,N); %input array
x(1)=1; %delta dirac impulse at first sample
y=zeros(1,N); %output array
x2=zeros(1,N+tau); %work arrays
x3=zeros(1,N+tau); %work arrays
y2=zeros(1,N+tau);
y3=zeros(1,N+tau);
x2(2*tau)=1;
x3(tau)=1;
for k=2:floor((N+tau)/tau);
for i=2:floor((N+tau)/tau);
y2(i*tau)=x2(i*tau)+g*y2((i-1)*tau);
end;
y3((k-1)*tau)=x3((k-1)*tau)*(-g)+y2((k-1)*tau)*(1-g^2);
end;
y(1:N)=y3(tau:N+tau-1);
T=1/fs*N; %duration of impulse response
t=linspace(0,T,N);
stem(t,y);
% hold all;
% stem(t,x);
title('impulse response of filter');
xlabel('time [s]');
ylabel('h(z)');
grid;
Y=fft(y,FFTlength);
f=linspace(0,fs/2,FFTlength/2);
Ylog=20*log10(abs(Y)+1e-12);
Ylog=Ylog-max(Ylog); %normalise the logarithmic scale
figure;
subplot(2,1,1);
semilogx(f,Ylog(1:FFTlength/2));
title('magnitude of output');
xlabel('f[Hz]');
ylabel('gain[dB]');
xlim([0 fs/2]);
ylim([-20 10]);
grid;
subplot(2,1,2);
semilogx(f,angle(Y(1:FFTlength/2))*180/pi);
title('phase of output');
xlim([0 fs/2]);
ylim([-180 180]);
xlabel('f[Hz]');
ylabel('phase angle [degrees]');
grid;
Kommentar
-
Auf das Paper hab ich leider keinen Zugriff.
Wenn ich mal etwas mehr Zeit hab und mehr von Matlab versteh, dann schau ich mir das Skript nochmal genauer an, danke schonmal.
Raumimpulsantworten von ordentlichen Regieräumen gibt es nicht irgendwo im Internet, oder? Ich hab bis jetzt nichts gefunden.
Kommentar
-
Kunstkopfstereofonie ?
Hallo Mr. E,
vielleicht suchst Du das hier: http://de.wikipedia.org/wiki/Binaurale_Tonaufnahme
War früher wie im Titel bezeichnet... Amiga hatte da wohl ein paar LPs im sortiment.
MfG
Peter
Kommentar
Kommentar