Höreffekte und akustische Täuschungen [Niklas]

image Publiziert am 21.02.2007 Hier habe ich viel Beispiele zusammengestellt, wie sich unsere Ohren austricksen lassen oder sich seltsame Effekte beim Hören ergeben. Zum Herunterladen gibt es vier Klangbeispiele, die weiter unter ausführlich erklärt werden. Dies sind das Shepard-Risset-Glissando (der unendlich abfallende Ton); der kubische Differenzton, vier Sätze einer scheinbar fremden Sprache und Pegelunterschiede bei der binauralen Maskierung (BMLD).


Der kubische Differenzton

Das Klangbeispiel wurde mit Matlabskript erstellt und ist aus zwei Sinussignalen zusammengesetzt:
1. Sinuston fester Frequenz von f1=900 Hz.
2. Sinuston (Sweep) veränderlicher Frequenz von f2=1000...1400 Hz (Abb. oben).
Zu hören ist jedoch zusätzlich zu den beiden Sinussignalen ein Ton, der in der Frequenz abfällt:
3. kubischer Differenzton (Sweep) veränderlicher Frequenz von fp=2f1-f2=800...400 Hz (Abb. unten).

Die Basilarmembran, in der Hörschnecke wandelt mittels der Haarzellen akustische Reize in Nervenreize um. Die Verarbeitung der Tonsignale geschieht nichtlinear und kann durch eine kubische Funktion beschrieben werden: f(x)=ax+bx³. Dabei entstehen beispielsweise neue Frequenzkomponenten. Diese werden also in der Basilarmembran unseres Gehörs erzeugt. Bei einem Schallereignis schwingt die Basilarmembran mit der charakteristischen Frequenz (cf) des Tones mit maximaler Amplitude und im Bereich vor und hinter cf mit zunehmend abgeschwächter Amplitude. Dieses Schwingungsmuster auf der Basilarmembran nennt man "excitation pattern". Wird die Basilarmembran in dem Beispiel von zwei Sinussignalen ausgelenkt, können sich die excitation pattern in einem Bereich überschneiden (Abb. ). Dieser Bereich ist die Quelle für den kubischen Differenzton. Sind die äußeren Haarzellen an dem sich überlappenden Bereich intakt, kommt es zur zusätzlichen Auslenkung der Basilarmembran an von cf=2f1-f2. Bei großen Lautstärken sind im Klangbeispiel mehrere weitere Töne oberhalb und unterhalb von f2 und f1 zu hören. Diese Töne entstehen jedoch nicht im Ohr, sondern durch nichtlineare Verzerrungen von Kopfhörer oder Lautsprecher.

- Kubischer Differenzton:


- Basilarmembran:


- Matlabskript:

% demonstration of cubic difference tone
% niklas liebig / 06.02.07 / oldenburg / nebenzimmer.de

fs=44100; % samplingfrequenz
T=5; % länge eines sweeps [s]
t=[0:1/fs:T-1/fs] ’;
fu=1000; % startfrequenz des sweep [hz]
fo=1400; % zielfrequenz des sweep [hz]
fsine=900;

% sweep logarithmisch bauen
b = (fo/fu)ˆ(1/T
sweep = cos(2*pi*fu*(b.ˆt./log(b))

%festen sinus bauen
sine=cos(2*pi*fsine.*t

signal=sine+sweep; %addieren
signal=signal/max(max(signal)).*0.99; % normalisieren

% lineare rampen
signal(1:1*fs)=signal(1:1*fs).*linspace(0,1,1*fs) ’;
signal(end-1*fs+1:end)=signal(end-1*fs+1:end).*linspace(1,0,1*fs) ’;

% abspielen/speichern
sound(signal,fs
wavwrite(signal,fs, ’kubischer_differenzton ’

%plotten
figure(1
subplot(2,1,2 plot(t,fu*b.ˆt, [0 T] ’,[fsine;fsine] ’, t,2*fsine-fu*b.ˆt, ’: ’ axis([0 T-1 400 1400] xlabel( ’Time ’ ylabel( ’Frequency ’ legend( ’Signal mit f_1=900 Hz ’, ’Signal mit f_2=1000...1400 Hz ’, ’Kubischer Differenzton mit f_p=(2f_1-f_2) ’ title( ’Jedoch zusätzlich zu hören: der Kubische Differenzton. Dieser entsteht im Gehör: ’
subplot(2,1,1 specgram(resample(signal,2*fo,44100);300,2*fo axis([0 T-1 400 1400] title( ’Das Spektrogram zeigt, dass nur zwei Töne existieren: ’


Literatur:

Moore, B.C.J (2004). "An introduction to the psychology of hearing " Academic Press, London


Pegelunterschiede bei der binauralen Maskierung (BMLD)

Wird ein Signal durch die Anwesenheit eines weiteren Signales gestört, spricht man von Maskierung. Die effektivsten Maskierer sind Rauschen. Sie sind stochastische Signale deren momentane Amplitude in keinem Zusammenhang mit vergangenen oder zukünftigen Amplitudenwerten steht. Rauschsignale haben deshalb einen unendlich hohen Informationsgehalt und können andere Informationen gut verdecken. In der Psychoakustik werden eine Vielzahl von Maskierungsexperimenten gemacht. Sie geben Aufschlüsse darüber, wie das auditorische System mit Störgeräuschen umgeht. Es ist erstaunlich, dass normalhörende Personen bei der Anwesenheit von relativ starker Störung eine verhältnismäßig gute Sprachverständlichkeit erreichen. Künstliche Spracherkennungs- und Klassifikationsalgorithmen sind oft schon bei leisen Störgeräuschen überfordert.

BMLD ist ein Modell, dass den binauralen Verständlichkeitsgewinn im Störgeräusch beschreibt. Das vorliegende Klangbeispiel besteht aus vier Segmenten und es ist immer in Sprachsignal und ein breitbandiges Maskierungsrauschen present. Die Signale unterscheiden sich jedoch in ihrer Phasenlage und darin, auf welchem Ohr sie präsentiert werden, nicht aber in ihrem Pegel. Das Experiment wurde ursprünglich für reine Sinussignale gemacht. Ähnliche Effekte entstehen auch für Sprachsignale. Die Soundfiles wurden mit Matlabskript erstellt.

1. Segment:

Linkes Ohr: Sprachsignal und Maskierer (Rauschgenerator 1)
Reches Ohr: Stille

Dies ist die Referenzsituation. Die Spracherkennung liegt bei normalhörenden Pesonen in etwa bei der Erkennungsschwelle. D.h. es ist einigermaßen schwierig, jedoch situationsbedingt möglich einige der gesprochenen Worte zu verstehen.

2. Segment:

Linkes Ohr: Sprachsignal und Maskierer (Rauschgenerator 1)
Reches Ohr: nur Maskierer (Rauschgenerator 1)

In diesem Segment bleibt das Sprachsignal auf der linken Seite gleich, d.h. es wird, wie im Segment 1, immer noch Sprachsignal und Maskierer leicht überschwellig dargeboten. Auf der rechten Seite wird hingegen der selbe Maskierer wie auf der linken Seite dargeboten. Dieser hat den selben Pegel und die gleiche Phasenlage. Obwohl dem auditorischen System nun zusätzliches Rauschen angeboten wird, hilft die Tatsache, dass linkes und rechtes Rauschen die gleichen zeitlichen Amplitudenwerte haben, das sich links befindliche Sprachsignal besser zu detektieren. Im Vergleich zur Referenzsituation wird die Sprache nun etwas lauter wahrgenommen und ist somit besser zu verstehen.

3. Segment:

Linkes Ohr: Sprachsignal und Maskierer (Rauschgenerator 1)
Reches Ohr: Sprachsignal und Maskierer (Rauschgenerator 1)

Diese Situation ist sozusagen die binaurale Version von Segment 1. Sprachsignal und Masker sind jetzt auf beiden Ohren zu hören. Es gibt keine zusätzlichen Informationen, die dem auditorischen System helfen könnten die Sprache besser zu verstehen. Deshalb ist Segment 3 identisch mit der Referenzsituation. Wie auch bei Segement 2 kommen Maskierer für linken und rechten Kanal aus dem selben Rauschgenerator und sind somit identisch.

4. Segment:

Linkes Ohr: Sprachsignal und Maskierer (Rauschgenerator 1)
Reches Ohr: Sprachsignal (180° phasengedreht) und Maskierer (Rauschgenerator 1)

In dem vierten Segment wird die höchste Sprachverständlichkeit erreicht. Der Maskierer ist identisch mit Segment 3, doch das Sprachsignal erfährt eine Phasendrehung von 180° zwischen dem linken und dem rechten Kanal. Eine einfache Phasendrehung des Sprachsignals verhilft dem auditorischen System offensichtlich zu einer wesentlich besseren Detektionsleistung. Wird als Signal nicht Sprache sondern ein tieffrequenter Sinuston verwendet, ist der Maskierungsunterschied zur Referenzsituation MLD=15dB.

5. Segment:

Linkes Ohr: Sprachsignal und Maskierer (Rauschgenerator 1)
Reches Ohr: Sprachsignal (180° phasengedreht) Maskierer (Rauschgenerator 2)

Jetzt wird das gleiche Setup wie im Segment 4, jedoch ein zwischen linkem und rechten Kanal unkoreliertes Rauschen verwendet. Das auditorische System kann keinen Bezug zwischen den Rauschsignalen mehr herstellen, da diese nichts mehr gemeinsam haben. Die Spracherkennung ist durch die Phasendrehung zwar noch besser als bei der Referenzsituation, jedoch deutlich schlechter als im 4. Segment.

- Matlabskript:

fs=44100;
Ln=-3;%rauschpegel
Ls=-41;%signalpegel (rms)

%signale
signal=wavread( ’1 ’
signal1 =signal*(10ˆ(Ls/20)/mean(signal.*conj(signal))
signal=wavread( ’2 ’
signal2 =signal*(10ˆ(Ls/20)/mean(signal.*conj(signal))
signal=wavread( ’3 ’
signal3 =signal*(10ˆ(Ls/20)/mean(signal.*conj(signal))
signal=wavread( ’4 ’
signal4 =signal*(10ˆ(Ls/20)/mean(signal.*conj(signal))
signal=wavread( ’5 ’
signal5 =signal*(10ˆ(Ls/20)/mean(signal.*conj(signal))

%rauschen
noise=randn(length(signal1);1
noise1=noise*(10ˆ(Ln/20)/real(mean(noise.*conj(noise)))
noise=randn(length(signal2);1
noise2=noise*(10ˆ(Ln/20)/real(mean(noise.*conj(noise)))
noise=randn(length(signal3);1
noise3=noise*(10ˆ(Ln/20)/real(mean(noise.*conj(noise)))
noise=randn(length(signal4);1
noise4=noise*(10ˆ(Ln/20)/real(mean(noise.*conj(noise)))
noise=randn(length(signal5);1
noise5=noise*(10ˆ(Ln/20)/real(mean(noise.*conj(noise)))
noise=randn(length(signal5);1
noise6=noise*(10ˆ(Ln/20)/real(mean(noise.*conj(noise)))

%zusammenbauen
Sm_Nm=[signal1+noise1 noise1.*0];
Sm_N0=[signal2+noise2 noise2];
S0_N0=[signal3+noise3 signal3+noise3];
Spi_N0=[signal4+noise4 -signal4+noise4];
Spi_Nu=[signal5+noise5 -signal5+noise6];

%aneinander haengen
bmld=[Sm_Nm; zeros(44100,2 Sm_N0; zeros(44100,2 S0_N0; zeros(44100,2 Spi_N0; zeros(44100,2 Spi_Nu];

%normalisieren
bmld=bmld/max(max(bmld)).*0.99;

%speichern
wavwrite(bmld,fs, ’bmld ’

Literatur:

Moore, B.C.J (2004). "An introduction to the psychology of hearing" Academic Press, London


Shepard-Risset-Glissando

Roger Shepard (geboren am 30.01.1929 in Californien) generierte einen Ton mit fester Frequenz, der aus N Sinussignalen im Abstand von Oktaven zusammengesetzt ist.
Bei der Shepard Tonleiter wird der Basiston mit der Frequenz f0 mit voller Amplitude generiert, wobei hingegen Frequenzanteile des komplexen Tones, oberhalb und unterhalb von f0 abgeschwächt werden. Die frequenzabhängige Änderung der Amplitude kann nach Gauß-, Dreiecksverteilung geschehen. In vorhandenen Klangbeispiel wurde eine quadriertes Hann-Fenster verwendet (vgl. ).
Verringert sich nun die Frequenz des Basistones, verändert sich die Position des Fensters !nicht! in Abhängigkeit von f0, sondern bleibt konstant. Der ursprüngliche Basiston verliert nun seinen Status als zentraler Ton und bewegt sich mit fallender Amplitude aus dem Maximum des Fensters heraus, wobei der Sinuston 2f0 nach 11 Halbtönen diesen Platz einnimmt (Abb. unten).

Jean-Claude Risset (Frankreich) hat nachträgich, wie im Klangbeispiel zu hören, die Shepard Tonleiter mit kontinuierlichen übergängen erzeugt. Das Klangbeispiel wurde in Matlab, mit zeitlich verschobenen, ineinander kopierten Sweeps hergestellt (Abb. oben); so dass sie bei der überlagerung die Frequenzbedingungen (...; 1/4f0; 1/2f0; f0; 2f0; 4f0; ...) ergeben. Das Klangbeispiel wurde komplett mit Matlabskript erstellt.

- Sprektrogamm und Hann-Fenster:



- Matlabskript:

% a shepard-risset glissando
% niklas liebig / 03.02.07 / oldenburg / nebenzimmer.de

clear;

fs=44100; % samplingfrequenz
T=80; % länge eines sweeps [s]
t=[0:1/fs:T-1/fs] ’;
fu=50; % startfrequenz des sweep [hz]
n=4; % anzahl der sweeps
fo=2ˆn*fu; % zielfrequenz des sweep [hz]

% originalsweep logarithmisch bauen
b = (fu/fo)ˆ(1/T sweep = sin(2*pi*fo*(b.ˆt./log(b))
sweep = sweep.*hann(length(t)).ˆ2; % hannˆ2 fenstern
newsweep = sweep;

zeropad=zeros(length(t)/n,1 % zeropadding für addition
% sweeps aneinander kopieren
for i=1:10
sweep=[sweep;zeropad];
newsweep=[zeropad;newsweep];
sweep=sweep+newsweep;
end

signal=sweep/max(max(sweep)).*0.99; % normalisieren
signalend=signal(length(t):end-length(t)-1,: % schnippidischnapp anfang und ende sind ab

% lineare rampen
signalend(1:1*fs)=signalend(1:1*fs).*linspace(0,1,1*fs) ’;
signalend(end-2*fs:end-1)=signalend(end-2*fs:end-1).*linspace(1,0,2*fs) ’;

% abspielen/speichern
% sound(signalend,fs
wavwrite(signalend,fs, ’shepard_risset_glissando ’

Literatur:

http://en.wikipedia.org/wiki/Shepard_Tone

horizontal rule

Niklas:
na, jemand einen Vorschlag? - - Ok, hier die Lösung - die Sprache ist deutsch! - - Mähen Äbte Heu? Äbte mähen nie Heu! - Mägde mähen Gras! Äbte beten! - - Wer hat das verstanden ohne die Sätze zu kennen?
(21.02.2007, 12:12 Uhr)

shr:
keine ahnung ob es an meinem kopfhörer oder an meinen ohren liegt aber den kubischen differenzton hör ich wenn ich das wave mit matlab generiere, aber nicht wenn ich das mp3 höre
(25.07.2009, 00:39 Uhr)

Sandro:
Zum kubischen Differenzton: Der aus der Tiefe kommende quadratische Differenzton bzw. hochfrequente Schwebung |f1 - f2|, welcher deutlich zu hören ist; Dieser gilt nicht als nichtlineare Verzerrung der Kopfhörer, oder? - Laut Wikipedia soll es noch Differenztöne höherer Ordnung geben. Ich höre im Verlauf deines Tonbeispiels mehrmals Töne, welche immer wieder neu vom hochfrequenten Bereich einfallen und stetig sinken. Wenn ich die Analogie (welche ich jedoch mathematisch nicht weiter verstehe) von 3*f1 - f2, 4*f1 - f2... fortführe, könnte es doch gut sein, das diese ebenfalls zur Gruppe der Differenztöne gehören, oder liege ich da komplett daneben?:) - Vielen Dank nochmals für die coole Webpage!
(01.11.2013, 00:17 Uhr)

horizontal rule
Kommentar schreiben
Zur Hauptseite
Nebenzimmer.de (2005 - 2017), Niklas Liebig (0.03 s)