Digitale Klangsynthese mit Hilfe Genetischer Algorithmen

Werbung
Digitale Klangsynthese
mit Hilfe
Genetischer Algorithmen
Diplomarbeit
im Fachbereich
Informatik und Mathematik
der
Hochschule fü r Technik und Wirtschaft Dresden
von
Jörg Hentschel
Dresden, November 2002
Betreuer: Prof. Dr. rer. nat. habil. H. Iwe
Inhaltsverzeichnis
Inhaltsverzeichnis .............................................................................................. 3
Vorwort ................................ ................................ ................................ ............. 5
1
Einleitung ......................................................................................................... 7
1.1 Motivation ................................................................................................ 7
1.2 Verwandte Arbeiten................................................................ .................. 8
1.3 Ansatz ................................ ................................ ................................ .... 10
2
Genetische Algorithmen ................................................................ ................ 13
2.1 Grundlagen der Evolution und Genetik ................................ ................... 13
2.2 Informatik und Evolution................................ ........................................ 15
2.3 Abstraktion der Evolution....................................................................... 16
2.4 Repräsentation ................................ ........................................................ 22
2.5 Evaluation und Fitneß ................................ ................................ ............. 24
2.6 Reproduktion.......................................................................................... 25
2.6.1 Selektion ..................................................................................... 26
2.6.2 Kreuzung..................................................................................... 28
2.6.3 Mutation................................ ................................ ...................... 31
2.7 Ersetzung................................................................................................ 32
2.7.1 Generationswechsel..................................................................... 33
2.7.2 Elitismus ..................................................................................... 33
3
Digitale Klangsynthese ................................ ................................ .................. 35
3.1 Synthesizer und Sampler................................ ................................ ......... 35
3.2 Töne, Klänge und Geräusche ................................ ................................ .. 37
3.3 Syntheseverfahren ................................ ................................ .................. 38
3.3.1 Subtraktive Synthese ................................................................... 39
3.3.2 Wavetable Synthese ................................ ................................ .... 40
3.3.3 Additive Synthese ....................................................................... 41
3.3.4 FM-Synthese ................................ ................................ ............... 42
3.3.5 Weitere Syntheseverfahren .......................................................... 48
3.4 Synthesekomponenten ............................................................................ 50
3.4.1 Oszillator..................................................................................... 50
3.4.2 Hü llkurve ................................ ................................ .................... 53
3.4.3 Verstärker ................................................................................... 53
3.4.4 Filter ................................ ................................ ........................... 54
3.4.5 Effekte ................................ ........................................................ 55
3
4
Digitale Klangsynthese mit Hilfe Genetischer Algorithmen........................ 57
4.1 Implementation der Klassenbibliotheken ................................................ 57
4.1.1 Genetische Algorithmen.............................................................. 57
4.1.2 FM-Synthesizer................................................................ ........... 62
4.2 Klanganalyse................................ ................................ .......................... 64
4.3 Realisierung des Genetischen Algorithmus................................ ............. 66
4.3.1 Aufbau eines Chromosoms ......................................................... 67
4.3.2 Erzeugung und Bewertung eines Individuums............................. 71
4.3.3 Realisierung des Evolutionsprozesses ......................................... 73
4.3.4 Genetische Operatoren................................................................ 74
4.4 Die Applikation Revival......................................................................... 75
4.4.1 Konfigurationsphase ................................................................... 76
4.4.2 Analysephase .............................................................................. 78
4.4.3 Evolutionsphase................................ .......................................... 78
4.4.4 Präsentationsphase ................................ ................................ ...... 80
4.5 Experimente ................................................................ ........................... 82
4.5.1 Standardkonfiguration................................ ................................ . 82
4.5.2 Parameter des Genetischen Algorithmus ..................................... 84
4.5.3 Parameter der Klanganalyse ................................ ........................ 87
4.5.4 Parameter der Klangsynthese ................................ ...................... 89
4.5.5 Optimierte Standardkonfiguration ................................ ............... 89
4.5.6 Experiment 455 (Banjo).............................................................. 91
4.5.7 Experiment 451 (Trommel)................................ ......................... 93
5
Ergebnisse................................ ................................ ................................ ...... 95
6
Zusammenfassung ......................................................................................... 99
Thesen................................ ................................ ................................ ........... 101
Literaturverzeichnis....................................................................................... 103
Abbildungsverzeichnis ................................ ................................ .................. 107
Glossar ................................ .......................................................................... 109
4
Vorwort
Selbständigkeitserklärung: Ich erkläre hiermit, daß ich diese Arbeit selbständig und
ohne unzulässige Hilfe Dritter verfaß t habe. Ich versichere zudem, daß ich nur die
Quellen verwendet habe, die im Literaturverzeichnis dieser Arbeit angegeben sind
und dieses vollständig ist. Weiterhin ist diese Diplomarbeit und ihre Bestandteile
keine Kopie anderer Quellen oder Arbeiten.
Danksagung: Ich möchte mich auch bei allen bedanken, die zum Gelingen dieser
Diplomarbeit beigetragen haben, insbesondere aber meinem Betreuer Professor Dr.
rer. nat. habil. H. Iwe fü r seine wertvollen Ratschläge zu Inhalt und Form meiner
Arbeit.
5
6
1
Einleitung
1.1
Motivation
Die meisten Klänge, die wir kennen sind natü rlicher Art oder stammen von
Musikinstrumenten, die der Mensch erfunden hat. Doch in den letzten Jahrzehnten
werden kü nstliche Töne und Klänge, basierend auf mathematischen und
physikalischen Prinzipien, auch mit sogenannten Synthesizern hergestellt. Das
Potential der verschiedenen Syntheseprinzipien ist sehr groß , eine schier
unerschöpfliche Quelle fü r immer neue Klänge, die es zu finden gilt. Man könnte
sogar sagen, die Suche nach schönen Klängen ist in vollem Gange, denn noch nie
zuvor konnte ein Klangbastler auf so viele Syntheseprinzipien zurü ckgreifen. Der
Prozeß der Klangsynthese ist trotzdem sehr langwierig und artet oft in Tü ftelarbeit
aus, denn bis ein wohlklingender Ton entsteht, muß eine Vielzahl von Parametern
eingestellt werden. Die Herstellung eines Klanges ist damit bis heute meist eine
mü hsame, zeitaufwendige Suche, bei der immer wieder verschiedene Parameterwerte
getestet werden und anschließ end das Ergebnis vom Nutzer fü r gut oder schlecht
befunden wird. Selbst bei weitreichenden Kenntnissen der Zusammenhänge und
Funktionalitäten einzelner Syntheseverfahren, kann die Veränderung eines einzigen
Parameters zu einem unerwarteten Chaos im erzeugten Klang fü hren. Das
Synthetisieren eines schönen Klanges kann auf diese Weise durchaus einen ganzen
Tag in Anspruch nehmen. Doch immer wieder finden sich Menschen, die mit viel
Geduld den Synthesizern fantastische Klänge entlocken.
Das Ziel dieser Diplomarbeit ist die Suche nach einem Genetischen Algorithmus, der
dem Nutzer die Einstellung der Parameter bei der Klangsynthese ganz oder
wenigstens teilweise abnimmt. Der Nutzer soll sich voll und ganz auf den Klang
konzentrieren können und nicht schon scheitern, wenn er versucht Oszillatoren,
Filter oder Hü llkurven einzustellen. Ein solches Verfahren wü rde damit auch
Nutzern helfen, die keine oder nur wenige Kenntnisse von der Klangsynthese
besitzen. Es wurden die Genetischen Algorithmen ausgewählt, weil diese ein sehr
7
wirkungsvolles Optimierungsverfahren darstellen, welches schon erfolgreich bei
verschiedenen komplexen Problemen aus der Realität eingesetzt wurde. Ein zu
lösendes Problem wird immer durch eine Reihe von Parametern beschrieben. Man
könnte sich hier die Beschreibung der Struktur einer Klangsynthese und deren
Parameter vorstellen. Der Genetische Algorithmus versucht dann die im Chromosom
verschlü sselten Parameter der Klangsynthese durch Selektion und Rekombination
einzustellen, bis ein schön klingender Ton entsteht.
1.2
Verwandte Arbeiten
Horner, Beauchamp und Haken präsentieren in ihrer Arbeit "FM Matching Synthesis
with Genetic Algorithms" [HOR-93] einen Ansatz, bei dem ein vorhandener Klang
durch FM-Synthese und Genetische Algorithmen resynthetisiert werden soll. Im
einzelnen werden dabei optimierte Parameter fü r den Prozeß der FM-Synthese durch
einen Genetischen Algorithmus ermittelt. Der Algorithmus der Synthesetechnik (1
Modulator zu n Trägern) ist von Anfang an festgelegt. Die Parameter sind auf die
statischen Frequenzen der Oszillatoren (Sinus) und die Modulationsindizes
beschränkt. Die Bewertung der Gü te eines synthetisierten Klanges wird durch einen
Abstandsvergleich ausgewählter Abschnitte der Frequenzspektren von Quell- und
Zielklang bestimmt. Die Anzahl der Träger beeinfluß t maß geblich das Ergebnis der
Prozedur und damit die Ä hnlichkeit des synthetisierten Klanges zum originalen
Klang.
Wehn stellt in seiner Arbeit "Using Ideas from Natural Selection to Evolve
Synthesized Sounds" [WEH-98] eine Methode vor, Klänge mit Hilfe von
Genetischen Algorithmen zu synthetisieren. Auch er versucht einen schon
existierenden Quellklang durch einen evolutionär gestü tzten Syntheseprozeß
automatisch zu rekonstruieren. Das von ihm verwendete Schema fü r die
Klangerzeugung ist als Modulare Synthese bekannt. Wehn versucht nicht nur feste
Parameter zu finden, sondern auch einen geeigneten Algorithmus, der aus einzelnen
untereinander
verbundenen
Elementen
wie
Oszillatoren,
Filter,
additiven
Verknü pfungen und Rauschgeneratoren besteht. Mit Hilfe der Genetischen
Algorithmen werden bessere Algorithmen mit besseren Parametern gezü chtet. Die
8
Fitneß
der einzelnen Lösungen wird durch einen Abstandsvergleich der
Frequenzspektren von Quell- und Zielklang ermittelt. Das Ergebnis dieser Prozedur
ist ein synthetisierter Klang, welcher dem Quellklang ähnelt.
Garcia stellt in seiner Arbeit "Automatic Generation of Sound Synthesis Techniques"
[GAR-01] ein Verfahren vor, welches Synthesealgorithmen mit Hilfe evolutionärer
Methoden herstellt. Bevor der automatisierte Prozeß beginnen kann, muß ein Nutzer
einen Klang bereitstellen, aus dem durch freie Kombination der Elemente klassischer
Prinzipien der Klangsynthese ein ähnlicher Klang erzeugt wird. Sein Verfahren ist in
der Lage bekannte Syntheseformen wie FM-Synthese, Subtraktive Synthese und
Additive Synthese nachzuahmen und sogar neue Formen von Syntheseverfahren zu
erschaffen. Die Aufgabe einen passenden Synthesealgorithmus zu finden, der einen
bestimmten Quellklang nachbilden soll, verwirklicht Garcia mit Hilfe der
Genetischen Programmierung. Die Elemente eines Synthesealgorithmus werden in
einer Baumstruktur abgelegt, die dann später in einen Graphen umgewandelt wird.
Ein solcher Graph repräsentiert eine konkrete Lösung. Mit Hilfe dieser wird der
Klang synthetisiert und anschließ end einer Bewertung unterzogen. Die Fitneß eines
gezü chteten Synthesizers wird, wie in den Werken von Wehn und Horner schon
beschrieben, durch eine Abstandsmessung zwischen den Frequenzbereichen von
Original- und Syntheseklang ermittelt.
Die Arbeit "Exploring the sound-space of synthesis algorithms using interactive
genetic algorithms" [JOH-99] von Johnson beinhaltet einen Ansatz, der sich mit der
interaktiven Synthese von Klängen, unterstü tzt durch Evolutionäre Algorithmen,
befaß t. Im Gegensatz zu den vorhergehenden Arbeiten wird hier der Mensch in den
Mittelpunkt der Klangsynthese gestellt. Die Klänge werden durch Granularsynthese
hergestellt und dessen Parameter durch einen Genetischen Algorithmus angepaß t.
Am Anfang bekommt der Nutzer eine Menge von Klängen vorgegeben, die zufällig
erzeugt werden. Eine interaktive Schnittstelle ermöglicht es dem Nutzer in den
Evolutionsprozeß einzugreifen, indem er sich die synthetisierten Klänge einer
Generation anhört und bewertet. Danach ü bergibt er wieder dem System die
Kontrolle, welches eine neue Generation von Klängen produziert. Diese Prozedur
wird wiederholt, solange kein zufriedenstellendes Ergebnis ermittelt wurde.
9
Ausgangspunkt dieser Arbeit bilden hauptsächlich die Werke von Garcia und
Horner. Beide versuchen einen Klang automatisiert nachzubilden, beschreiten aber
unterschiedliche Lösungswege. Mit dieser Arbeit versuche ich einen Mittelweg
zwischen diesen Lösungen zu finden.
1.3
Ansatz
Diese Arbeit beschreibt ein Verfahren, welches, basierend auf einem gegebenen
Originalklang, die Struktur und Parameter fü r das Syntheseverfahren der Frequenzoder Phasenmodulation mit Hilfe von Genetischen Algorithmen ermittelt. Der daraus
resultierende Syntheseklang soll dem Original in seinen Grundzü gen ähneln, wird
aber keinesfalls eine identische Kopie darstellen. Dabei wird mein Verfahren in 4
Schritten vollzogen: Im ersten Schritt muß der Nutzer einen Originalklang und
verschiedene Parameter fü r den Genetischen Algorithmus (Populationsgröß e,
Mutations-, Kreuzungstyp, Selektion), die Frequenzanalyse (Anzahl, Größ e und
Verteilung der Analysefenster) sowie fü r das Verfahren der Klangsynthese (Anzahl
der Operatoren, Modulationsart) bestimmen. Im zweiten Schritt wird das
Frequenzspektrum des Originalklangs durch eine Fourieranalyse (FFT) ermittelt. Im
dritten Schritt ü bernimmt der Genetische Algorithmus die Entwicklung eines
passenden FM-Synthesizers. Der evolutionäre Prozeß beginnt mit der Erschaffung
einer Ausgangspopulation von FM-Synthesizern, die durch Zufall erzeugt werden.
Anschließ end werden in jeder Generation neue Individuen durch Kreuzung und
Mutation gebildet, analysiert und mit dem Original verglichen. Diejenigen
Synthesizer, die den Originalklang am besten nachahmen können, werden in die
nächste Generation ü berfü hrt, in der Hoffnung, dort aus den eigenen guten
Eigenschaften neue, bessere Synthesizer hervorzubringen. Im vierten Schritt werden
dem Nutzer die ermittelten Ergebnisse präsentiert.
Wie schon erwähnt, beschreite ich einen Weg, der sich zwischen den Werken von
Horner und Garcia befindet. Horner legt in seiner Arbeit den Schwerpunkt auf die
Optimierung von Parametern fü r das Syntheseverfahren der Frequenzmodulation
(genau gesehen verwendet er eigentlich die Phasenmodulation). Er nutzt dafü r einen
festen Algorithmus. Ich bin allerdings der Meinung, daß auch der Algorithmus (also
10
die Struktur) nicht statisch sein sollte, da die Algorithmen so gesehen selbst einen
Parameter fü r das Verfahren darstellen. Garcia dagegen hat die Entwicklung einer
geeigneten Struktur eines beliebigen Syntheseverfahrens in den Vordergrund seiner
Arbeit gestellt. Ein sehr lohnenswerter Ansatz. Da die Eigenschaften verschiedener
Syntheseverfahren meist auch weit auseinander liegen, möchte ich mich in dieser
Arbeit auf ein einziges Syntheseverfahren konzentrieren. Meinen Nachforschungen
zufolge erscheint auch hier wieder die FM-Synthese als sehr mächtiges Verfahren,
welches, im Gegensatz zu anderen Syntheseverfahren, mit bescheidenen Mitteln
(Oszillatoren und Hü llkurven) sehr komplexe Klänge erzeugen kann.
Die Auswahl eines geeigneten Evolutionären Algorithmus war schnell vollzogen.
Wie Horner habe ich mich fü r die Genetischen Algorithmen entschieden, weil sie das
am grü ndlichsten erforschte Gebiet der Evolutionären Algorithmen darstellen. Der
fü r mich wichtigste Vorteil dieser liegt bei den Genetischen Operatoren, die das
Chromosom verändern können, ohne ü ber die Regeln fü r die zugrunde liegende
Struktur etwas wissen zu mü ssen. Die Genetischen Algorithmen stellen zudem
mehrere Kreuzungs- und Mutationsverfahren bereit, die sich bereits bewährt haben.
Bei der Genetischen Programmierung, die Garcia verwendet hat, ist dies nicht der
Fall. Hier mü ssen ü blicherweise fü r jedes Optimierungsproblem neue Kreuzungsund Mutationsoperatoren geschrieben werden, die besondere Anforderungen des
strukturierten Chromosoms beachten. Da die Struktur des Chromosoms meistens
baumartig ist, sind die Operationen oft sehr langwierig und die Größ e der
Chromosomen (Anzahl der Knoten) muß begrenzt werden.
11
12
2
Genetische Algorithmen
2.1
Grundlagen der Evolution und Genetik
In der Natur durchlaufen alle Arten von Lebewesen einen andauernden
Entwicklungsprozeß , der vom Drang zum Ü berleben geprägt ist. Dieser Vorgang
erstreckt sich ü ber einen sehr langen Zeitraum und kann als ein Lernprozeß
angesehen werden, in dem sich alle Lebewesen an die gegebenen Umwelteinflü sse
anpassen mü ssen. An dieser Stelle setzen die zwei wichtigsten Prinzipien der
Evolution an. Die Selektion und die Vererbung. Die Individuen, die sich besonders
erfolgreich ihrer Umwelt anpassen, werden verstärkt ihre Eigenschaften und
Merkmale durch Fortpflanzung an die nächsten Generationen weitergeben.
Schwache Individuen dagegen werden aussterben. Die Ergebnisse sprechen fü r sich,
denn die Evolution hat erfolgreich aus ganz einfachen Strukturen im Laufe von
Millionen von Jahren unglaublich komplexe Strukturen und effektive Mechanismen
in allen möglichen Formen und Variationen hervorgebracht.
Die Erbinformationen bestimmen sowohl Aufbau als auch Aussehen eines
Lebewesens und befinden sich in dessen Zellen. Dort sind sie als ein Satz von
Chromosomen im Genom zusammengefaß t. Die Informationen werden hier in einer
chemischen Struktur abgespeichert, der sogenannten DNS (Desoxyribonukleinsäure).
Die DNS ist aus zwei Einzelsträngen (Phosphat-Zucker-Ketten) aufgebaut, welche
durch Basenpaare miteinander verbunden sind. Die Basenpaare werden durch die
Kombination der Basen Adenin, Thymin, Cytosin und Guanin gebildet. Aufgrund
der chemischen Struktur der Basen passen jeweils nur Adenin mit Thymin und
Cytosin mit Guanin zusammen. Diese Basen bilden die Grundlage fü r die gesamten
genetischen Informationen eines Lebewesens. Reiht man die Basenpaare aneinander
spricht man vom sogenannten Genetischen Code, der sich wie folgt strukturiert: Eine
Gruppe von drei nebeneinander liegenden Basenpaaren bilden eine Aminosäure.
Betrachtet man nun eine Folge von aneinander gereihten Aminosäuren, erhält man
ein Protein (Eiweiß ). Eine Kette von Proteinen wird als Gen bezeichnet. Vereinfacht
kann man also sagen, daß die Chromosomen die Träger der Gene sind, die alle
13
genetischen Informationen eines Lebewesens beinhalten. Jedes Gen ist durch seine
feste Position innerhalb des Chromosoms bestimmt und legt auf diese Weise ganz
bestimmte Eigenschaften und Merkmale fü r ein Individuum fest. Die Gesamtheit der
Gene bezeichnet man als Genotyp. Man kann sich die Funktionalität des Genotyps
als eine Art Schablone fü r eine Art von Lebewesen vorstellen. Die einzelnen
Individuen mit den jeweiligen Ausprägungen der Eigenschaften und Merkmale nennt
man Phänotypen.
Das Prinzip der Vererbung von Eigenschaften und Merkmalen wird bei fast allen
Lebewesen durch Paarung erreicht. Finden sich zwei starke Exemplare einer Art
pflanzen sie sich fort, d.h. die Gene der zwei Individuen werden zufällig miteinander
vermischt. Damit erhalten die Nachkommen einen Teil der Eigenschaften und
Merkmale vom Vater, den anderen Teil von der Mutter. Die Rekombination der
Gene verschiedener Organismen der gleichen Art sorgt fü r eine ständige
Durchmischung des Erbmaterials einer ganzen Art. Bei der Rekombination von
Individuen können gelegentlich auch Mutationen auftreten. Eine Mutation ist ein
Fehler bei der Replikation des DNS-Stranges. Es kann dabei vorkommen, daß eine
falsche Base in den aufgeteilten DNS-Strang eingefü gt oder eine beliebige Base
daraus entfernt wird. Manchmal treten auch sogenannte spontane Mutationen auf, die
durch
ganz
unterschiedliche
Ursachen
wie
zum
Beispiel
Radioaktivität,
Klimafaktoren oder Stoffwechselstörungen hervorgerufen werden. Eine Mutation
kann sich positiv, negativ oder neutral auf ein Individuum auswirken und somit auch
auf dessen Ü berlebens- und Fortpflanzungschancen. Auch wenn die Auswirkungen
der Mutation ungewiß sind, spielt sie doch eine bedeutende Rolle. Sie sorgt zum
einen fü r neues Erbmaterial und bringt zum anderen Variabilität in den
Evolutionsprozeß ein, die durch Rekombination allein nicht erreicht werden kann.
Das Prinzip der Selektion (natü rliche Auslese) bevorzugt stärkere und vernachlässigt
schwächere Individuen bei der Fortpflanzung. Die Fitneß eines Individuums wird
durch die Einwirkung von oft sehr vielen Selektionsfaktoren (Umweltbedingungen)
bestimmt, die direkt auf die Eigenschaften eines Phänotyps Einfluß nehmen. Diese
Faktoren stellen im Zusammenhang ein sehr komplexes Wirkungsgefü ge dar und
steuern auf diese Weise die Evolution in ihrer Richtung und Geschwindigkeit. Durch
14
die Bevorzugung stärkerer Individuen wird deren durchschnittliche Zahl an
Nachkommen auch deutlich höher sein. Auf diesem Weg wird zum größ ten Teil nur
das gute genetische Material in die jeweils nächsten Generationen weitergegeben und
damit der Fortbestand der eigenen Art gesichert.
2.2
Informatik und Evolution
Theoretisch gesehen, kann man fast jede Aufgabe als Optimierungsproblem
auffassen. Das Ziel besteht darin, möglichst schnell ein gutes Ergebnis zu ermitteln.
Das hängt allerdings von der Anzahl der Parameter ab, die das Problem beschreiben.
Mit einer steigenden Anzahl von Parametern eines Problems werden auch der Grad
der Komplexität und die Menge der möglichen Lösungen steigen. Sind die
Lösungsräume von Aufgaben relativ klein, dann reicht oft schon ein einfaches
Verfahren aus, um die gesuchte Lösung zu finden. Eine mögliche Methode wäre zum
Beispiel die Brute-Force-Methode, bei der alle möglichen Lösungen eines Problems
berechnet werden und anschließ end aus dieser Menge die beste Lösung
herausgesucht wird. Ist ein Problem zu komplex und damit der Lösungsraum zu
groß , dann versagt diese Methode aufgrund der fehlenden Rechenleistung.
An dieser Stelle setzen oft heuristische Verfahren an, die in das Gebiet des
sogenannten Soft Computing einzuordnen sind. Eine Gruppe dieser Verfahren sind
die Evolutionären Algorithmen (EA). Diese versuchen im Computer den Prozeß der
natü rlichen Evolution zu simulieren. Das Konzept ist vielversprechend, denn der
Evolutionsprozeß funktioniert in der Natur schon seit Anbeginn des Lebens und das
mit groß em Erfolg. Es ist also nicht verwunderlich, daß dieser Prozeß in die
Informatik ü bertragen wurde. Es gibt vier wesentliche Strategien, die auf den
Grundlagen der natü rlichen Evolution basieren und unter dem Begriff der
Evolutionären Algorithmen zusammengefaß t wurden: Die Genetischen Algorithmen
(GA), die Genetische Programmierung (GP), die Evolutionären Strategien (ES) und
die Evolutionäre Programmierung (EP). In den folgenden Abschnitten meiner Arbeit
werde ich allerdings nur noch auf das Gebiet der Genetischen Algorithmen eingehen,
weil es das meist genutzte und erforschte Verfahren der Evolutionären Algorithmen
darstellt und ich es aus diesem Grund verwende. Die Grundlagen dafü r wurden schon
15
im Jahre 1962 von John Holland entwickelt. Im Gegensatz zu den konventionellen
Verfahren (Aufzählung, Zufallssuche und analytische Suche), zeichnen sich die
Genetischen Algorithmen vor allem durch ihre höhere Robustheit aus. Diese
resultiert aus der Kombination einer mehrfach gerichteten Suche und stochastischen,
nicht deterministischen Regeln (Selektion). Sie sind in der Lage eine Menge von
Lösungen (Population) parallel zu verarbeiten und nicht nur eine einzige, wie es
beim Hillclimbing oder dem Simulated Annealing der Fall ist. Aufgrund dieser
Eigenschaften sind die Genetischen Algorithmen fü r eine Vielzahl von
Optimierungsaufgaben geeignet. Trotz der oft sehr komplexen Lösungsräume vieler
Probleme finden sie immer wieder Lösungen in erstaunlicher Qualität.
2.3
Abstraktion der Evolution
Wie schon erwähnt, dient die natü rliche Evolution als Vorbild. Daher wird auch bei
den Genetischen Algorithmen eine Population von Individuen einem kü nstlichen
Evolutionsprozeß ausgesetzt. Die Individuen mü ssen sich in einer spezifizierten
Umgebung behaupten. Um ein Maß fü r den Erfolg eines Individuums zu erhalten,
wird dessen Fitneß durch eine Bewertungsfunktion bestimmt. Die erfolgreichen
Exemplare werden sich verstärkt fortpflanzen und auf diese Weise ihr genetisches
Material weitergeben. Die Wahrscheinlichkeit auf Selektion eines Individuums fü r
den Fortpflanzungsprozeß wird durch ganz unterschiedliche Methoden bestimmt. Die
Reproduktion erfolgt, wie auch in der Natur, durch Kreuzung von zwei
Elternindividuen. Auch die Mutation von Individuen wurde nachgebildet und soll die
Variabilität einer Population erhalten. Diese Prozedur wird so oft wiederholt, bis eine
annehmbare Lösung fü r ein Problem gefunden wurde oder die vorgegebene Anzahl
an Generationen erschöpft ist.
Dieses Verfahren arbeitet, im Gegensatz zu herkömmlichen Suchmethoden, nicht in
nur einem Zustandsraum (Lösungsraum), sondern in zwei voneinander getrennten
Zustandsräumen (Abb. 1): Suchraum und Lö sungsraum. Der Suchraum enthält die
kodierten Lösungen eines Problems, die auch als Genotypen bezeichneten werden.
Der Lösungsraum enthält die eigentlichen Lösungen, die Phänotypen, mit den
konkreten Parameterwerten eines Problems. Zu jedem Genotyp im Suchraum gibt es
16
auch einen entsprechenden Phänotyp im Lösungsraum. Eine Dekodierungsfunktion,
die beide Zustandsräume miteinander verbindet, ü berträgt die genotypischen
Lösungen in den phänotypischen Raum.
Suchraum
Lö sungsraum
01110101
[1.1|1.2]
10110111
[0.3|1.4]
11100011
[0.3|1.4]
01011001
Dekodierung
01010101
[0.6|1.5]
[1.3|0.7]
[0.9|0.2]
11010100
Genotypen
(Kreuzung, Mutation)
Phänotypen
(Bewertung, Selektion)
Abbildung 1: Zustandsrä ume Genetischer Algorithmen
Bewertung und Selektion von Lösungen finden ausschließ lich im phänotypischen
Raum statt, denn nur dort können und mü ssen die konkret ausgebildeten Lösungen in
einer rauhen Umwelt um ihr Ü berleben kämpfen. Kreuzung und Mutation werden im
Suchraum auf die Genotypen angewendet. Soll eine bestimmte Aufgabe gelöst
werden, mü ssen als erstes die Parameter bestimmt werden, die das Problem
beschreiben. Diese könnten zum Beispiel die Parameter a und b einer Funktion f(a,
b) sein. Wenn alle Parameter festgelegt wurden, ist die Spezifikation des
phänotypischen Raums abgeschlossen und es liegt eine Sammlung von Parametern
vor. Danach gilt es eine Form der Kodierung zu finden, um auch den genotypischen
Raum zu repräsentieren. Die Art der Kodierung hängt ganz von der Implementation
des Algorithmus ab. In den meisten Fällen werden binäre Zeichenketten verwendet.
Ein kodierter Parameter wird als Gen bezeichnet. Intern werden die Gene
miteinander verkettet und als Chromosom in einem Individuum abgelegt. Neben
dem Chromosom wird auch die Rohfitneß einer Lösung im Individuum hinterlegt.
Sie wird später benötigt, um die Selektionswahrscheinlichkeit (relative Fitneß ) einer
Lösung zu bestimmen. Da der durch den Genetischen Algorithmus simulierte
Evolutionsprozeß immer auf eine Population von Individuen wirkt, entspricht dieser
17
damit einer parallelen Suche nach potentiellen Lösungen im genotypischen Raum.
Laut Michalewicz [MIC-96] ist ein ausgeglichenes Verhältnis zwischen der
Erkundung des gesamten Suchraums und der Ausbeutung der bereits gefundenen
besten Lösungen entscheidend fü r den Erfolg des Algorithmus.
Der einfache Genetische Algorithmus unterliegt einer grundlegenden Prozedur (Abb.
2). Er wurde schon oft realisiert und selbst bei einer schlechten Implementation
können meist noch respektable Ergebnisse erzielt werden. Die fortgeschrittenen
Genetischen Algorithmen erweitern dieses Verfahren mit einigen zusätzlichen
Theorien, ändern aber nichts an der grundsätzlichen Funktionsweise. Den Ablauf der
Prozedur kann man sich wie folgt vorstellen: Bevor der Prozeß beginnen kann,
mü ssen einige Parameter wie die Populationsgröß e, die Selektionsmethode, ein
geeignetes Ersetzungsverfahren sowie die Wahrscheinlichkeiten fü r Mutation und
Kreuzung spezifiziert werden. Danach wird eine Ausgangspopulation der
entsprechenden Größ e gebildet. Die Gene der Chromosomen aller Individuen
(Genotypen) werden dann mit zufälligen Werten belegt. Anschließ end werden die
Phänotypen der Startpopulation bewertet, um eine Maß fü r ihre Fitneßzu erhalten.
Jetzt beginnt der iterative Teil des Algorithmus, in welchem der natü rliche
Evolutionsprozeß
nachgeahmt wird. Am Anfang jeder Generation steht eine
Population von Elternindividuen zur Verfü gung, die oft auch als Eltern-Pool
bezeichnet wird. Aus diesem werden immer zwei Individuen selektiert. Die
Wahrscheinlichkeit auf Selektion zur Fortpflanzung wird durch die Berechnung der
Fitneß eines Individuums ermittelt. Stehen die Elternindividuen fest, werden von
beiden
zwei
identische
Kopien
erzeugt.
Mit
der
vorher
festgelegten
Kreuzungswahrscheinlichkeit (ca. 60% – 90%), findet nun die Reproduktion der
Nachkomment statt. Genauer gesagt, werden die Genotypen der Klone an einem
zufälligen Punkt des Chromosoms miteinander gekreuzt. Das Ergebnis sind zwei
neue Kinder. Findet keine Kreuzung statt, sind die geklonten Individuen selbst die
Nachkommen. Bevor die neuen Individuen in den Kinder-Pool gesteckt werden,
mü ssen sie sich noch einer Mutation unterziehen, die aber nur mit einer sehr
geringen Wahrscheinlichkeit Ä nderungen am Genotyp vornimmt. Dieser Prozeß der
Selektion und Reproduktion wird so oft wiederholt, bis der Kinder-Pool die gleiche
Größ e aufweist wie der Eltern-Pool. Am Ende einer Generation werden die
18
Individuen aus dem Eltern-Pool mit denen aus dem Kinder-Pool ersetzt (Ersetzung).
Die neue Population von Elternindividuen fü r die nächste Generation steht bereit.
Der Algorithmus wird erst beendet, wenn eine bestimmte Terminierungsbedingung
vorliegt. Dies kann zum Beispiel das Erreichen einer maximalen Anzahl von
Generationen sein oder das Auffinden einer zufriedenstellenden Lösung.
1
Einstellung verschiedener Eigenschaften des Genetischen Algorithmus
2
Initialisierung der Ausgangspopulation
3
Wiederhole, solange Terminierungsbedingung nicht wahr ist
4
Evaluation der aktuellen Population
5
Wiederhole, solange nicht genügend Nachkommen gebildet wurden
6
Selektion zweier Eltern in Abhängigkeit ihrer Fitneß
7
Erzeugung von Nachkommen durch Kreuzung beider Eltern
8
Mutation der erzeugten Nachkommen
9
Ersetzung der alten Generation
Abbildung 2: Struktur Genetischer Algorithmen
Bei der Anwendung der fortgeschrittenen Genetischen Algorithmen können noch
bessere Ergebnisse erzielt werden. Im Folgenden sind hier nur drei wesentliche
Maß nahmen aufgefü hrt, die verdeutlichen sollen, an welchen Stellen der einfache
Genetische Algorithmus noch verbessert werden kann. Als erstes ist es möglich dem
Algorithmus eine größ ere Ausgangspopulation zur Verfü gung zu stellen. Dabei ist
eine bessere durchschnittliche Fitneß zu erwarten. In einigen Fällen lohnt es sich
sogar, die Individuen der Startpopulation mit konkreten Werten zu belegen. Dadurch
kann man schon zu Beginn des Algorithmus sicherstellen, daß
der gesamte
Suchraum abgedeckt wird. Die zweite Möglichkeit setzt bei den Genetischen
Operatoren fü r die Reproduktion an. Hier können neben der Ein-Punkt-Kreuzung
auch andere Kreuzungsoperatoren ausgewählt werden. Die bekanntesten sind die
Zwei-Punkt-Kreuzung, die Zwei-Punkt-Kreuzung mit Translokation und die
gleichmäß ige Kreuzung. Diese Operatoren sollen fü r eine bessere Durchmischung
der genetischen Information zweier Individuen sorgen. Weiterhin gibt es neben
19
Kreuzung und Mutation auch noch die Inversion und Translokation. Beide
Genetische Operatoren wirken, genau wie die Mutation, auf nur ein Individuum. Im
Gegensatz zur Mutation, sind sie in der Lage ganze Abschnitte eines Individuums zu
verändern, haben aber einen geringeren Einfluß auf die Variabilität in einer
Population. Die dritte Möglichkeit befaß t sich mit den Ersetzungsschemata. Durch
die Verwendung von Elitismus oder Dynamischen Elitismus wird in der Regel eine
durchschnittlich bessere Fitneß erreicht, da nicht alle Individuen der Elternpopulation
verworfen, sondern einige mit in die neue Generation mitgefü hrt werden.
Die Qualität eines Genetischen Algorithmus wird im Wesentlichen von sieben
Faktoren, mit unterschiedlich starker Wirkung, beeinfluß t. Dabei handelt es sich um
die folgenden Elemente:
·
Modellierung von Phänotyp und Genotyp (Kodierung), einschließ lich der
Ü bertragungsfunktion, die fü r die Dekodierung notwendig ist.
·
Bereitstellung der Möglichkeit eine Ausgangspopulation zu erschaffen.
·
Entwurf einer Bewertungsfunktion, die in der Lage ist Umwelteinflü sse zu
simulieren und damit die einzelnen Individuen qualitativ zu bewerten.
·
Einen Mechanismus, der die Selektionswahrscheinlichkeiten der Individuen
berechnet und mit Hilfe dieser Individuen selektiert.
·
Ein Ersetzungsverfahren, das aus den Eltern und ihren Nachkommen eine
neue Population fü r die nächste Generation bildet.
·
Genetische Operatoren wie Kreuzung und Mutation, die Ä nderungen im
genotypischen Raum vornehmen.
·
Einstellung von Parametern wie Populationsgröß e und Wahrscheinlichkeiten
fü r Kreuzung und Mutation.
Zu den wichtigsten Faktoren gehören die Modellierung von Phänotyp und Genotyp
und der Entwurf einer geeigneten Fitneß funktion. Aber auch die Genetischen
Operatoren, die Wahl des Ersetzungsverfahrens und der Selektionsmechanismus
sollten mit Sorgfalt gewählt werden. Wenn ein Genetischer Algorithmus keine
zufriedenstellende Lösung finden sollte, dann ist mit groß er Wahrscheinlichkeit einer
20
dieser Faktoren dafü r verantwortlich. Im schlimmsten Fall ist es sogar die Art des
Problems, die fü r den Miß erfolg schuld ist. Trotz der meist sehr guten Ergebnisse
muß man sich immer vor Augen halten, daß die Genetischen Algorithmen kein
Allheilmittel fü r jedes Problem sind und nach wie vor ein junges Forschungsgebiet
darstellen.
Die natü rliche Evolution vereint eine Vielzahl von Strategien, die aber nicht alle
naturgetreu ü bernommen wurden. Die wichtigsten von ihnen wurden in vereinfachter
Form auf die Genetischen Algorithmen ü bertragen und einige andere wurden sogar
ganz weggelassen. Die auffälligste Ä nderung betrifft den Aufbau des Genoms. Es
besteht aus einem einzigen Chromosom und ist damit haploid. Dagegen besitzen fast
alle Lebewesen mehrere Chromosomen, die als doppelter Satz in der Zelle vorliegen.
Eine weitere Ä nderung betrifft die Art und Weise der Kodierung der genetischen
Informationen im Chromosom, die auf der Grundlage eines anderen Alphabetes
(meistens binär) vollzogen wird. Hinzu kommt, daß die Individuen theoretisch
unendlich alt werden können und dadurch immer wieder fü r die Reproduktion
bereitstehen, d.h. der Prozeß schließ t zwar die Geburt und das Leben von Individuen
ein, aber nicht deren Tod. In Bezug auf das Alter gibt es schon erste Ansätze, die
eine Lebenszeit fü r Individuen simuliert und dadurch auch Superindividuen sterblich
macht. Neben dem Lebenszyklus wurde auch der Fortpflanzungsprozeß vereinfacht.
Individuen sind grundsätzlich geschlechtslos, aber trotzdem werden noch zwei von
ihnen
zur
Reproduktion
herangezogen.
Auß erdem
fehlt
jede
Form
von
Familienverhältnissen. Dies kann zur Inzucht fü hren, wenn sehr wenige gute
Individuen die Population beherrschen. Wie bekannt ist, bedeutet ein erhöhtes Maß
an Inzucht die Abnahme der Variabilität in einer Population, da die
Kombinationsmöglichkeiten der genetischen Informationen der sich ähnelnden
Individuen sehr gering sind. Abhilfe soll hier ein Verfahren bieten, das gleich
mehrere Populationen parallel entwickelt. In bestimmten Abständen findet dann ein
Austausch von Individuen der Populationen statt und soll dadurch die Variabilität des
genetischen Materials erhalten. Als letztes möchte ich die in einer Population
fehlenden sozialen Strukturen ansprechen. In der Natur ermöglichen diese durch
Arbeitsteilung und Zusammenarbeit das Lösen von Problemen. Ein Beispiel dafü r ist
eine Ameisenkolonie. Dieser Ansatz wird verstärkt im Forschungsgebiet des
21
Kü nstlichen Lebens (Artificial Life) erforscht und wird den Genetischen
Algorithmen wohl auch weiterhin verwehrt bleiben. Trotz der starken Abstraktion
der Evolutionsstrategien funktionieren die Genetischen Algorithmen erstaunlich
effektiv, wenn auch nicht immer hundertprozentig treffsicher.
2.4
Repräsentation
Ein Chromosom besteht grundsätzlich aus einer linearen Zeichenkette. Diese wird
häufig auch als String oder Array bezeichnet. Ein Alphabet legt den Wertevorrat der
Zeichen fest, die zum Kodieren der Parameter des Optimierungsproblems verwendet
werden. Am häufigsten wird das binäre Alphabet eingesetzt. Die Zeichenkette
besteht aus n sequentiell aneinander gereihten Teilzeichenketten, die jeweils ein Gen
des Chromosoms darstellen. Jeder Parameter wird durch genau ein Gen repräsentiert.
Jedes Gen hat eine bestimmte Länge, die von dem zu kodierenden Parameter
abhängt. Addiert man die Länge aller Gene, erhält man die Länge des Chromosoms.
In der folgenden Abbildung ist der schematische Aufbau kurz dargestellt:
Phänotyp (Individuum)
Parameter 1
Parameter 2
...
Parameter n
1.3
26
...
0.01
Modellierung
Interpretation
l = 11
l=8
l = 10
01100101010
10101001
...
1010000111
Gen 1
Gen 2
...
Gen n
Genotyp (Chromosom)
Abbildung 3: Modellierung und Interpretation des Chromosoms
Die Interpretation eines Gens hängt von den Werten ab, die der repräsentierte
Parameter annehmen kann. Die Menge aller zulässigen Werte wird durch den
Definitionsbereich bestimmt, der vier unterschiedliche Informationsniveaus besitzen
22
kann. Das erste und geringste Niveau wird durch die Nominalskala beschrieben. Die
einzigen zur Verfü gung stehenden Operatoren sind Gleichheit und Ungleichheit.
Mögliche Ausprägungen eines Parameters wären z.B. männlich (0) und weiblich (1)
fü r das Geschlecht oder Auto (00), Bus (10), Bahn (01) und Flugzeug (11) fü r ein
Fortbewegungsmittel. Das zweite Niveau ist die Rangskala (auch Ordinalskala), auf
der die Werte hinsichtlich ihres Ranges angeordnet sind. Neben Gleichheit und
Ungleichheit kann zusätzlich geprü ft werden, ob ein Wert kleiner oder größ er als ein
anderer ist. Ein Paradebeispiel sind die Schulnoten 1 (000), 2 (001), 3 (010), 4 (100),
5 (101) und 6 (110). Fü r einen ordinalen oder nominalen Parameter kann die Länge
eines Gens (LG) mit Hilfe der folgenden Beziehung berechnet werden:
[1]
æ log(XMax + 1) ö
÷
L G = Aufrundungçç
log(2) ÷ø
è
Alle möglichen Werte eines Parameters sind im Intervall [0; XMax] festgeschrieben.
Die zuvor genannten Beispiele wü rden somit Genlängen von 1 fü r das Geschlecht, 2
fü r die Fortbewegungsmittel und 3 fü r die Schulnoten ergeben. Als nächstes ist die
Intervallskala zu nennen, die, ergänzend zur Rangskala, die Differenz von zwei
Werten zuläß t. Als Beispiele soll hier die Celsius-Temperaturskala genannt sein. Das
höchste
Informationsniveau
stellt
die
Verhältnisskala
bereit.
Neben
den
Eigenschaften der Intervallskala besitzt sie zusätzlich noch einen absoluten
Nullpunkt. Diese Eigenschaften werden von der Kelvin-Temperaturskala, der
Gewichtsskala oder der Längenskala verwendet. Die Berechnung der Genlänge fü r
eine Intervall- oder Verhältnisskala ist ähnlich wie bei einer Nominal- und
Ordinalskala. Bei Parameterwerten im ganzzahligen Bereich kann anstelle von XMax
die Differenz der Grenzen des Intervalls [XMin; XMax] in die Beziehung [1] eingesetzt
werden:
[2]
æ log((X Max - X Min ) + 1) ö
÷÷
L G = Aufrundungçç
log(2)
è
ø
Beispielsweise wü rde das Intervall [-8; 22] mit einer Differenz von 30 eine Genlänge
von 5 ergeben. Sind die Parameterwerte aus dem Bereich der reellen Zahlen, dann
spielt die Genauigkeit der Werte eine Rolle und muß bei der Berechnung der
Genlänge beachtet werden. Demnach wird ein reellwertiges Intervall in kleine
23
Abschnitte unterteilt. Die Größ e der Teilintervalle wird durch die Genauigkeit, d.h.
die Anzahl der Nachkommastellen (n) vorgegeben. Dazu ist noch eine geringfü gige
Ä nderung der Beziehung [2] notwendig:
[3]
(
)
æ log (X Max - XMin )10 n + 1 ö
÷
L G = Aufrundungç
ç
÷
log(2)
è
ø
Eine Verhältnisskala fü r das Intervall [– 0.5; 1.2] wü rde somit eine Differenz von 1.7
ergeben. Verrechnet man dies mit der Genauigkeit von 3 Nachkommastellen, erhält
man 1701 Teilintervalle, was zu einer Genlänge von 11 fü hrt.
2.5
Evaluation und Fitneß
Die Fitneß der Individuen ist die treibende Kraft in den Genetischen Algorithmen.
Sie entscheidet, welche Richtung die simulierte Evolution bei der Lösungssuche
einschlägt, oder anders ausgedrü ckt, welche Regionen des Suchraums stärker
erkundet werden. Mit ihrer Hilfe kann eine Aussage getroffen werden, wie fähig ein
Individuum ist, das in diesem Sinne eine konkrete Lösung des Problems im
Suchraum darstellt. In der Natur wird dies als Grad der Anpassung eines
Individuums an seine spezifische Umwelt betrachtet. Bei den Genetischen
Algorithmen dagegen spiegelt die Fitneß den Grad der Optimierung der Parameter
der zu lösenden Aufgabe wider, d.h. wie nahe diese Lösung einer optimalen Lösung
ist. Ist ein Individuum erfolgreich, wird es auch mit einer hohen Wahrscheinlichkeit
sein genetisches Material mit den guten Eigenschaften durch Fortpflanzung an die
nächste Generation weitergeben. Weniger erfolgreiche Individuen können sich zwar
auch fortpflanzen, aber die Chance, daß sie fü r den Reproduktionsprozeß ausgewählt
werden, ist sehr gering. Eine bisher unbeantwortete Frage ist, wann ein Fitneß wert
gut und wann er schlecht ist. Bisher wurde die beste Lösung einer Aufgabe als
Optimum beschrieben. Diesen Sachverhalt kann man auch als Suche nach einem
Maximum definieren. Sollte einmal ein Minimum gesucht sein, dann wird durch
Negation der Fitneß werte auch diese zur Suche nach einem Maximum. Damit gilt,
daß ein hoher Fitneß wert gut ist, ein niedriger dagegen schlecht. Doch wie erhält
man nun den Wert fü r die Fitneß eines Individuums? Dies geschieht in zwei
Schritten. Im ersten Schritt wird das Chromosom eines Individuums entschlü sselt.
24
Dadurch erhält man die Werte fü r die Parameter des Optimierungsproblems, welches
ich hier als Zielfunktion definiere. Die soeben dekodierten Parameter setzt man nun
in die Zielfunktion ein. Diese gibt die Bewertung eines Individuums, als Maß fü r
den Abstand zum gesuchten Optimum, zurü ck. Die Bewertung von Lösungen wird
aufgrund des Problems immer wieder neu spezifiziert. Dennoch werden in den
meisten Fällen altbekannte Kriterien wie Belohnungen, Bestrafungen, Gewinn,
Verlust, Kosten, Punkte, Leistungen und Preise fü r die Bewertung von Lösungen
herangezogen. Im zweiten Schritt kann die zuvor ermittelte Bewertung noch
standardisiert, angepaß t oder gar normalisiert werden. Dies kann notwendig sein,
wenn z.B. ein kleiner Wert als gut gilt und damit eine Minimumsuche darstellt. Die
Bewertungen mü ssen dann durch Negation korrigiert werden, um einer
Maximumsuche gerecht zu werden. Der zweite Schritt ist nicht in jedem Fall
notwendig, denn oft wird das Ergebnis der Zielfunktion selbst als Fitneß wert
verwendet. Die Prozedur der Fitneß berechnung wird fü r alle Individuen einer
Population durchgefü hrt. Stehen alle Werte zur Verfü gung, können die
Selektionswahrscheinlichkeiten der Individuen, bezogen auf die ganze Population,
berechnet werden. Die verschiedenen Methoden dafü r werde ich in den folgenden
Abschnitten noch ansprechen.
2.6
Reproduktion
Die Erzeugung von Nachkommen ist, neben der natü rlichen Auslese, eine der
wichtigsten Strategien der Evolution. Auf diese Weise wird der Fortbestand einer
Rasse gesichert. Ist eine Population nicht mehr in der Lage bessere Individuen
hervorzubringen, wird sie aussterben. Bei den Genetischen Algorithmen wird die
Nachkommensbildung durch die Kombination von Selektion, Kreuzung und
Mutation verwirklicht (Abb. 4). Diese Mechanismen wirken auf eine Population von
Individuen einer Generation. Grundsätzlich nehmen alle Individuen an diesem
Prozeß teil. Es hängt von der Fitneß der Individuen ab, ob und wie oft sie zur
Fortpflanzung ausgewählt werden. Die Reproduktion wird in 3 Schritten vollzogen.
Als erstes werden zwei Individuen selektiert und geklont. Anschließ end werden die
beiden Klone miteinander gekreuzt. Die daraus resultierenden Nachkommen werden
zum Schluß noch mutiert und vorläufig in den Kinder-Pool gelegt. Die Bildung von
25
Nachkommen wird fortgesetzt, solange nicht genü gend Nachkommen im KinderPool vorhanden sind, um die nächste Generation anzutreten.
Eltern-Pool
Selektion
2 Elternindividuen
Kreuzung
2 Nachkommen
Mutation
Kinder-Pool
Abbildung 4: Bildung von Nachkommen
Der Selektionsoperator kann verschiedene Verfahren nutzen, die von Problem zu
Problem gewählt werden. Die Kreuzungswahrscheinlichkeit beeinfluß t den Grad der
Vermischung der genetischen Information von Individuen. Wenn diese Rate kleiner
wird, dann steigt die Anzahl von Individuen aus der vorangegangenen Generation
und die Zahl der Nachkommen mit neuen genetischen Variationen sinkt. Deshalb ist
eine Kreuzungsrate von 60 bis 90 Prozent ü blich. Die Mutationswahrscheinlichkeit
dagegen ist sehr gering, bei Raten von 1 bis 3 Prozent, und sorgt fü r mehr
Variabilität in einer Population. Der allgemeine Prozeß zur Reproduktion wird
standardmäß ig in den meisten Genetischen Algorithmen implementiert. Andere
Strategien fü r die Bildung von Nachkommen sind natü rlich auch möglich.
2.6.1
Selektion
Bevor Individuen fü r die Fortpflanzung selektiert werden können, muß erst die
gesamte Population fü r diesen Prozeß vorbereitet werden, d.h. es mü ssen fü r alle
Individuen in Abhängigkeit ihrer Fitneß Selektionswahrscheinlichkeiten berechnet
werden. Fü r diesen Zweck stehen verschiedene Methoden bereit, die sich in ihrer
Funktionsweise unterscheiden. Auf der einen Seite gibt es die fitneß proportionalen
26
Methoden. Die Normierung zählt hier zu der einfachsten Methode, bei der die
Fitneß eines Individuums durch die Summe der Fitneß aller Individuen geteilt wird,
um die Selektionswahrscheinlichkeit zu erhalten. Schon etwas aufwendiger ist die
Skalierte Selektion. Sie wird eingesetzt, wenn die Fitneß auch negative Werte
annehmen kann oder die Differenz zwischen maximaler und minimaler Fitneß einer
Population zu klein wird. Auf der anderen Seite sind die rangbasierenden Verfahren
zu nennen. Diese sortieren die Individuen absteigend bezü glich ihrer Fitneß , d.h. das
Individuum mit der höchsten Fitneß erhält den ersten Rang, das mit der niedrigsten
Fitneß den letzten Rang. Alle weiteren Berechnungen beziehen sich dann nur noch
auf die Rangordnung der Individuen einer Population. Mögliche Verfahren sind die
lineare und nichtlineare Rangselektion. Neben den fitneß proportionalen und
rangbasierten Selektionsmethoden gibt es noch zwei andere Verfahren. Die erste
Methode ist die Wettkampfselektion, bei der in einem Selektionsschritt eine
bestimmte Anzahl Individuen gleichverteilt aus der Population ausgewählt werden.
Das Individuum mit der besten Fitneß der teilnehmenden Wettkämpfer gewinnt und
gilt damit als selektiert. Die zweite Methode ist die sogenannte (N, m)-Selektion, die
nur die m besten Individuen ihrer Generation fü r eine Auswahl in Betracht zieht.
Alle anderen Individuen werden nicht beachtet. Jedes der m Individuen wird mit
gleicher Wahrscheinlichkeit ausgewählt.
Index Fitneß
0
1
2
3
4
9
8
5
3
2
Selektionsmethode
Proportion Skalierung
Rang
Wettkampf
0,33
0,38
0,30
0,36
0,30
0,33
0,25
0,28
0,19
0,18
0,20
0,20
0,11
0,08
0,15
0,12
0,07
0,03
0,10
0,04
1,00
1,00
1,00
1,00
(N,m)
0,33
0,33
0,33
0,00
0,00
1,00
Abbildung 5: Vergleich verschiedener Selektionsmethoden
Wurden alle Wahrscheinlichkeiten ermittelt, kommt das Russische Roulette zum
Einsatz, daß nun ein Individuum aus der Population auswählt. Damit das Russische
Roulette fü r alle Selektionsmethoden gleichermaß en eingesetzt werden kann, mü ssen
die berechneten Werte den Eigenschaften der Normierung genü gen. Ist diese
Voraussetzung erfü llt, werden die Wahrscheinlichkeiten proportional auf ein
27
virtuelles Roulette-Rad aufgeteilt. Hier ein Beispiel fü r die Aufteilung der
Selektionswahrscheinlichkeiten einer Population mit fü nf Individuen:
Index
Wahrscheinlichkeit
0
0.14
1
0.30
2
0.11
3
0.20
4
0.25
Σ
Roulette-Rad
4
0
1
3
Zeiger
2
1.00
Abbildung 6: Beispiel für Russisches Roulette
Alle Individuen einer Population bekommen so einen bestimmten Abschnitt auf
diesem Rad zugeteilt. Ein Individuum mit einer hohen Selektionswahrscheinlichkeit
repräsentiert so einen groß en Teil des Rades und umgekehrt. Ist die Aufteilung des
Rades abgeschlossen, kann die Selektion beginnen. Dazu wird das virtuelle Rad
gedreht, bis es bei einem Abschnitt stehen bleibt, daß einem Individuum zugeteilt
wurde. Dieses ist damit selektiert und das Russische Roulette kann wiederholt
werden, um das nächste Individuum zu selektieren.
2.6.2
Kreuzung
Die natü rliche Evolution verändert mit Hilfe der Paarung (Kreuzung) die genetischen
Informationen der Elternindividuen. Dies geschieht durch Vermischung der
elterlichen Eigenschaften, so daß ein Nachkomme eine Kombination aus den
Eigenschaften von Mutter und Vater erhält. Die Genetischen Algorithmen setzen
dieses Verfahren in den Kreuzungsoperatoren um. Voraussetzung dafü r sind die in
Abb. 7 dargestellten Kreuzungspunkte (PX), mit dessen Hilfe ein auszutauschender
Bereich festgelegt wird (auch mehrere Bereiche sind möglich). Ein Chromosom mit
LC Zeichen besitzt die gleiche Anzahl an Kreuzungspunkten. Der Kreuzungspunkt
des ersten Zeichens trägt den Index 0 und der des letzten Zeichens LC – 1.
28
1 1 0 1 0 0 0 0 1 0 1 0 1 1 1
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Abbildung 7: Kreuzungspunkte
Es gibt nun vier wesentliche Strategien der Kreuzung. Die erste Variante, die auch
standardmäß ig in den meisten Genetischen Algorithmen verwendet wird, ist die EinPunkt-Kreuzung (Abb. 8). Hier wird ein Kreuzungspunkt innerhalb des
Chromosoms zufällig ausgewählt. Damit ü berhaupt eine Vermischung stattfindet,
sollte der zufällige Kreuzungspunkt PX in folgendem Intervall liegen.
[4]
0 < PX < L C
Der Kreuzungsbereich wird durch den zufällig gewählten und den letzten möglichen
Kreuzungspunkt markiert. Alle Zeichen, die in diesem Bereich liegen, werden
zwischen beiden Individuen ausgetauscht.
Eltern
1 0 1 0 0 1 0 1 1 1 1 0 1 1 0
1 1 0 1 0 0 0 0 1 0 0 0 1 1 1
1 0 1 0 0 1 0 0 1 0 0 0 1 1 1
1 1 0 1 0 0 0 1 1 1 1 0 1 1 0
Nachkommen
Abbildung 8: Beispiel Ein-Punkt-Kreuzung
Das nächste Verfahren ist die Zwei-Punkt-Kreuzung (Abb. 9), bei der zwei zufällig
ausgewählte Punkte den Kreuzungsbereich beider Elternindividuen festlegen. Die
beiden Punkte dü rfen nicht gleich sein. Der kleinere Punkt stellt den Beginn des
Kreuzungsbereichs dar und der größ ere Punkt das Ende. Alle Zeichen, die zwischen
den beiden Punkten liegen, werden ausgetauscht. Auch hier sollten die Punkte der in
[4] genannten Forderung genü gen.
29
Eltern
1 0 1 0 0 1 0 1 1 1 1 0 1 1 0
1 1 0 1 0 0 0 0 1 0 0 0 1 1 1
1 0 1 0 0 0 0 0 1 1 1 0 1 1 0
1 1 0 1 0 1 0 1 1 0 0 0 1 1 1
Nachkommen
Abbildung 9: Beispiel Zwei-Punkt-Kreuzung
Die Zwei-Punkt-Kreuzung kann zu einer Zwei-Punkt-Kreuzung mit Translokation
(Abb. 10) erweitert werden, indem zusätzlich bei einem der beiden Individuen der
Kreuzungsbereich verschoben wird. Die Kreuzungspunkte fü r das eine Individuum
werden wie bei der Zwei-Punkt-Kreuzung ermittelt und spezifizieren einen Bereich
der Länge LK. Der Startpunkt fü r den Kreuzungsbereich des anderen Individuums,
wird durch eine Zufallszahl ermittelt, die die folgenden Voraussetzungen erfü llen
muß :
[5]
0 £ POffset £ (L C - L K )
Stehen beide Bereiche fest, können die betroffenen Zeichen zwischen diesen
ausgetauscht werden. Um eine einfache Zwei-Punkt-Kreuzung zu vermeiden, sollten
der erste Kreuzungspunkt und der Translokationspunkt verschieden sein.
Eltern
1 0 1 0 0 1 0 1 1 1 1 0 1 1 0
1 1 0 1 0 0 0 0 1 0 0 0 1 1 1
1 0 1 0 1 0 0 0 1 1 1 0 1 1 0
1 1 0 1 0 0 0 0 0 1 0 1 1 1 1
Nachkommen
Abbildung 10: Beispiel Zwei-Punkt-Kreuzung mit Translokation
30
Die vierte Strategie ist die gleichmäßige Kreuzung (Abb. 11), bei der die
Kreuzungspunkte durch einen binären Vektor der Länge LC gewonnen werden. Die
Werte fü r den Vektor werden durch gleichverteilte Zufallszahlen ermittelt. So wü rde
der Vektor 011110011000111, mit einer Länge von 15, die Kreuzungsbereiche 1 – 4
(1111), 7 – 8 (11) und 12 – 14 (111) hervorbringen. In diesen Bereichen werden die
Zeichen der Chromosomen der Eltern vertauscht. Die mit 0 markierten Bereiche
bleiben unverändert.
Eltern
1 0 1 0 0 1 0 1 1 1 0 0 1 1 0
1 1 0 1 0 1 0 0 0 0 1 0 1 1 1
Schablone
0 1 1 0 1 0 0 0 1 0 0 1 0 1 1
1 1 0 0 0 1 0 1 0 1 0 0 1 1 1
1 0 1 1 0 1 0 0 1 0 1 0 1 1 0
Nachkommen
Abbildung 11: Beispiel gleichmä ßige Kreuzung
Die Funktionsweise dieser Verfahren ändert sich auch dann nicht, wenn die
Chromosomen aus anderen Alphabeten aufgebaut sind. Jedoch können sie aus
bestimmten Grü nden auch eine abweichende Funktionalität aufweisen (z.B.
Einzigartigkeit der Gene beim Problem des Handlungsreisenden).
2.6.3
Mutation
Bei der Fortpflanzung schleichen sich gelegentlich Fehler in die Genotypen der
Nachkommen ein. In der Natur geschieht dies im Zuge der Zellteilung, bei der dann
einzelne oder mehrere Basen im Chromosom verändert, eingesetzt oder entfernt
werden. Dieser Prozeß
wird bei Evolutionären Algorithmen durch einen
Mutationsoperator nachgebildet. Mutationen wirken sich positiv auf die Variabilität
31
einer Population aus, was allein durch Kreuzung nicht erreicht werden kann.
Andererseits kann sie sehr zerstörerisch sein, da sie auch gut angepaß te Individuen
wieder vernichtet, wenn sie zu häufig angewendet wird. Daher liegt die
Wahrscheinlichkeit der Mutation im Bereich von etwa 1% – 3% fü r jedes Zeichen im
Chromosom. Dieser Wert richtet sich auch nach der Länge des Chromosoms. Je
länger ein Chromosom ist, desto mehr Zeichen werden wahrscheinlich mutiert. Man
kann die Wahrscheinlichkeit deshalb auch direkt von der Chromosomenlänge
abhängig machen, indem man z.B. den Reziprokwert von LC verwendet.
Individuum
1 0 1 0 0 1 0 1 1 1 1 0 1 1 0
1 0 1 0 1 1 0 1 1 1 1 0 1 1 0
mutiertes Individuum
Abbildung 12: Beispiel gleichmä ßige Mutation
Die gleichmäßige Mutation (Abb. 12) prü ft nacheinander jedes Zeichen eines
Chromosoms, ob es mutiert wird oder nicht. Dafü r wird jeweils eine Zufallszahl im
Intervall [0; 1] bestimmt. Wenn diese kleiner ist als die Mutationswahrscheinlichkeit,
dann findet die Veränderung statt. Im Falle einer binären Zeichenkette, wäre dies die
Ä nderung des Wertes von 0 auf 1 bzw. von 1 auf 0.
2.7
Ersetzung
Nachdem der Reproduktionsprozeß genü gend Nachkommen erzeugt hat, stehen
Eltern- und Kinderpopulation bereit. Mit Hilfe des Ersetzungsverfahrens muß nun
aus diesen die Population fü r die nächste Generation gebildet werden. Die Größ e von
Eltern- und Kinder-Population beträgt in der Regel jeweils n Individuen, so daß
insgesamt 2n Individuen fü r die Ersetzung zur Auswahl stehen. Auch fü r die
Folgepopulation wird meistens die gleiche Größ e verwendet, wie fü r die
Elternpopulation.
32
2.7.1
Generationswechsel
Die einfachste denkbare Methode ist die Generationsersetzung, bei der die gesamte
Kinderpopulation in die nächste Generation ü bertragen wird. Die Elternpopulation
wird vollständig verworfen. Der Nachteil des Verfahrens ist, daß viele gute
Elternindividuen verloren gehen und damit die durchschnittliche Fitneß
einer
Population auch wieder sinken kann. Im Gegensatz zu anderen Ersetzungsverfahren,
benötigt dieses Verfahren mehr Generationen, bis es ein Optimum erreicht hat.
2.7.2
Elitismus
Dieses Verfahren verschont den besten Teil der Elternpopulation und gewährt ihnen
das Recht, auch in der nächsten Generation weiter zu bestehen. Man unterscheidet
hier zwischen dem statischen und dynamischen Elitismus. Beim statischen Elitismus
wird immer eine feste Anzahl von Individuen ersetzt. Dazu wird die Elternpopulation
sortiert und anschließ end die m besten Eltern in die neue Population ü bertragen. Die
Ü bertragung der Elternindividuen kann entweder ohne oder mit Mutation geschehen.
Eine Versetzung mit Mutation nennt man starker Elitismus, eine mit Mutation
schwacher Elitismus. Eine Mutation wird in Erwägung gezogen, wenn die Eltern
eine zu hohe Fitneß im Gegensatz zu ihren Nachkommen haben, die Population
damit beherrschen und eine Weiterentwicklung verhindern. Die noch freien Plätze in
der Folgepopulation werden mit Individuen aus der Kinderpopulation besetzt. Die
Auswahl der Nachkommen kann entweder durch gleichverteilte Zufallszahlen oder
durch Sortierung und Ü bernahme der besten Individuen erfolgen. Möchte man die
Anzahl der zu ersetzenden Elternindividuen nicht festlegen, kann der dynamische
Elitismus verwendet werden. Bevor Individuen ersetzt werden, mü ssen beide
Populationen zusammengefü hrt und nach ihrer Fitneß sortiert werden. Die erste
Hälfte der Individuen wird in die nächste Generation ü bernommen. Damit nicht nur
Eltern in die neue Generation ü berfü hrt werden, ist es möglich nur einen bestimmten
Prozentsatz der Elternpopulation bei der Zusammenfü hrung zu verwenden. Dieser
Satz liegt ü blicherweise bei 50% – 75%.
33
34
3
Digitale Klangsynthese
3.1
Synthesizer und Sampler
Noch vor 100 Jahren entstanden Töne nur unter natü rlichen Bedingungen oder durch
akustische Instrumente, die der Mensch schon erfunden hatte. All diese Instrumente
besitzen einen einzigartigen, unverkennbaren Klangcharakter. Mit dem Beginn des
20. Jahrhunderts begann die Entwicklung von völlig neuen Instrumenten, die mit
Hilfe von Elektrizität Klänge generieren konnten. Im Laufe der Zeit mutierten diese
zu wahren Metainstrumenten, die heute in der Lage sind, die Klangcharakter von
unterschiedlichen herkömmlichen Instrumenten nachzuahmen und auch neue
kü nstliche Klänge zu erzeugen. Am Anfang wurden fü r diesen Zweck teilweise
riesige Maschinerien gebaut. Die bekanntesten Vertreter waren u.a. der Theremin,
das Sphärophon, Ondes Martenot, das Trautonium und die Hammond-Orgel. Einer
der ersten analogen Synthesizer war der Moog, der im Jahre 1964 von seinem
Erfinder Robert Moog vorgestellt wurde. Er gehört zur Gruppe der modularen
Synthesizer, die den Musikern von damals alle nur erdenklichen Freiheiten
gewährten. Der Nachteil dieser war ihre meist enorme Größ e und der damit
verbundene hohe Kaufpreis. Nur sehr wenige Personen konnten sich diese Geräte
leisten. Aus diesem Grund entwickelte man 1970 die ersten festverdrahteten
Synthesizer, bei denen die gebräuchlichsten Elemente eines Modular-Synthesizers
vereint und fest miteinander verbunden wurden. Dies war die Sternstunde des
Minimoog. Er erreichte bis dahin ungeahnte Absatzmarken und behielt fü r Jahre eine
vorherrschende Stellung im Synthesizermarkt. Erst mit der fortschreitenden Technik
wurden immer mehr Elemente des Analog-Synthesizers durch digital kontrollierte
Schaltkreise, Mikrochips oder Signalprozessoren ersetzt. Sie werden deshalb auch als
analog hybride Synthesizer bezeichnet. Ein weiterer Meilenstein wurde mit der DX7
Reihe von Yamaha gelegt, den ersten fast voll digitalen Synthesizern. Die Popularität
der Digital-Synthesizer stieg aufgrund der niedrigen Preise und drängte die Analogen
in
den
Hintergrund.
Zudem
ermöglichte
die
Digitalisierung
auch
die
Programmierung von Computersoftware, die einfach die analogen und digitalen
Synthesizer
in
ihrer
Funktionsweise
35
nachbildete.
Einige
Softwarefirmen
spezialisierten sich auf komplette virtuelle Musikstudios, die am heimischen PC von
interessierten
Klangtü ftlern
benutzt
werden
Musikstudios
Anwendung
finden.
Neben
und
der
sogar
immer
in
professionellen
weiter
steigenden
Angebotspalette analoger und digitaler Synthesizer kamen in den letzten Jahren
heftige Diskussionen ü ber deren Klangqualität auf. Es mag sein, daß die Analogen
wärmere und die Digitalen kältere Klänge erzeugen, aber letztendlich spielen beim
Kauf eines Synthesizers nur dessen Preis und die Ohren des Nutzers eine Rolle.
Einen tieferen Einblick in die Geschichte des Synthesizers geben [SCH-98] und
[GOU-97].
Der Begriff Synthesizer selbst wurde von dem englischen Wort "synthesize"
abgeleitet
und
bedeutet
im
Allgemeinen
etwas
kü nstlich
herstellen.
In
Musikerkreisen versteht man unter diesem Begriff eine Soft- oder Hardware, mit
deren Hilfe ein natü rlicher oder kü nstlicher Klang erzeugt werden kann. Die
Vorgehensweise bei der Herstellung eines Klanges hängt von den verwendeten
Syntheseverfahren ab, die auf verschiedenen Prinzipien beruhen. Zu den
bekanntesten Verfahren zählen Subtraktive Synthese, Wavetable Synthese, Additive
Synthese und FM-Synthese (Frequenzmodulationssynthese). Die Klangvielfalt wird
von den verwendeten Komponenten (Oszillatoren, Hü llkurven, Filtern) eines
Syntheseverfahrens bestimmt. Ein Synthesizer mit nur 1 Oszillator, 1 Filter und 1
Hü llkurve wird daher eine bedeutend kleinere Menge von Klängen generieren
können als ein Synthesizer mit 10 Oszillatoren, 5 Filtern und 10 Hü llkurven. Die
entsprechenden Parameter der Komponenten und auch der Synthese selbst werden
ü ber reale (Hardware) oder virtuelle (Software) Schiebe- und Drehregler eingestellt.
Die Menge der vom Synthesizer erzeugbaren Klänge wird damit auch von den
Wertebereichen der Parameter beeinfluß t, d.h. mit wachsenden Wertebereichen der
Parameter, wird auch die Anzahl möglicher Klänge ansteigen, was natü rlich nur bis
zu einem bestimmten Grad realisierbar und sinnvoll ist.
Neben den Synthesizern wurden seit 1950 auch die Sampler entwickelt. Im
Gegensatz zu den Synthesizern, erzeugen die Sampler die Klänge nicht selbst,
sondern verändern ein bereits vorgegebenes Sample (Probe- oder Musterklang) mit
verschiedenen Methoden. Die Funktionalität reicht von einfachen Hü llkurven fü r die
36
Lautstärke, ü ber die Vermischung und Wiederholung von Abschnitten, der Ä nderung
der Tonhöhe durch Transponierung oder Filter bis hin zu einem breiten Spektrum an
Effekten wie Tremolo, Vibrato, Portamento, Distortion, Vocoding, Chorus, Flanging,
Phasing, Echo und Reverberation. Der Klang, der fü r den Prozeß des Sampling
bereitgestellt werden muß , kann entweder natü rlicher Art sein, wie es in den
Anfängen der Sampler der Fall war, oder kü nstlich. Trotz der unterschiedlichen
Funktionsweise von Sampler und Synthesizer zählt das Sampling heutzutage mit zu
den Syntheseverfahren und trägt auch den Namen Sample-Synthese oder SamplingSynthese.
3.2
Tö ne, Klänge und Geräusche
Das menschliche Ohr nimmt Töne, Klänge und Geräusche als akustische Signale
wahr, die hauptsächlich durch das Medium Luft als Schallwellen ü bertragen werden.
In der Physik befaß t sich das Teilgebiet der Akustik mit diesem Phänomen. Sie lehrt,
daß eine Schwingung durch die Bewegung von Materie entsteht, die sich dann in
Form einer Schallwelle, ausgehend von der Quelle, in einem Medium wie Luft oder
Wasser räumlich ausbreitet. Die Geschwindigkeit, mit der sich eine Schallwelle
fortbewegt (Schallgeschwindigkeit), hängt stark vom Medium ab, in der sie sich
befindet. Einige Medien können Schallwellen besser ü bertragen (Luft), andere
schlechter (Wasser). Wenn die Schallwellen periodisch sind, nehmen die Menschen
dies als Ton oder Klang wahr. Der Ton besteht aus nur einer einzigen Schwingung
(z.B. Sinusschwingung), die eine bestimmte Frequenz besitzt. Deshalb ist die
Klangfarbe (Frequenzspektrum) eher eintönig. Ein Klang dagegen setzt sich aus
einem Grundton und mehreren Teiltönen (Obertöne) zusammen. Dadurch klingt ein
Klang voller. Wenn die Frequenzen der Teiltöne ganze Vielfache der Frequenz des
Grundtones darstellen, dann spricht man auch vom harmonischen Klang, von dem
letztendlich nur der Grundton vom Menschen als Tonhöhe (Frequenz der
Schwingung) wahrgenommen wird. Wenn die Teilfrequenzen keine ganzen
Vielfachen der Grundfrequenz sind, dann liegt ein disharmonischer Klang vor.
Aperiodische Schwingungen werden vom menschlichen Ohr nur als Geräusche
(Rauschen, Knistern) erkannt. Sie bestehen meist aus mehreren Teiltönen mit
unterschiedlichen Frequenzen, die aber untereinander in keinem Zusammenhang
37
stehen. Neben der Tonhöhe und Klangfarbe spielt auch die Lautstärke (Amplitude
der Schwingung) und deren Dynamik eine wichtige Rolle. Töne oder Klänge die sehr
laut sind werden wesentlich stärker wahrgenommen als welche die leise sind. Die
Dynamik eines Tones oder Klanges beschreibt dessen Lautstärkeverlauf in Bezug auf
die Zeit, d.h. ein Klang beginnt oder endet i.d.R. nicht einfach abrupt, sondern wird
mit einer bestimmten Intensität lauter, leiser oder hält die Lautstärke einige Zeit
konstant.
Die Entstehung von natü rlichen und instrumentalen Klängen ist sehr einfach
erkennbar, weil Ursache und Wirkung direkt auszumachen sind. In der Natur
verursacht die Brechung von Meereswellen ein Rauschen, der durch eine enge
Schlucht strömende Wind ein Pfeifen oder das Verbrennen von Holz ein Knistern.
Bei der Benutzung von Musikinstrumenten nimmt man den Klang wahr, indem eine
Gitarrensaite gezupft, auf eine Trommel geschlagen oder mit dem Mund Luft in die
Flöte geblasen wird. Jedes dieser Beispiele besitzt eine Ursache, die mechanische
Schwingungen auslöst, die dann als Schallwellen vom menschlichen Ohr
aufgenommen und als Klang interpretiert werden. Mit der Entstehung der
Synthesizer und Sampler sowie der weiter zunehmenden Digitalisierung von
Audiodaten ist diese Kausalität nicht mehr so einfach nachzuvollziehen, denn die
Ursache wird durch das komplexe Gebilde eines Syntheseverfahrens ersetzt. Es ist
nur in einem spezifischen Zustand in der Lage einen bestimmten natü rlichen Klang
zu imitieren oder einen kü nstlichen Klang zu erschaffen. Dieser Zustand wird durch
die Einstellung der Syntheseparameter und seiner Komponenten erreicht.
Anschließ end erzeugt der Synthesizer elektrische Schwingungen, die dann erst durch
die Membran des Lautsprechers wieder in mechanische Schwingungen umgewandelt
werden und danach in Form von Schallwellen das menschliche Ohr erreichen.
3.3
Syntheseverfahren
Fü r die Erzeugung von Klängen und Geräuschen sind die Syntheseverfahren
verantwortlich, deren Funktionsweise auf unterschiedlichen Theorien beruht. In der
Zeit der Analogsynthesizer wurde fast ausschließ lich die Subtraktive Synthese
verwendet, da die praktische Umsetzung anderer Verfahren unter finanziellen
38
Gesichtspunkten kaum möglich war. Erst mit der fortschreitenden Digitalisierung der
Synthesizer konnten auch andere Syntheseverfahren mit wenig Aufwand realisiert
werden. So kann man heute durch die Verbindung mehrerer Komponenten wie
Oszillatoren, Hü llkurven, Filter, Verstärker und Effekte alle Syntheseverfahren in
Form eines Algorithmus bereitstellen. Dieser muß in der Lage sein, die Kriterien
aller Syntheseverfahren zu erfü llen. Im Detail sind das die Erzeugung der Tonhöhe,
die statische und dynamische Ä nderung der Lautstärke sowie die Erzeugung von
charakteristischen Klangfarben. Nachfolgend werden die wichtigsten Verfahren kurz
erläutert. Besondere Aufmerksamkeit erhält die FM-Synthese, weil ich diese fü r
meine Untersuchungen zur Nachbildung eines Klanges durch die Entwicklung einer
Struktur und der Optimierung der Syntheseparameter mit Hilfe Genetischer
Algorithmen ausgewählt habe. Bei weiterfü hrendem Interesse empfehle ich die
Quellen [HOE-02], [GOU-97], [BOL-98], [FIE-01], [FIS-98], [KOK-00], [RAB-01],
[RIT-02] und [JUN-98] zu studieren.
3.3.1
Subtraktive Synthese
Dieses Verfahren wird zur Zeit noch am häufigsten bei Analog- und DigitalSynthesizern eingesetzt, weil der Klangtü ftler hier am besten abschätzen kann, was
fü r Resultate entstehen, wenn er den einen oder anderen Parameter verändert. Dieses
Verfahren setzt sich aus mehreren Komponenten zusammen, zu denen mehrere
Oszillatoren, Filter, Hü llkurven, LFOs und Effekte gehören. Das wichtigste
Werkzeug bei der Subtraktiven Synthese sind die Filter, mit denen der Kü nstler den
Charakter des Klanges formt. Wie der Name bereits andeutet, basiert dieses Prinzip
auf der Subtraktion von Frequenzanteilen und Amplitudenwerten. Daher mü ssen die
Oszillatoren möglichst viele, obertonreiche Schwingungen erzeugen. Denkbar wäre
hier ein Rauschgenerator, aber in den meisten Fällen werden mehrere Oszillatoren
verwendet, die einfache Sägezahn- oder Rechteckschwingungen generieren. In der
nächsten Stufe werden von den vorliegenden obertonreichen Schwingungen
unerwü nschte Frequenzbereiche entfernt. Diese Aufgabe wird von mehreren Filtern
erledigt. An diesem Punkt muß der Kü nstler genau wissen, welche Eigenschaften der
Klang einmal besitzen soll und welche Filter diesen Effekt erzielen. Fü r diesen
Zweck stehen in fast allen Synthesizern Tiefpaß -, Hochpaß -, Bandpaß - und
39
Bandsperrfilter zur Auswahl bereit. Liegen nur noch die gewü nschten Frequenzen
vor, wird als letztes in der Verstärkerstufe die Amplitude beeinfluß t, d.h. den
gefilterten Klängen werden jetzt noch Lautstärkeanteile entzogen. Sowohl Filter als
auch Verstärker können dynamisch durch eine Hü llkurve oder einen LFO
(Niedrigfrequenzoszillator) gesteuert werden.
Parameter
Rauschgeneratoren,
Oszillatoren
Parameter
Filter
Parameter
Verstärker
Parameter
Effekte
Klang
Abbildung 13: Prinzip der Subtraktiven Synthese
Ein sehr einfacher Synthesizer, der die Subtraktive Synthese ermöglichen will, wü rde
mit nur 1 Oszillator, 1 Filter, 1 Hü llkurve, 1 Verstärker und 1 LFO auskommen,
wobei die Möglichkeiten fü r die Kombination der Komponenten sehr eingeschränkt
wären.
3.3.2
Wavetable Synthese
Die Wavetable Synthese, die auch als Wellenform Synthese bekannt ist, basiert auf
einer Menge von vorgefertigten Wellenformen, die anstelle von Oszillatoren
eingesetzt werden und dementsprechend fü r die Erzeugung von obertonreichen
Schwingungen verantwortlich sind. Die Wellenformen besitzen eine feste Tonhöhe
und Klangfarbe, sind jedoch in der Regel nicht dynamisch, d.h. ihre Lautstärke bleibt
konstant. Sie stammen meistens von natü rlichen und instrumentalen Klängen ab und
werden in Tabellen, den sogenannten Wavetables, im ROM-Speicher des
Synthesizers hinterlegt. Aufgrund der oft begrenzten Speicherkapazität wird fast
40
immer nur eine Periode abgespeichert. Die Veränderung der Tonhöhe einer
ausgewählten Wellenform wird durch unterschiedlich schnelles abspielen erreicht.
Wie bei der Subtraktiven Synthese folgen auch hier Filter und Verstärker, die den
obertonreichen Wellenformen bestimmte Frequenzbereiche und Amplitudenanteile
entziehen. Dies kann auch hier durch modulierende Komponenten wie LFOs und
Hü llkurven dynamisch beeinfluß t werden. In manchen Fällen werden auch additive
Techniken fü r die Nachbearbeitung der Wellenformen benutzt.
Parameter
Samples,
Wavetable-Oszillatoren
Parameter
Filter
Parameter
Verstärker
Parameter
Effekte
Klang
Abbildung 14: Prinzip der Wavetable Synthese
Bei einigen Wavetable-Synthesizern kann man sogar eigene Wellenformen in den
ROM-Speicher laden oder selbst programmieren. Diese sollten auch die Interpolation
zwischen verschiedenen Wellenformen beherrschen.
3.3.3
Additive Synthese
Das Prinzip der Fourieranalyse ermöglicht die Aufspaltung von akustischen
Schwingungen in kleinere sinusförmige Teilschwingungen. Das Ergebnis sind die
einzelnen Obertöne komplexer Klänge. Die Additive Synthese geht den umgekehrten
Weg und versucht durch die additive Vermischung von mehreren einfachen
Sinusschwingungen einen reichhaltigen Klang zu erzeugen, d.h. das Spektrum eines
Klanges wird aus einzelnen Obertönen zusammengesetzt. Aus diesem Grund wird sie
häufig auch als Fouriersynthese bezeichnet. Fü r die Erzeugung der Teiltöne werden
41
separate Oszillatoren verwendet, die einfache Sinusschwingungen generieren
können. Jeder Oszillator besitzt zudem eine eigene Hü llkurve, die den zeitlichen
Verlauf der Lautstärke bestimmt und dadurch maß geblich fü r die Betonung der
Obertöne zu bestimmten Zeitpunkten verantwortlich ist.
Parameter
Oszillatoren,
Hüllkurven
Parameter
Effekte
Klang
Abbildung 15: Prinzip der Additiven Synthese
Mit dem Prinzip der Additiven Synthese kann theoretisch jeder Klang nachgebildet
werden. Doch sollte man dabei bedenken, daß bei der Nutzung von sehr vielen
Oszillatoren, die bitter nötig sind, um einen komplexen Klang zu imitieren, der
Nutzer mit einer wahren Flut von Parametern ü berschwemmt wird. Auß erdem ist zu
beachten, daß der Rechenaufwand proportional zur Anzahl der Oszillatoren und den
dazugehörigen Hü llkurven steigt, was sich auf Synthesizer, die Echtzeitelemente
besitzen, negativ auswirkt.
3.3.4
FM-Synthese
Die FM-Synthese wurde im Jahr 1973 an der Stanford Universität von Chowning
entwickelt. Die Firma Yamaha erkannte schnell das Potential der vielversprechenden
Idee. Das Unternehmen kaufte die Patente fü r das Verfahren und entwickelte es
weiter. Erst einige Jahre später gelang Yamaha der ersehnte Durchbruch. 1983 wurde
der legendäre DX7-Synthesizer veröffentlicht, der unglaublich schnell populär wurde
und Yamaha eine marktbeherrschende Position im Synthesizermarkt einbrachte.
Aufgrund des Erfolgs wurden in den Folgejahren etliche Ableger des DX7 in allen
nur erdenklichen Varianten produziert, aber auch in Soundkarten von Computern und
anderen Geräten eröffneten sich ungeahnte Möglichkeiten.
42
Die FM-Synthese (Frequenzmodulation) und PM-Synthese (Phasenmodulation)
werden unter dem Begriff der Modulationssynthese zusammengefaß t. Beide
Syntheseverfahren sind sich sehr ähnlich. Der einzige Unterschied beider Verfahren
ist, daß die FM-Synthese die Frequenz und die PM-Synthese die Phase von
Oszillatoren modulieren. Die Vorgehensweise beider Prinzipien ist am Ende nicht
wirklich entscheidend fü r die Klangerzeugung. Allgemein bekannt ist meistens nur
die FM-Synthese, obwohl es hier oft zu Verwechslungen kommt, die schon allein
durch die Hersteller von Synthesizern verursacht werden. Der Grund ist in einem
Nachteil der Frequenzmodulation zu finden: Es kann nämlich durchaus vorkommen,
daß bei der Modulation der Frequenzen auch negative Frequenzbänder entstehen,
wenn ein Modulator eine höhere Frequenz besitzt als der modulierte Oszillator. Bei
dem Auftreten von negativen Frequenzen werden diese einfach als positiv
angesehen, was aber zum unerwü nschten Effekt der Phasenverschiebung um 180°
fü hrt und der daraus resultierenden Frequenzverdopplung der betroffenen Bereiche,
an denen schon ein anderes Frequenzband existiert. Bei der Phasenmodulation ist
dieses Problem nicht gegeben, weil negative und positive Phasenverschiebungen den
gleichen Effekt bewirken. Deshalb implementieren Hersteller bevorzugt die PMSynthese, verkaufen dann aber ihre Geräte als FM-Synthesizer.
Das Prinzip der Modulation ist nicht wirklich neu. Auch andere Verfahren wie
Subtraktive Synthese, Wavetable Synthese und in seltenen Fällen auch die Additive
Synthese erlauben die Modulation eines Oszillators oder Filters durch einen LFO
oder eine Hü llkurve. Sogar gegenseitige Modulation von Oszillatoren (Ring- und
Kreuzmodulation) findet Anwendung. Die Möglichkeiten sind allerdings stark
eingeschränkt, weil bei diesen Verfahren die Komponenten ein knapper Rohstoff
sind. Bei der FM- und PM-Synthese ist dies anders, da hier von vornherein die
Komponenten fü r derartige Verkettungen vorgesehen sind. Die zwei wichtigsten
Elemente der FM-Synthese sind Oszillator und Hü llkurve. Beide Elemente werden in
einem Operator zusammengefaß t, der wiederum als Baustein fü r die Aufstellung
eines speziellen Ablaufplans dient. Dieser Ablaufplan wird als Algorithmus oder
auch FM-Algorithmus bezeichnet. In einem Algorithmus werden mehrere
Operatoren zusammengefaß t und miteinander verbunden. Wenn ein Operator die
Frequenz oder Phase eines anderen moduliert, dann heiß t dieser Modulator. Die
43
letzten Operatoren im Algorithmus sind die Träger (sie modulieren keinen anderen
Operator mehr). Auch die Rü ckkopplung (Selbstmodulation) eines Operators ist
möglich und erzeugt, je nach Rü ckfü hrungsstärke, ein zusätzliches Rauschen im
Klang. Die Träger werden in erster Linie auf die Tonhöhe und die Dynamik des
Klanges angesetzt, während die Modulatoren fü r die richtige Klangfarbe sorgen.
Diese kann um so reichhaltiger werden, je mehr Operatoren eines Algorithmus als
Modulatoren verwendet werden.
Parameter
FM-Algorithmus
(Operatorenverkettung)
Parameter
Effekte
Klang
Abbildung 16: Prinzip der FM-Synthese
Der einfachste denkbare Algorithmus besteht aus nur zwei Operatoren und wird als
einfache FM-Synthese bezeichnet. Die beiden Operatoren werden entweder in Reihe
(1 Modulator und 1 Träger) oder parallel (2 Träger) miteinander verkettet. Die
Parallelschaltung von Trägern zeigt, daß auch eine stark eingeschränkte Version der
Additiven Synthesen nachgebildet werden kann. Mit dieser einfachen Form eines
Algorithmus mit zwei Operatoren können schon eine Menge Klänge generiert
werden, doch wird man damit sicherlich keine groß en Ü berraschungen erleben.
Diese Tatsache fü hrt direkt zur komplexen FM-Synthese, die drei oder mehr
Operatoren in einem Algorithmus vereint. Dadurch können noch komplexere
Klangstrukturen hergestellt werden. Das fü hrt aber auch zu folgendem Nachteil: Je
mehr Operatoren in einem Algorithmus verwendet werden, desto schwieriger ist
nachzuvollziehen, welche Komponenten in welcher Weise den Klang beeinflussen
und wie die einzelnen Parameter an diesem Vorgang beteiligt sind. Deshalb werden
bei den meisten FM-Synthesizern auch nur 4 bis 6 Operatoren eingebaut. In der
folgenden Abbildung sind einige Algorithmen fü r einen FM-Synthesizer mit 5
Operatoren zu sehen (die Träger befinden sich in der untersten Reihe, alle anderen
Operatoren sind Modulatoren):
44
Abbildung 17: Algorithmen eines FM-Synthesizers mit 5 Operatoren
Die Verallgemeinerung, daß ein bestimmter Algorithmus ein konkretes Instrument
nachbildet, ist nicht richtig. Allein die unterschiedlichen Einstellungsmöglichkeiten
der Parameter lassen eine breite Palette von Klängen entstehen. Jedoch kann man
folgendes festhalten: Algorithmen, die aus vielen Trägern und wenigen Modulatoren
bestehen, erzeugen Klänge, die aus mehreren Bestandteilen bestehen, aber keine
komplexen Obertöne aufweisen. Nutzt man auf der anderen Seite wenige Träger und
viele Modulatoren, dann erhält man sehr komplexe Frequenzspektren.
Segen und Fluch liegen bei der FM-Synthese nah beieinander. Mit diesem Verfahren
können auch heute noch neue und unverbrauchte Klänge erzeugt werden, was mit
anderen Synthesemethoden nicht möglich wäre. Dabei werden die vielfältigen und
reichhaltigen Klangfarben mit recht bescheidenen Mitteln erreicht. Doch die
Bescheidenheit ist trü gerisch und kann zu unerwartetem Chaos fü hren, da das
Zusammenspiel der Parameter oft nicht durchschaubar ist. Besonders bei vielen und
komplex miteinander verbundenen Operatoren zeigt dieser Nachteil seine chaotische
Auswirkung. Eine schnelle Programmierung eines Klanges nach Gefü hl, wie z.B. bei
der Subtraktiven Synthese, ist damit nicht möglich. Viele Musiker versuchen deshalb
in einem langwierigen Trial-Error-Verfahren den Klang nach ihren Vorstellungen zu
45
formen, was unter Umständen mehrere Tagen in Anspruch nimmt. Diese
Vorgehensweise ist dem Zufall voll und ganz ausgeliefert. Eine etwas logischere
Herangehensweise verlangt dem Kü nstler einiges ab. Dazu muß er nicht nur wissen,
wie der Klang einmal klingen soll, sondern auch wie sich dieser in seine
Komponenten zerlegen läß t und mit welchem FM-Algorithmus sich diese am besten
generieren
lassen.
Auf
den
ersten
Blick
klingt
das
natü rlich
ziemlich
wissenschaftlich. Doch es gibt einige feste Regeln, die den Klangtü ftler dabei
unterstü tzen:
Der Träger (engl.: carrier) erzeugt in erster Linie den Grundton eines Klanges, der
vom Menschen als Tonhöhe wahrgenommen wird. Wenn die Trägerfrequenz erhöht
bzw. gesenkt wird, dann verschiebt sich das gesamte Klangspektrum nach rechts
bzw. nach links. Eine weitere wichtige Aufgabe des Trägers ist die Belebung des
Klanges. Dazu wird die im Träger enthaltene Hü llkurve eingesetzt, die dem Klang
oder Klangbestandteil (mehrere Träger) die gewü nschte zeitliche Dynamik verleiht.
Auch die Lautstärke des Klanges wird vom Träger bestimmt und sogar zum Gewicht,
wenn mehrere Klangbestandteile miteinander vermischt werden.
Der Modulator (engl.: modulator) kann zwei verschiedene Aufgaben ü bernehmen.
Wenn seine Frequenz unter 20 Hz (untere Hörschwelle des Menschen) liegt, dann
erzeugt dies einen Vibrato-Effekt, wie er auch von LFOs erzeugt wird. Liegt die
Frequenz ü ber 20 Hz, dann entstehen neue Obertöne im Frequenzspektrum, die auch
als Seitenbänder (engl.: sidebands) bezeichneten werden und den Klangcharakter
erheblich aufwerten können. Wenn die Modulatorfrequenz angehoben bzw. gesenkt
wird, dann erhöht bzw. verringert sich auch der Abstand zwischen den einzelnen
Seitenbändern, d.h. das Klangspektrum wird einer Streckung bzw. Stauchung
unterzogen.
Das Frequenzverhältnis (engl.: frequency ratio) zwischen zwei Operatoren, in der
Form FT : FM (Trägerfreq. zu Modulatorfreq.) bzw. FMA : FMB (Modulatorfreq. A zu
Modulatorfreq. B) steht in einem festen Zusammenhang zu den erzeugten
Seitenbändern im Frequenzspektrum. Dabei gilt: Wenn die Frequenz des Modulators
einem ganzen Vielfachen der Trägerfrequenz entspricht (z.B. 1:2 oder 1:3 oder allg.
46
1:N, wobei N eine natü rliche Zahl ist), dann entstehen nur harmonische Obertöne.
Wenn die Modulatorfrequenz dagegen kein ganzes Vielfaches ist (z.B. 2:5 oder 3:8
oder allg. N:M, wobei N und M natü rliche Zahlen sind), dann entstehen harmonische
und unharmonische Obertöne, die sich im Klang als Verzerrung oder Rauschen
bemerkbar machen. Der Träger selbst erzeugt den Grundton an der Stelle FT im
Frequenzspektrum. Alle Obertöne bzw. Seitenbänder (FK) lassen sich nun mit den
folgenden zwei Formeln berechnen:
[6]
FK = FT + k FM
(obere Seitenbä nder)
[7]
FK = FT - k FM
(untere Seitenbä nder)
k = 1, 2 , K, n
Wichtig bei der Berechnung der Seitenbänder ist, daß negative Frequenzen in den
positiven Frequenzbereich gespiegelt werden und sich demnach dort als zusätzliche
Seitenbänder einreihen. Weiterhin ist folgender Effekt zu beobachten: Wenn die
Trägerfrequenz das doppelte Maß der Modulatorfrequenz erreicht oder dieses
ü bersteigt (2 FT <= FM), dann werden Seitenbänder erzeugt, die immer ü ber dem
Grundton des Trägers liegen. Ist dies nicht der Fall (2 FT > FM), dann entstehen auch
Seitenbänder, die unter der Grundfrequenz des Trägers liegen. Das fü hrt dazu, daß
der Zuhörer ein niedriger liegendes Seitenband als neuen Grundton wahrnimmt. Die
Bildung eines Frequenzverhältnisses zwischen Träger und Modulator dient vorrangig
dazu, die Frequenzen der beiden Operatoren relativ zueinander einzustellen. Das ist
bei der Programmierung von Klängen eine groß e Hilfe und wird daher von fast allen
Synthesizern auf diese Weise implementiert.
Der Modulationsindex (engl.: modulation amount oder modulation index) reguliert
die Intensität, mit der ein Träger (oder ein anderer Modulator) moduliert wird, d.h.
die Amplitude des Modulators bestimmt die maximale Abweichung von der
Frequenz des Trägers und damit auch wie viele Seitenbänder einmal entstehen
werden. Grundlegend kann gesagt werden, daß eine steigende Modulatoramplitude
auch ein verstärktes Auftreten von Seitenbändern zur Folge hat. Die im Modulator
integrierte Hü llkurve ermöglicht zudem noch die zeitliche Steuerung der
Modulationsintensität, was hier der Funktionsweise eines Filters sehr nahe kommt.
47
3.3.5
Weitere Syntheseverfahren
Sampling basiert auf dem Prinzip der Veränderung eines aufgenommen
digitalisierten Naturklanges, der als Sample abgespeichert wird. Die Bearbeitung der
digitalen Naturklänge geschieht durch Transponierung, Loops, LFOs, Filter,
Hü llkurven und einer ganzen Reihe von Effekten. Das Ergebnis ist ein mehr oder
weniger originalgetreuer Klang. Dieses Verfahren wird immer häufiger und vor
allem in der elektronischen Musikproduktion verwendet. Aus diesem Grund wird das
Sampling oft den Syntheseverfahren zugeordnet, obwohl es im eigentlichen Sinne
keines ist, da es die entstehenden Klänge nicht selbst erzeugt, sondern die
aufgenommenen Samples nur verändert.
Die LA-Synthese (Linear Arithmetische Synthese) ist der Vorgänger aller
Syntheseverfahren, welche Klänge aus Wellenformen erzeugen, die im ROMSpeicher eines Synthesizers abgelegt sind. Das Grundprinzip des Verfahrens nutzt
eine ganz bestimmte Eigenschaft des Menschen aus. Er ist nämlich in der Lage einen
Klang schon an seiner Einschwingungsphase, die auch als Attack-Phase bekannt ist,
zu erkennen. Diese Wellenformen der Einschwingungsphase werden in digitalisierter
Form im Synthesizer abgespeichert. Die restlichen Phasen eines Klanges, also
Abkling- (Decay), Stationär- (Sustain) und Ausklingphase (Release), können mit
Hilfe der Attack-Phase durch Subtraktive Synthese reproduziert werden.
Das Physical Modelling ist ein einzigartiges Syntheseverfahren. Es basiert auf der
Entwicklung von Modellen, die es ermöglichen die physikalischen Eigenschaften
von akustischen Instrumenten im Computer zu simulieren. Fü r diesen Zweck wird
Aufbau und Funktionsweise des Instrumentes analysiert. Aus den gewonnenen
Erkenntnissen wird ein Gesetz abgeleitet, das alle Vorgänge, die im realen
Instrument ablaufen, berechnen kann. Dazu gehört die Erzeugung von Schallwellen
durch einen Klangerreger (z.B. das Zupfen der Gitarrensaite oder das Blasen in die
Flöte) und die Reflexion der Schallwellen im Resonanzkörper. Die aufgestellte
Gesetzmäß igkeit wird dann als Schaltung von spezifisch eingestellten Oszillatoren
und Filtern realisiert. Das Resultat dieser aufwendigen Vorbereitung ist ein Klang,
der sich sehr naturgetreu anhört. Allerdings hat diese Art der Synthese zwei
48
Nachteile: Auf der einen Seite benötigt man genaue Kenntnisse ü ber die
Beschaffenheit der einzelnen Instrumente, um ein geeignetes Modell aufzubauen und
zum anderen werden die Nutzer hier nicht mit den herkömmlichen Oszillator-,
Hü llkurven und Filterparametern konfrontiert, sondern damit, wie stark in eine Flöte
geblasen oder an einer Gitarrensaite gezupft wird. Eine Variation der Parameter ist
ohnehin nur selten möglich und oft stark eingeschränkt.
Die Granularsynthese ist eine Weiterentwicklung der Wavetable Synthese, wird
aber kaum eingesetzt. Das Syntheseprinzip der Klangerzeugung beruht hier auf der
Verkettung von vielen kleinen Schallpartikeln, den sogenannten Grains, die in der
Regel nur 5 – 100 Millisekunden lang sind. Grains können einfache Schwingungen
in Form von Sinus-, Dreieck-, Rechteck- oder Sägezahnwellen sein, die von
Oszillatoren generiert werden. Allerdings werden häufiger komplexe Wellenformen
bestimmter gesampelter Klänge genutzt, die erfahrungsgemäß eine bessere
Klanggrundlage darstellen. Die Einfluß nahme auf Dynamik, Tonhöhe und Länge
eines Klanges kann während der Verkettung der Partikel zur Geltung gebracht
werden,
indem
man
Amplitude
und
Dauer
der
Grains
verändert
oder
Wiederholungsabschnitte definiert.
Auch die Vektorsynthese ist eine Weiterentwicklung der Wavetable Synthese.
Grundlage bilden vier oder mehr Oszillatoren, deren Wellenformen und Frequenzen
separat eingestellt werden können. Ein Vektor, daher auch der Name der Synthese,
bestimmt das Mischungsverhältnis der beteiligten Oszillatoren in Form einer XYFunktion, die zusätzlich von der Zeit abhängig ist. Die Werte des dreidimensionalen
Vektors werden von einem Joystick oder manchmal auch von Hü llkurven gesteuert.
Genau wie bei der Wavetable Synthese, erzeugen die Oszillatoren obertonreiche
Wellenformen, die auch hier nachträglich durch Filter und Verstärker verändert
werden, indem man ihnen Klanganteile entzieht. Das Ziel der Vektor Synthese liegt
hauptsächlich in der kreativen Nutzung der Oszillatoren, die fü r die Erzeugung der
obertonreichen Wellenformen verantwortlich sind und dadurch die Klangfarbe von
Anfang an vorgeben. Mit Hilfe der Vektor Synthese erhofft man sich neue
interessante Klänge zu finden.
49
3.4
Synthesekomponenten
Die einzelnen Komponenten haben unterschiedliche Aufgaben. Es gibt vier
Kriterien, die im Wesentlichen von diesen Komponenten realisiert werden mü ssen:
Dazu gehören die Erzeugung der Tonhöhe (Grundfrequenz), Klangfarbe und
Lautstärke sowie die Belebung bzw. Dynamisierung des Klanges. Eine ausfü hrliche
Darstellung der folgenden Komponenten ist in den Bü chern [SCH-98], [HOE-02]
und [ANW-00] zu finden.
3.4.1
Oszillator
Die Funktion des Oszillators, die in der Bereitstellung des Ausgangsmaterials fü r
einen Klang besteht, wurde in den vorangegangenen Punkten schon häufiger
erwähnt. Die Eigenschaften des entstehenden Klanges hängen von den jeweils
ausgewählten Grundwellenformen ab, die der Oszillator permanent liefert. Bekannte
und weitverbreitete Wellenformen sind Sägezahn, Dreieck, Sinus, Rechteck und Puls
sowie das Rauschen (siehe Abb. 18). Jede dieser Grundschwingungen besitzt zudem
zusätzliche Eigenschaften, die sich wiederum auf den erzeugten Klang auswirken. Es
kommt dabei auch auf die Art der Klangsynthese an, welche Grundwellenformen
bevorzugt eingesetzt werden. Im folgenden Abschnitt sind die wichtigsten
Grundwellenformen und ihr Charakter kurz dargestellt:
Die Sägezahnwelle (engl.: saw wave oder sawtooth wave) ist schon von Anfang an
in allen Synthesizern vorhanden und erzeugt ein reichhaltiges Spektrum, in dem alle
Obertöne mit sinkender Intensität vorkommen. Aus diesem Grund wird sie besonders
bei den subtraktiven Syntheseverfahren verwendet. Den Klangcharakter kann man
als kräftig, hart und hell beschreiben.
Die Rechteckwelle (engl.: rectangle wave oder square wave) ist in ihrer Form durch
einen abrupten Wechsel zwischen maximaler und minimaler Amplitude geprägt, der
genau in der Mitte eines Durchlaufs stattfindet. Sie erschafft alle ungeraden Obertöne
im Spektrum. Die Lautstärke der entstehenden Obertöne im Klangspektrum ergibt
sich durch die natü rliche Reihe 1/N, wobei N hier der Ordnung des jeweiligen
50
Obertons entspricht. Das verleiht ihr einen recht hohlen, elektronischen Klang. Sie
stellt auß erdem eine besondere Form der Pulswelle dar, wobei die Pulsbreite von
Hoch- und Tiefphase einem Verhältnis von 50:50 entspricht.
Die Pulswelle (engl.: pulse wave) läß t demnach auch andere Punkte fü r einen
Wechsel zu, was bei einem Pulsbreitenverhältnis von 1:99 sogar zu einem
nadelförmigen Impuls fü hrt. Dabei spielt es keine Rolle, ob eine Welleform durch
ein Verhältnis der Gestalt 25:75 oder 75:25 gebildet wird, da der daraus resultierende
Klang vom menschlichen Ohr nicht unterschieden werden kann, d.h. die Wellenform
ist nur in ihrer Phase verschoben. Das Resultat sind hohle bis näselnde Klänge,
wobei eine ausgeglichene Pulsbreite eher hohl und ein immer ungleicheres
Verhältnis mehr und mehr näselnd klingt.
Die Dreieckwelle (engl.: triangle wave) erinnert in ihrer Form am ehesten an die
Sinuswelle und erzeugt, genau wie die Rechteckwelle, nur ungerade Obertöne, deren
Lautstärken sich aus 1/N2 ergeben. Diese Eigenschaften verleihen ihr einen weichen
und fließ enden Klangcharakter.
Die Sinuswelle (engl.: sine wave) ist die einfachste Grundwellenform, die so in der
Natur nicht existiert und im Gegensatz zu allen anderen keine Obertöne besitzt,
sondern nur einen Grundton. Aus diesem Grund wird sie bevorzugt bei additiven und
modulierenden Synthesetechniken verwendet. Den Klangcharakter einer Sinuswelle
kann man als sehr weich beschreiben.
Das Rauschen (engl.: noise) besteht aus zufällig erzeugten Signalen und stellt
eigentlich keine Grundwellenform dar. Es wird oft in Oszillatoren integriert oder als
eigenständiger Rauschgenerator zur Verfü gung gestellt. Bildet man das Mittel der
generierten Signale, kann man erkennen, daß alle Frequenzen des Klangspektrums
vorkommen. Deshalb besitzt das Rauschen auch keine Tonhöhe. Man unterscheidet
zudem zwischen dem Weiß en Rauschen (engl.: white noise) und dem Rosa Rauschen
(engl.: pink noise). Weiß es Rauschen enthält, wie schon erwähnt alle Frequenzen
und Rosa Rauschen betont die tiefen Frequenzanteile.
51
Sägezahn
Rechteck
Puls (25:75)
Dreieck
Sinus
Rauschen
Abbildung 18: Grundwellenformen
Die Palette an Grundwellenformen wurde in den letzten Jahren noch erheblich
ausgebaut. Auf der Suche nach neuen Eigenschaften wurden zum einen die bereits
erwähnten Wellenformen modifiziert oder miteinander kombiniert. Die bekanntesten
Beispiele dafü r sind der Moog-Sägezahn (engl.: moog saw), der durch Addition von
Dreieck- und Sägezahnwelle gewonnen wird und die abgeschnittene Sägezahnwelle
(engl.: spaced saw wave oder peak wave).
Der Oszillator bietet neben der Auswahl der Grundwellenform noch die Möglichkeit
die Frequenz (Tonhöhe), Phase und Lautstärke (Amplitude) einzustellen. Weitere
interessante Effekte lassen sich durch eine Hü llkurve oder einen LFO erzeugen. So
kann eine Hü llkurve komplexe Verläufe fü r die Amplitude (Lautstärkeverläufe) als
auch fü r die Tonhöhe (Frequenzverläufe) steuern oder mit einem LFO kann die
Amplitude (Tremolo) oder Frequenz (Vibrato) geringfü gig moduliert werden.
Weiterhin ist es möglich zwei Oszillatoren so miteinander zu kombinieren, daß sie
sich gegenseitig modulieren (Ring-, Kreuz-, Frequenz- und Amplitudenmodulation)
oder ein Oszillator (Master) einen anderen (Slave) synchronisiert, d.h. jedesmal wenn
der Master eine komplette Periode durchlaufen hat, zwingt er auch den Slave von
vorn zu beginnen.
52
3.4.2
Hüllkurve
Natü rliche Klänge sind nur sehr selten eintönig, sondern besitzen einen dynamischen
Lautstärkeverlauf, der sich zeitlich ändert. In diesem Verlauf unterscheidet man
zwischen Einschwingungsphase, stationärer Phase und Ausschwingungsphase. In der
Synthesizertechnik wird dieses Verhalten durch eine Hü llkurve (auch als Envelope
bezeichnet) nachgeahmt. Diese wird ASR-Hü llkurve genannt, wobei A fü r Attack
(Einschwingungsphase), S fü r Sustain (stationäre Phase) und R fü r Release
(Ausschwingungsphase) steht. Die ASR-Hü llkurve wurde später noch erweitert und
ist heute als ADSR-Hü llkurve (Abb. 19) in fast allen Synthesizern zu finden. Das
zusätzliche D steht fü r Decay und erweitert die Einschwingungsphase, so daß auch
Lautstärke
eine abgeschwächte stationäre Klangphase möglich ist.
D
S
A
R
Zeit
Abbildung 19: ADSR-Hüllkurve
Aufgrund ihrer doch recht niedrigen Flexibilität entwickelte man andere Konzepte
fü r Hü llkurven. Das Ziel war jetzt nicht mehr nur die Zeitanteile fü r Attack, Decay,
Sustain und Release sowie die Anschlagdynamik fü r die Sustain-Phase einstellen zu
können, sondern auch den Level fü r Attack, Decay und Release zu bestimmen. Das
Resultat war das Mehrstufen-Modell, das die gewü nschten Eigenschaften vorweisen
konnte.
3.4.3
Verstärker
Die Aufgabe des Verstärkers (engl.: Amplifier) liegt darin, ein durchgehendes
Sample (Signal) in seiner Intensität abzuschwächen und mü ß te folglich eigentlich
Verschwächer heiß en. Der Verstärker wird fast immer auf die Lautstärke eines
53
Klanges angesetzt. Ist der Lautstärkepegel eines Verstärkers auf 0% eingestellt, so
wird das Signal vollkommen ausgelöscht, bei 50% wird es halbiert und bei 100%
wird es gar nicht verändert. Stattet man nun einen Verstärker zusätzlich noch mit
einer Hü llkurve aus, können einfache bis komplexe Lautstärkeverläufe erzeugt
werden, die einen Klang oft erheblich aufwerten.
3.4.4
Filter
Ein Filter hat die Aufgabe bestimmte Frequenzbereiche eines Klanges unverändert
passieren zu lassen. Alle anderen Frequenzen werden abgeschwächt oder sogar
ausgelöscht. Dadurch können sehr viele neue Klangfarben erzeugt werden. Die
Parameter eines Filters sind die Arbeitsfrequenz (auch Kenn- oder Eckfrequenz;
engl.: cuttoff frequency), die Flankensteilheit und die Stärke der Resonanz (engl.:
resonance oder peak). Die Arbeitsfrequenz ist ein Schwellenwert. Das Filter bleibt
inaktiv, solange der Wert eines Signals unter bzw. ü ber dem der Arbeitsfrequenz
liegt. Erst wenn dieser ü ber- bzw. unterschritten wird, tritt das Filter in Aktion und
verringert die Intensität des passierenden Signals. Dies geschieht nicht sofort,
sondern es verringert die Intensität des Signals in Abhängigkeit zur Flankensteilheit.
Die Resonanz sorgt zusätzlich dafü r, daß alle Signale, die im näheren Bereich der
Arbeitsfrequenz liegen, verstärkt werden. Filter werden aufgrund ihrer Eigenschaften
unterschieden: Tiefpaß filter (Abb. 20) eliminieren alle hohen Frequenzen und
Hochpaß filter (Abb. 20) schwächen alle tiefen Frequenzen ab. Das Bandsperrfilter
verringert alle Frequenzen im definierten Bereich und das Bandpaß filter läß t die
Signale mit den gü ltigen Frequenzen passieren.
Cuttoff
Amplitude
Amplitude
Cuttoff
Tiefpaß
Frequenz
Hochpaß
Frequenz
Abbildung 20: Tiefpaß- und Hochpaßfilter
54
Setzt man einen LFO auf einen der Parameter eines Filters an, so können durch die
Modulation interessante Effekte erzielt werden. Eine Hü llkurve ermöglicht zudem
noch komplexe Ä nderungen, die sich einsetzen lassen, um einen Klangfarbenverlauf
zu realisieren.
3.4.5
Effekte
Effekte werden oft eingesetzt, um einem Klang besondere Eigenschaften zu
verleihen, die ein Syntheseverfahren nicht ermöglicht. Deshalb besitzen einige
Synthesizer eine Effektsektion. Man unterscheidet grundsätzlich vier Arten von
Effekten: Diese sind Lautstärke-, Zeitverzögerungs-, Wellenformungs- und
Frequenzeffekte. Zu den Effekten fü r die Lautstärke zählen Tremolo, Panning und
variable Lautstärkeveränderung (Compression, Expansion, Noise-Gating). Die
Zeitverzögerungseffekte stellen u.a. Echo, Reverberation (Hall), Chorus, Flanging
und Phasing bereit, während Distortion zu den Wellenformungseffekten gehört. Die
letzte Art sind die Frequenzeffekte Vibrato, Pitch-Shifting, Wah-Wah und Vocoding.
55
56
4
Digitale Klangsynthese mit Hilfe
Genetischer Algorithmen
4.1
Implementation der Klassenbibliotheken
Damit mein Ansatz verwirklicht werden konnte, muß te ich entsprechende
Bibliotheken fü r die Arbeit mit Genetischen Algorithmen und FM-Synthesizern
entwickeln. Bei der Implementation wurde von Anfang an auf die Effektivität der
Bibliotheken geachtet, da Horner und Wehn mit hohen, aber besonders Garcia mit
teilweise extremen Rechenzeiten zu kämpfen hatten. Die Bibliotheken fü r die
Genetischen Algorithmen und FM-Synthesizer wurden in der Programmiersprache
Java geschrieben. Fü r die Entwicklung wurde Java 1.4 (JDK SE 1.4.0 Beta 3)
verwendet. Die virtuelle Maschine wurde unter der Version 1.4 (JRE 1.4.0 Beta 3)
betrieben.
4.1.1
Genetische Algorithmen
Das grundlegende Gerü st der Genetischen Algorithmen habe ich in der abstrakten
Klasse AbstractEvolution vereinigt. Der Ablauf einer Evolution ist annähernd so, wie
ich es bereits im Punkt 2.3 beschrieben habe. Die Evolutionsklasse verfü gt ü ber die
notwendige Reproduktions- und Ersetzungsstrategie sowie eine Population, die alle
Individuen
einer
Generation
enthält.
Die
einzige
Funktion
der
Klasse
AbstractEvolution, die noch vom Programmierer implementiert werden muß , ist
prepareInitialPopulation() (Abb. 21). Sie ist fü r die Bereitstellung einer
Ausgangspopulation verantwortlich.
public class XxxEvolution extends AbstractEvolution {
public void prepareInitialPopulation() {
// Bildung der Ausgangspopulation
}
}
Abbildung 21: Ableitung der Klasse AbstractEvolution
57
Damit die Ausgangspopulation erstellt und Folgepopulationen bewertet werden
können, muß
noch eine weitere abstrakte Klasse näher spezifiziert werden:
AbstractIndividual (Abb. 22). Ein solches Individuum besitzt genau ein Chromosom
und die wichtige Schnittstelle Evaluation. Ein Chromosom besteht aus einer
Ansammlung von Elementen eines bestimmten primitiven Datentyps. Zur Zeit habe
ich nur binäre (BinaryChromosome), ganzzahlige (IntegerChromosome) und reelle
(DoubleChromosome) Datentypen realisiert. Einer dieser drei Typen muß ausgewählt
werden. Mit den Eigenschaften des entsprechenden Datentyps eines Chromosoms
kann ein Algorithmus fü r dessen Dekodierung entwickelt werden. Die Dekodierung
eines Chromosoms wird im Interface Evaluation verwendet, welches die
Implementation der beiden Funktionen realizeEvaluation() und realizeFitness()
erfordert. Diese Methoden sind fü r die Bildung der Fitneß eines Individuums
zuständig und werden von der Funktion evaluate() nacheinander ausgefü hrt: Zuerst
realizeEvaluation(), in der das Chromosom dekodiert wird und die erhaltenen
Parameter des Optimierungsproblems in die Zielfunktion eingesetzt werden. Danach
realizeFitness(), in der, wenn es nötig ist, eine Anpassung der vorher berechneten
Rohfitneß vorgenommen werden kann.
public class XxxIndividual extends AbstractIndividual {
public XxxIndividual() {
super (new IntegerChromosome(size));
}
public void realizeEvaluation() {
// Dekodierung des Chromosoms
// Bewertung des Individuums => Rohfitne ß
}
public void realizeFitness() {
// Anpassung der Rohfitneß => Fitneß
}
}
Abbildung 22: Ableitung der Klasse AbstractIndividual
Die Realisierung der abstrakten Klassen AbstractEvolution und AbstractIndividual
stellt die Hauptarbeit dar, wenn ein spezifisches Problem durch diese Bibliothek
implementiert werden soll. In Abbildung 23 sind die Strukturen und Beziehungen der
wichtigsten Schnittstellen und Klassen dieser Bibliothek fü r Genetische Algorithmen
grafisch dargestellt:
58
<<interface>>
Evolution
<<abstract>>
AbstractEvolution
<<interface>>
Reproduction
<<interface>>
Replacement
<<interface>>
Evaluation
Population
<<interface>>
Individual
<<abstract>>
AbstractIndividual
<<interface>>
Chromosome
Binary
Chromosome
Integer
Chromosome
Double
Chromosome
Abbildung 23: Klassenstruktur für den Genetischen Algorithmus
Die beiden Interfaces Reproduction und Replacement benötigen keiner weiteren
Implementation durch den Programmierer. Sie sind bereits vollständig realisiert, was
ich im Folgenden kurz erläutern möchte. Fü r das Interface Reproduction habe ich
eine abstrakte Klasse AbstractReproduction definiert. Jede Reproduktionsstrategie,
die von dieser Klasse ableitet, hat Zugriff auf drei Interfaces, die als Genetische
Operatoren fü r die Selektion, Kreuzung und Mutation verantwortlich sind. Fü r die
Selektion von Individuen aus einer Population ist das Interface Selection zuständig.
Dieses habe ich wiederum als abstrakte Klasse (AbstractSelection) erweitert. Auf
dieser basieren die bereitgestellten Selektionsverfahren fü r den Wettkampf
(TournamentSelection), das Ranking (RankedSelection) und die Skalierung
(ScaledSelection). Die Funktionsweise der Verfahren wurde schon im Punkt 2.6.1
dargestellt. Neben der Selektion von Individuen mü ssen selbige auch verändert
werden können, um neue Nachkommen zu schaffen. Diese Aufgabe wird vom
Kreuzungs- und Mutationsoperator ü bernommen. Die Kreuzung wird durch das
Interface Crossover und die Mutation durch das Interface Mutation repräsentiert. Zu
beiden Interfaces habe ich abstrakte Klassen geschrieben, die die Wahrscheinlichkeit
fü r das Ausfü hren des jeweiligen Operators enthalten. Eine direkte Implementation
59
der unterschiedlichen Kreuzungs- und Mutationstechniken, wie ich sie in den
Punkten 2.6.2 und 2.6.3 beschrieben habe, war nicht möglich, da ich verschiedene
primitive Datentypen fü r die Chromosomen zugelassen habe. Aus diesem Grund
habe ich fü r jeden Datentyp eine eigene abstrakte Klasse vorgesehen. Fü r die
Kreuzung sind dies BinaryCrossover, IntegerCrossover, DoubleCrossover und fü r
die Mutation BinaryMutation, IntegerMutation, DoubleMutation. Aus diesen
Klassen können dann die eigentlichen Operatoren fü r die Kreuzung und Mutation
hervorgehen, die die entsprechende Funktion cross() aus dem Interface Crossover
und mutate() aus dem Interface Mutation realisieren. So habe ich u.a. die Ein-PunktKreuzung (XxxSingleCrossover), die Zwei-Punkt-Kreuzung (XxxDualCrossover) und
die gleichmäß ige Kreuzung (XxxUniformCrossover) sowie die gleichmäß ige
Mutation (XxxUniformMutation) realisiert, wobei Xxx fü r den jeweiligen primitiven
Datentyp (Binary, Integer, Double) steht.
<<interface>>
Reproduction
<<abstract>>
AbstractReproduction
<<interface>>
Crossover
<<interface>>
Selection
<<interface>>
Mutation
<<abstract>>
AbstractCrossover
<<abstract>>
AbstractSelection
<<abstract>>
AbstractMutation
<<abstract>>
BinaryCrossover
RankedSelection
<<abstract>>
BinaryMutation
<<abstract>>
IntegerCrossover
TournamentSelection
<<abstract>>
IntegerMutation
<<abstract>>
DoubleCrossover
ScaledSelection
<<abstract>>
DoubleMutation
Abbildung 24: Klassenstruktur für die Reproduktion
Eine standardmäß ig realisierte Variante der Klasse AbstractReproduction liegt vor.
Die entsprechende Klasse heiß t DefaultReproduction. Die Funktion reproduce(), die
aus dem Interface Reproduction stammt, ist bereits nach dem Schema in Abbildung 2
(Zeilen 5 bis 8) implementiert. Wie fü r die Reproduktionsstrategie habe ich auch fü r
die Schnittstelle Replacement, die das Ersetzungsverfahren repräsentiert, eine
60
abstrakte Klasse AbstractReplacement definiert. Auf der Basis dieser Klasse habe ich
drei wichtige Verfahren fü r die Ersetzung von Individuen einer Population
umgesetzt. Dazu zählen die Generationsersetzung (GenerationReplacement), der
starke und schwache Elitismus (ElitismReplacement) sowie der dynamische
Elitismus (DynamicElitismReplacement). Die Entwicklung weiterer Strategien fü r
die Ersetzung ist möglich. Dazu muß die Klasse AbstractReplacement abgeleitet und
die Funktion replace() implementiert werden.
<<interface>>
Replacement
<<abstract>>
AbstractReplacement
Generation
Replacement
DynamicElitism
Replacement
Elitism
Replacement
Abbildung 25: Klassenstruktur für die Ersetzung
Abschließ end möchte ich noch einmal zusammenfassen, welche Schritte fü r die
Implementation eines Optimierungsproblems mit Hilfe dieser Bibliothek notwendig
sind:
·
Spezifikation eines Verfahrens, das alle Parameter der Zielfunktion aus dem
Chromosom ausliest bzw. dekodiert.
·
Spezifikation der Klasse AbstractIndividual, d.h. Realisierung der Funktionen
realizeEvaluation() und realizeFitness(), um die Fitneß eines Individuums zu
bestimmen.
·
Spezifikation der Klasse AbstractEvolution, d.h. Realisierung der Funktion
prepareInitialPopulation(), um eine Ausgangspopulation zu erschaffen.
Sobald alle genannten Schritte vollzogen sind, kann der Genetische Algorithmus wie
folgt gestartet werden: Als erstes muß ein neues Objekt der Klasse XxxEvolution
erzeugt werden. Danach können Konfigurationen vorgenommen werden, wie etwa
die Auswahl eines geeigneten Ersetzungsverfahrens, eines Selektions-, Kreuzungsoder Mutationsoperators, einer Populationsgröß e und einer maximalen Anzahl an
61
Generationen. Im Anschluß wird die Funktion evolve() aufgerufen, mit welcher der
Genetische Algorithmus letztendlich aktiviert wird.
public class XxxMain {
public static void main(String[] args) {
XxxEvolution ev = new XxxEvolution();
// Konfiguration => ev.setXxx();
ev.evolve();
// Präsentation der Resultate
}
}
Abbildung 26: Erzeugung und Start des Genetischen Algorithmus
Neben der Anzahl an Generationen, die vom Algorithmus durchlaufen werden,
können auch noch weitere Abbruchbedingungen spezifiziert werden. Dafü r muß das
Interface TerminationCondition bzw. dessen Funktion terminate() implementiert und
zu der entsprechenden Evolutionsklasse XxxEvolution durch die Funktion
addTerminationCondition() hinzugefü gt werden. Der Genetische Algorithmus bricht
dann am Ende einer Generation ab, wenn eine der zusätzlichen Abbruchbedingungen
wahr wird oder die maximale Anzahl an Generationen erreicht wurde.
4.1.2
FM-Synthesizer
Der von mir implementierte Synthesizer fü r die FM-Synthese wird von der Klasse
FMSynthesizer repräsentiert (Abb. 27). Er kann sowohl die Frequenz als auch die
Phase eines Oszillators modulieren. Der Synthesizer verfü gt ü ber ein Objekt der
Klasse FMAlgorithm, welches die Verknü pfungen der Operatoren bestimmt. Ein
Algorithmus besitzt eine bestimmte Anzahl an Operatoren, dabei mindestens 2 fü r
eine Träger-Modulator Beziehung. Demnach besteht der einfachste Algorithmus fü r
eine Frequenzmodulation aus nur zwei Operatoren. Diese können parallel oder
kaskadenförmig miteinander verbunden sein. Die Ausgangssignale der Operatoren
der untersten Ebene (Träger) werden durch Addition miteinander verknü pft. In einem
Operator befinden sich ein Oszillator (FMOscillator) und eine Hü llkurve
(FMEnvelope), die im mathematischen Sinne zeitabhängige Funktionen darstellen.
Die ausgehenden Signale des Oszillators und der Hü llkurve werden durch eine
Multiplikation miteinander verknü pft. Die Klasse FMOscillator kann durch 4
62
statische Eingänge (Amplitude, Frequenz, Phase und Wellentyp) sowie einen
dynamischen Parameter, der fü r den Modulationsoperator vorgesehen ist, gesteuert
werden. Wenn kein Modulationsoperator vorhanden ist, dann wird die Frequenz bzw.
Phase des entsprechenden Operators nicht moduliert. Ein spezielles Flag ermöglicht
zudem noch die Rü ckfü hrung (Feedback) des Ausgangssignals zum Zeitpunkt t, um
es als Modulationskomponente zum Zeitpunkt t + 1 einsetzen zu können. In der
Klasse FMEnvelope wurde eine ADSR-Hü llkurve realisiert, die durch 5 Parameter
gesteuert werden kann. Dabei entsprechen die ersten beiden Parameter den
Zeitanteilen fü r die Einschwingungsphase (Attack und Decay), der zweite und dritte
Parameter den Zeitanteilen der stationären (Sustain) und der Ausschwingungsphase
(Release). Der letzte Parameter regelt die Intensität der stationären Phase. Das
Ausgangssignal der Hü llkurve liegt zwischen 0 und 1.
<<abstract>>
FMComponent
FMAddition
FMSynthesizer
FMEnvelope
FMOperator
<<abstract>>
Wavetable
FMAlgorithm
Sine
Wavetable
FMOscillator
Triangle
Wavetable
Saw
Wavetable
Square
Wavetable
Abbildung 27: Klassenstruktur für den FM-Synthesizer
Die Gleichung des einfachsten Algorithmus mit kaskadenförmiger Verbindung der
Form fCAR(fMOD()) ist nachfolgend fü r die Frequenzmodulation [8] und fü r die
Phasenmodulation [9] formuliert, wobei fC, pC und AC die Frequenz, Phase und
Amplitude des Trägers sind und fM, pM sowie AM die Frequenz, Phase und
Amplitude des Modulators, MI der Modulationsindex sowie t die Zeit.
[8]
[9]
( (
)
)
A C ( t ) sin(2 π fC t + p C + M I A M ( t ) sin(2 π fM t + pM ))
A C ( t ) sin 2 π fC + M I A M ( t ) sin(2 π fM t + pM ) t + p C
Die Amplitude des Trägers (AC) und Modulators (AM) entspricht hier der oben
genannten zeitabhängigen Hü llkurvenfunktion. Die parallele Verbindung der beiden
63
Operatoren kann man als Additive Synthese betrachten, was natü rlich auch fü r mehr
als zwei Operatoren gilt. Bei dieser Form der Operatorenverknü pfung wird allerdings
auch keine Modulation der Frequenz oder Phase vorgenommen, wie nachfolgend zu
sehen ist:
[10]
A C1( t ) sin(2 π fC1 t + p C1 ) + A C2 ( t ) sin(2 π fC2 t + p C2 )
Anstelle der hier verwendeten Sinusfunktion (sin) kann auch eine andere
Grundwellenform, wie etwa die Dreieck-, Rechteck- oder Sägezahnwelle eingesetzt
werden. Dies kann ü ber die Funktion setWavetable() in der Klasse FMOscillator
erreicht werden. Die Funktion fordert als Parameter ein Wellentabellen-Objekt
(abstrakte Klasse Wavetable). Zur Auswahl stehen 4 Klassen, die von Wavetable
abgeleitet und realisiert wurden: SineWavetable (Sinus), TriangleWavetable
(Dreieck), SquareWavetable (Rechteck) und SawWavetable (Sägezahn).
4.2
Klanganalyse
Damit ich auf eine Vergleichsbasis zurü ckgreifen kann, benötige ich eine
charakteristische Darstellung eines Klanges. Ich habe mich dabei fü r das
Frequenzspektrum eines Klanges entschieden. Die gesuchten Frequenzbänder des
Spektrums können mit Hilfe der Fouriertransformation berechnet werden. Diese
versucht eine stetige Funktion, in diesem Fall ein kurzer Abschnitt eines Klanges, in
seine Sinuskomponenten zu zerlegen. Allerdings handelt es sich bei den zu
analysierenden Abschnitten um digitale Klänge und dementsprechend wird fü r deren
Analyse die sogenannte Discrete Fourier Transformation (DFT) verwendet. Von
der zu untersuchenden Funktion wird ein Fenster von N zusammenhängenden
Punkten (Samples) herausgegriffen und analysiert. Da diese Methode fü r groß e
Fenster mit N2 Rechenoperationen sehr rechenintensiv ist und viele Redundanzen
aufweist, verwende ich die Fast Fourier Transformation (FFT). Sie stellt eine
optimierte Form der diskreten Fouriertransformation dar und benötigt Dank einer
ausgeklü gelten Technik (bit reverse ordering) von Cooley und Tukey (1965) nur
noch N log(N) Rechenoperationen. Einzige Voraussetzung fü r die FFT ist, daß die
Anzahl der Samples (Fenstergröß e) einer Zweierpotenz entspricht. Demnach werden
ü blicherweise Fenstergröß en von 64, 128, 256, 512 usw. bis zu 65536 angewendet.
64
Das resultierende Ergebnis der schnellen Fouriertransformation ist ein Vektor der
Größ e N / 2, in dem das Spektrum des untersuchten Klangabschnittes hinterlegt
wurde. Bei den Vektorelementen handelt es sich, je nach Fenstergröß e, um mehr
oder weniger präzise Frequenzbänder. Dabei gilt: Je kleiner ein Fenster ist, desto
kleiner wird die Frequenzauflösung (mehr Frequenzen pro Frequenzband), d.h. das
Ergebnis wird immer ungenauer. Erhöht man dagegen die Fenstergröß e, steigt auch
die Frequenzauflösung (weniger Frequenzen pro Frequenzband) und demzufolge
wird auch das Ergebnis immer genauer. In der folgenden Abbildung ist das Ergebnis
der Fourieranalyse einer kurzen Sinusschwingung zu sehen:
256 Samples
150
128 Frequenzbänder
125
100
100
50
75
0
-50
50
-100
25
-150
0
0
50
100
150
200
0
250
25
50
75
100
125
- Frequenz (Sinus) bei 200 Hz
- 128 Frequenzbänder á 31,25 Hz
- Abtastrate bei 8000 Hz
- Frequenz (Sinus) im 7. Frequenzband
- Nyquistfrequenz bei 4000 Hz
Abbildung 28: Zeit- und Frequenzdomä ne
Es kann manchmal passieren, daß im ermittelten Spektrum plötzlich Frequenzen
auftreten, die aber im analysierten Klangabschnitt ü berhaupt nicht vorkommen.
Diese falschen Frequenzen werden als Artefakte bezeichnet. Die Ursache fü r deren
Entstehung liegt in der beliebigen Auswahl eines bestimmten Abschnittes im Klang,
dessen Signal normalerweise stetig verläuft. Doch das erste und letzte Sample eines
Abschnittes unterscheiden sich meist stark in ihrem Wert, wie es auch beim abrupten
Wechsel in einer Sägezahn- oder Rechteckwelle der Fall ist und verursachen dadurch
die ungewollten Frequenzanteile. Der Einsatz einer Fensterfunktion vor Beginn der
Fouriertransformation kann diesen Effekt abschwächen oder sogar beseitigen. Dazu
werden die Signale an den Seiten des Analysefensters abgeschwächt. Die Stärke und
Form der Abschwächung wird durch eine geeignete Funktion festgelegt. Fü r diesen
Zweck gibt es eine Vielzahl an Funktionen mit unterschiedlichen Eigenschaften.
Dazu zählen Rechteck-Funktion (rectangular function) ohne eine Abschwächung,
65
Dreieck-Funktion (triangular function), Blackman-, Hamming- oder HanningFunktion. In Abb. 29 werden die Auswirkungen von drei Funktionen verglichen.
150
Rechteck-Fensterfunktion
125
100
100
50
75
0
50
-50
25
-100
0
-150
0
150
50
100
150
200
250
25
50
75
100
125
0
25
50
75
100
125
0
25
50
75
100
125
Dreieck-Fensterfunktion
125
100
100
50
75
0
-50
50
-100
25
-150
0
0
150
0
50
100
150
200
250
Blackman-Fensterfunktion
125
100
100
50
75
0
-50
50
-100
25
-150
0
0
50
100
150
200
250
Abbildung 29: Fensterfunktionen Rechteck, Dreieck und Blackman
Durch die Anwendung der Rechteck-Funktion sind zwar die Amplituden im
Ergebnis der Frequenzanalyse am deutlichsten ausgeprägt, allerdings können hier
auch Artefakte vorkommen. Die Dreiecks-Funktion vermindert das Auftreten der
falschen Frequenzanteile und besitzt noch relativ deutliche Amplitudenwerte. Die
Blackman-, Hamming- und Hanning-Funktion leisten gute Arbeit bei der
Eliminierung der Artefakte, liefern aber mittelmäß ige Amplitudenwerte.
4.3
Realisierung des Genetischen Algorithmus
Mit dem Vorliegen der beiden Bibliotheken fü r Genetische Algorithmen (Lösen von
Optimierungsproblemen) und FM-Synthesizer (Produktion von Klängen durch das
Verfahren der Frequenz- oder Phasenmodulation) konnte nun ein spezifischer
66
Genetischer Algorithmus fü r die Entwicklung eines optimierten FM-Synthesizers
realisiert werden. Die in 4.1 genannten Schritte fü r das Dekodierungsverfahren, den
Evaluationsmechanismus und die Erstellung der Ausgangspopulation wurden
realisiert.
4.3.1
Aufbau eines Chromosoms
Die Informationen fü r den Aufbau eines FM-Synthesizers werden aus einem
Chromosom des Typs IntegerChromosom ausgelesen. Das Alphabet der Instanzen
dieser Klasse wird auf ganzen Zahlen im Bereich von 0 bis 9 beschränkt. Die
Position der Instruktionen fü r den strukturellen Aufbau und die einzelnen Parameter
werden durch die Klasse RevivalDecoder definiert. Damit ü bernimmt sie auch die
Aufgabe der Interpretation und Dekodierung eines FM-Synthesizer-Chromosoms.
Damit aus einem Chromosom ein gü ltiger FM-Synthesizer konstruiert werden kann,
ist zunächst die Anzahl der verwendeten Operatoren notwendig, wobei bis zu n
dieser Operatoren in jeweils gleich groß en Segmenten nacheinander im Chromosom
untergebracht werden. Ein Operatorensegment enthält die eigentlichen Gene des
Chromosoms.
FM-Synthesizer-Chromosom
Operator 1
Operator 2
...
Operator n
STI
STI
WAV
FRE
PHA
MOD
FDB
ATT
DEC
SUS
REL
LEV
25
98
65
63873
61092
6594
2
032
510
494
369
854
Struktur
Oszillator
Hüllkurve
Abbildung 30: Aufbau eines FM-Synthesizer-Chromosoms
Die Algorithmen der FM-Synthese sind immer graphenförmig, wobei ein Groß teil
davon zu einer baumförmigen Struktur erweitert werden kann. Graphenförmige
Algorithmen werden i.d.R. nur verwendet, wenn eine Knappheit an Operatoren
67
besteht. In diesem Fall wird ein Operator als Modulator fü r zwei oder mehr
Operatoren genutzt. Da bei Softwaresynthesizern eine solche Knappheit nicht
vorliegt, können fü r mehrere Operatoren einzelne Modulatoren verwendet werden.
Die Erweiterung eines graphenförmigen zu einem baumförmigen Algorithmus ist in
Abbildung 31 dargestellt.
Graphenstruktur
Erweiterung
Baumstruktur
Abbildung 31: Graphen- und Baumstrukturen
Die ersten beiden Gene (STI) dienen nun der Indizierung eines Feldes, das Vektoren
enthält, welche wiederum die Anweisungen fü r den strukturellen Aufbau des
Algorithmus der FM-Synthese beinhalten. Beide Gene besitzen eine Länge von 2
und können daher Werte zwischen 0 und 99 annehmen. Sie enthalten die
Informationen fü r die Feldkoordinaten, welche durch Konvertierung des Allels des
ersten Gens in den Bereich [0; 2] und des zweiten Gens in den Bereich [0; 1]
berechnet werden können.
Strukturgen (Information)
Genlänge
Quellintervall
Zielintervall
STI (Feldkoordinate 1)
2
[0; 99]
[0; 2]
STI (Feldkoordinate 2)
2
[0; 99]
[0; 1]
Indiziert man nun das Feld mit den berechneten Koordinaten, erhält man einen der
insgesamt 6 möglichen Vektoren mit den Anweisungen fü r den strukturellen Aufbau.
Ein ausgewählter Vektor enthält drei ganzzahlige Elemente, dessen Werte zwischen
0 und 2 liegen und demnach drei verschiedenen Anweisungen entsprechen. Diese
haben fü r den strukturellen Aufbau folgende Bedeutung:
·
Anweisung 1 (Wert 0): Operator soll als Modulator kaskadenförmig zum
Vorgänger eingeordnet werden. Sollte dies nicht möglich sein, wird die
nächste Alternative Anweisung aus dem Vektor ausgefü hrt.
68
·
Anweisung 2 (Wert 1): Operator soll als Modulator parallel zum letzten
Modulator eingeordnet werden. Sollte dies nicht möglich sein, wird die
nächste alternative Anweisung aus dem Vektor ausgefü hrt.
·
Anweisung 3 (Wert 2): Operator wird als Träger eingeordnet. Diese
Anweisung kann immer erfolgreich ausgefü hrt werden.
Das erste Element des Vektors ist die primäre Anweisung, die beiden anderen
Elemente sind Alternativen. Eine der beiden Alternativen ist immer funktionsfähig,
falls die primäre Anweisung nicht durchgefü hrt werden konnte. Die Vorteile des
Verfahrens liegen auf der Hand: Ich benötige keine Reparaturmechanismen fü r
Chromosomen, die durch Kreuzung oder Mutation beschädigt wurden. Auch von
einer dynamisch veränderlichen Größ e der Chromosomen kann abgesehen werden.
Ich habe bereits erste Testläufe mit diesem Verfahren durchgefü hrt und die
Ergebnisse waren sehr vielversprechend. Durch die lineare Struktur eines
Chromosoms bei den Genetischen Algorithmen sind die hinteren Operatoren leider
von den vorderen abhängig, d.h. eine Mutation in einem der Strukturgene bei den
vorderen Operatoren könnte starke strukturelle Auswirkungen auf den entwickelten
Algorithmus haben, während eine Mutation bei einem der hinteren Operatoren
weniger stark ausfallen wü rde.
Die Gene 3 bis 7 (WAV, FRE, PHA, MOD und FDB) enthalten die genetischen
Informationen fü r den Oszillator. Das dritte Gen (WAV) liefert bei einer Länge von
2 einen Wert von 0 bis 99. Nach einer linearen Transformation in den Bereich [0; 3]
indiziert es eine der 4 Grundwellenformen Sinus, Dreieck, Rechteck oder Sägezahn.
Das vierte und fü nfte Gen (FRE und PHA) stellen die Frequenz und Phase bereit. Mit
einer Genlänge von jeweils 5 können sie Werte zwischen 0 und 99999 annehmen.
Die Transformation der Frequenz hängt allerdings von der maximal darstellbaren
Frequenz des Originalklangs ab und bewegt sich dementsprechend im Bereich von 0
bis zur Nyquistfrequenz. Die Phase wird in das Intervall [0; 2Π ] transformiert. Das
sechste Gen (MOD) enthält den Wert fü r den Modulationsindex, der von der Höhe
der Frequenz abhängig ist und in das Intervall [0; f / 2] transformiert wird. Das
siebente Gen (FDB) ist eigentlich nur eine binäre Anweisung, ob ein Oszillator sich
selbst moduliert (Feedback) oder nicht. Es besitzt die geringste Genlänge von 1 und
69
kann demnach Werte von 0 bis 9 annehmen. Durch eine Transformation wird es in
einen binären Wert umgewandelt.
Oszillatorgen (Information)
Genlänge
Quellintervall
Zielintervall
WAV (Grundwellenform)
2
[0; 99]
[0; 3]
FRE (Frequenz)
5
[0; 99999]
[0; Nyquistfrequenz]
PHA (Phase)
5
[0; 99999]
[0; 2Π ]
MOD (Modulationsindex)
4
[0; 9999]
[0; f / 2]
FDB (Feedback)
1
[0; 9]
[0; 1]
Mit Hilfe der ausgelesenen Werte kann der Oszillator (FMOscillator) des aktuellen
Operators konfiguriert werden. Danach beginnt die Dekodierung der Parameter fü r
die Hü llkurve, was im folgenden Abschnitt beschrieben wird.
Die Gene 8 bis 12 (ATT, DEC, SUS, REL und LEV) enthalten die genetischen
Informationen fü r die Parameter der Hü llkurve. Das achte und neunte Gen (ATT und
DEC) bestimmen den Anteil fü r die Einschwingungsphase, das zehnte Gen (SUS)
den Anteil fü r die stationäre Phase und das elfte Gen (REL) den Anteil fü r die
Ausschwingungsphase. Die vier zuvor genannten Gene haben alle eine Länge von 3
und können demnach Werte von 0 bis 999 annehmen. Eine Transformation findet
nicht statt, sondern die Werte der Gene werden direkt an ein Objekt der Klasse
FMEnvelope weitergeleitet, wo sie noch einer Normalisierung unterzogen werden.
Das letzte Gen (LEV) enthält die Information fü r die Stärke der stationären Phase
und besitzt die gleiche Genlänge wie die anderen Hü llkurvengene. Damit kann es
auch Werte im Bereich [0; 999] annehmen, die wiederum in gebrochene Zahlen
umgewandelt werden, die im Intervall [0; 1] liegen.
Hüllkurvengen (Information)
Genlänge
Quellintervall
Zielintervall
ATT (Attack-Anteil)
3
[0; 999]
[0; 999]
DEC (Decay-Anteil)
3
[0; 999]
[0; 999]
SUS (Sustain-Anteil)
3
[0; 999]
[0; 999]
REL (Release-Anteil)
3
[0; 999]
[0; 999]
LEV (Sustain-Level)
3
[0; 999]
[0; 1]
Mit Hilfe der ausgelesenen Werte können die Eigenschaften der Hü llkurve
(FMEnvelope) des entsprechenden Operators eingestellt werden.
70
Wenn die Struktur des Algorithmus vollständig aufgebaut ist und die Oszillatoren
sowie Hü llkurven aller Operatoren richtig konfiguriert wurden, dann kann der
Algorithmus (FMAlgorithm) der Instanz eines Synthesizers (FMSynthesizer)
ü bergeben werden. Damit liegt ein gü ltiger Synthesizer fü r Frequenz- oder
Phasenmodulation vor. Durch die anschließ ende Synthese und Analyse des Klanges
(siehe 4.3.2), kann dessen Leistungsfähigkeit durch einen Vergleich mit dem
Frequenzspektrum des Originalklanges ermittelt werden. Ein auf diese Weise
strukturiertes Chromosom ermöglicht zudem die unbekü mmerte Verwendung
vorhandener Kreuzungs- und Mutationsoperatoren fü r den Typ IntegerChromosome
(siehe 4.3.4).
4.3.2
Erzeugung und Bewertung eines Individuums
Ein FM-Synthesizer Individuum habe ich von der Klasse AbstractIndividual
abgeleitet und als RevivalIndividual realisiert. Bei der Erzeugung eines neuen
Individuums wird auch ein Chromosom des Typs IntegerChromosom instanziert. Die
Länge des Chromosoms kann von der Klasse RevivalDecoder bestimmt werden. Das
Alphabet wird durch die entsprechenden Methoden der Klasse IntegerChromosom
spezifiziert. Ein Zeichen kann dann ganze Zahlen im Bereich von 0 bis 9 annehmen.
Nachdem das Chromosom in der geforderten Länge vorliegt und das Alphabet
bestimmt wurde, können alle Zeichen mit zufälligen Werten belegt werden. Dies
geschieht auf der Basis von gleichverteilten Zufallszahlen.
Neben einer Möglichkeit fü r die Erzeugung eines Individuums, muß auch dessen
Bewertung spezifiziert werden. Damit dies möglich ist, habe ich die Funktionen
realizeEvaluation() und realizeFitness() aus dem Interface Evaluation realisiert. Die
Bewertung eines Individuums wird durch die Zielfunktion realizeEvaluation()
ermittelt. Dies geschieht in drei Schritten: Zuerst kommt der RevivalDecoder zum
Einsatz. Er interpretiert bzw. dekodiert ein Chromosom und baut aus den
entschlü sselten Informationen einen gü ltigen FM-Synthesizer auf. Danach folgt das,
was die Synthesizer am besten können, nämlich einen Klang erzeugen. Der
Syntheseprozeß wird allerdings nicht den kompletten Klang erstellen, vielmehr
werden viele einzelne Abschnitte synthetisiert, die ü ber den gesamten Zeitraum der
71
Synthese verteilt sind. Diese Abschnitte definiere ich hiermit als Synthesefenster,
dessen Länge immer gleich ist. Die Größ e der Synthesefenster entspricht der Größ e
der Fenster fü r die Fouriertransformation. Die Verteilung der Synthesefenster habe
ich in linearer und logarithmischer Form vorgesehen. Die lineare Verteilung
behandelt alle Zeitpunkte des zu synthetisierenden Klanges völlig gleichberechtigt.
Der Zeitpunkt flin(x) eines Synthesefensters x wird durch die folgende Formel
berechnet:
[11]
flin ( x ) =
S max
( x - 1)
N win - 1
x = 1, 2 , K, N win
Dagegen betont die logarithmische Verteilung besonders die Einschwingungsphase,
vernachlässigt dafü r die stationäre Phase und die Ausschwingungsphase. Den
Zeitpunkt flog(x) fü r ein Synthesefenster x berechne ich mit Hilfe der folgenden
Gleichung:
[12]
æ log(N win - x + 1) ö
÷÷
flog ( x ) = S max çç1 log
(
N
1
)
è
win
ø
x = 1, 2 , K, N win
Die in den Gleichungen verwendeten Variablen Smax und Nwin werden vom Nutzer
noch vor Beginn des evolutionären Prozesses angegeben, wobei Smax die maximale
Anzahl der verteilbaren Zeitpunkte bzw. Sample-Positionen im Klang ausdrü ckt und
Nwin die Anzahl der Analyse- bzw. Synthesefenster angibt.
linear
f(xNwin)
f(x1)
Zeit t in Samples
f(x1)
f(xNwin)
logarithmisch
Abbildung 32: Verteilung der Synthesefenster
Nachdem die Positionen der Synthesefenster bestimmt wurden, werden fü r diese
Zeitabschnitte die entsprechenden Klangschnipsel synthetisiert und der schnellen
72
Fouriertransformation unterzogen. Die aus der FFT resultierenden Nwin Spektren der
Abschnitte des Syntheseklangs werden mit den passenden Nwin Spektren des
Originals verglichen, die zu Beginn meines Verfahrens ermittelt wurden. Ich benutze
nun die folgende Formel fü r den Vergleich der Frequenzbänder von Original- (FO)
und Syntheseklang (SO):
[13]
e=
æ Nws - 1
å çç å FO w i - FS w i
w =1 è i = 0
Nwin
w = 1, 2 , K, N win
und
ö
÷
÷
ø
i = 0 , 1, K, N ws - 1
Dabei entsprechen die in der Formel angegebenen Variablen w einem der Nwin
Analysefenster der Fouriertransformation und i einem der Nws Frequenzbänder aus
der Frequenzanalyse des Fensters w. Das Ergebnis e beschreibt den Fehler des
synthetisierten Klanges in Bezug auf das Original und stellt die Rohfitneß fü r ein
Individuum dar. Damit gilt folgender Zusammenhang: Je größ er die Rohfitneß ist,
desto schlechter kann ein Individuum den Originalklang imitieren und je kleiner der
Wert desto besser kann es das Original nachbilden. Der Fehlerwert 0 wü rde somit
einer perfekten Nachbildung entsprechen. Da meine Bibliothek fü r die Genetischen
Algorithmen eine Maximumsuche durchfü hrt und der oben beschriebene Prozeß eine
Fehlersuche (Minimierung) ist, muß
die Rohfitneß
dementsprechend angepaß t
werden. Dies habe ich mit der Implementation der Funktion realizeFitness()
verwirklicht. Durch eine Negation der Rohfitneß eines jeden Individuums kann die
Minimierung des Fehlers als Maximumsuche dargestellt werden.
4.3.3
Realisierung des Evolutionsprozesses
Nachdem nun ein Dekodierungsverfahren fü r ein FM-Synthesizer-Chromosom, ein
Mechanismus fü r dessen Erzeugung und ein Verfahren fü r die Bewertung der Fitneß
eines Individuums spezifiziert wurden, fehlt nur noch ein Mechanismus fü r die
Bildung der Ausgangspopulation und das Grundgerü st des Genetischen Algorithmus.
Dieses wird durch die abstrakte Klasse AbstractEvolution bereitgestellt, die ich
bereits im Punkt 4.1.1 erläutert habe. Dementsprechend habe ich durch deren
Ableitung die Klasse RevivalEvolution erstellt, die auch die Realisierung der
73
Funktion prepareInitialPopulation() erforderte. Die Bildung der Ausgangspopulation
wird dabei durch die Instanzierung von N Individuen des Typs RevivalIndividual
erreicht, wobei N fü r die Populationsgröß e steht. Einige Parameter des
Evolutionsprozesses werde ich von vornherein fest einstellen und eine Ä nderung
durch den Nutzer nicht mehr zulassen. Dazu zählt auch der Typ der
Reproduktionsstrategie, welche fü r die Bildung der Nachkommen zuständig ist. Ich
greife hier auf die standardmäß ig implementierte Klasse DefaultReproduction
zurü ck, die nach dem Konzept in Abbildung 2 (Zeile 5 bis 8) arbeitet.
4.3.4
Genetische Operatoren
Die Selektion wird mit den in 2.6.1 beschriebenen Funktionalitäten (rangbasierte und
skalierte Selektion sowie Wettkampfselektion) und den in 4.1.1 implementierten
Formen (RankedSelection, ScaledSelection und TournamentSelection) verwendet.
Als Kreuzungsoperatoren setze ich, aufgrund des verwendeten Chromosomentyps
IntegerChromosome, die dazu passenden Klassen IntegerXxxCrossover ein, wobei
Xxx hier fü r das verwendete Kreuzungsverfahren (Ein-Punkt-Kreuzung, Zwei-PunktKreuzung usw.) steht. Die Funktionsweise der ganzzahligen Kreuzungsverfahren ist
mit denen der binären (siehe 2.6.2) identisch.
Auch der Mutationsprozeß ist vom Typ IntegerChromosome abhängig. Aus diesem
Grund benutze ich die Klassen fü r die ganzzahlige Mutation (IntegerXxxMutation).
Besonders sei hier die gleichmäß ige Mutation (IntegerUniformMutation) erwähnt,
die ähnlich wie die binäre Variante funktioniert: Jedes Zeichen im Chromosom wird
auf die Wahrscheinlichkeit hin getestet, ob es mutiert wird oder nicht, d.h. fü r jedes
Zeichen wird eine gleichverteilte reelle Zufallszahl im Intervall [0; 1] ermittelt und
wenn diese kleiner ist als die Mutationswahrscheinlichkeit, dann findet die Mutation
an der entsprechenden Position statt. In diesem Fall wird ein neuer Wert fü r das
betreffende Zeichen durch eine gleichverteilte ganzzahlige Zufallszahl ermittelt, die
im Bereich von 0 bis 9 liegt.
74
4.4
Die Applikation Revival
Der zuvor beschriebene evolutionäre Prozeß arbeitet ohne Interaktionen mit einem
Nutzer und kann demnach als automatisiert angesehen werden. Jedoch soll es
möglich sein, daß ein Nutzer vor Beginn des Prozesses ü ber einige Eigenschaften fü r
den Genetischen Algorithmus, die Klanganalyse und -synthese bestimmen darf.
Weiterhin soll der Nutzer nach der Entwicklung eines Synthesizers dessen
Algorithmus und die optimierten Parameter der Operatoren ansehen können. Aus
diesem Grund habe ich meine Applikation Revival mit einer grafischen Schnittstelle
ausgestattet.
Abbildung 33: Applikation Revival
Die Schnittstelle ermöglicht die Konfiguration aller nötigen Parameter auf einfache
Weise und präsentiert dem Nutzer die Ergebnisse des Evolutionsprozesses. Der
Ablauf einer Evolution mit Revival wird in vier Phasen vollzogen: In der ersten
Phase (Konfigurationsphase) mü ssen die Parameter fü r den Prozeß von einem Nutzer
ausgewählt werden. In der zweiten Phase (Analysephase) ü bernimmt das Programm
die Kontrolle und analysiert den Originalklang in Bezug auf sein Spektrum. In der
dritten Phase (Evolutionsphase) beginnt die eigentliche Arbeit meines Verfahrens.
Der implementierte Genetische Algorithmus RevivalEvolution versucht nun einen
75
FM-Synthesizer zu entwickeln, der am Ende die Fähigkeit besitzen soll, den
vorgegebenen
Klang
annähernd
nachzubilden.
Nachdem
der
kü nstliche
Evolutionsprozeß terminiert, werden die Ergebnisse der Analyse- und besonders der
Evolutionsphase ausgewertet und fü r den Nutzer grafisch aufbereitet. In der vierten
Phase (Präsentationsphase) werden dem Nutzer dann die vorbereiteten Ergebnisse
präsentiert.
Nutzer
Konfigurationsphase
Analysephase
Evolutionsphase
Präsentationsphase
Nutzer
Abbildung 34: Evolution eines FM-Synthesizers mit Revival
Ich habe noch zusätzlich die Möglichkeit fü r das Abspeichern einer aktuellen
Konfiguration als Datei (*.par) ermöglicht. Zu einem späteren Zeitpunkt kann diese
erneut geladen und verwendet werden, ohne alle Einstellungen noch einmal
spezifizieren zu mü ssen.
4.4.1
Konfigurationsphase
In dieser Phase kann der Nutzer verschiedene Parameter fü r den Genetischen
Algorithmus (RevivalEvolution), die Fouriertransformation (FFT) und Klangsynthese
(FMSynthesizer) konfigurieren sowie einen Klang auswählen, der nachgebildet
werden soll. Diese vier Parametergruppen werden in den drei folgenden Schritten
spezifiziert:
Der erste Schritt ist die Auswahl eines Originalklanges, der als WAV-Datei im PCMFormat geladen werden kann. Zusätzlich werden einige Informationen des
76
angegebenen Klangs wie die Samplerate, die Anzahl der Samples und die Spieldauer
angezeigt. Die Applikation Revival verarbeitet nur einen Kanal eines Klangs (Mono).
Sollte ein Klang mit zwei Kanälen (Stereo) geladen werden, dann wird nur der linke
Kanal verwendet. Neben dem Originalklang, kann auch eine WAV-Datei angegeben
werden, in welcher der synthetisierte Klang des besten Individuums des gesamten
Evolutionsprozesses abgespeichert wird. Dieser Klang wird ausschließ lich im MonoFormat gespeichert.
Der zweite Schritt befaß t sich mit der Konfiguration der Parameter fü r den
Genetischen Algorithmus. Mit den entsprechenden Feldern können die Größ e der
Population, die maximale Anzahl an Generationen, ein Selektionsverfahren, eine
Ersetzungsstrategie, der Initialisierungstyp fü r den Zufallsgenerator, ein Mutationsund Kreuzungsoperator sowie die Wahrscheinlichkeiten fü r Mutation und Kreuzung
eingestellt werden. Dabei sind folgende Beschränkungen und Vorgaben zu beachten:
Die Populationsgröß e (Population size) kann mindestens 2 bis maximal 200
Individuen betragen. Ein Wert, der kleiner oder größ er ist, macht keinen Sinn und
verschwendet
nur
unnötig
Ressourcen.
Die
maximale
Generationsanzahl
(Generations) fordert einen Wert von 10 bis 1000. Die möglichen Optionen fü r ein
Selektionsverfahren (Selection) sind Wettkampfselektion, lineare und nicht lineare
rangbasierte Selektion sowie linear, logarithmisch und exponentiell skalierte
Selektion. Als Ersetzungsstrategie (Replacement) kann der starke und schwache
Elitismus (mit einem Eliteanteil von 10%, 25% oder 50%), die Generationsersetzung
und der Dynamische Elitismus (mit 10%, 25% und 50% maximalem Eliteanteil)
eingestellt werden. Der Kreuzungsoperator (Crossover) wird durch die Verfahren der
Ein-Punkt-Kreuzung, der Zwei-Punkt-Kreuzung (mit und ohne Translokation) und
der gleichmäß igen Kreuzung sowie der Mischform aus Ein-Punkt- (1/3) und ZweiPunkt-Kreuzung mit Translokation (2/3) bei möglichen Wahrscheinlichkeitsraten
von 10% bis 100% spezifiziert. Als Mutationsoperator (Mutation) können die
gleichmäß ige Mutation, die Inversions- und Transloktionsmutation angegeben
werden, wobei die Mutationswahrscheinlichkeit im Rahmen von 0% bis 25%
geregelt wird. Der Zufallsgenerator (Random seed) kann mit einem festen Wert
(letzter Initialisierungswert), dem Wert 0 (Reset) oder der aktuellen Zeit initialisiert
werden.
77
Der dritte Schritt ermöglicht die Einstellung der Parameter fü r die Analyse und
Synthese eines Klanges. In Bezug auf die Klanganalyse können Größ e der
Analysefenster, Abdeckungsrate, Verteilung und Art der Fensterfunktion festgelegt
werden. Die Größ e eines Fensters (FFT window size) wird durch einen der Werte 64,
128, 256, 512, 1024, 2048, 4096 oder 8192 bestimmt. Die Anzahl der Fenster wird
durch die Abdeckungsrate (FFT window rate) im Bereich von 1% bis 150%
bestimmt. Die Verteilung der Analysefenster (FFT window distribution) kann linear
oder logarithmisch (Betonung der Einschwingungsphase) erfolgen. Die möglichen
Optionen fü r die Fensterfunktion (FFT window function) sind Dreieck, Hamming,
Hanning, Blackman, Bartlett und Rechteck. In Bezug auf die Klangsynthese können
die Anzahl der Operatoren (Operator number) von mindestens einem bis maximal
100 Operatoren und der Typ der Modulationssynthese (Modulation type) als
Frequenz- oder Phasenmodulation konfiguriert werden.
4.4.2
Analysephase
Diese Phase dient der Ermittlung des Frequenzspektrums des Originalklangs durch
die Fouriertransformation, wobei die in 4.4.1 angegebenen Parameter verwendet
werden. Bevor die Frequenzanalyse beginnen kann, mü ssen zuerst die Zeitpunkte fü r
die Analysefenster mit Hilfe der Verteilungsfunktion berechnet und in einem Vektor
abgelegt werden, da sie später noch fü r die Frequenzanalyse der synthetisierten
Klänge Anwendung finden. Danach wird die Fouriertransformation fü r jedes der Nwin
Analysefenster durchgefü hrt. Die daraus resultierenden Nws/2 Frequenzbänder pro
Fenster werden in einem Feld (FO) hintergelegt. Die Ergebnisse sind Voraussetzung
fü r die Evolutionsphase, wo sie dann mit den Spektren der synthetisierten Klänge
(FS) verglichen werden.
4.4.3
Evolutionsphase
Dies ist ohne Zweifel der wichtigste Teil meines Verfahrens. Hier wird mit Hilfe der
Genetischen Algorithmen ein FM-Synthesizer entwickelt und optimiert. Das nötige
Grundgerü st fü r den kü nstlichen Evolutionsprozeß (siehe 2.3 und 4.3.3) wird durch
die Klasse RevivalEvolution zur Verfü gung gestellt. Der Ablauf der Prozedur beginnt
78
mit der Konfiguration der Instanz und dem Aufruf der Funktion evolve(): Diese fü hrt
als erstes die von mir in 4.3.3 realisierte Funktion prepareInitialPopulation() aus, die
eine Ausgangspopulation erzeugt. Danach wird die soeben erstellte Population noch
bewertet (siehe 4.3.2). Anschließ end beginnt der iterative Teil des Genetischen
Algorithmus. Zuerst werden mit Hilfe der Reproduktionsstrategie Nachkommen
gebildet, wobei sich deren Anzahl nach der Größ e der aktuellen Population richtet.
Die Bildung von genau zwei Nachkommen wird demnach durch die Selektion von
ebenfalls zwei Elternindividuen und deren Kreuzung erreicht. Anschließ end folgt
noch die Mutation der Nachkommen. Wenn genü gend Kinderindividuen gebildet
wurden, werden diese bewertet. Danach wird die Ersetzungsstrategie aufgerufen, um
die Population der vorhergehenden Generation und die erzeugten Nachkommen fü r
die nächste Generation zu bilden. Da bei manchen Ersetzungsverfahren (z.B.
schwacher Elitismus) noch zusätzlich Veränderungen am genetischen Material der
Individuen (Mutationen) vorgenommen werden, muß die aktuelle Population noch
einmal bewertet werden. Solange die maximale Generationsanzahl nicht erreicht ist,
wird der Prozeß von Reproduktion, Bewertung der Kinder, Ersetzung, Bewertung der
aktuellen Population, Ermittlung des besten Synthesizers fortgesetzt.
1
Konfiguration der Instanz RevivalEvolution
2
Bildung einer Ausgangspopulation von Synthesizern
3
Bewertung der Ausgangspopulation
4
Wiederhole solange nicht genügend Nachkommen gebildet wurden
5
Selektion von zwei Individuen (Eltern)
6
Kreuzung der Eltern (Nachkommen)
7
Mutation der Nachkommen
8
Evaluation der Nachkommen
9
Aufruf der Ersetzungsstrategie
10
Evaluation der aktuellen Population
11
Ermittlung des besten Synthesizers dieser Generation
12
Wiederhole solange Terminierungsbedingung nicht wahr ist
Abbildung 35: Ablauf der Evolutionsphase
79
Damit ein Nutzer schon während dieser Phase einen groben Eindruck ü ber den
Fortschritt des Prozesses erhält, werden im Status-Fenster der Applikation Revival,
beim Auftreten eines neuen besten Individuums, Informationen wie Generation,
Fitneß des Individuums und die durchschnittliche Fitneß der aktuellen Population
angezeigt. Da die Evolutionsphase sehr viel Zeit in Anspruch nehmen kann, wurde
zusätzlich ein Abbruchmechanismus eingebaut. Wenn die kü nstliche Evolution
abgeschlossen ist oder vorzeitig beendet wurde, folgt die Aufbereitung der
Ergebnisse fü r die Präsentationsphase.
4.4.4
Präsentationsphase
In der vierten und letzten Phase kann sich der Nutzer die vorbereiteten Ergebnisse
ansehen. Dort gibt es drei verschiedene Ansichten. Die erste Ansicht (Sound
evolvement) zeigt den Original- und Syntheseklang sowohl in der Zeit- als auch in
der Frequenzdomäne. Es ist möglich den originalen Klang und die synthetisierten
Klänge der besten Synthesizer aller Generationen anzusehen und anzuhören.
Abbildung 36: Ansicht Sound evolvement
In der nächsten Ansicht (Algorithm evolvement) wird der beste Synthesizer des
Evolutionsprozesses, genauer gesagt dessen Algorithmus und Parameter, als Baum
dargestellt. Die Blätter und Knoten entsprechen den verwendeten Operatoren, von
80
denen der Typ (Träger = CAR oder Modulator = MOD) und die Informationen zu
den Parametern des Oszillators sowie der Hü llkurve ausgegeben werden. Dies sind
fü r den Oszillator der Wellentyp (WF = Sinus | Dreieck | Sägezahn | Rechteck), die
Frequenz (F), die Amplitude (A), die Phase (P), der Modulationsindex (MI – nur
wenn nötig) und der Feedback-Indikator (FB = ja | nein) sowie fü r die Hü llkurve die
prozentualen Anteile der Einschwingungsphase (A, D), der stationären Phase (S)
inklusive Level (L) und der Ausschwingungsphase (R).
Abbildung 37: Ansicht Algorithm evolvement
Die letzte Ansicht (Fitness evolvement) bietet eine Darstellung der Entwicklung der
Fitneß ü ber den gesamten Zeitraum der kü nstlichen Evolution, wobei die x-Achse
dem Generationsverlauf und die y-Achse dem Fitneß wert des jeweils besten
Individuums einer Generation entspricht.
Abbildung 38: Ansicht Fitness evolvement
81
4.5
Experimente
Mit Hilfe der von mir entwickelten Applikation Revival habe ich eine Reihe von
Experimenten durchgefü hrt. Basierend auf den Ergebnissen konnte ich mir einen
Ü berblick ü ber die Abhängigkeiten und Zusammenhänge bestimmter Einfluß größ en
sowie ü ber eventuelle Schwachstellen in meinem Verfahren verschaffen. Die dafü r
benötigten Klänge habe ich aus dem Synthesizer meiner Soundkarte aufgenommen.
Es handelt sich vorwiegend um klassische Instrumente wie Klavier, Trompete, Orgel
oder Harfe. Die Klangbeispiele sind jeweils 2 Sekunden lang. Sie wurden mit einer
Abtastfrequenz von 8000 Hz und einer Genauigkeit von 16 Bit pro Sample kodiert.
Die vorliegenden Klänge habe ich zuerst nach einer standardmäß igen Konfiguration
(siehe 4.5.1) untersucht. Da der Test vieler Klänge einen erheblichen Zeitaufwand
darstellt, habe ich mich auf zwei Klänge beschränkt, die ich fü r meine Experimente
verwende: Einen Trommelschlag (TaikoDrum.wav) und einen Klavierklang
(Piano.wav). Alle anderen Instrumente werden anhand der standardmäß igen und
später einer möglichst optimalen Konfiguration nur einmal getestet.
Alle Experimente wurden auf dem gleichen Computer durchgefü hrt, der mit einem
AMD-Athlon Prozessor (550 MHz) ausgestattet ist und ü ber 512 MB Arbeitspeicher
verfü gt. Als Betriebssystem wurde Windows 2000 eingesetzt. Wie bereits erwähnt,
verwende ich die Java Runtime Environment der Version 1.4.0 Beta3.
4.5.1
Standardkonfiguration
Schon während der Implementation meines Verfahrens habe ich sehr viele Versuche
durchgefü hrt. Dabei haben sich allmählich bestimmte Werte fü r einen Groß teil der
Parameter herauskristallisiert. Alle anderen Werte basieren entweder auf eigenen
Erfahrungen oder auf Erkenntnissen aus einigen Quellen dieser Arbeit. Hier die
ausgewählten Parameterwerte (GA = Genetische Algorithmen; KA = Klanganalyse;
KS = Klangsynthese):
·
(GA) Populationsgröß e: 24 Individuen
·
(GA) Generationsanzahl: 250 Generationen
82
·
(GA) Selektionsverfahren: Wettkampfselektion
·
(GA) Ersetzung: Dynamischer Elitismus mit max. Anteil der Elite von 10%
·
(GA) Kreuzungsoperator: Ein-Punkt-Kreuzung (33%) und Zwei-PunktKreuzung mit Translokation (67%) bei einer Kreuzungswahrscheinlichkeit
von 75% (Kreuzungsrate meistens im Bereich von 60% – 90%)
·
(GA) Mutationsoperator: Gleichmäß ige Mutation bei einer Mutationsrate von
2% (ü bliche Werte sind 1% – 3%)
·
(GA) Initialisierung des Zufallsgenerators mit einem festen Wert
·
(KA) Fenstergröß e: 256 Samples
·
(KA) Abdeckung: 75%
·
(KA) Verteilung der Fenster: linear
·
(KA) Fensterfunktion: Dreieck
·
(KS) Anzahl der Operatoren: 6 (auch in digitalen FM-Synthesizern werden
i.d.R. nur 4 oder 6 Operatoren verwendet)
·
(KS) Modulationstyp: FM
Die Resultate der folgenden Experimente werden alle in tabellarischer Form
dargestellt. In der ersten Spalte ist die Art des Experiments festgehalten. Die nächste
Spalte zeigt die Rechenzeit (gerundet auf Minuten), die fü r die Entwicklung eines
Synthesizers benötigt wurde. Die dritte Spalte enthält die letzte Generation, in der
eine strukturelle Ä nderung im Algorithmus des besten Synthesizers stattfand. In der
letzten Spalte ist der prozentuale Fehler von einem Durchlauf meines Verfahrens
aufgefü hrt (bester Fitneß wert der Ausgangspopulation durch den besten Fitneß wert
der letzten Generation mal 100 in Prozent). Die folgende Tabelle zeigt die Resultate
eines Durchlaufs fü r die Klänge eines Klaviers (Piano.wav) und einer Trommel
(TaikoDrum.wav), die auch fü r die weiteren Experimente verwendet wurden:
Klavier / Trommel
Zeit [min]
LSV [Generation]
Fehler [%]
Standardkonfiguration
20 / 21
232 / 208
13,2 / 9,3
Wie der Tabelle zu entnehmen ist, dauerte die Berechnung der Syntheseklänge
durchschnittlich 20 Minuten. Eine feste Struktur fü r den Algorithmus wurde in
83
beiden Fällen erst sehr spät gefunden. Bei beiden Klängen konnte bereits in der 75.
Generation eine Fehlerrate von unter 20% erreicht werden, die sich dann allerdings
bis zum Ende des Prozesses nur noch geringfü gig verbesserte. Die durchschnittlichen
Grundfrequenzen (Klavier 262 Hz und Trommel 76 Hz) wurden sehr genau
nachgebildet und die Dynamik der Klänge kann als gut gewertet werden.
4.5.2
Parameter des Genetischen Algorithmus
Die ersten Experimente drehen sich alle um die Parameter der Genetischen
Algorithmen. Abgesehen von der Populationsgröß e und der maximalen Anzahl an
Generationen, sollten die Parameter keinen schwerwiegenden Einfluß auf den Prozeß
ausü ben, solange sie nicht extreme Werte annehmen.
Experiment EXP452-A. Variation der Populationsgrö ße. Es wurden die folgenden
Testfälle betrachtet: 6, 12, 24, 36 und 48 Individuen in der Population des
kü nstlichen Evolutionsprozesses.
Klavier / Trommel
Zeit [min]
LSV [Generation]
Fehler [%]
EXP452-A1: 6 Individuen
5/5
24 / 15
15,4 / 9,3
EXP452-A2: 12 Individuen
10 / 10
167 / 17
16,0 / 10,0
EXP452-A3: 24 Individuen (STD)
20 / 21
232 / 208
13,2 / 9,3
EXP452-A4: 36 Individuen
30 / 30
249 / 15
12,2 / 10,0
EXP452-A5: 48 Individuen
42 / 42
250 / 126
13,6 / 10,1
Es ist ersichtlich, daß sogar bei einer Populationsgröß e von nur 6 Individuen immer
noch eine erstaunlich niedrige Fehlerrate erreicht wird (und das bei einem Viertel der
Zeit des Standards). Das beste Hörergebnis und damit die beste Nachbildung des
Originals gelang mit der Standardkonfiguration von 24 Individuen. Ein höherer Wert
fü r die Populationsgröß e scheint nicht angebracht, da einerseits keine besseren
Ergebnisse zu erwarten sind und andererseits die Rechenzeit kontinuierlich ansteigt.
Experiment 452-B: Variation der maximalen Generationsanzahl. Die folgenden
Testfälle wurden untersucht: 50, 100, 150, 200, 250, 300, 350, 400, 450 und 500
Generationen bis zur Terminierung der kü nstlichen Evolution.
84
Klavier / Trommel
Zeit [min]
LSV [Generation]
Fehler [%]
EXP452-B1: 50 Generationen
4/4
39 / 50
29,0 / 18,2
EXP452-B2: 100 Generationen
8/8
92 / 50
14,3 / 12,6
EXP452-B3: 150 Generationen
12 / 12
125 / 149
13,8 / 9,9
EXP452-B4: 200 Generationen
16 / 17
157 / 168
13,7 / 9,4
EXP452-B5: 250 Generationen (STD)
20 / 21
232 / 208
13,2 / 9,3
EXP452-B6: 300 Generationen
24 / 25
232 / 296
11,7 / 9,1
EXP452-B7: 350 Generationen
28 / 29
232 / 348
10,9 / 9,0
EXP452-B8: 400 Generationen
32 / 33
232 / 400
10,5 / 8,9
EXP452-B9: 450 Generationen
36 / 38
232 / 401
10,4 / 8,9
EXP452-B10: 500 Generationen
40 / 42
232 / 401
10,3 / 8,9
Erwartungsgemäß verbesserte sich die Fitneß der besten Individuen im Laufe des
kü nstlichen Evolutionsprozesses. In den ersten 100 Generationen geschah dies sehr
schnell, danach nur noch schwach. Die aus den besten Synthesizern resultierenden
Klänge konnte ich ab einer bestimmten Generation (Klavier 350 und Trommel 200)
nicht mehr unterscheiden.
Experiment 452-C. Variation der Selektionsstrategie. Es wurden die drei folgenden
Verfahren betrachtet: Wettkampfselektion, nicht lineare Rangselektion und
exponentiell skalierte Selektion.
Klavier / Trommel
Zeit [min]
LSV [Generation]
Fehler [%]
EXP452-C1: Wettkampfsel. (STD)
20 / 21
232 / 208
13,2 / 9,3
EXP452-C2: nicht lineare Rangsel.
21 / 20
183 / 183
11,5 / 9,2
EXP452-C3: exponentiell skalierte Sel.
21 / 20
240 / 181
12,6 / 9,0
Keines der eingesetzten Selektionsverfahren kann einen entscheidenden Vorteil
vorweisen. Im Gegensatz zum Standard können die nicht lineare Rangselektion und
die exponentiell skalierte Selektion jedoch eine geringfü gig bessere Fehlerrate
erreichen.
Experiment 452-D. Variation der Ersetzungsstrategie. Die folgenden Verfahren fü r
die Ersetzung wurden untersucht: Starker und schwacher Elitismus mit einem
Eliteanteil von 10%, 25% und 50%; dynamischer Elitismus mit einem maximalen
Anteil der Elite von 10%, 25% und 50%.
85
Klavier / Trommel
Zeit [min]
LSV [Generation]
Fehler [%]
EXP452-D1: st. Elitismus 10%
20 / 21
230 / 63
12,7 / 10,3
EXP452-D2: st. Elitismus 25%
21 / 21
152 / 224
26,2 / 9,1
EXP452-D3: st. Elitismus 50%
21 / 21
32 / 72
15,6 / 8,9
EXP452-D4: schw. Elitismus 10%
20 / 20
221 / 214
12,4 / 9,7
EXP452-D5: schw. Elitismus 25%
20 / 19
245 / 24
14,4 / 12,6
EXP452-D6: schw. Elitismus 50%
20 / 20
237 / 247
22,5 / 8,6
EXP452-D7: dyn. Elitismus 10% (STD)
20 / 21
232 / 208
13,2 / 9,3
EXP452-D8: dyn. Elitismus 25%
20 / 21
210 / 222
13,1 / 8,6
EXP452-D9: dyn. Elitismus 50%
20 / 20
144 / 22
16,8 / 9,2
Die Verwendung einer Ersetzungsstrategie mit einem kleinen Anteil der Elite (10%)
scheint die bessere Wahl zu sein, obwohl hier die Ergebnisse der beiden Klänge eher
widersprü chlich ausfallen (starker Elitismus Trommel: niedriger Eliteanteil schlecht,
hoher gut; schwacher Elitismus Klavier: niedriger Eliteanteil gut, hoher schlecht).
Experiment 452-E. Variation der Kreuzungsoperatoren. Es wurden die folgenden
Möglichkeiten untersucht: Mischoperator aus Ein-Punkt-Kreuzung und Zwei-PunktKreuzung mit Translokation; Zwei-Punkt-Kreuzung und gleichmäß ige Kreuzung.
Alle mit einer Kreuzungswahrscheinlichkeit von jeweils 60%, 75% und 90%.
Klavier / Trommel
Zeit [min]
LSV [Generation]
Fehler [%]
EXP452-E1: 1P/2PT-Kreuz. 60%
20 / 20
232 / 208
13,2 / 9,3
EXP452-E2: 1P/2PT-Kreuz. 75% (STD)
20 / 21
232 / 208
13,2 / 9,3
EXP452-E3: 1P/2PT-Kreuz. 90%
19 / 21
47 / 244
12,8 / 9,0
EXP452-E4: 2P-Kreuzung 60%
20 / 19
214 / 6
11,1 / 10,8
EXP452-E5: 2P-Kreuzung 75%
19 / 20
185 / 6
14,3 / 10,0
EXP452-E6: 2P-Kreuzung 90%
20 / 20
34 / 24
14,9 / 10,1
EXP452-E7: gleichm. Kreuzung 60%
20 / 21
14 / 122
21,6 / 7,7
EXP452-E8: gleichm. Kreuzung 75%
21 / 20
112 / 1
13,9 / 8,3
EXP452-E9: gleichm. Kreuzung 90%
21 / 20
163 / 7
23,1 / 9,7
Im Durchschnitt kann die Kombination aus Ein-Punkt-Kreuzung und Zwei-PunktKreuzung mit Translokation die besten Ergebnisse erzielen, besonders bei der Wahl
einer hohen Kreuzungswahrscheinlichkeit (90%). Sehr widersprü chlich sind die
Ergebnisse der gleichmäß igen Kreuzung, wo die Fehlerraten beim Klavier eher
schlecht ausfallen und bei der Trommel eher gut.
86
Experiment 452-F. Variation der Mutationsoperatoren. Es wurden die folgenden
Möglichkeiten untersucht: Gleichmäß ige und dynamisch gleichmäß ige Mutation.
Alle mit einer Mutationswahrscheinlichkeit von jeweils 1%, 2% und 3%.
Klavier / Trommel
Zeit [min]
LSV [Generation]
Fehler [%]
EXP452-F1: gleichm. Mut. 1%
20 / 20
127 / 12
23,5 / 13,7
EXP452-F2: gleichm. Mut. 2% (STD)
20 / 21
232 / 208
13,2 / 9,3
EXP452-F3: gleichm. Mut. 3%
20 / 20
211 / 114
14,0 / 8,7
EXP452-F4: dyn. gleichm. Mut. 1%
21 / 21
232 / 164
25,4 / 15,9
EXP452-F5: dyn. gleichm. Mut. 2%
20 / 20
146 / 233
12,2 / 8,5
EXP452-F6: dyn. gleichm. Mut. 3%
20 / 20
179 / 19
14,1 / 9,9
Die besten Ergebnisse konnten mit der dynamisch gleichmäß igen Mutation und einer
Mutationswahrscheinlichkeit von 2% erzielt werden. Eine Mutationsrate von 1%
behindert den kü nstlichen Evolutionsprozeß sehr stark (doppelte Fehlerrate).
4.5.3
Parameter der Klanganalyse
Experiment 453-A. Variation der Fenstergrö ße. Es wurden die folgenden Werte
untersucht: 64, 128, 256, 512, 1024 und 2048 Samples pro Fenster.
Klavier / Trommel
Zeit [min]
LSV [Generation]
Fehler [%]
EXP453-A1: 64 Samples
20 / 21
249 / 133
17,8 / 10,2
EXP453-A2: 128 Samples
20 / 20
203 / 14
13,8 / 14,2
EXP453-A3: 256 Samples (STD)
20 / 21
232 / 208
13,2 / 9,3
EXP453-A4: 512 Samples
20 / 20
233 / 13
10,3 / 9,1
EXP453-A5: 1024 Samples
20 / 21
215 / 221
9,5 / 12,0
EXP453-A6: 2048 Samples
20 / 21
10 / 5
9,5 / 11,0
Wie erwartet, sind die Resultate mit sehr kleinen Analysefenstern (64, 128) schlecht
ausgefallen (die entwickelten Klänge klingen in Bezug auf das Original entfremdet),
die mit sehr groß en nur in befriedigendem Maß e. Am besten wurden die beiden
Testklänge mit der Standardkonfiguration nachgebildet. Ich weise auch darauf hin,
daß ein Analysefenster mit einer Größ e von 256 Samples in etwa der Genauigkeit
von einem Achtel einer Oktave entspricht.
87
Experiment 453-B. Variation der Abdeckungsrate. Es wurden die folgenden Werte
getestet: 25%, 50%, 75% und 100% Abdeckung des Klanges mit Analysefenstern.
Klavier / Trommel
Zeit [min]
LSV [Generation]
Fehler [%]
EXP453-B1: 25%
7/7
171 / 156
16,2 / 10,0
EXP453-B2: 50%
14 / 14
250 / 220
23,5 / 8,5
EXP453-B3: 75% (STD)
20 / 21
232 / 208
13,2 / 9,3
EXP453-B4: 100%
26 / 27
6 / 17
13,2 / 9,3
Es ist ersichtlich, daß ein gewisses Mindestmaß an Analysefenstern nötig ist, damit
ein Klang einigermaß en gut nachgebildet werden kann. Der Standardwert von 75%
hat sich als gut herausgestellt und eine höhere Abdeckung bewirkt anscheinend keine
weiteren Verbesserungen.
Experiment 453-C. Variation der Fensterverteilung. Die folgenden Testfälle wurden
untersucht: lineare und logarithmische Verteilung der Analysefenster.
Klavier / Trommel
Zeit [min]
LSV [Generation]
Fehler [%]
EXP453-C1: linear (STD)
20 / 21
232 / 208
13,2 / 9,3
EXP453-C2: logarithmisch
17 / 18
7 / 21
34,9 / 19,7
Wie in der Tabelle zu sehen ist, wurden mit Hilfe der logarithmischen Verteilung
keine besseren Ergebnisse erzielt, obwohl beide Klänge eine genaue Nachbildung
ihrer Einschwingungsphase erfordern. Leider ist sogar eine Verschlechterung der
Fehlerrate auf mehr als das Doppelte eingetreten.
Experiment 453-D. Variation der Fensterfunktion. Die folgenden Versuche wurden
durchgefü hrt: Dreieck-, Hamming-, Hanning-, Blackman-, Bartlett- und RechteckFunktion.
Klavier / Trommel
Zeit [min]
LSV [Generation]
Fehler [%]
EXP453-D1: Dreieck (STD)
20 / 21
232 / 208
13,2 / 9,3
EXP453-D2: Hamming
21 / 21
190 / 191
23,6 / 9,5
EXP453-D3: Hanning
19 / 20
6 / 206
13,4 / 9,3
EXP453-D4: Blackman
21 / 21
234 / 17
13,7 / 9,4
EXP453-D5: Bartlett
20 / 21
232 / 208
13,2 / 9,3
EXP453-D6: Rechteck
20 / 21
221 / 219
19,2 / 9,9
88
Die Ergebnisse der verschiedenen Fenster-Funktionen weichen nur in einem sehr
geringen Maß voneinander ab, wobei die hohe Fehlerrate bei der Hamming-Funktion
sicherlich als Ausnahme gewertet werden kann, da sie der Blackman- und HanningFunktion sehr ähnelt. Die Rechteck-Funktion, die keine Ä nderungen an den Werten
vornimmt, hat, im Gegensatz zu den anderen Fensterfunktionen, erwartungsgemäß
schlecht abgeschnitten.
4.5.4
Parameter der Klangsynthese
Experiment 454-A. Variation der Anzahl der Operatoren. Es wurden die folgenden
Möglichkeiten untersucht: Verwendung von 2, 4, 6, 8, 10, 15 und 20 Operatoren fü r
den Algorithmus der FM-Synthese.
Klavier / Trommel
Zeit [min]
LSV [Generation]
Fehler [%]
EXP454-A1: 2 Operatoren
8/8
0/0
11,1 / 11,4
EXP454-A2: 4 Operatoren
14 / 15
11 / 11
14,8 / 10,3
EXP454-A3: 6 Operatoren (STD)
20 / 21
232 / 208
13,2 / 9,3
EXP454-A4: 8 Operatoren
26 / 27
241 / 199
13,0 / 10,2
EXP454-A5: 10 Operatoren
33 / 33
199 / 225
12,2 / 10,9
EXP454-A6: 15 Operatoren
47 / 48
248 / 234
17,2 / 17,5
EXP454-A7: 20 Operatoren
64 / 65
242 / 239
19,6 / 32,3
Das Experiment hat gezeigt, daß schon 2 bis 6 Operatoren genü gen, um eine gute
Nachbildung der Originalklänge zu erreichen. Eine Verwendung von sehr vielen
Operatoren scheint nicht angebracht zu sein, da die Fehlerrate mit steigender Zahl
der Operatoren (ab etwa 10 Operatoren) immer schlechter wird.
4.5.5
Optimierte Standardkonfiguration
Basierend auf den bisher durchgefü hrten Experimenten, habe ich eine optimierte
Standardkonfiguration mit den folgenden Ä nderungen erstellt:
·
(GA) Generationsanzahl: 400 Generationen
·
(GA) Selektionsverfahren: nicht lineare Rangselektion
89
·
(GA) Ersetzung: Dynamischer Elitismus mit max. Anteil der Elite von 10%
·
(GA) Kreuzungsoperator: Ein-Punkt-Kreuzung (33%) und Zwei-PunktKreuzung mit Translokation (67%) bei einer Kreuzungsrate von 90%
·
(GA) Mutationsoperator: Dynamisch gleichmäß ige Mutation bei einer
Mutationsrate von 2%
·
(GA) Initialisierung des Zufallsgenerators mit einem neuen festen Wert
Alle anderen Parameter des Genetischen Algorithmus, der Klangsynthese und der
Klanganalyse werden nicht verändert. Auf der Grundlage der nun vorliegenden
optimierten Standardkonfiguration habe ich einen weiteren Test durchgefü hrt. In der
folgenden Tabelle sind die Testergebnisse der beiden Konfigurationen (Standard und
optimiert) fü r mehrere Klangbeispiele aufgefü hrt:
Klang (Standard / optimiert)
Zeit [min]
LSV [Generation]
Fehler [%]
Banjo – Banjo.wav
21 / 29
119 / 6
25,9 / 13,6
Kirchenorgel – ChurchOrgan.wav
19 / 31
4 / 226
38,8 / 34,8
Harfe – Harp.wav
20 / 31
8 / 365
18,6 / 11,6
Orgel – Organ.wav
19 / 29
2/3
34,7 / 27,0
Klavier – Piano.wav (STD)
20 / 33
232 / 350
13,2 / 9,9
Flächenklang – SlowString.wav
21 / 30
212 / 19
35,5 / 29,6
Gitarre – SteelGuitar.wav
20 / 32
22 / 295
18,6 / 12,3
Synthy 1 – SweepPad.wav
21 / 32
206 / 198
28,6 / 24,0
Trommel – TaikoDrum.wav (STD)
21 / 33
208 / 129
9,3 / 8,1
Trompete – Trumpet.wav
21 / 33
224 / 378
41,9 / 33,7
Glocke – TubularBells.wav
20 / 33
31 / 17
15,0 / 11,4
Synthy 2 – WarmPad.wav
20 / 33
249 / 286
32,3 / 24,4
Durch die Optimierung der Standardkonfiguration konnte die durchschnittliche
Fehlerrate von 26% (Standard) auf 20% gesenkt werden. Im Gegenzug ist die
Rechenzeit im Schnitt auf etwa 32 Minuten angestiegen. Die Ursache dafü r liegt in
der höher gewählten Anzahl von 400 statt 250 Generationen, die bis zur
Terminierung des kü nstlichen Evolutionsprozesses durchlaufen werden. Auffällig ist,
daß einige Klangbeispiele (z.B. Orgel und Trompete) ü berdurchschnittlich schlecht
abschneiden.
90
4.5.6
Experiment 455 (Banjo)
Nachdem ich nun alle angedachten Experimente durchgefü hrt habe, möchte ich
abschließ end noch die Entwicklung eines FM-Synthesizers fü r zwei Beispielklänge
ausfü hrlich darlegen. Als erstes Beispiel dient der Klang eines Banjos (Banjo.wav),
das zur Familie der Gitarren gehört. Fü r die Einstellung der Parameter wird die
optimierte Standardkonfiguration (siehe 4.5.5 und 4.5.1) verwendet.
Abbildung 39: Zeitdomä ne (oben) und Frequenzdomä ne (unten) des Originalklangs (Banjo)
Wie in Abb. 39 zu sehen ist, besitzt der Klang eine Grundfrequenz (höchste Spitze
im Frequenzspektrum) von knapp 800 Hz (genau: 786 Hz). Nachdem die kü nstliche
Evolution abgeschlossen war, konnte ich folgende Beobachtungen machen: In den
ersten 6 Generationen wurde die Struktur fü r den Algorithmus der FM-Synthese
entwickelt. Die Fehlerrate sank dabei sehr schnell auf 57,1%. Danach folgten einige
Generationen, in denen keine Verbesserungen erzielt wurden, d.h. es konnte
wahrscheinlich kein besserer Algorithmus gefunden werden. Ab der 10. Generation
wurden nur noch die Parameter der Oszillatoren und Hü llkurven optimiert. In der
111. Generation ist die Fehlerrate bereits auf 17,7% gesunken und die Grundfrequenz
des Klanges (783 Hz) sowie die Frequenzen einiger naheliegender Obertöne wurden
sehr gut nachgebildet. Während der letzten 289 Generationen wurden fast nur noch
Ä nderungen an den Parametern der Hü llkurve vorgenommen.
91
Abbildung 40: Entwicklung der Fitneß(Banjo)
Die entwickelte Struktur besteht nur aus Trägern und enthält keine Modulatoren. Je
ein Träger ist fü r die Erzeugung genau eines Teiltons zuständig (alle Oszillatoren
nutzen Sinusschwingungen). Ein derartiger Algorithmus entspricht eigentlich eher
dem Verfahren der Additiven Synthese, findet aber oft auch bei der FM-Synthese
Anwendung.
T1
T2
T3
T4
T5
T6
Abbildung 41: Entwickelte Struktur (Banjo)
Abbildung 42: Zeitdomä ne (oben) und Frequenzdomä ne (unten) des Syntheseklangs (Banjo)
92
4.5.7
Experiment 451 (Trommel)
Als zweites Beispiel dient der Klang einer Trommel (TaikoDrum.wav). Fü r die
Einstellung der benötigten Parameter wurde die Standardkonfiguration aus 4.5.1
angewandt.
Abbildung 43: Zeitdomä ne (oben) und Frequenzdomä ne (unten) des Originalklangs (Trommel)
Wie in Abb. 43 zu sehen ist, besitzt der Klang eine Grundfrequenz von knapp 80 Hz
(genau: 76 Hz). Nach der Terminierung des kü nstlichen Evolutionsprozesses konnte
ich folgende Beobachtungen machen: In den ersten 50 Generationen wurde intensiv
nach einer passenden Struktur gesucht und gleichzeitig eine Optimierung der
Parameter vorgenommen. Die Fehlerrate sank dementsprechend schnell auf 18,2%
herab. Danach konnte ü ber 80 Generationen lang keine besser geeignete Struktur
gefunden werden. Erst in Generation 144 wurde ein passender Algorithmus ermittelt,
mit einer Fehlerrate von 10,0%. Es gab zwar auch später noch vereinzelt Ä nderungen
in der Struktur (Generationen 149, 168, 206, 208), aber diese hatten kaum Einfluß
auf das Ergebnis. Die Ursache liegt im entsprechenden Trägerstrang, dessen
Modulatoren es sind, die sich in ihrer Struktur ab und zu ändern, der Träger aber nur
auf einen sehr kleinen Teil des Klanges (max. 1%) einwirkt. In den Generationen 150
bis 250 fanden nur noch Anpassungen der Hü llkurven und Oszillatoren statt, die aber
nur einen minimalen Effekt erzielten. Die erreichte Fehlerrate betrug am Ende 9,3%.
93
Abbildung 44: Entwicklung der Fitneß(Trommel)
Die entwickelte Struktur besteht aus 2 Trägern und 4 Modulatoren. Der erste Träger
wird von den Modulatoren direkt und indirekt moduliert. Er wirkt nur auf die ersten
20 Millisekunden des Klanges ein. Der zweite Träger dient dazu, den Grundton
(gefunden in Generation 80) mit einer Frequenz von 76 Hz zu erzeugen.
M3
M2
M4
M1
T1
T2
Abbildung 45: Entwickelte Struktur (Trommel)
Abbildung 46: Zeitdomä ne (oben) und Frequenzdomä ne (unten) des Syntheseklangs (Trommel)
94
5
Ergebnisse
Mein Verfahren ist in der Lage eine annähernde Nachbildung von Klängen zu
realisieren, indem es eine passende Struktur fü r den Algorithmus eines FMSynthesizers entwickelt und die beteiligten Parameter optimiert. Dadurch konnte in
fast allen Fällen die Tonhöhe (Grundfrequenz) erstaunlich genau nachgebildet
werden. Die Dynamik der Lautstärke eines Syntheseklanges paß t sich i.d.R. an die
des Originals an. Bei harmonischen Klängen wurden einige dem Grundton
naheliegende Obertöne erzeugt.
Es ist mir zudem gelungen, dem Nutzer die Auswahl eines Algorithmus und der
Parameter der FM-Synthese abzunehmen, mit der ein bestimmter Klang nachgebildet
werden soll. Es hat sich allerdings gezeigt, daß weiterhin solide Kenntnisse im
Gebiet der Klangerzeugung von groß em Vorteil sind. Dies spiegelt sich in folgendem
Sachverhalt wider: Fü r die Nachbildung eines einfachen Tons (Sinus) ist nur ein
Operator mit einem Sinusoszillator notwendig. Verwendet man 2 oder mehr
Operatoren, erlegt man dem Genetischen Algorithmus nur unnötig Arbeit auf, was
dann auch an den schlechteren Ergebnissen zu erkennen ist. Ein komplexer Klang
dagegen kann sicherlich nicht mit nur einem Operator reproduziert werden.
Der Genetische Algorithmus brachte eine Vielzahl von Strukturen hervor (fü r ein
und denselben Klang sogar verschiedene). Es ist mir aufgefallen, daß viele der
entwickelten Algorithmen das Prinzip der Additiven Synthese nachahmen. Das kann
natü rlich auch an der Art der getesteten Klänge liegen (vorwiegend klassische
Instrumente). Bei den Strukturen, die mehrere Modulatoren besaß en, konzentrierten
sich i.d.R. ein oder zwei Träger auf die zu erzeugende Grundfrequenz, der andere
Teil (oft ein Träger mit einer Struktur aus Modulatoren) versuchte die komplexe
Einschwingungsphase (oft die ersten 100 Millisekunden eines Klangs) nachzubilden.
Die Struktur des Algorithmus entwickelte sich erwartungsgemäß innerhalb der ersten
100 Generationen, d.h. der Genetische Algorithmus schlug eine grobe Suchrichtung
ein. Danach wurde durch Optimierung der Parameter der Klang in seiner Tonhöhe,
95
Klangfarbe und Dynamik geformt. Am Ende des Prozesses fanden nur noch
Feineinstellungen statt, die den Fehler weiter senkten. Eine Ä nderung der Struktur
gegen Ende der kü nstlichen Evolution ist möglich, betrifft aber nur Teile der
Struktur, die keinen oder nur kaum Einfluß auf den Klang ausü ben.
Aufgrund groß er Unterschiede in der Komplexität von Tönen, Klängen und
Geräuschen ist es oft schwierig vorherzusagen, wie gut mein Verfahren einen Klang
nachbilden wird bzw. ob es ü berhaupt eine Lösung findet. Ich konnte allerdings
feststellen, daß einfache Töne (Sinus, Dreieck) mit einem Operator sehr gut
(Fehlerrate von 0,5% bis 5%) resynthetisiert werden können und klassische
Instrumente gut bis befriedigend (Fehlerraten von etwa 7% bis 40%).
Im Groß en und Ganzen sind die Ergebnisse ermutigend. Eine Fortfü hrung der
Forschungen in diesem Gebiet ist weiterhin notwendig. Ein interessanter Aspekt ist
beispielsweise, daß mein Verfahren oft Strukturen entwickelt hat, die eher als
Additive Synthese zu bezeichnen sind. Eine Optimierung der Parameter eines
Synthesizers mit Additiver Synthese liegt also nahe und sollte möglich sein, da man
mit diesem Verfahren theoretisch jeden Klang erzeugen kann.
Ein lohnenswertes Ziel liegt sicherlich in der Nutzung dieses Verfahrens zur
Komprimierung eines einzelnen Klanges. Mit Komprimierung meine ich nicht die
reine Reduzierung des Informationsgehaltes, die durch geschickte Speicherung der
Amplitudenwerte (z.B. DPCM) oder Beseitigung von Redundanzen (z.B. MPEG)
erreicht wird. Vielmehr denke ich an die Speicherung der Informationen, die fü r die
Erzeugung der Klangdaten notwendig sind, d.h. Algorithmus und Parameter der FMSynthese. Die Größ e einer Datei in dieser Form wü rde, je nach Anzahl der
verwendeten Operatoren, weniger als 1 oder 2 Kilobyte betragen. Ein 2 Sekunden
langer, bei 8000 Hz Abtastrate und 16 Bit pro Sample kodierter Klang wü rde eine
circa 32 Kilobyte groß e Datei erzeugen. Ein ähnlicher Ansatz ist natü rlich auch mit
anderen Syntheseverfahren denkbar. Die Komprimierung ganzer Lieder auf diese
Weise halte ich zur Zeit fü r kaum möglich, da diese Aufgabe zum einen extrem
komplex ist (mehrere miteinander vermischte Klänge) und zum anderen eine sehr
hohe Rechenzeit fü r die Entwicklung eines Modells notwendig wäre (schon fü r ein 2
96
Sekunden langes Klangbeispiel werden 30 min Rechenzeit benötigt). Ich möchte
auch darauf hinweisen, daß diese Idee nicht völlig neu ist, denn ein ähnliches Ziel
wird auch bei der Umwandlung von Pixel- in Vektorgrafiken verfolgt.
Eine weitere Möglichkeit sehe ich in der Verbindung dieses Verfahrens mit einer
vorhandenen Lösung (Software) eines FM-Synthesizers. Ein Nutzer benötigt nur eine
geeignete Voreinstellung des FM-Synthesizers (auch bekannt als Preset), um einen
bestimmten Klang zu erzeugen. Das ist natü rlich schwierig, wenn diese
Voreinstellung noch nicht existiert. Es ist nun folgendes denkbar: Der Nutzer gibt
diesem Verfahren einen zu bestimmenden Klang vor. Daraufhin wird automatisch
eine Struktur mit geeigneten Parametern entwickelt, mit deren Hilfe der gegebene
Klang annähernd nachgebildet wird. Auf der Basis der ermittelten Ergebnisse kann
anschließ end der reale FM-Synthesizer konfiguriert werden. Danach wird der Nutzer
wieder aktiv, indem er noch einige Feineinstellungen an den Parametern des
Synthesizers vornimmt, bis er mit dem Ergebnis zufrieden ist.
97
98
6
Zusammenfassung
Die Idee dieser Arbeit liegt in der automatischen Nachbildung eines Klanges mit
Hilfe eines Klangsyntheseverfahrens und evolutionären Algorithmen. In der
Anfangsphase der Arbeit wurde aus den bekannten Syntheseverfahren die FMSynthese ausgewählt. Der Grund fü r meine Entscheidung liegt im bekannten Erfolg
des Verfahrens. Schon mit wenigen grundlegenden Komponenten wie Oszillator
oder Hü llkurve können komplexe Schwingungen erzeugt werden. Die Suche nach
einem FM-Synthesizer, der einen vorgegebenen Klang nachbilden kann, wird von
einem Genetischen Algorithmus ü bernommen. Dieser ermittelt eine passende
Struktur und optimale Parameter fü r die Hü llkurven und Oszillatoren des FMSynthesizers.
Damit eine Realisierung des Ansatzes möglich war, wurden Klassenbibliotheken fü r
Genetische Algorithmen und FM-Synthesizer implementiert. Auf der Basis der
Klassenbibliotheken konnte letztlich die Applikation Revival entwickelt werden, die
eine grafische Nutzerschnittstelle besitzt und den Genetischen Algorithmus fü r die
Suche nach einem FM-Synthesizer realisiert. Nach der Vorgabe eines Klanges und
einigen Einstellungen fü r den Genetischen Algorithmus, die Klanganalyse und die
Klangsynthese beginnt Revival mit der Entwicklung eines FM-Synthesizers.
Das entwickelte Verfahren ist in der Lage eine passende Struktur und optimale
Parameter fü r den Prozeß der FM-Synthese zu finden und damit einen gegebenen
Klang annähernd nachzubilden. Die Gü te eines resynthetisierten Klanges hängt dabei
stark von der Komplexität des Originals ab, d.h. selbst ein einfacher Sinuston kann
zwar sehr gut nachgebildet werden, aber eben nur sehr gut und nicht exakt.
99
100
Thesen
Die automatisierte Entwicklung einer Struktur und optimaler Parameter fü r den
Prozeß der FM-Synthese auf der Basis eines vorgegebenen Klanges und den
Genetischen Algorithmen ist möglich.
Die Annäherung an die Tonhöhe, Klangfarbe und Dynamik eines gegebenen Klanges
mit einem optimierten FM-Synthesizer ist möglich.
Der Vorteil fü r einen Nutzer liegt darin, daß er nicht mehr selbst die Oszillatoren und
Hü llkurven einstellen muß oder einen passenden Algorithmus auszuwählen hat.
Die Nachbildung von natü rlichen und klassisch instrumentalen Klängen, die bis jetzt
von der FM-Synthese nicht erzeugt werden konnten, wird möglich.
Die Nachbildung eines Klanges auf diese Weise, kann einen Einblick in den
strukturellen Aufbau und die verwendeten Parameter der FM-Synthese fü r eine
bestimmte Art von Klängen geben.
Mit meinem Verfahren ist die Komprimierung eines Klanges denkbar.
Es gibt viele Lösungsmöglichkeiten (FM-Synthesizer), mit denen ein gegebener
Klang annähernd nachgebildet werden kann.
Die perfekte Nachbildung eines Klanges ist extrem schwierig, da die meisten Klänge
sehr komplex sind.
Solide Kenntnisse und Erfahrungen im Gebiet der Klangerzeugung sind weiterhin
von groß em Vorteil.
101
102
Literaturverzeichnis
[ABD-99]
T. Y. Abdullah: Synthesizers, Music & Television. – F.M. Synthesis.
1999
(http://tyala.freeyellow.com/2fmsynth.htm)
[ANW-00]
F. Anwander: Synthesizer. So funktioniert elektronische Klangerzeugung. Bergkirchen: PPV Presse Project Verlags GmbH, 2000
[BEN-99]
P. J. Bentley: Evolutionary Design by Computers. San Francisco:
Morgan Kaufmann Publishers Inc, 1999
[BOL-98]
D. Boles: Multimedia-Systeme (Kapitel 10). Technische Universität
Oldenburg, 1998
(http://www-is.informatik.uni-oldenburg.de/~dibo/teaching/mm98/
script98/main.html)
[BOU-93]
P. Bourke: DFT (Discrete Fourier Transform), FFT (Fast Fourier
Transform). 1993
(http://astronomy.swin.edu.au/~pbourke/analysis/dft/index.html)
[FIE-01]
M. Fiedler: Die FM-Synthese, Ein Ü berblick. Universität Oldenburg,
2001
(http://home.arcor.de/mfiedler/fm/fm.html)
[FIS-98]
T. P. Fischer: Das Synthesizer-Lexikon im Internet. Technische
Universität Berlin, 1998
(http://home.snafu.de/sicpaul/tpf_syn0.htm)
[FRI-99]
H. Fritz: Wissenswertes zur Schallanalyse. Universität Wien. 1999
(http://www.unet.univie.ac.at/~a7425519/Skripten/Schallanalyse.html)
[GAR-01]
R. A. Garcia: Automatic Generation of Sound Synthesis Techniques.
Massachusetts: Massachusetts Institute of Technologies, 2001
[GOU-97]
C. Gould: Soundwave – Beginner's Synthesizer FAQ. 1997
(http://tilt.largo.fl.us/faq/synthfaq.html)
103
[GRO-02]
R. Groß mann, R. Koch, C. Kü hnel: Verfahren digitaler Audioverarbeitung. Universität Lü neburg, 2002
(http://audio.uni-lueneburg.de/texte/digaudio/index.html)
[HOE-02]
U. G. Hoenig: Workshop Synthesizer. Klangerzeugung fü r Musiker.
Bergkirchen: PPV Presse Project Verlags GmbH, 2002
[HOR-93]
A. Horner, J. Beauchamp, L. Haken: FM Matching Synthesis with
Genetic Algorithms. Illinois: CERL Sound Group, Computer Music
Project and Center for Complex Systems Research, University of
Illinois, 1993
[IWE-02]
H. Iwe: Genetische Algorithmen. Dresden: Hochschule fü r Technik
und Wirtschaft Dresden, 2002
[JOH-99]
C. G. Johnson: Exploring the sound-space of synthesis algorithms
using interactive genetic algorithms. Exeter: Department of Computer
Science, University of Exeter, 1999
[JUN-98]
G. Junker: MIDI-Synthese in der kognitiven Musikologie: eine
exemplarische Studie des psychoakustischen Phänomens der
subjektiven Tondauer. Universität Wien, 1998
(http://kunstbank.waidhofen.at/mitglied/junker/publikationen.html)
[KOK-00]
L. Kok, B. Mest: Musiksynthese. Universität Hamburg, 2000
(http://tech-www.informatik.uni-hamburg.de/lehre/medien-audio/
vortraege/synthese/index.htm)
[MIC-96]
Z. Michalewicz: Genetic Algorithms + Data Structures = Evolution
Programs. 3. Aufl., New York: Springer Verlag, 1996
[RAB-01]
R. Rabenstein: Digitale Klänge. Laboratorium fü r Nachrichtentechnik,
Universität Erlangen-Nü rnberg, 2001
[RIT-00]
M. Ritsche: Musik am Computer. Waldorfschule Ü berlingen, 2000
(http://www.waldorf-am-see.de/projekte/musik/musik.htm)
[RIT-02]
W. Ritsch: Einfü hrung in die Elektronische Musik. Graz: Universität
fü r Musik und Darstellende Kunst Graz, 2002
104
[SCH-98]
R. Schmitz: Analoge Klangsynthese. Das Einsteigerbuch zu
Synthesizern und Soundprogrammierung. Köln: Wizoo midi, music &
audio technology GmbH, 1998
[WEH-98]
K. Wehn: Using Ideas from Natural Selection to Evolve Synthesized
Sounds. Oslo: Department of Informatics, University of Oslo, 1998
[WEI-02]
E. W. Weisstein: Eric Weisstein's World of Mathematics. 2002
(http://mathworld.wolfram.com/)
105
106
Abbildungsverzeichnis
Abbildung 1:
Zustandsräume Genetischer Algorithmen ................................ ...... 17
Abbildung 2:
Struktur Genetischer Algorithmen ................................................. 19
Abbildung 3:
Modellierung und Interpretation des Chromosoms......................... 22
Abbildung 4:
Bildung von Nachkommen ............................................................ 26
Abbildung 5:
Vergleich verschiedener Selektionsmethoden ................................ 27
Abbildung 6:
Beispiel fü r Russisches Roulette ................................ .................... 28
Abbildung 7:
Kreuzungspunkte................................ ................................ ........... 29
Abbildung 8:
Beispiel Ein-Punkt-Kreuzung ........................................................ 29
Abbildung 9:
Beispiel Zwei-Punkt-Kreuzung................................ ...................... 30
Abbildung 10: Beispiel Zwei-Punkt-Kreuzung mit Translokation ......................... 30
Abbildung 11: Beispiel gleichmäß ige Kreuzung................................ .................... 31
Abbildung 12: Beispiel gleichmäß ige Mutation..................................................... 32
Abbildung 13: Prinzip der Subtraktiven Synthese ................................................. 40
Abbildung 14: Prinzip der Wavetable Synthese..................................................... 41
Abbildung 15: Prinzip der Additiven Synthese................................ ...................... 42
Abbildung 16: Prinzip der FM-Synthese ................................ ............................... 44
Abbildung 17: Algorithmen eines FM-Synthesizers mit 5 Operatoren................... 45
Abbildung 18: Grundwellenformen....................................................................... 52
Abbildung 19: ADSR-Hü llkurve................................ ................................ ........... 53
Abbildung 20: Tiefpaß - und Hochpaß filter............................................................ 54
Abbildung 21: Ableitung der Klasse AbstractEvolution................................ ......... 57
Abbildung 22: Ableitung der Klasse AbstractIndividual........................................ 58
Abbildung 23: Klassenstruktur fü r den Genetischen Algorithmus ......................... 59
Abbildung 24: Klassenstruktur fü r die Reproduktion................................ ............. 60
Abbildung 25: Klassenstruktur fü r die Ersetzung ................................ .................. 61
107
Abbildung 26: Erzeugung und Start des Genetischen Algorithmus ....................... 62
Abbildung 27: Klassenstruktur fü r den FM-Synthesizer................................ ........ 63
Abbildung 28: Zeit- und Frequenzdomäne............................................................ 65
Abbildung 29: Fensterfunktionen Rechteck, Dreieck und Blackman ..................... 66
Abbildung 30: Aufbau eines FM-Synthesizer-Chromosoms................................ .. 67
Abbildung 31: Graphen- und Baumstrukturen....................................................... 68
Abbildung 32: Verteilung der Synthesefenster ................................ ...................... 72
Abbildung 33: Applikation Revival....................................................................... 75
Abbildung 34: Evolution eines FM-Synthesizers mit Revival................................ 76
Abbildung 35: Ablauf der Evolutionsphase................................ ........................... 79
Abbildung 36: Ansicht Sound evolvement................................ ............................. 80
Abbildung 37: Ansicht Algorithm evolvement....................................................... 81
Abbildung 38: Ansicht Fitness evolvement ................................ ........................... 81
Abbildung 39: Zeit- und Frequenzdomäne des Originalklangs (Banjo) ................. 91
Abbildung 40: Entwicklung der Fitneß (Banjo)..................................................... 92
Abbildung 41: Entwickelte Struktur (Banjo)......................................................... 92
Abbildung 42: Zeit- und Frequenzdomäne des Syntheseklangs (Banjo) ................ 92
Abbildung 43: Zeit- und Frequenzdomäne des Originalklangs (Trommel) ............ 93
Abbildung 44: Entwicklung der Fitneß (Trommel) ................................ ............... 94
Abbildung 45: Entwickelte Struktur (Trommel)................................ .................... 94
Abbildung 46: Zeit- und Frequenzdomäne des Syntheseklangs (Trommel) ........... 94
108
Glossar
Additive Synthese
Klangsyntheseverfahren, bei dem ein Klang durch das
Zusammensetzen von vielen Teiltönen mit unterschiedlicher
Tonhöhe und zeitlichem Verlauf (Hü llkurve) erzeugt wird.
ADSR
Abk. fü r Attack, Decay, Sustain, Release. Parameter der
Hü llkurve, welche die Zeitabschnitte der Einschwingungsphase (Attack und Decay), der stationären Phase (Sustain)
und der Ausschwingungsphase (Release) eines Klanges
beschreiben.
Algorithmus
Auch FM-Algorithmus; in der FM-Synthese beschreibt der
A. welche der Operatoren wie miteinander verbunden sind.
Attack
Zeitabschnitt der Hü llkurve, der die Einschwingungsphase
eines Klanges beschreibt.
Bewertungsfunktion
Siehe Zielfunktion.
Carrier
Engl. fü r Träger.
Chromosom
Ein C. besteht aus n Zeichen eines bestimmten Alphabets
(Zahlen oder Zeichen). Die Zusammenfassung mehrerer
Zeichen ergibt die Gene, welche die Parameter eines
Optimierungsproblems darstellen und damit den Genotyp
eines Individuums repräsentieren.
Decay
Zeitabschnitt der Hü llkurve, der den Abfall von der
maximalen Lautstärke der Einschwingungsphase zur
stationären Haltephase beschreibt.
Dreieckschwingung
Auch Dreieckwelle; eine der typischen Grundwellenformen
eines Oszillators. Mit der D. können nur ungerade Obertöne
erzeugt werden, deren Intensität mit steigender Ordnung
exponentiell abnimmt. Sie besitzt einen weichen und
fließ enden Klangcharakter.
Elitismus
Ein Ersetzungsverfahren, welches, neben den erzeugten
Nachkommen, auch die besten Individuen der aktuellen
Generation in die nächste Generation ü berträgt. Es wird
dabei zwischen dem schwachen, starken und dynamischen
Elitismus unterschieden.
109
Envelope
Engl. fü r Hü llkurve.
Ersetzung
Auch Ersetzungsverfahren; Prinzip
Feedback
Engl. fü r Rü ckkopplung.
Fitneß
Maß fü r die Gü te eines Individuums, das mit Hilfe der
Zielfunktion ermittelt wird.
FM
Siehe Frequenzmodulation.
FM-Synthese
Klangsyntheseverfahren, bei dem ein Klang durch die
Verknü pfung (Algorithmus) weniger Operatoren (Oszillator
mit einer Hü llkurve) in Form von Trägern und Modulatoren
erzeugt wird. Die Modulatoren verändern die Tonhöhe der
Träger, wodurch sehr komplexe Spektren entstehen können.
Frequenzmodulation
Auch FM; zeitliche Veränderung der Frequenz eines
Oszillators durch einen anderen Oszillator oder eine
Hü llkurve.
Gen
Repräsentation eines Parameters des Optimierungsproblems
in einem Chromosom.
Genotyp
Bezeichnung fü r die Gesamtheit aller Gene, die in einem
Chromosom eines Individuums vorkommen.
Grundwellenform
Verlauf der Periode einer Schwingungsform. Die typischen
G. Dreieck, Rechteck, Sägezahn und Sinus beherrschen fast
alle Oszillatoren.
Hüllkurve
Komponente des Synthesizers, die einen zeitlichen Verlauf
generiert, der fü r die Veränderung der Lautstärke oder
Tonhöhe eingesetzt wird. Eine viel genutzte Variante ist die
ADSR-Hü llkurve.
Individuum
Auch Phänotyp; Eine konkrete Lösung eines Optimierungsproblems, die parallel zu anderen Lösungen in einer
Population existiert.
Kreuzung
Auch Rekombination, Crossover; Genetischer Operator, der
die Zeichen der Chromosomen zweier Individuen (Eltern)
vermischt, um zwei Nachkommen (Kinder) zu bilden.
Lö sungsraum
Auch phänotypischer Raum; Bezeichnung fü r die
Gesamtheit aller Lösungen eines Optimierungsproblems.
110
Modulator
Komponente des FM-Synthesizers, welche die Frequenz,
Phase oder Amplitude eines Oszillators zeitlich ändert.
Mutation
Genetischer Operator, der eine zufällige Veränderung eines
oder mehrerer Zeichen im Chromosom eines Individuums
vornimmt.
Oberton
Ein Klang besteht aus Teiltönen, wobei der tiefste Teilton
(Grundton) die wahrgenommene Tonhöhe bestimmt und die
Obertöne die Klangfarbe. Die Obertöne stehen meistens in
einem ganzzahligen Verhältnis zum Grundton.
Operator
Auch FM-Operator; diese Bezeichnung wurde von Yamaha
eingefü hrt und stellt eine Mischkomponente dar, in der ein
Oszillator und eine Hü llkurve vereint sind. Der O. wird in
einem Algorithmus als Träger oder Modulator verwendet.
Optimum
Bezeichnung fü r die beste bisher gefundene Lösung eines
Optimierungsproblems.
Oszillator
Komponente des Synthesizers, die einfache Schwingungen
in einer bestimmten Tonhöhe (Frequenz) erzeugt. Die
meisten O. beherrschen die gängigen Grundwellenformen
Sägezahn, Rechteck, Dreieck und Sinus.
Phänotyp
Bezeichnung fü r die Gesamtheit aller konkret ausgebildeten
Merkmale der Gene eines Individuums.
Phasenmodulation
Auch PM; zeitliche Ä nderung der Phase eines Oszillators
durch einen anderen Oszillator oder eine Hü llkurve.
PM
Siehe Phasenmodulation.
Population
Zusammenfassung aller Individuen einer Generation.
Rechteckschwingung
Auch Rechteckwelle; eine typische Grundwellenform eines
Oszillators. Mit der R. können alle ungeraden Obertöne
erzeugt werden, deren Intensität mit steigender Ordnung
proportional abnimmt. Sie besitzt einen hohlen und
elektronischen Klangcharakter.
Release
Zeitabschnitt der Hü llkurve, der die Ausschwingungsphase
eines Klanges beschreibt.
Reproduktion
Sammelbegriff fü r die Bildung der Nachkommen der
nächsten Generation. Die R. schließ t die Genetischen
Operatoren Selektion, Kreuzung und Mutation ein.
111
Rückkopplung
Auch Feedback; das Ausgangssignal eines Operators wird
als zusätzliche Modulationsquelle fü r diesen verwendet.
Sägezahnschwingung Auch Sägezahnwelle; typische Grundwellenform eines
Oszillators. Mit der S. können alle Obertöne erzeugt
werden. Die Intensität der Obertöne nimmt mit steigender
Ordnung exponentiell ab. Sie besitzt einen kräftigen, harten
und hellen Klangcharakter.
Sample
Der kleinste Teil eines digitalisierten Klanges, der zu einem
bestimmten Zeitpunkt einen bestimmten Wert (Amplitude)
besitzt. Auch ein Klang wird oft als Sample bezeichnet.
Selektion
Genetischer Operator, der ein Individuum in Abhängigkeit
zu seiner Fitneß aus der aktuellen Population auswählt. Die
Wahrscheinlichkeit fü r die Auswahl wird durch ein
entsprechendes Selektionsverfahren (Ranking, Wettkampf
oder Skalierung) ermittelt.
Sinusschwingung
Auch Sinuswelle; eine der typischen Grundwellenformen
eines Oszillators. Mit der S. kann ein Grundton erzeugt
werden, aber keine Obertöne. Demnach besitzt sie einen
sehr weichen Klangcharakter.
Suchraum
Auch genotypischer Raum; Bezeichnung fü r die Gesamtheit
aller in einem Chromosom kodierbaren Lösungen eines
Optimierungsproblems.
Sustain
Zeitabschnitt der Hü llkurve, der die stationäre Phase eines
Klanges beschreibt.
Syntheseverfahren
Es beschreibt das prinzipielle Vorgehen eines Synthesizers
bei der Erzeugung eines Klanges. Die wichtigsten Vertreter
sind FM-Synthese, Subtraktive Synthese, Additive Synthese
und die Wavetable Synthese.
Synthesizer
Ein S. ist eine Hard- oder Software, die durch das
Zusammenwirken verschiedener Komponenten (Oszillator,
Hü llkurve, Filter) einen Klang erzeugt.
Träger
Auch Carrier; Komponente des FM-Synthesizers. Ein oder
mehrere Träger erzeugen die Amplitudenwerte des Klanges.
Zielfunktion
Definition des Optimierungsproblems. Interpretiert man die
im Chromosom kodierten Parameter und setzt sie in die Z.
ein, erhält man die Fitneß eines Individuums.
112
Herunterladen