23.11.2014 Aufrufe

Digitale Klangsynthese mit Hilfe Genetischer Algorithmen

Digitale Klangsynthese mit Hilfe Genetischer Algorithmen

Digitale Klangsynthese mit Hilfe Genetischer Algorithmen

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Digitale</strong> <strong>Klangsynthese</strong><br />

<strong>mit</strong> <strong>Hilfe</strong><br />

<strong>Genetischer</strong> <strong>Algorithmen</strong><br />

Diplomarbeit<br />

im Fachbereich<br />

Informatik und Mathematik<br />

der<br />

Hochschule fü r Technik und Wirtschaft Dresden<br />

von<br />

Jörg Hentschel<br />

Dresden, November 2002<br />

Betreuer: Prof. Dr. rer. nat. habil. H. Iwe


Inhaltsverzeichnis<br />

Inhaltsverzeichnis .............................................................................................. 3<br />

Vorwort ............................................................................................................. 5<br />

1 Einleitung......................................................................................................... 7<br />

1.1 Motivation................................................................................................ 7<br />

1.2 Verwandte Arbeiten.................................................................................. 8<br />

1.3 Ansatz .................................................................................................... 10<br />

2 Genetische <strong>Algorithmen</strong> ................................................................................ 13<br />

2.1 Grundlagen der Evolution und Genetik................................................... 13<br />

2.2 Informatik und Evolution........................................................................ 15<br />

2.3 Abstraktion der Evolution....................................................................... 16<br />

2.4 Repräsentation........................................................................................ 22<br />

2.5 Evaluation und Fitneß ............................................................................. 24<br />

2.6 Reproduktion.......................................................................................... 25<br />

2.6.1 Selektion ..................................................................................... 26<br />

2.6.2 Kreuzung..................................................................................... 28<br />

2.6.3 Mutation...................................................................................... 31<br />

2.7 Ersetzung................................................................................................ 32<br />

2.7.1 Generationswechsel..................................................................... 33<br />

2.7.2 Elitismus ..................................................................................... 33<br />

3 <strong>Digitale</strong> <strong>Klangsynthese</strong> .................................................................................. 35<br />

3.1 Synthesizer und Sampler......................................................................... 35<br />

3.2 Töne, Klänge und Geräusche .................................................................. 37<br />

3.3 Syntheseverfahren .................................................................................. 38<br />

3.3.1 Subtraktive Synthese ................................................................... 39<br />

3.3.2 Wavetable Synthese .................................................................... 40<br />

3.3.3 Additive Synthese ....................................................................... 41<br />

3.3.4 FM-Synthese ............................................................................... 42<br />

3.3.5 Weitere Syntheseverfahren.......................................................... 48<br />

3.4 Synthesekomponenten ............................................................................ 50<br />

3.4.1 Oszillator..................................................................................... 50<br />

3.4.2 Hü llkurve .................................................................................... 53<br />

3.4.3 Verstärker ................................................................................... 53<br />

3.4.4 Filter ........................................................................................... 54<br />

3.4.5 Effekte ........................................................................................ 55<br />

3


4 <strong>Digitale</strong> <strong>Klangsynthese</strong> <strong>mit</strong> <strong>Hilfe</strong> <strong>Genetischer</strong> <strong>Algorithmen</strong>........................ 57<br />

4.1 Implementation der Klassenbibliotheken ................................................ 57<br />

4.1.1 Genetische <strong>Algorithmen</strong>.............................................................. 57<br />

4.1.2 FM-Synthesizer........................................................................... 62<br />

4.2 Klanganalyse.......................................................................................... 64<br />

4.3 Realisierung des Genetischen Algorithmus............................................. 66<br />

4.3.1 Aufbau eines Chromosoms ......................................................... 67<br />

4.3.2 Erzeugung und Bewertung eines Individuums............................. 71<br />

4.3.3 Realisierung des Evolutionsprozesses ......................................... 73<br />

4.3.4 Genetische Operatoren................................................................ 74<br />

4.4 Die Applikation Revival......................................................................... 75<br />

4.4.1 Konfigurationsphase ................................................................... 76<br />

4.4.2 Analysephase .............................................................................. 78<br />

4.4.3 Evolutionsphase.......................................................................... 78<br />

4.4.4 Präsentationsphase ...................................................................... 80<br />

4.5 Experimente........................................................................................... 82<br />

4.5.1 Standardkonfiguration................................................................. 82<br />

4.5.2 Parameter des Genetischen Algorithmus ..................................... 84<br />

4.5.3 Parameter der Klanganalyse ........................................................ 87<br />

4.5.4 Parameter der <strong>Klangsynthese</strong> ...................................................... 89<br />

4.5.5 Optimierte Standardkonfiguration............................................... 89<br />

4.5.6 Experiment 455 (Banjo).............................................................. 91<br />

4.5.7 Experiment 451 (Trommel)......................................................... 93<br />

5 Ergebnisse...................................................................................................... 95<br />

6 Zusammenfassung......................................................................................... 99<br />

Thesen........................................................................................................... 101<br />

Literaturverzeichnis....................................................................................... 103<br />

Abbildungsverzeichnis .................................................................................. 107<br />

Glossar.......................................................................................................... 109<br />

4


Vorwort<br />

Selbständigkeitserklärung: Ich erkläre hier<strong>mit</strong>, daß ich diese Arbeit selbständig und<br />

ohne unzulässige <strong>Hilfe</strong> Dritter verfaß t habe. Ich versichere zudem, daß ich nur die<br />

Quellen verwendet habe, die im Literaturverzeichnis dieser Arbeit angegeben sind<br />

und dieses vollständig ist. Weiterhin ist diese Diplomarbeit und ihre Bestandteile<br />

keine Kopie anderer Quellen oder Arbeiten.<br />

Danksagung: Ich möchte mich auch bei allen bedanken, die zum Gelingen dieser<br />

Diplomarbeit beigetragen haben, insbesondere aber meinem Betreuer Professor Dr.<br />

rer. nat. habil. H. Iwe für seine wertvollen Ratschläge zu Inhalt und Form meiner<br />

Arbeit.<br />

5


1 Einleitung<br />

1.1 Motivation<br />

Die meisten Klänge, die wir kennen sind natü rlicher Art oder stammen von<br />

Musikinstrumenten, die der Mensch erfunden hat. Doch in den letzten Jahrzehnten<br />

werden künstliche Töne und Klänge, basierend auf mathematischen und<br />

physikalischen Prinzipien, auch <strong>mit</strong> sogenannten Synthesizern hergestellt. Das<br />

Potential der verschiedenen Syntheseprinzipien ist sehr groß , eine schier<br />

unerschöpfliche Quelle für immer neue Klänge, die es zu finden gilt. Man könnte<br />

sogar sagen, die Suche nach schönen Klängen ist in vollem Gange, denn noch nie<br />

zuvor konnte ein Klangbastler auf so viele Syntheseprinzipien zurü ckgreifen. Der<br />

Prozeß der <strong>Klangsynthese</strong> ist trotzdem sehr langwierig und artet oft in Tü ftelarbeit<br />

aus, denn bis ein wohlklingender Ton entsteht, muß eine Vielzahl von Parametern<br />

eingestellt werden. Die Herstellung eines Klanges ist da<strong>mit</strong> bis heute meist eine<br />

mü hsame, zeitaufwendige Suche, bei der immer wieder verschiedene Parameterwerte<br />

getestet werden und anschließ end das Ergebnis vom Nutzer für gut oder schlecht<br />

befunden wird. Selbst bei weitreichenden Kenntnissen der Zusammenhänge und<br />

Funktionalitäten einzelner Syntheseverfahren, kann die Veränderung eines einzigen<br />

Parameters zu einem unerwarteten Chaos im erzeugten Klang führen. Das<br />

Synthetisieren eines schönen Klanges kann auf diese Weise durchaus einen ganzen<br />

Tag in Anspruch nehmen. Doch immer wieder finden sich Menschen, die <strong>mit</strong> viel<br />

Geduld den Synthesizern fantastische Klänge entlocken.<br />

Das Ziel dieser Diplomarbeit ist die Suche nach einem Genetischen Algorithmus, der<br />

dem Nutzer die Einstellung der Parameter bei der <strong>Klangsynthese</strong> ganz oder<br />

wenigstens teilweise abnimmt. Der Nutzer soll sich voll und ganz auf den Klang<br />

konzentrieren können und nicht schon scheitern, wenn er versucht Oszillatoren,<br />

Filter oder Hüllkurven einzustellen. Ein solches Verfahren würde da<strong>mit</strong> auch<br />

Nutzern helfen, die keine oder nur wenige Kenntnisse von der <strong>Klangsynthese</strong><br />

besitzen. Es wurden die Genetischen <strong>Algorithmen</strong> ausgewählt, weil diese ein sehr<br />

7


wirkungsvolles Optimierungsverfahren darstellen, welches schon erfolgreich bei<br />

verschiedenen komplexen Problemen aus der Realität eingesetzt wurde. Ein zu<br />

lösendes Problem wird immer durch eine Reihe von Parametern beschrieben. Man<br />

könnte sich hier die Beschreibung der Struktur einer <strong>Klangsynthese</strong> und deren<br />

Parameter vorstellen. Der Genetische Algorithmus versucht dann die im Chromosom<br />

verschlü sselten Parameter der <strong>Klangsynthese</strong> durch Selektion und Rekombination<br />

einzustellen, bis ein schön klingender Ton entsteht.<br />

1.2 Verwandte Arbeiten<br />

Horner, Beauchamp und Haken präsentieren in ihrer Arbeit "FM Matching Synthesis<br />

with Genetic Algorithms" [HOR-93] einen Ansatz, bei dem ein vorhandener Klang<br />

durch FM-Synthese und Genetische <strong>Algorithmen</strong> resynthetisiert werden soll. Im<br />

einzelnen werden dabei optimierte Parameter fü r den Prozeß der FM-Synthese durch<br />

einen Genetischen Algorithmus er<strong>mit</strong>telt. Der Algorithmus der Synthesetechnik (1<br />

Modulator zu n Trägern) ist von Anfang an festgelegt. Die Parameter sind auf die<br />

statischen Frequenzen der Oszillatoren (Sinus) und die Modulationsindizes<br />

beschränkt. Die Bewertung der Gü te eines synthetisierten Klanges wird durch einen<br />

Abstandsvergleich ausgewählter Abschnitte der Frequenzspektren von Quell- und<br />

Zielklang bestimmt. Die Anzahl der Träger beeinfluß t maß geblich das Ergebnis der<br />

Prozedur und da<strong>mit</strong> die Ä hnlichkeit des synthetisierten Klanges zum originalen<br />

Klang.<br />

Wehn stellt in seiner Arbeit "Using Ideas from Natural Selection to Evolve<br />

Synthesized Sounds" [WEH-98] eine Methode vor, Klänge <strong>mit</strong> <strong>Hilfe</strong> von<br />

Genetischen <strong>Algorithmen</strong> zu synthetisieren. Auch er versucht einen schon<br />

existierenden Quellklang durch einen evolutionär gestü tzten Syntheseprozeß<br />

automatisch zu rekonstruieren. Das von ihm verwendete Schema für die<br />

Klangerzeugung ist als Modulare Synthese bekannt. Wehn versucht nicht nur feste<br />

Parameter zu finden, sondern auch einen geeigneten Algorithmus, der aus einzelnen<br />

untereinander verbundenen Elementen wie Oszillatoren, Filter, additiven<br />

Verknü pfungen und Rauschgeneratoren besteht. Mit <strong>Hilfe</strong> der Genetischen<br />

<strong>Algorithmen</strong> werden bessere <strong>Algorithmen</strong> <strong>mit</strong> besseren Parametern gezü chtet. Die<br />

8


Fitneß der einzelnen Lösungen wird durch einen Abstandsvergleich der<br />

Frequenzspektren von Quell- und Zielklang er<strong>mit</strong>telt. Das Ergebnis dieser Prozedur<br />

ist ein synthetisierter Klang, welcher dem Quellklang ähnelt.<br />

Garcia stellt in seiner Arbeit "Automatic Generation of Sound Synthesis Techniques"<br />

[GAR-01] ein Verfahren vor, welches Synthesealgorithmen <strong>mit</strong> <strong>Hilfe</strong> evolutionärer<br />

Methoden herstellt. Bevor der automatisierte Prozeß beginnen kann, muß ein Nutzer<br />

einen Klang bereitstellen, aus dem durch freie Kombination der Elemente klassischer<br />

Prinzipien der <strong>Klangsynthese</strong> ein ähnlicher Klang erzeugt wird. Sein Verfahren ist in<br />

der Lage bekannte Syntheseformen wie FM-Synthese, Subtraktive Synthese und<br />

Additive Synthese nachzuahmen und sogar neue Formen von Syntheseverfahren zu<br />

erschaffen. Die Aufgabe einen passenden Synthesealgorithmus zu finden, der einen<br />

bestimmten Quellklang nachbilden soll, verwirklicht Garcia <strong>mit</strong> <strong>Hilfe</strong> der<br />

Genetischen Programmierung. Die Elemente eines Synthesealgorithmus werden in<br />

einer Baumstruktur abgelegt, die dann später in einen Graphen umgewandelt wird.<br />

Ein solcher Graph repräsentiert eine konkrete Lösung. Mit <strong>Hilfe</strong> dieser wird der<br />

Klang synthetisiert und anschließ end einer Bewertung unterzogen. Die Fitneß eines<br />

gezü chteten Synthesizers wird, wie in den Werken von Wehn und Horner schon<br />

beschrieben, durch eine Abstandsmessung zwischen den Frequenzbereichen von<br />

Original- und Syntheseklang er<strong>mit</strong>telt.<br />

Die Arbeit "Exploring the sound-space of synthesis algorithms using interactive<br />

genetic algorithms" [JOH-99] von Johnson beinhaltet einen Ansatz, der sich <strong>mit</strong> der<br />

interaktiven Synthese von Klängen, unterstü tzt durch Evolutionäre <strong>Algorithmen</strong>,<br />

befaß t. Im Gegensatz zu den vorhergehenden Arbeiten wird hier der Mensch in den<br />

Mittelpunkt der <strong>Klangsynthese</strong> gestellt. Die Klänge werden durch Granularsynthese<br />

hergestellt und dessen Parameter durch einen Genetischen Algorithmus angepaß t.<br />

Am Anfang bekommt der Nutzer eine Menge von Klängen vorgegeben, die zufällig<br />

erzeugt werden. Eine interaktive Schnittstelle ermöglicht es dem Nutzer in den<br />

Evolutionsprozeß einzugreifen, indem er sich die synthetisierten Klänge einer<br />

Generation anhört und bewertet. Danach ü bergibt er wieder dem System die<br />

Kontrolle, welches eine neue Generation von Klängen produziert. Diese Prozedur<br />

wird wiederholt, solange kein zufriedenstellendes Ergebnis er<strong>mit</strong>telt wurde.<br />

9


Ausgangspunkt dieser Arbeit bilden hauptsächlich die Werke von Garcia und<br />

Horner. Beide versuchen einen Klang automatisiert nachzubilden, beschreiten aber<br />

unterschiedliche Lösungswege. Mit dieser Arbeit versuche ich einen Mittelweg<br />

zwischen diesen Lösungen zu finden.<br />

1.3 Ansatz<br />

Diese Arbeit beschreibt ein Verfahren, welches, basierend auf einem gegebenen<br />

Originalklang, die Struktur und Parameter fü r das Syntheseverfahren der Frequenzoder<br />

Phasenmodulation <strong>mit</strong> <strong>Hilfe</strong> von Genetischen <strong>Algorithmen</strong> er<strong>mit</strong>telt. Der daraus<br />

resultierende Syntheseklang soll dem Original in seinen Grundzü gen ähneln, wird<br />

aber keinesfalls eine identische Kopie darstellen. Dabei wird mein Verfahren in 4<br />

Schritten vollzogen: Im ersten Schritt muß der Nutzer einen Originalklang und<br />

verschiedene Parameter für den Genetischen Algorithmus (Populationsgröß e,<br />

Mutations-, Kreuzungstyp, Selektion), die Frequenzanalyse (Anzahl, Größ e und<br />

Verteilung der Analysefenster) sowie fü r das Verfahren der <strong>Klangsynthese</strong> (Anzahl<br />

der Operatoren, Modulationsart) bestimmen. Im zweiten Schritt wird das<br />

Frequenzspektrum des Originalklangs durch eine Fourieranalyse (FFT) er<strong>mit</strong>telt. Im<br />

dritten Schritt ü bernimmt der Genetische Algorithmus die Entwicklung eines<br />

passenden FM-Synthesizers. Der evolutionäre Prozeß beginnt <strong>mit</strong> der Erschaffung<br />

einer Ausgangspopulation von FM-Synthesizern, die durch Zufall erzeugt werden.<br />

Anschließ end werden in jeder Generation neue Individuen durch Kreuzung und<br />

Mutation gebildet, analysiert und <strong>mit</strong> dem Original verglichen. Diejenigen<br />

Synthesizer, die den Originalklang am besten nachahmen können, werden in die<br />

nächste Generation ü berfü hrt, in der Hoffnung, dort aus den eigenen guten<br />

Eigenschaften neue, bessere Synthesizer hervorzubringen. Im vierten Schritt werden<br />

dem Nutzer die er<strong>mit</strong>telten Ergebnisse präsentiert.<br />

Wie schon erwähnt, beschreite ich einen Weg, der sich zwischen den Werken von<br />

Horner und Garcia befindet. Horner legt in seiner Arbeit den Schwerpunkt auf die<br />

Optimierung von Parametern für das Syntheseverfahren der Frequenzmodulation<br />

(genau gesehen verwendet er eigentlich die Phasenmodulation). Er nutzt dafü r einen<br />

festen Algorithmus. Ich bin allerdings der Meinung, daß auch der Algorithmus (also<br />

10


die Struktur) nicht statisch sein sollte, da die <strong>Algorithmen</strong> so gesehen selbst einen<br />

Parameter für das Verfahren darstellen. Garcia dagegen hat die Entwicklung einer<br />

geeigneten Struktur eines beliebigen Syntheseverfahrens in den Vordergrund seiner<br />

Arbeit gestellt. Ein sehr lohnenswerter Ansatz. Da die Eigenschaften verschiedener<br />

Syntheseverfahren meist auch weit auseinander liegen, möchte ich mich in dieser<br />

Arbeit auf ein einziges Syntheseverfahren konzentrieren. Meinen Nachforschungen<br />

zufolge erscheint auch hier wieder die FM-Synthese als sehr mächtiges Verfahren,<br />

welches, im Gegensatz zu anderen Syntheseverfahren, <strong>mit</strong> bescheidenen Mitteln<br />

(Oszillatoren und Hü llkurven) sehr komplexe Klänge erzeugen kann.<br />

Die Auswahl eines geeigneten Evolutionären Algorithmus war schnell vollzogen.<br />

Wie Horner habe ich mich fü r die Genetischen <strong>Algorithmen</strong> entschieden, weil sie das<br />

am grü ndlichsten erforschte Gebiet der Evolutionären <strong>Algorithmen</strong> darstellen. Der<br />

fü r mich wichtigste Vorteil dieser liegt bei den Genetischen Operatoren, die das<br />

Chromosom verändern können, ohne ü ber die Regeln für die zugrunde liegende<br />

Struktur etwas wissen zu müssen. Die Genetischen <strong>Algorithmen</strong> stellen zudem<br />

mehrere Kreuzungs- und Mutationsverfahren bereit, die sich bereits bewährt haben.<br />

Bei der Genetischen Programmierung, die Garcia verwendet hat, ist dies nicht der<br />

Fall. Hier müssen ü blicherweise für jedes Optimierungsproblem neue Kreuzungsund<br />

Mutationsoperatoren geschrieben werden, die besondere Anforderungen des<br />

strukturierten Chromosoms beachten. Da die Struktur des Chromosoms meistens<br />

baumartig ist, sind die Operationen oft sehr langwierig und die Größ e der<br />

Chromosomen (Anzahl der Knoten) muß begrenzt werden.<br />

11


2 Genetische <strong>Algorithmen</strong><br />

2.1 Grundlagen der Evolution und Genetik<br />

In der Natur durchlaufen alle Arten von Lebewesen einen andauernden<br />

Entwicklungsprozeß , der vom Drang zum Ü berleben geprägt ist. Dieser Vorgang<br />

erstreckt sich ü ber einen sehr langen Zeitraum und kann als ein Lernprozeß<br />

angesehen werden, in dem sich alle Lebewesen an die gegebenen Umwelteinflü sse<br />

anpassen müssen. An dieser Stelle setzen die zwei wichtigsten Prinzipien der<br />

Evolution an. Die Selektion und die Vererbung. Die Individuen, die sich besonders<br />

erfolgreich ihrer Umwelt anpassen, werden verstärkt ihre Eigenschaften und<br />

Merkmale durch Fortpflanzung an die nächsten Generationen weitergeben.<br />

Schwache Individuen dagegen werden aussterben. Die Ergebnisse sprechen fü r sich,<br />

denn die Evolution hat erfolgreich aus ganz einfachen Strukturen im Laufe von<br />

Millionen von Jahren unglaublich komplexe Strukturen und effektive Mechanismen<br />

in allen möglichen Formen und Variationen hervorgebracht.<br />

Die Erbinformationen bestimmen sowohl Aufbau als auch Aussehen eines<br />

Lebewesens und befinden sich in dessen Zellen. Dort sind sie als ein Satz von<br />

Chromosomen im Genom zusammengefaß t. Die Informationen werden hier in einer<br />

chemischen Struktur abgespeichert, der sogenannten DNS (Desoxyribonukleinsäure).<br />

Die DNS ist aus zwei Einzelsträngen (Phosphat-Zucker-Ketten) aufgebaut, welche<br />

durch Basenpaare <strong>mit</strong>einander verbunden sind. Die Basenpaare werden durch die<br />

Kombination der Basen Adenin, Thymin, Cytosin und Guanin gebildet. Aufgrund<br />

der chemischen Struktur der Basen passen jeweils nur Adenin <strong>mit</strong> Thymin und<br />

Cytosin <strong>mit</strong> Guanin zusammen. Diese Basen bilden die Grundlage fü r die gesamten<br />

genetischen Informationen eines Lebewesens. Reiht man die Basenpaare aneinander<br />

spricht man vom sogenannten Genetischen Code, der sich wie folgt strukturiert: Eine<br />

Gruppe von drei nebeneinander liegenden Basenpaaren bilden eine Aminosäure.<br />

Betrachtet man nun eine Folge von aneinander gereihten Aminosäuren, erhält man<br />

ein Protein (Eiweiß ). Eine Kette von Proteinen wird als Gen bezeichnet. Vereinfacht<br />

kann man also sagen, daß die Chromosomen die Träger der Gene sind, die alle<br />

13


genetischen Informationen eines Lebewesens beinhalten. Jedes Gen ist durch seine<br />

feste Position innerhalb des Chromosoms bestimmt und legt auf diese Weise ganz<br />

bestimmte Eigenschaften und Merkmale fü r ein Individuum fest. Die Gesamtheit der<br />

Gene bezeichnet man als Genotyp. Man kann sich die Funktionalität des Genotyps<br />

als eine Art Schablone für eine Art von Lebewesen vorstellen. Die einzelnen<br />

Individuen <strong>mit</strong> den jeweiligen Ausprägungen der Eigenschaften und Merkmale nennt<br />

man Phänotypen.<br />

Das Prinzip der Vererbung von Eigenschaften und Merkmalen wird bei fast allen<br />

Lebewesen durch Paarung erreicht. Finden sich zwei starke Exemplare einer Art<br />

pflanzen sie sich fort, d.h. die Gene der zwei Individuen werden zufällig <strong>mit</strong>einander<br />

vermischt. Da<strong>mit</strong> erhalten die Nachkommen einen Teil der Eigenschaften und<br />

Merkmale vom Vater, den anderen Teil von der Mutter. Die Rekombination der<br />

Gene verschiedener Organismen der gleichen Art sorgt für eine ständige<br />

Durchmischung des Erbmaterials einer ganzen Art. Bei der Rekombination von<br />

Individuen können gelegentlich auch Mutationen auftreten. Eine Mutation ist ein<br />

Fehler bei der Replikation des DNS-Stranges. Es kann dabei vorkommen, daß eine<br />

falsche Base in den aufgeteilten DNS-Strang eingefü gt oder eine beliebige Base<br />

daraus entfernt wird. Manchmal treten auch sogenannte spontane Mutationen auf, die<br />

durch ganz unterschiedliche Ursachen wie zum Beispiel Radioaktivität,<br />

Klimafaktoren oder Stoffwechselstörungen hervorgerufen werden. Eine Mutation<br />

kann sich positiv, negativ oder neutral auf ein Individuum auswirken und so<strong>mit</strong> auch<br />

auf dessen Ü berlebens- und Fortpflanzungschancen. Auch wenn die Auswirkungen<br />

der Mutation ungewiß sind, spielt sie doch eine bedeutende Rolle. Sie sorgt zum<br />

einen für neues Erbmaterial und bringt zum anderen Variabilität in den<br />

Evolutionsprozeß ein, die durch Rekombination allein nicht erreicht werden kann.<br />

Das Prinzip der Selektion (natü rliche Auslese) bevorzugt stärkere und vernachlässigt<br />

schwächere Individuen bei der Fortpflanzung. Die Fitneß eines Individuums wird<br />

durch die Einwirkung von oft sehr vielen Selektionsfaktoren (Umweltbedingungen)<br />

bestimmt, die direkt auf die Eigenschaften eines Phänotyps Einfluß nehmen. Diese<br />

Faktoren stellen im Zusammenhang ein sehr komplexes Wirkungsgefü ge dar und<br />

steuern auf diese Weise die Evolution in ihrer Richtung und Geschwindigkeit. Durch<br />

14


die Bevorzugung stärkerer Individuen wird deren durchschnittliche Zahl an<br />

Nachkommen auch deutlich höher sein. Auf diesem Weg wird zum größ ten Teil nur<br />

das gute genetische Material in die jeweils nächsten Generationen weitergegeben und<br />

da<strong>mit</strong> der Fortbestand der eigenen Art gesichert.<br />

2.2 Informatik und Evolution<br />

Theoretisch gesehen, kann man fast jede Aufgabe als Optimierungsproblem<br />

auffassen. Das Ziel besteht darin, möglichst schnell ein gutes Ergebnis zu er<strong>mit</strong>teln.<br />

Das hängt allerdings von der Anzahl der Parameter ab, die das Problem beschreiben.<br />

Mit einer steigenden Anzahl von Parametern eines Problems werden auch der Grad<br />

der Komplexität und die Menge der möglichen Lösungen steigen. Sind die<br />

Lösungsräume von Aufgaben relativ klein, dann reicht oft schon ein einfaches<br />

Verfahren aus, um die gesuchte Lösung zu finden. Eine mögliche Methode wäre zum<br />

Beispiel die Brute-Force-Methode, bei der alle möglichen Lösungen eines Problems<br />

berechnet werden und anschließ end aus dieser Menge die beste Lösung<br />

herausgesucht wird. Ist ein Problem zu komplex und da<strong>mit</strong> der Lösungsraum zu<br />

groß , dann versagt diese Methode aufgrund der fehlenden Rechenleistung.<br />

An dieser Stelle setzen oft heuristische Verfahren an, die in das Gebiet des<br />

sogenannten Soft Computing einzuordnen sind. Eine Gruppe dieser Verfahren sind<br />

die Evolutionären <strong>Algorithmen</strong> (EA). Diese versuchen im Computer den Prozeß der<br />

natü rlichen Evolution zu simulieren. Das Konzept ist vielversprechend, denn der<br />

Evolutionsprozeß funktioniert in der Natur schon seit Anbeginn des Lebens und das<br />

<strong>mit</strong> groß em Erfolg. Es ist also nicht verwunderlich, daß dieser Prozeß in die<br />

Informatik ü bertragen wurde. Es gibt vier wesentliche Strategien, die auf den<br />

Grundlagen der natü rlichen Evolution basieren und unter dem Begriff der<br />

Evolutionären <strong>Algorithmen</strong> zusammengefaß t wurden: Die Genetischen <strong>Algorithmen</strong><br />

(GA), die Genetische Programmierung (GP), die Evolutionären Strategien (ES) und<br />

die Evolutionäre Programmierung (EP). In den folgenden Abschnitten meiner Arbeit<br />

werde ich allerdings nur noch auf das Gebiet der Genetischen <strong>Algorithmen</strong> eingehen,<br />

weil es das meist genutzte und erforschte Verfahren der Evolutionären <strong>Algorithmen</strong><br />

darstellt und ich es aus diesem Grund verwende. Die Grundlagen dafü r wurden schon<br />

15


im Jahre 1962 von John Holland entwickelt. Im Gegensatz zu den konventionellen<br />

Verfahren (Aufzählung, Zufallssuche und analytische Suche), zeichnen sich die<br />

Genetischen <strong>Algorithmen</strong> vor allem durch ihre höhere Robustheit aus. Diese<br />

resultiert aus der Kombination einer mehrfach gerichteten Suche und stochastischen,<br />

nicht deterministischen Regeln (Selektion). Sie sind in der Lage eine Menge von<br />

Lösungen (Population) parallel zu verarbeiten und nicht nur eine einzige, wie es<br />

beim Hillclimbing oder dem Simulated Annealing der Fall ist. Aufgrund dieser<br />

Eigenschaften sind die Genetischen <strong>Algorithmen</strong> für eine Vielzahl von<br />

Optimierungsaufgaben geeignet. Trotz der oft sehr komplexen Lösungsräume vieler<br />

Probleme finden sie immer wieder Lösungen in erstaunlicher Qualität.<br />

2.3 Abstraktion der Evolution<br />

Wie schon erwähnt, dient die natü rliche Evolution als Vorbild. Daher wird auch bei<br />

den Genetischen <strong>Algorithmen</strong> eine Population von Individuen einem künstlichen<br />

Evolutionsprozeß ausgesetzt. Die Individuen müssen sich in einer spezifizierten<br />

Umgebung behaupten. Um ein Maß fü r den Erfolg eines Individuums zu erhalten,<br />

wird dessen Fitneß durch eine Bewertungsfunktion bestimmt. Die erfolgreichen<br />

Exemplare werden sich verstärkt fortpflanzen und auf diese Weise ihr genetisches<br />

Material weitergeben. Die Wahrscheinlichkeit auf Selektion eines Individuums für<br />

den Fortpflanzungsprozeß wird durch ganz unterschiedliche Methoden bestimmt. Die<br />

Reproduktion erfolgt, wie auch in der Natur, durch Kreuzung von zwei<br />

Elternindividuen. Auch die Mutation von Individuen wurde nachgebildet und soll die<br />

Variabilität einer Population erhalten. Diese Prozedur wird so oft wiederholt, bis eine<br />

annehmbare Lösung fü r ein Problem gefunden wurde oder die vorgegebene Anzahl<br />

an Generationen erschöpft ist.<br />

Dieses Verfahren arbeitet, im Gegensatz zu herkömmlichen Suchmethoden, nicht in<br />

nur einem Zustandsraum (Lösungsraum), sondern in zwei voneinander getrennten<br />

Zustandsräumen (Abb. 1): Suchraum und Lö sungsraum. Der Suchraum enthält die<br />

kodierten Lösungen eines Problems, die auch als Genotypen bezeichneten werden.<br />

Der Lösungsraum enthält die eigentlichen Lösungen, die Phänotypen, <strong>mit</strong> den<br />

konkreten Parameterwerten eines Problems. Zu jedem Genotyp im Suchraum gibt es<br />

16


auch einen entsprechenden Phänotyp im Lösungsraum. Eine Dekodierungsfunktion,<br />

die beide Zustandsräume <strong>mit</strong>einander verbindet, ü berträgt die genotypischen<br />

Lösungen in den phänotypischen Raum.<br />

Suchraum<br />

Lö sungsraum<br />

01110101 [1.1|1.2]<br />

10110111<br />

[0.3|1.4]<br />

11100011<br />

01011001<br />

Dekodierung<br />

[0.3|1.4]<br />

[0.6|1.5]<br />

01010101<br />

11010100<br />

[1.3|0.7]<br />

[0.9|0.2]<br />

Genotypen<br />

(Kreuzung, Mutation)<br />

Phänotypen<br />

(Bewertung, Selektion)<br />

Abbildung 1: Zustandsrä ume <strong>Genetischer</strong> <strong>Algorithmen</strong><br />

Bewertung und Selektion von Lösungen finden ausschließ lich im phänotypischen<br />

Raum statt, denn nur dort können und mü ssen die konkret ausgebildeten Lösungen in<br />

einer rauhen Umwelt um ihr Ü berleben kämpfen. Kreuzung und Mutation werden im<br />

Suchraum auf die Genotypen angewendet. Soll eine bestimmte Aufgabe gelöst<br />

werden, müssen als erstes die Parameter bestimmt werden, die das Problem<br />

beschreiben. Diese könnten zum Beispiel die Parameter a und b einer Funktion f(a,<br />

b) sein. Wenn alle Parameter festgelegt wurden, ist die Spezifikation des<br />

phänotypischen Raums abgeschlossen und es liegt eine Sammlung von Parametern<br />

vor. Danach gilt es eine Form der Kodierung zu finden, um auch den genotypischen<br />

Raum zu repräsentieren. Die Art der Kodierung hängt ganz von der Implementation<br />

des Algorithmus ab. In den meisten Fällen werden binäre Zeichenketten verwendet.<br />

Ein kodierter Parameter wird als Gen bezeichnet. Intern werden die Gene<br />

<strong>mit</strong>einander verkettet und als Chromosom in einem Individuum abgelegt. Neben<br />

dem Chromosom wird auch die Rohfitneß einer Lösung im Individuum hinterlegt.<br />

Sie wird später benötigt, um die Selektionswahrscheinlichkeit (relative Fitneß ) einer<br />

Lösung zu bestimmen. Da der durch den Genetischen Algorithmus simulierte<br />

Evolutionsprozeß immer auf eine Population von Individuen wirkt, entspricht dieser<br />

17


da<strong>mit</strong> einer parallelen Suche nach potentiellen Lösungen im genotypischen Raum.<br />

Laut Michalewicz [MIC-96] ist ein ausgeglichenes Verhältnis zwischen der<br />

Erkundung des gesamten Suchraums und der Ausbeutung der bereits gefundenen<br />

besten Lösungen entscheidend fü r den Erfolg des Algorithmus.<br />

Der einfache Genetische Algorithmus unterliegt einer grundlegenden Prozedur (Abb.<br />

2). Er wurde schon oft realisiert und selbst bei einer schlechten Implementation<br />

können meist noch respektable Ergebnisse erzielt werden. Die fortgeschrittenen<br />

Genetischen <strong>Algorithmen</strong> erweitern dieses Verfahren <strong>mit</strong> einigen zusätzlichen<br />

Theorien, ändern aber nichts an der grundsätzlichen Funktionsweise. Den Ablauf der<br />

Prozedur kann man sich wie folgt vorstellen: Bevor der Prozeß beginnen kann,<br />

mü ssen einige Parameter wie die Populationsgröß e, die Selektionsmethode, ein<br />

geeignetes Ersetzungsverfahren sowie die Wahrscheinlichkeiten für Mutation und<br />

Kreuzung spezifiziert werden. Danach wird eine Ausgangspopulation der<br />

entsprechenden Größ e gebildet. Die Gene der Chromosomen aller Individuen<br />

(Genotypen) werden dann <strong>mit</strong> zufälligen Werten belegt. Anschließ end werden die<br />

Phänotypen der Startpopulation bewertet, um eine Maß fü r ihre Fitneßzu erhalten.<br />

Jetzt beginnt der iterative Teil des Algorithmus, in welchem der natü rliche<br />

Evolutionsprozeß nachgeahmt wird. Am Anfang jeder Generation steht eine<br />

Population von Elternindividuen zur Verfü gung, die oft auch als Eltern-Pool<br />

bezeichnet wird. Aus diesem werden immer zwei Individuen selektiert. Die<br />

Wahrscheinlichkeit auf Selektion zur Fortpflanzung wird durch die Berechnung der<br />

Fitneß eines Individuums er<strong>mit</strong>telt. Stehen die Elternindividuen fest, werden von<br />

beiden zwei identische Kopien erzeugt. Mit der vorher festgelegten<br />

Kreuzungswahrscheinlichkeit (ca. 60% – 90%), findet nun die Reproduktion der<br />

Nachkomment statt. Genauer gesagt, werden die Genotypen der Klone an einem<br />

zufälligen Punkt des Chromosoms <strong>mit</strong>einander gekreuzt. Das Ergebnis sind zwei<br />

neue Kinder. Findet keine Kreuzung statt, sind die geklonten Individuen selbst die<br />

Nachkommen. Bevor die neuen Individuen in den Kinder-Pool gesteckt werden,<br />

mü ssen sie sich noch einer Mutation unterziehen, die aber nur <strong>mit</strong> einer sehr<br />

geringen Wahrscheinlichkeit Ä nderungen am Genotyp vornimmt. Dieser Prozeß der<br />

Selektion und Reproduktion wird so oft wiederholt, bis der Kinder-Pool die gleiche<br />

Größ e aufweist wie der Eltern-Pool. Am Ende einer Generation werden die<br />

18


Individuen aus dem Eltern-Pool <strong>mit</strong> denen aus dem Kinder-Pool ersetzt (Ersetzung).<br />

Die neue Population von Elternindividuen für die nächste Generation steht bereit.<br />

Der Algorithmus wird erst beendet, wenn eine bestimmte Terminierungsbedingung<br />

vorliegt. Dies kann zum Beispiel das Erreichen einer maximalen Anzahl von<br />

Generationen sein oder das Auffinden einer zufriedenstellenden Lösung.<br />

1<br />

Einstellung verschiedener Eigenschaften des Genetischen Algorithmus<br />

2<br />

Initialisierung der Ausgangspopulation<br />

3<br />

Wiederhole, solange Terminierungsbedingung nicht wahr ist<br />

4<br />

Evaluation der aktuellen Population<br />

5<br />

Wiederhole, solange nicht genügend Nachkommen gebildet wurden<br />

6<br />

Selektion zweier Eltern in Abhängigkeit ihrer Fitneß<br />

7<br />

Erzeugung von Nachkommen durch Kreuzung beider Eltern<br />

8<br />

Mutation der erzeugten Nachkommen<br />

9<br />

Ersetzung der alten Generation<br />

Abbildung 2: Struktur <strong>Genetischer</strong> <strong>Algorithmen</strong><br />

Bei der Anwendung der fortgeschrittenen Genetischen <strong>Algorithmen</strong> können noch<br />

bessere Ergebnisse erzielt werden. Im Folgenden sind hier nur drei wesentliche<br />

Maß nahmen aufgefü hrt, die verdeutlichen sollen, an welchen Stellen der einfache<br />

Genetische Algorithmus noch verbessert werden kann. Als erstes ist es möglich dem<br />

Algorithmus eine größ ere Ausgangspopulation zur Verfü gung zu stellen. Dabei ist<br />

eine bessere durchschnittliche Fitneß zu erwarten. In einigen Fällen lohnt es sich<br />

sogar, die Individuen der Startpopulation <strong>mit</strong> konkreten Werten zu belegen. Dadurch<br />

kann man schon zu Beginn des Algorithmus sicherstellen, daß der gesamte<br />

Suchraum abgedeckt wird. Die zweite Möglichkeit setzt bei den Genetischen<br />

Operatoren für die Reproduktion an. Hier können neben der Ein-Punkt-Kreuzung<br />

auch andere Kreuzungsoperatoren ausgewählt werden. Die bekanntesten sind die<br />

Zwei-Punkt-Kreuzung, die Zwei-Punkt-Kreuzung <strong>mit</strong> Translokation und die<br />

gleichmäßige Kreuzung. Diese Operatoren sollen für eine bessere Durchmischung<br />

der genetischen Information zweier Individuen sorgen. Weiterhin gibt es neben<br />

19


Kreuzung und Mutation auch noch die Inversion und Translokation. Beide<br />

Genetische Operatoren wirken, genau wie die Mutation, auf nur ein Individuum. Im<br />

Gegensatz zur Mutation, sind sie in der Lage ganze Abschnitte eines Individuums zu<br />

verändern, haben aber einen geringeren Einfluß auf die Variabilität in einer<br />

Population. Die dritte Möglichkeit befaß t sich <strong>mit</strong> den Ersetzungsschemata. Durch<br />

die Verwendung von Elitismus oder Dynamischen Elitismus wird in der Regel eine<br />

durchschnittlich bessere Fitneß erreicht, da nicht alle Individuen der Elternpopulation<br />

verworfen, sondern einige <strong>mit</strong> in die neue Generation <strong>mit</strong>gefü hrt werden.<br />

Die Qualität eines Genetischen Algorithmus wird im Wesentlichen von sieben<br />

Faktoren, <strong>mit</strong> unterschiedlich starker Wirkung, beeinfluß t. Dabei handelt es sich um<br />

die folgenden Elemente:<br />

• Modellierung von Phänotyp und Genotyp (Kodierung), einschließ lich der<br />

Ü bertragungsfunktion, die fü r die Dekodierung notwendig ist.<br />

• Bereitstellung der Möglichkeit eine Ausgangspopulation zu erschaffen.<br />

• Entwurf einer Bewertungsfunktion, die in der Lage ist Umwelteinflü sse zu<br />

simulieren und da<strong>mit</strong> die einzelnen Individuen qualitativ zu bewerten.<br />

• Einen Mechanismus, der die Selektionswahrscheinlichkeiten der Individuen<br />

berechnet und <strong>mit</strong> <strong>Hilfe</strong> dieser Individuen selektiert.<br />

• Ein Ersetzungsverfahren, das aus den Eltern und ihren Nachkommen eine<br />

neue Population fü r die nächste Generation bildet.<br />

• Genetische Operatoren wie Kreuzung und Mutation, die Ä nderungen im<br />

genotypischen Raum vornehmen.<br />

• Einstellung von Parametern wie Populationsgröß e und Wahrscheinlichkeiten<br />

fü r Kreuzung und Mutation.<br />

Zu den wichtigsten Faktoren gehören die Modellierung von Phänotyp und Genotyp<br />

und der Entwurf einer geeigneten Fitneß funktion. Aber auch die Genetischen<br />

Operatoren, die Wahl des Ersetzungsverfahrens und der Selektionsmechanismus<br />

sollten <strong>mit</strong> Sorgfalt gewählt werden. Wenn ein <strong>Genetischer</strong> Algorithmus keine<br />

zufriedenstellende Lösung finden sollte, dann ist <strong>mit</strong> groß er Wahrscheinlichkeit einer<br />

20


dieser Faktoren dafü r verantwortlich. Im schlimmsten Fall ist es sogar die Art des<br />

Problems, die für den Miß erfolg schuld ist. Trotz der meist sehr guten Ergebnisse<br />

muß man sich immer vor Augen halten, daß die Genetischen <strong>Algorithmen</strong> kein<br />

Allheil<strong>mit</strong>tel fü r jedes Problem sind und nach wie vor ein junges Forschungsgebiet<br />

darstellen.<br />

Die natü rliche Evolution vereint eine Vielzahl von Strategien, die aber nicht alle<br />

naturgetreu ü bernommen wurden. Die wichtigsten von ihnen wurden in vereinfachter<br />

Form auf die Genetischen <strong>Algorithmen</strong> ü bertragen und einige andere wurden sogar<br />

ganz weggelassen. Die auffälligste Ä nderung betrifft den Aufbau des Genoms. Es<br />

besteht aus einem einzigen Chromosom und ist da<strong>mit</strong> haploid. Dagegen besitzen fast<br />

alle Lebewesen mehrere Chromosomen, die als doppelter Satz in der Zelle vorliegen.<br />

Eine weitere Ä nderung betrifft die Art und Weise der Kodierung der genetischen<br />

Informationen im Chromosom, die auf der Grundlage eines anderen Alphabetes<br />

(meistens binär) vollzogen wird. Hinzu kommt, daß die Individuen theoretisch<br />

unendlich alt werden können und dadurch immer wieder für die Reproduktion<br />

bereitstehen, d.h. der Prozeß schließ t zwar die Geburt und das Leben von Individuen<br />

ein, aber nicht deren Tod. In Bezug auf das Alter gibt es schon erste Ansätze, die<br />

eine Lebenszeit fü r Individuen simuliert und dadurch auch Superindividuen sterblich<br />

macht. Neben dem Lebenszyklus wurde auch der Fortpflanzungsprozeß vereinfacht.<br />

Individuen sind grundsätzlich geschlechtslos, aber trotzdem werden noch zwei von<br />

ihnen zur Reproduktion herangezogen. Auß erdem fehlt jede Form von<br />

Familienverhältnissen. Dies kann zur Inzucht führen, wenn sehr wenige gute<br />

Individuen die Population beherrschen. Wie bekannt ist, bedeutet ein erhöhtes Maß<br />

an Inzucht die Abnahme der Variabilität in einer Population, da die<br />

Kombinationsmöglichkeiten der genetischen Informationen der sich ähnelnden<br />

Individuen sehr gering sind. Abhilfe soll hier ein Verfahren bieten, das gleich<br />

mehrere Populationen parallel entwickelt. In bestimmten Abständen findet dann ein<br />

Austausch von Individuen der Populationen statt und soll dadurch die Variabilität des<br />

genetischen Materials erhalten. Als letztes möchte ich die in einer Population<br />

fehlenden sozialen Strukturen ansprechen. In der Natur ermöglichen diese durch<br />

Arbeitsteilung und Zusammenarbeit das Lösen von Problemen. Ein Beispiel dafü r ist<br />

eine Ameisenkolonie. Dieser Ansatz wird verstärkt im Forschungsgebiet des<br />

21


Kü nstlichen Lebens (Artificial Life) erforscht und wird den Genetischen<br />

<strong>Algorithmen</strong> wohl auch weiterhin verwehrt bleiben. Trotz der starken Abstraktion<br />

der Evolutionsstrategien funktionieren die Genetischen <strong>Algorithmen</strong> erstaunlich<br />

effektiv, wenn auch nicht immer hundertprozentig treffsicher.<br />

2.4 Repräsentation<br />

Ein Chromosom besteht grundsätzlich aus einer linearen Zeichenkette. Diese wird<br />

häufig auch als String oder Array bezeichnet. Ein Alphabet legt den Wertevorrat der<br />

Zeichen fest, die zum Kodieren der Parameter des Optimierungsproblems verwendet<br />

werden. Am häufigsten wird das binäre Alphabet eingesetzt. Die Zeichenkette<br />

besteht aus n sequentiell aneinander gereihten Teilzeichenketten, die jeweils ein Gen<br />

des Chromosoms darstellen. Jeder Parameter wird durch genau ein Gen repräsentiert.<br />

Jedes Gen hat eine bestimmte Länge, die von dem zu kodierenden Parameter<br />

abhängt. Addiert man die Länge aller Gene, erhält man die Länge des Chromosoms.<br />

In der folgenden Abbildung ist der schematische Aufbau kurz dargestellt:<br />

Phänotyp (Individuum)<br />

Parameter 1<br />

Parameter 2<br />

...<br />

Parameter n<br />

1.3<br />

26<br />

...<br />

0.01<br />

Interpretation<br />

Modellierung<br />

l = 11 l = 8<br />

l = 10<br />

01100101010<br />

10101001<br />

...<br />

1010000111<br />

Gen 1<br />

Gen 2<br />

...<br />

Gen n<br />

Genotyp (Chromosom)<br />

Abbildung 3: Modellierung und Interpretation des Chromosoms<br />

Die Interpretation eines Gens hängt von den Werten ab, die der repräsentierte<br />

Parameter annehmen kann. Die Menge aller zulässigen Werte wird durch den<br />

Definitionsbereich bestimmt, der vier unterschiedliche Informationsniveaus besitzen<br />

22


kann. Das erste und geringste Niveau wird durch die Nominalskala beschrieben. Die<br />

einzigen zur Verfü gung stehenden Operatoren sind Gleichheit und Ungleichheit.<br />

Mögliche Ausprägungen eines Parameters wären z.B. männlich (0) und weiblich (1)<br />

fü r das Geschlecht oder Auto (00), Bus (10), Bahn (01) und Flugzeug (11) fü r ein<br />

Fortbewegungs<strong>mit</strong>tel. Das zweite Niveau ist die Rangskala (auch Ordinalskala), auf<br />

der die Werte hinsichtlich ihres Ranges angeordnet sind. Neben Gleichheit und<br />

Ungleichheit kann zusätzlich geprü ft werden, ob ein Wert kleiner oder größ er als ein<br />

anderer ist. Ein Paradebeispiel sind die Schulnoten 1 (000), 2 (001), 3 (010), 4 (100),<br />

5 (101) und 6 (110). Fü r einen ordinalen oder nominalen Parameter kann die Länge<br />

eines Gens (L G ) <strong>mit</strong> <strong>Hilfe</strong> der folgenden Beziehung berechnet werden:<br />

[1]<br />

L<br />

G<br />

( XMax<br />

1)<br />

ˆ<br />

˜<br />

log( 2) Ê log +<br />

= AufrundungÁ<br />

Ë<br />

¯<br />

Alle möglichen Werte eines Parameters sind im Intervall [0; X Max ] festgeschrieben.<br />

Die zuvor genannten Beispiele wü rden so<strong>mit</strong> Genlängen von 1 fü r das Geschlecht, 2<br />

fü r die Fortbewegungs<strong>mit</strong>tel und 3 fü r die Schulnoten ergeben. Als nächstes ist die<br />

Intervallskala zu nennen, die, ergänzend zur Rangskala, die Differenz von zwei<br />

Werten zuläßt. Als Beispiele soll hier die Celsius-Temperaturskala genannt sein. Das<br />

höchste Informationsniveau stellt die Verhältnisskala bereit. Neben den<br />

Eigenschaften der Intervallskala besitzt sie zusätzlich noch einen absoluten<br />

Nullpunkt. Diese Eigenschaften werden von der Kelvin-Temperaturskala, der<br />

Gewichtsskala oder der Längenskala verwendet. Die Berechnung der Genlänge fü r<br />

eine Intervall- oder Verhältnisskala ist ähnlich wie bei einer Nominal- und<br />

Ordinalskala. Bei Parameterwerten im ganzzahligen Bereich kann anstelle von X Max<br />

die Differenz der Grenzen des Intervalls [X Min ; X Max ] in die Beziehung [1] eingesetzt<br />

werden:<br />

[2]<br />

L<br />

G<br />

(( XMax<br />

- XMin<br />

) 1)<br />

ˆ<br />

˜<br />

log( 2) Ê log<br />

+<br />

= AufrundungÁ<br />

Ë<br />

¯<br />

Beispielsweise wü rde das Intervall [-8; 22] <strong>mit</strong> einer Differenz von 30 eine Genlänge<br />

von 5 ergeben. Sind die Parameterwerte aus dem Bereich der reellen Zahlen, dann<br />

spielt die Genauigkeit der Werte eine Rolle und muß bei der Berechnung der<br />

Genlänge beachtet werden. Demnach wird ein reellwertiges Intervall in kleine<br />

23


Abschnitte unterteilt. Die Größ e der Teilintervalle wird durch die Genauigkeit, d.h.<br />

die Anzahl der Nachkommastellen (n) vorgegeben. Dazu ist noch eine geringfü gige<br />

Ä nderung der Beziehung [2] notwendig:<br />

[3]<br />

L<br />

G<br />

n<br />

( X ) ) ˆ<br />

Max - XMin<br />

10 1<br />

log( 2) ˜˜<br />

Ê log<br />

+<br />

= AufrundungÁ<br />

Ë<br />

¯<br />

Eine Verhältnisskala fü r das Intervall [– 0.5; 1.2] wü rde so<strong>mit</strong> eine Differenz von 1.7<br />

ergeben. Verrechnet man dies <strong>mit</strong> der Genauigkeit von 3 Nachkommastellen, erhält<br />

man 1701 Teilintervalle, was zu einer Genlänge von 11 fü hrt.<br />

2.5 Evaluation und Fitneß<br />

Die Fitneß der Individuen ist die treibende Kraft in den Genetischen <strong>Algorithmen</strong>.<br />

Sie entscheidet, welche Richtung die simulierte Evolution bei der Lösungssuche<br />

einschlägt, oder anders ausgedrü ckt, welche Regionen des Suchraums stärker<br />

erkundet werden. Mit ihrer <strong>Hilfe</strong> kann eine Aussage getroffen werden, wie fähig ein<br />

Individuum ist, das in diesem Sinne eine konkrete Lösung des Problems im<br />

Suchraum darstellt. In der Natur wird dies als Grad der Anpassung eines<br />

Individuums an seine spezifische Umwelt betrachtet. Bei den Genetischen<br />

<strong>Algorithmen</strong> dagegen spiegelt die Fitneß den Grad der Optimierung der Parameter<br />

der zu lösenden Aufgabe wider, d.h. wie nahe diese Lösung einer optimalen Lösung<br />

ist. Ist ein Individuum erfolgreich, wird es auch <strong>mit</strong> einer hohen Wahrscheinlichkeit<br />

sein genetisches Material <strong>mit</strong> den guten Eigenschaften durch Fortpflanzung an die<br />

nächste Generation weitergeben. Weniger erfolgreiche Individuen können sich zwar<br />

auch fortpflanzen, aber die Chance, daß sie fü r den Reproduktionsprozeß ausgewählt<br />

werden, ist sehr gering. Eine bisher unbeantwortete Frage ist, wann ein Fitneß wert<br />

gut und wann er schlecht ist. Bisher wurde die beste Lösung einer Aufgabe als<br />

Optimum beschrieben. Diesen Sachverhalt kann man auch als Suche nach einem<br />

Maximum definieren. Sollte einmal ein Minimum gesucht sein, dann wird durch<br />

Negation der Fitneß werte auch diese zur Suche nach einem Maximum. Da<strong>mit</strong> gilt,<br />

daß ein hoher Fitneß wert gut ist, ein niedriger dagegen schlecht. Doch wie erhält<br />

man nun den Wert für die Fitneß eines Individuums? Dies geschieht in zwei<br />

Schritten. Im ersten Schritt wird das Chromosom eines Individuums entschlü sselt.<br />

24


Dadurch erhält man die Werte fü r die Parameter des Optimierungsproblems, welches<br />

ich hier als Zielfunktion definiere. Die soeben dekodierten Parameter setzt man nun<br />

in die Zielfunktion ein. Diese gibt die Bewertung eines Individuums, als Maß für<br />

den Abstand zum gesuchten Optimum, zurü ck. Die Bewertung von Lösungen wird<br />

aufgrund des Problems immer wieder neu spezifiziert. Dennoch werden in den<br />

meisten Fällen altbekannte Kriterien wie Belohnungen, Bestrafungen, Gewinn,<br />

Verlust, Kosten, Punkte, Leistungen und Preise für die Bewertung von Lösungen<br />

herangezogen. Im zweiten Schritt kann die zuvor er<strong>mit</strong>telte Bewertung noch<br />

standardisiert, angepaß t oder gar normalisiert werden. Dies kann notwendig sein,<br />

wenn z.B. ein kleiner Wert als gut gilt und da<strong>mit</strong> eine Minimumsuche darstellt. Die<br />

Bewertungen müssen dann durch Negation korrigiert werden, um einer<br />

Maximumsuche gerecht zu werden. Der zweite Schritt ist nicht in jedem Fall<br />

notwendig, denn oft wird das Ergebnis der Zielfunktion selbst als Fitneß wert<br />

verwendet. Die Prozedur der Fitneß berechnung wird für alle Individuen einer<br />

Population durchgefü hrt. Stehen alle Werte zur Verfü gung, können die<br />

Selektionswahrscheinlichkeiten der Individuen, bezogen auf die ganze Population,<br />

berechnet werden. Die verschiedenen Methoden dafü r werde ich in den folgenden<br />

Abschnitten noch ansprechen.<br />

2.6 Reproduktion<br />

Die Erzeugung von Nachkommen ist, neben der natü rlichen Auslese, eine der<br />

wichtigsten Strategien der Evolution. Auf diese Weise wird der Fortbestand einer<br />

Rasse gesichert. Ist eine Population nicht mehr in der Lage bessere Individuen<br />

hervorzubringen, wird sie aussterben. Bei den Genetischen <strong>Algorithmen</strong> wird die<br />

Nachkommensbildung durch die Kombination von Selektion, Kreuzung und<br />

Mutation verwirklicht (Abb. 4). Diese Mechanismen wirken auf eine Population von<br />

Individuen einer Generation. Grundsätzlich nehmen alle Individuen an diesem<br />

Prozeß teil. Es hängt von der Fitneß der Individuen ab, ob und wie oft sie zur<br />

Fortpflanzung ausgewählt werden. Die Reproduktion wird in 3 Schritten vollzogen.<br />

Als erstes werden zwei Individuen selektiert und geklont. Anschließ end werden die<br />

beiden Klone <strong>mit</strong>einander gekreuzt. Die daraus resultierenden Nachkommen werden<br />

zum Schluß noch mutiert und vorläufig in den Kinder-Pool gelegt. Die Bildung von<br />

25


Nachkommen wird fortgesetzt, solange nicht genü gend Nachkommen im Kinder-<br />

Pool vorhanden sind, um die nächste Generation anzutreten.<br />

Eltern-Pool<br />

Selektion<br />

2 Elternindividuen Kreuzung<br />

2 Nachkommen<br />

Mutation<br />

Kinder-Pool<br />

Abbildung 4: Bildung von Nachkommen<br />

Der Selektionsoperator kann verschiedene Verfahren nutzen, die von Problem zu<br />

Problem gewählt werden. Die Kreuzungswahrscheinlichkeit beeinfluß t den Grad der<br />

Vermischung der genetischen Information von Individuen. Wenn diese Rate kleiner<br />

wird, dann steigt die Anzahl von Individuen aus der vorangegangenen Generation<br />

und die Zahl der Nachkommen <strong>mit</strong> neuen genetischen Variationen sinkt. Deshalb ist<br />

eine Kreuzungsrate von 60 bis 90 Prozent ü blich. Die Mutationswahrscheinlichkeit<br />

dagegen ist sehr gering, bei Raten von 1 bis 3 Prozent, und sorgt für mehr<br />

Variabilität in einer Population. Der allgemeine Prozeß zur Reproduktion wird<br />

standardmäßig in den meisten Genetischen <strong>Algorithmen</strong> implementiert. Andere<br />

Strategien fü r die Bildung von Nachkommen sind natü rlich auch möglich.<br />

2.6.1 Selektion<br />

Bevor Individuen für die Fortpflanzung selektiert werden können, muß erst die<br />

gesamte Population für diesen Prozeß vorbereitet werden, d.h. es müssen für alle<br />

Individuen in Abhängigkeit ihrer Fitneß Selektionswahrscheinlichkeiten berechnet<br />

werden. Für diesen Zweck stehen verschiedene Methoden bereit, die sich in ihrer<br />

Funktionsweise unterscheiden. Auf der einen Seite gibt es die fitneß proportionalen<br />

26


Methoden. Die Normierung zählt hier zu der einfachsten Methode, bei der die<br />

Fitneß eines Individuums durch die Summe der Fitneß aller Individuen geteilt wird,<br />

um die Selektionswahrscheinlichkeit zu erhalten. Schon etwas aufwendiger ist die<br />

Skalierte Selektion. Sie wird eingesetzt, wenn die Fitneß auch negative Werte<br />

annehmen kann oder die Differenz zwischen maximaler und minimaler Fitneß einer<br />

Population zu klein wird. Auf der anderen Seite sind die rangbasierenden Verfahren<br />

zu nennen. Diese sortieren die Individuen absteigend bezü glich ihrer Fitneß , d.h. das<br />

Individuum <strong>mit</strong> der höchsten Fitneß erhält den ersten Rang, das <strong>mit</strong> der niedrigsten<br />

Fitneß den letzten Rang. Alle weiteren Berechnungen beziehen sich dann nur noch<br />

auf die Rangordnung der Individuen einer Population. Mögliche Verfahren sind die<br />

lineare und nichtlineare Rangselektion. Neben den fitneß proportionalen und<br />

rangbasierten Selektionsmethoden gibt es noch zwei andere Verfahren. Die erste<br />

Methode ist die Wettkampfselektion, bei der in einem Selektionsschritt eine<br />

bestimmte Anzahl Individuen gleichverteilt aus der Population ausgewählt werden.<br />

Das Individuum <strong>mit</strong> der besten Fitneß der teilnehmenden Wettkämpfer gewinnt und<br />

gilt da<strong>mit</strong> als selektiert. Die zweite Methode ist die sogenannte (N, m)-Selektion, die<br />

nur die m besten Individuen ihrer Generation für eine Auswahl in Betracht zieht.<br />

Alle anderen Individuen werden nicht beachtet. Jedes der m Individuen wird <strong>mit</strong><br />

gleicher Wahrscheinlichkeit ausgewählt.<br />

Selektionsmethode<br />

Index Fitneß<br />

Proportion Skalierung Rang Wettkampf (N,m)<br />

0 9 0,33 0,38 0,30 0,36 0,33<br />

1 8 0,30 0,33 0,25 0,28 0,33<br />

2 5 0,19 0,18 0,20 0,20 0,33<br />

3 3 0,11 0,08 0,15 0,12 0,00<br />

4 2 0,07 0,03 0,10 0,04 0,00<br />

1,00 1,00 1,00 1,00 1,00<br />

Abbildung 5: Vergleich verschiedener Selektionsmethoden<br />

Wurden alle Wahrscheinlichkeiten er<strong>mit</strong>telt, kommt das Russische Roulette zum<br />

Einsatz, daß nun ein Individuum aus der Population auswählt. Da<strong>mit</strong> das Russische<br />

Roulette fü r alle Selektionsmethoden gleichermaß en eingesetzt werden kann, mü ssen<br />

die berechneten Werte den Eigenschaften der Normierung genü gen. Ist diese<br />

Voraussetzung erfü llt, werden die Wahrscheinlichkeiten proportional auf ein<br />

27


virtuelles Roulette-Rad aufgeteilt. Hier ein Beispiel für die Aufteilung der<br />

Selektionswahrscheinlichkeiten einer Population <strong>mit</strong> fü nf Individuen:<br />

Index<br />

Wahrscheinlichkeit<br />

Roulette-Rad<br />

0<br />

0.14<br />

1<br />

0.30<br />

4<br />

0<br />

2<br />

3<br />

0.11<br />

0.20<br />

3<br />

1<br />

Zeiger<br />

4<br />

Σ<br />

0.25<br />

1.00<br />

2<br />

Abbildung 6: Beispiel für Russisches Roulette<br />

Alle Individuen einer Population bekommen so einen bestimmten Abschnitt auf<br />

diesem Rad zugeteilt. Ein Individuum <strong>mit</strong> einer hohen Selektionswahrscheinlichkeit<br />

repräsentiert so einen groß en Teil des Rades und umgekehrt. Ist die Aufteilung des<br />

Rades abgeschlossen, kann die Selektion beginnen. Dazu wird das virtuelle Rad<br />

gedreht, bis es bei einem Abschnitt stehen bleibt, daß einem Individuum zugeteilt<br />

wurde. Dieses ist da<strong>mit</strong> selektiert und das Russische Roulette kann wiederholt<br />

werden, um das nächste Individuum zu selektieren.<br />

2.6.2 Kreuzung<br />

Die natü rliche Evolution verändert <strong>mit</strong> <strong>Hilfe</strong> der Paarung (Kreuzung) die genetischen<br />

Informationen der Elternindividuen. Dies geschieht durch Vermischung der<br />

elterlichen Eigenschaften, so daß ein Nachkomme eine Kombination aus den<br />

Eigenschaften von Mutter und Vater erhält. Die Genetischen <strong>Algorithmen</strong> setzen<br />

dieses Verfahren in den Kreuzungsoperatoren um. Voraussetzung dafü r sind die in<br />

Abb. 7 dargestellten Kreuzungspunkte (P X ), <strong>mit</strong> dessen <strong>Hilfe</strong> ein auszutauschender<br />

Bereich festgelegt wird (auch mehrere Bereiche sind möglich). Ein Chromosom <strong>mit</strong><br />

L C Zeichen besitzt die gleiche Anzahl an Kreuzungspunkten. Der Kreuzungspunkt<br />

des ersten Zeichens trägt den Index 0 und der des letzten Zeichens L C – 1.<br />

28


1 1 0 1 0 0 0 0 1 0 1 0 1 1 1<br />

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14<br />

Abbildung 7: Kreuzungspunkte<br />

Es gibt nun vier wesentliche Strategien der Kreuzung. Die erste Variante, die auch<br />

standardmäßig in den meisten Genetischen <strong>Algorithmen</strong> verwendet wird, ist die Ein-<br />

Punkt-Kreuzung (Abb. 8). Hier wird ein Kreuzungspunkt innerhalb des<br />

Chromosoms zufällig ausgewählt. Da<strong>mit</strong> ü berhaupt eine Vermischung stattfindet,<br />

sollte der zufällige Kreuzungspunkt P X in folgendem Intervall liegen.<br />

[4] 0 < P X < LC<br />

Der Kreuzungsbereich wird durch den zufällig gewählten und den letzten möglichen<br />

Kreuzungspunkt markiert. Alle Zeichen, die in diesem Bereich liegen, werden<br />

zwischen beiden Individuen ausgetauscht.<br />

Eltern<br />

1 0 1 0 0 1 0 1 1 1 1 0 1 1 0<br />

1 1 0 1 0 0 0 0 1 0 0 0 1 1 1<br />

1 0 1 0 0 1 0<br />

1 1 0 1 0 0 0<br />

0 1 0 0 0 1 1 1<br />

1 1 1 1 0 1 1 0<br />

Nachkommen<br />

Abbildung 8: Beispiel Ein-Punkt-Kreuzung<br />

Das nächste Verfahren ist die Zwei-Punkt-Kreuzung (Abb. 9), bei der zwei zufällig<br />

ausgewählte Punkte den Kreuzungsbereich beider Elternindividuen festlegen. Die<br />

beiden Punkte dürfen nicht gleich sein. Der kleinere Punkt stellt den Beginn des<br />

Kreuzungsbereichs dar und der größ ere Punkt das Ende. Alle Zeichen, die zwischen<br />

den beiden Punkten liegen, werden ausgetauscht. Auch hier sollten die Punkte der in<br />

[4] genannten Forderung genü gen.<br />

29


Eltern<br />

1 0 1 0 0 1 0 1 1 1 1 0 1 1 0<br />

1 1 0 1 0 0 0 0 1 0 0 0 1 1 1<br />

1 0 1 0 0 0 0 0 1 1 1 0 1 1 0<br />

1 1 0 1 0 1 0 1 1 0 0 0 1 1 1<br />

Nachkommen<br />

Abbildung 9: Beispiel Zwei-Punkt-Kreuzung<br />

Die Zwei-Punkt-Kreuzung kann zu einer Zwei-Punkt-Kreuzung <strong>mit</strong> Translokation<br />

(Abb. 10) erweitert werden, indem zusätzlich bei einem der beiden Individuen der<br />

Kreuzungsbereich verschoben wird. Die Kreuzungspunkte für das eine Individuum<br />

werden wie bei der Zwei-Punkt-Kreuzung er<strong>mit</strong>telt und spezifizieren einen Bereich<br />

der Länge L K . Der Startpunkt fü r den Kreuzungsbereich des anderen Individuums,<br />

wird durch eine Zufallszahl er<strong>mit</strong>telt, die die folgenden Voraussetzungen erfü llen<br />

muß :<br />

[5] 0 £ P £ ( L - L )<br />

Offset<br />

C<br />

K<br />

Stehen beide Bereiche fest, können die betroffenen Zeichen zwischen diesen<br />

ausgetauscht werden. Um eine einfache Zwei-Punkt-Kreuzung zu vermeiden, sollten<br />

der erste Kreuzungspunkt und der Translokationspunkt verschieden sein.<br />

Eltern<br />

1 0 1 0 0 1 0 1 1 1 1 0 1 1 0<br />

1 1 0 1 0 0 0 0 1 0 0 0 1 1 1<br />

1 0 1 0 1 0 0 0 1 1 1 0 1 1 0<br />

1 1 0 1 0 0 0 0 0 1 0 1 1 1 1<br />

Nachkommen<br />

Abbildung 10: Beispiel Zwei-Punkt-Kreuzung <strong>mit</strong> Translokation<br />

30


Die vierte Strategie ist die gleichmäßige Kreuzung (Abb. 11), bei der die<br />

Kreuzungspunkte durch einen binären Vektor der Länge L C gewonnen werden. Die<br />

Werte fü r den Vektor werden durch gleichverteilte Zufallszahlen er<strong>mit</strong>telt. So wü rde<br />

der Vektor 011110011000111, <strong>mit</strong> einer Länge von 15, die Kreuzungsbereiche 1 – 4<br />

(1111), 7 – 8 (11) und 12 – 14 (111) hervorbringen. In diesen Bereichen werden die<br />

Zeichen der Chromosomen der Eltern vertauscht. Die <strong>mit</strong> 0 markierten Bereiche<br />

bleiben unverändert.<br />

Eltern<br />

1 0 1 0 0 1 0 1 1 1 0 0 1 1 0<br />

1 1 0 1 0 1 0 0 0 0 1 0 1 1 1<br />

Schablone<br />

0 1 1 0 1 0 0 0 1 0 0 1 0 1 1<br />

1<br />

1 0 0 0 1 0 1 0 1 0 0 1 1 1<br />

1 0 1 1 0 1 0 0 1 0 1 0 1 1 0<br />

Nachkommen<br />

Abbildung 11: Beispiel gleichmä ßige Kreuzung<br />

Die Funktionsweise dieser Verfahren ändert sich auch dann nicht, wenn die<br />

Chromosomen aus anderen Alphabeten aufgebaut sind. Jedoch können sie aus<br />

bestimmten Grü nden auch eine abweichende Funktionalität aufweisen (z.B.<br />

Einzigartigkeit der Gene beim Problem des Handlungsreisenden).<br />

2.6.3 Mutation<br />

Bei der Fortpflanzung schleichen sich gelegentlich Fehler in die Genotypen der<br />

Nachkommen ein. In der Natur geschieht dies im Zuge der Zellteilung, bei der dann<br />

einzelne oder mehrere Basen im Chromosom verändert, eingesetzt oder entfernt<br />

werden. Dieser Prozeß wird bei Evolutionären <strong>Algorithmen</strong> durch einen<br />

Mutationsoperator nachgebildet. Mutationen wirken sich positiv auf die Variabilität<br />

31


einer Population aus, was allein durch Kreuzung nicht erreicht werden kann.<br />

Andererseits kann sie sehr zerstörerisch sein, da sie auch gut angepaß te Individuen<br />

wieder vernichtet, wenn sie zu häufig angewendet wird. Daher liegt die<br />

Wahrscheinlichkeit der Mutation im Bereich von etwa 1% – 3% fü r jedes Zeichen im<br />

Chromosom. Dieser Wert richtet sich auch nach der Länge des Chromosoms. Je<br />

länger ein Chromosom ist, desto mehr Zeichen werden wahrscheinlich mutiert. Man<br />

kann die Wahrscheinlichkeit deshalb auch direkt von der Chromosomenlänge<br />

abhängig machen, indem man z.B. den Reziprokwert von L C verwendet.<br />

Individuum<br />

1 0 1 0 0 1 0 1 1 1 1 0 1 1 0<br />

1 0 1 0<br />

1 1 0 1 1 1 1 0 1 1 0<br />

mutiertes Individuum<br />

Abbildung 12: Beispiel gleichmä ßige Mutation<br />

Die gleichmäßige Mutation (Abb. 12) prü ft nacheinander jedes Zeichen eines<br />

Chromosoms, ob es mutiert wird oder nicht. Dafü r wird jeweils eine Zufallszahl im<br />

Intervall [0; 1] bestimmt. Wenn diese kleiner ist als die Mutationswahrscheinlichkeit,<br />

dann findet die Veränderung statt. Im Falle einer binären Zeichenkette, wäre dies die<br />

Ä nderung des Wertes von 0 auf 1 bzw. von 1 auf 0.<br />

2.7 Ersetzung<br />

Nachdem der Reproduktionsprozeß genü gend Nachkommen erzeugt hat, stehen<br />

Eltern- und Kinderpopulation bereit. Mit <strong>Hilfe</strong> des Ersetzungsverfahrens muß nun<br />

aus diesen die Population fü r die nächste Generation gebildet werden. Die Größ e von<br />

Eltern- und Kinder-Population beträgt in der Regel jeweils n Individuen, so daß<br />

insgesamt 2n Individuen für die Ersetzung zur Auswahl stehen. Auch für die<br />

Folgepopulation wird meistens die gleiche Größ e verwendet, wie für die<br />

Elternpopulation.<br />

32


2.7.1 Generationswechsel<br />

Die einfachste denkbare Methode ist die Generationsersetzung, bei der die gesamte<br />

Kinderpopulation in die nächste Generation ü bertragen wird. Die Elternpopulation<br />

wird vollständig verworfen. Der Nachteil des Verfahrens ist, daß viele gute<br />

Elternindividuen verloren gehen und da<strong>mit</strong> die durchschnittliche Fitneß einer<br />

Population auch wieder sinken kann. Im Gegensatz zu anderen Ersetzungsverfahren,<br />

benötigt dieses Verfahren mehr Generationen, bis es ein Optimum erreicht hat.<br />

2.7.2 Elitismus<br />

Dieses Verfahren verschont den besten Teil der Elternpopulation und gewährt ihnen<br />

das Recht, auch in der nächsten Generation weiter zu bestehen. Man unterscheidet<br />

hier zwischen dem statischen und dynamischen Elitismus. Beim statischen Elitismus<br />

wird immer eine feste Anzahl von Individuen ersetzt. Dazu wird die Elternpopulation<br />

sortiert und anschließ end die m besten Eltern in die neue Population ü bertragen. Die<br />

Ü bertragung der Elternindividuen kann entweder ohne oder <strong>mit</strong> Mutation geschehen.<br />

Eine Versetzung <strong>mit</strong> Mutation nennt man starker Elitismus, eine <strong>mit</strong> Mutation<br />

schwacher Elitismus. Eine Mutation wird in Erwägung gezogen, wenn die Eltern<br />

eine zu hohe Fitneß im Gegensatz zu ihren Nachkommen haben, die Population<br />

da<strong>mit</strong> beherrschen und eine Weiterentwicklung verhindern. Die noch freien Plätze in<br />

der Folgepopulation werden <strong>mit</strong> Individuen aus der Kinderpopulation besetzt. Die<br />

Auswahl der Nachkommen kann entweder durch gleichverteilte Zufallszahlen oder<br />

durch Sortierung und Ü bernahme der besten Individuen erfolgen. Möchte man die<br />

Anzahl der zu ersetzenden Elternindividuen nicht festlegen, kann der dynamische<br />

Elitismus verwendet werden. Bevor Individuen ersetzt werden, müssen beide<br />

Populationen zusammengefü hrt und nach ihrer Fitneß sortiert werden. Die erste<br />

Hälfte der Individuen wird in die nächste Generation ü bernommen. Da<strong>mit</strong> nicht nur<br />

Eltern in die neue Generation ü berfü hrt werden, ist es möglich nur einen bestimmten<br />

Prozentsatz der Elternpopulation bei der Zusammenfü hrung zu verwenden. Dieser<br />

Satz liegt ü blicherweise bei 50% – 75%.<br />

33


3 <strong>Digitale</strong> <strong>Klangsynthese</strong><br />

3.1 Synthesizer und Sampler<br />

Noch vor 100 Jahren entstanden Töne nur unter natü rlichen Bedingungen oder durch<br />

akustische Instrumente, die der Mensch schon erfunden hatte. All diese Instrumente<br />

besitzen einen einzigartigen, unverkennbaren Klangcharakter. Mit dem Beginn des<br />

20. Jahrhunderts begann die Entwicklung von völlig neuen Instrumenten, die <strong>mit</strong><br />

<strong>Hilfe</strong> von Elektrizität Klänge generieren konnten. Im Laufe der Zeit mutierten diese<br />

zu wahren Metainstrumenten, die heute in der Lage sind, die Klangcharakter von<br />

unterschiedlichen herkömmlichen Instrumenten nachzuahmen und auch neue<br />

kü nstliche Klänge zu erzeugen. Am Anfang wurden für diesen Zweck teilweise<br />

riesige Maschinerien gebaut. Die bekanntesten Vertreter waren u.a. der Theremin,<br />

das Sphärophon, Ondes Martenot, das Trautonium und die Hammond-Orgel. Einer<br />

der ersten analogen Synthesizer war der Moog, der im Jahre 1964 von seinem<br />

Erfinder Robert Moog vorgestellt wurde. Er gehört zur Gruppe der modularen<br />

Synthesizer, die den Musikern von damals alle nur erdenklichen Freiheiten<br />

gewährten. Der Nachteil dieser war ihre meist enorme Größ e und der da<strong>mit</strong><br />

verbundene hohe Kaufpreis. Nur sehr wenige Personen konnten sich diese Geräte<br />

leisten. Aus diesem Grund entwickelte man 1970 die ersten festverdrahteten<br />

Synthesizer, bei denen die gebräuchlichsten Elemente eines Modular-Synthesizers<br />

vereint und fest <strong>mit</strong>einander verbunden wurden. Dies war die Sternstunde des<br />

Minimoog. Er erreichte bis dahin ungeahnte Absatzmarken und behielt fü r Jahre eine<br />

vorherrschende Stellung im Synthesizermarkt. Erst <strong>mit</strong> der fortschreitenden Technik<br />

wurden immer mehr Elemente des Analog-Synthesizers durch digital kontrollierte<br />

Schaltkreise, Mikrochips oder Signalprozessoren ersetzt. Sie werden deshalb auch als<br />

analog hybride Synthesizer bezeichnet. Ein weiterer Meilenstein wurde <strong>mit</strong> der DX7<br />

Reihe von Yamaha gelegt, den ersten fast voll digitalen Synthesizern. Die Popularität<br />

der Digital-Synthesizer stieg aufgrund der niedrigen Preise und drängte die Analogen<br />

in den Hintergrund. Zudem ermöglichte die Digitalisierung auch die<br />

Programmierung von Computersoftware, die einfach die analogen und digitalen<br />

Synthesizer in ihrer Funktionsweise nachbildete. Einige Softwarefirmen<br />

35


spezialisierten sich auf komplette virtuelle Musikstudios, die am heimischen PC von<br />

interessierten Klangtü ftlern benutzt werden und sogar in professionellen<br />

Musikstudios Anwendung finden. Neben der immer weiter steigenden<br />

Angebotspalette analoger und digitaler Synthesizer kamen in den letzten Jahren<br />

heftige Diskussionen ü ber deren Klangqualität auf. Es mag sein, daß die Analogen<br />

wärmere und die <strong>Digitale</strong>n kältere Klänge erzeugen, aber letztendlich spielen beim<br />

Kauf eines Synthesizers nur dessen Preis und die Ohren des Nutzers eine Rolle.<br />

Einen tieferen Einblick in die Geschichte des Synthesizers geben [SCH-98] und<br />

[GOU-97].<br />

Der Begriff Synthesizer selbst wurde von dem englischen Wort "synthesize"<br />

abgeleitet und bedeutet im Allgemeinen etwas künstlich herstellen. In<br />

Musikerkreisen versteht man unter diesem Begriff eine Soft- oder Hardware, <strong>mit</strong><br />

deren <strong>Hilfe</strong> ein natü rlicher oder künstlicher Klang erzeugt werden kann. Die<br />

Vorgehensweise bei der Herstellung eines Klanges hängt von den verwendeten<br />

Syntheseverfahren ab, die auf verschiedenen Prinzipien beruhen. Zu den<br />

bekanntesten Verfahren zählen Subtraktive Synthese, Wavetable Synthese, Additive<br />

Synthese und FM-Synthese (Frequenzmodulationssynthese). Die Klangvielfalt wird<br />

von den verwendeten Komponenten (Oszillatoren, Hüllkurven, Filtern) eines<br />

Syntheseverfahrens bestimmt. Ein Synthesizer <strong>mit</strong> nur 1 Oszillator, 1 Filter und 1<br />

Hü llkurve wird daher eine bedeutend kleinere Menge von Klängen generieren<br />

können als ein Synthesizer <strong>mit</strong> 10 Oszillatoren, 5 Filtern und 10 Hüllkurven. Die<br />

entsprechenden Parameter der Komponenten und auch der Synthese selbst werden<br />

ü ber reale (Hardware) oder virtuelle (Software) Schiebe- und Drehregler eingestellt.<br />

Die Menge der vom Synthesizer erzeugbaren Klänge wird da<strong>mit</strong> auch von den<br />

Wertebereichen der Parameter beeinfluß t, d.h. <strong>mit</strong> wachsenden Wertebereichen der<br />

Parameter, wird auch die Anzahl möglicher Klänge ansteigen, was natü rlich nur bis<br />

zu einem bestimmten Grad realisierbar und sinnvoll ist.<br />

Neben den Synthesizern wurden seit 1950 auch die Sampler entwickelt. Im<br />

Gegensatz zu den Synthesizern, erzeugen die Sampler die Klänge nicht selbst,<br />

sondern verändern ein bereits vorgegebenes Sample (Probe- oder Musterklang) <strong>mit</strong><br />

verschiedenen Methoden. Die Funktionalität reicht von einfachen Hü llkurven fü r die<br />

36


Lautstärke, ü ber die Vermischung und Wiederholung von Abschnitten, der Ä nderung<br />

der Tonhöhe durch Transponierung oder Filter bis hin zu einem breiten Spektrum an<br />

Effekten wie Tremolo, Vibrato, Portamento, Distortion, Vocoding, Chorus, Flanging,<br />

Phasing, Echo und Reverberation. Der Klang, der für den Prozeß des Sampling<br />

bereitgestellt werden muß , kann entweder natü rlicher Art sein, wie es in den<br />

Anfängen der Sampler der Fall war, oder künstlich. Trotz der unterschiedlichen<br />

Funktionsweise von Sampler und Synthesizer zählt das Sampling heutzutage <strong>mit</strong> zu<br />

den Syntheseverfahren und trägt auch den Namen Sample-Synthese oder Sampling-<br />

Synthese.<br />

3.2 Tö ne, Klänge und Geräusche<br />

Das menschliche Ohr nimmt Töne, Klänge und Geräusche als akustische Signale<br />

wahr, die hauptsächlich durch das Medium Luft als Schallwellen ü bertragen werden.<br />

In der Physik befaß t sich das Teilgebiet der Akustik <strong>mit</strong> diesem Phänomen. Sie lehrt,<br />

daß eine Schwingung durch die Bewegung von Materie entsteht, die sich dann in<br />

Form einer Schallwelle, ausgehend von der Quelle, in einem Medium wie Luft oder<br />

Wasser räumlich ausbreitet. Die Geschwindigkeit, <strong>mit</strong> der sich eine Schallwelle<br />

fortbewegt (Schallgeschwindigkeit), hängt stark vom Medium ab, in der sie sich<br />

befindet. Einige Medien können Schallwellen besser ü bertragen (Luft), andere<br />

schlechter (Wasser). Wenn die Schallwellen periodisch sind, nehmen die Menschen<br />

dies als Ton oder Klang wahr. Der Ton besteht aus nur einer einzigen Schwingung<br />

(z.B. Sinusschwingung), die eine bestimmte Frequenz besitzt. Deshalb ist die<br />

Klangfarbe (Frequenzspektrum) eher eintönig. Ein Klang dagegen setzt sich aus<br />

einem Grundton und mehreren Teiltönen (Obertöne) zusammen. Dadurch klingt ein<br />

Klang voller. Wenn die Frequenzen der Teiltöne ganze Vielfache der Frequenz des<br />

Grundtones darstellen, dann spricht man auch vom harmonischen Klang, von dem<br />

letztendlich nur der Grundton vom Menschen als Tonhöhe (Frequenz der<br />

Schwingung) wahrgenommen wird. Wenn die Teilfrequenzen keine ganzen<br />

Vielfachen der Grundfrequenz sind, dann liegt ein disharmonischer Klang vor.<br />

Aperiodische Schwingungen werden vom menschlichen Ohr nur als Geräusche<br />

(Rauschen, Knistern) erkannt. Sie bestehen meist aus mehreren Teiltönen <strong>mit</strong><br />

unterschiedlichen Frequenzen, die aber untereinander in keinem Zusammenhang<br />

37


stehen. Neben der Tonhöhe und Klangfarbe spielt auch die Lautstärke (Amplitude<br />

der Schwingung) und deren Dynamik eine wichtige Rolle. Töne oder Klänge die sehr<br />

laut sind werden wesentlich stärker wahrgenommen als welche die leise sind. Die<br />

Dynamik eines Tones oder Klanges beschreibt dessen Lautstärkeverlauf in Bezug auf<br />

die Zeit, d.h. ein Klang beginnt oder endet i.d.R. nicht einfach abrupt, sondern wird<br />

<strong>mit</strong> einer bestimmten Intensität lauter, leiser oder hält die Lautstärke einige Zeit<br />

konstant.<br />

Die Entstehung von natü rlichen und instrumentalen Klängen ist sehr einfach<br />

erkennbar, weil Ursache und Wirkung direkt auszumachen sind. In der Natur<br />

verursacht die Brechung von Meereswellen ein Rauschen, der durch eine enge<br />

Schlucht strömende Wind ein Pfeifen oder das Verbrennen von Holz ein Knistern.<br />

Bei der Benutzung von Musikinstrumenten nimmt man den Klang wahr, indem eine<br />

Gitarrensaite gezupft, auf eine Trommel geschlagen oder <strong>mit</strong> dem Mund Luft in die<br />

Flöte geblasen wird. Jedes dieser Beispiele besitzt eine Ursache, die mechanische<br />

Schwingungen auslöst, die dann als Schallwellen vom menschlichen Ohr<br />

aufgenommen und als Klang interpretiert werden. Mit der Entstehung der<br />

Synthesizer und Sampler sowie der weiter zunehmenden Digitalisierung von<br />

Audiodaten ist diese Kausalität nicht mehr so einfach nachzuvollziehen, denn die<br />

Ursache wird durch das komplexe Gebilde eines Syntheseverfahrens ersetzt. Es ist<br />

nur in einem spezifischen Zustand in der Lage einen bestimmten natü rlichen Klang<br />

zu i<strong>mit</strong>ieren oder einen kü nstlichen Klang zu erschaffen. Dieser Zustand wird durch<br />

die Einstellung der Syntheseparameter und seiner Komponenten erreicht.<br />

Anschließ end erzeugt der Synthesizer elektrische Schwingungen, die dann erst durch<br />

die Membran des Lautsprechers wieder in mechanische Schwingungen umgewandelt<br />

werden und danach in Form von Schallwellen das menschliche Ohr erreichen.<br />

3.3 Syntheseverfahren<br />

Fü r die Erzeugung von Klängen und Geräuschen sind die Syntheseverfahren<br />

verantwortlich, deren Funktionsweise auf unterschiedlichen Theorien beruht. In der<br />

Zeit der Analogsynthesizer wurde fast ausschließ lich die Subtraktive Synthese<br />

verwendet, da die praktische Umsetzung anderer Verfahren unter finanziellen<br />

38


Gesichtspunkten kaum möglich war. Erst <strong>mit</strong> der fortschreitenden Digitalisierung der<br />

Synthesizer konnten auch andere Syntheseverfahren <strong>mit</strong> wenig Aufwand realisiert<br />

werden. So kann man heute durch die Verbindung mehrerer Komponenten wie<br />

Oszillatoren, Hüllkurven, Filter, Verstärker und Effekte alle Syntheseverfahren in<br />

Form eines Algorithmus bereitstellen. Dieser muß in der Lage sein, die Kriterien<br />

aller Syntheseverfahren zu erfü llen. Im Detail sind das die Erzeugung der Tonhöhe,<br />

die statische und dynamische Ä nderung der Lautstärke sowie die Erzeugung von<br />

charakteristischen Klangfarben. Nachfolgend werden die wichtigsten Verfahren kurz<br />

erläutert. Besondere Aufmerksamkeit erhält die FM-Synthese, weil ich diese für<br />

meine Untersuchungen zur Nachbildung eines Klanges durch die Entwicklung einer<br />

Struktur und der Optimierung der Syntheseparameter <strong>mit</strong> <strong>Hilfe</strong> <strong>Genetischer</strong><br />

<strong>Algorithmen</strong> ausgewählt habe. Bei weiterfü hrendem Interesse empfehle ich die<br />

Quellen [HOE-02], [GOU-97], [BOL-98], [FIE-01], [FIS-98], [KOK-00], [RAB-01],<br />

[RIT-02] und [JUN-98] zu studieren.<br />

3.3.1 Subtraktive Synthese<br />

Dieses Verfahren wird zur Zeit noch am häufigsten bei Analog- und Digital-<br />

Synthesizern eingesetzt, weil der Klangtü ftler hier am besten abschätzen kann, was<br />

fü r Resultate entstehen, wenn er den einen oder anderen Parameter verändert. Dieses<br />

Verfahren setzt sich aus mehreren Komponenten zusammen, zu denen mehrere<br />

Oszillatoren, Filter, Hüllkurven, LFOs und Effekte gehören. Das wichtigste<br />

Werkzeug bei der Subtraktiven Synthese sind die Filter, <strong>mit</strong> denen der Kü nstler den<br />

Charakter des Klanges formt. Wie der Name bereits andeutet, basiert dieses Prinzip<br />

auf der Subtraktion von Frequenzanteilen und Amplitudenwerten. Daher mü ssen die<br />

Oszillatoren möglichst viele, obertonreiche Schwingungen erzeugen. Denkbar wäre<br />

hier ein Rauschgenerator, aber in den meisten Fällen werden mehrere Oszillatoren<br />

verwendet, die einfache Sägezahn- oder Rechteckschwingungen generieren. In der<br />

nächsten Stufe werden von den vorliegenden obertonreichen Schwingungen<br />

unerwü nschte Frequenzbereiche entfernt. Diese Aufgabe wird von mehreren Filtern<br />

erledigt. An diesem Punkt muß der Kü nstler genau wissen, welche Eigenschaften der<br />

Klang einmal besitzen soll und welche Filter diesen Effekt erzielen. Für diesen<br />

Zweck stehen in fast allen Synthesizern Tiefpaß -, Hochpaß -, Bandpaß - und<br />

39


Bandsperrfilter zur Auswahl bereit. Liegen nur noch die gewü nschten Frequenzen<br />

vor, wird als letztes in der Verstärkerstufe die Amplitude beeinfluß t, d.h. den<br />

gefilterten Klängen werden jetzt noch Lautstärkeanteile entzogen. Sowohl Filter als<br />

auch Verstärker können dynamisch durch eine Hüllkurve oder einen LFO<br />

(Niedrigfrequenzoszillator) gesteuert werden.<br />

Parameter<br />

Rauschgeneratoren,<br />

Oszillatoren<br />

Parameter<br />

Filter<br />

Parameter<br />

Verstärker<br />

Parameter<br />

Effekte<br />

Klang<br />

Abbildung 13: Prinzip der Subtraktiven Synthese<br />

Ein sehr einfacher Synthesizer, der die Subtraktive Synthese ermöglichen will, wü rde<br />

<strong>mit</strong> nur 1 Oszillator, 1 Filter, 1 Hüllkurve, 1 Verstärker und 1 LFO auskommen,<br />

wobei die Möglichkeiten fü r die Kombination der Komponenten sehr eingeschränkt<br />

wären.<br />

3.3.2 Wavetable Synthese<br />

Die Wavetable Synthese, die auch als Wellenform Synthese bekannt ist, basiert auf<br />

einer Menge von vorgefertigten Wellenformen, die anstelle von Oszillatoren<br />

eingesetzt werden und dementsprechend für die Erzeugung von obertonreichen<br />

Schwingungen verantwortlich sind. Die Wellenformen besitzen eine feste Tonhöhe<br />

und Klangfarbe, sind jedoch in der Regel nicht dynamisch, d.h. ihre Lautstärke bleibt<br />

konstant. Sie stammen meistens von natü rlichen und instrumentalen Klängen ab und<br />

werden in Tabellen, den sogenannten Wavetables, im ROM-Speicher des<br />

Synthesizers hinterlegt. Aufgrund der oft begrenzten Speicherkapazität wird fast<br />

40


immer nur eine Periode abgespeichert. Die Veränderung der Tonhöhe einer<br />

ausgewählten Wellenform wird durch unterschiedlich schnelles abspielen erreicht.<br />

Wie bei der Subtraktiven Synthese folgen auch hier Filter und Verstärker, die den<br />

obertonreichen Wellenformen bestimmte Frequenzbereiche und Amplitudenanteile<br />

entziehen. Dies kann auch hier durch modulierende Komponenten wie LFOs und<br />

Hü llkurven dynamisch beeinfluß t werden. In manchen Fällen werden auch additive<br />

Techniken fü r die Nachbearbeitung der Wellenformen benutzt.<br />

Parameter<br />

Samples,<br />

Wavetable-Oszillatoren<br />

Parameter<br />

Filter<br />

Parameter<br />

Verstärker<br />

Parameter<br />

Effekte<br />

Klang<br />

Abbildung 14: Prinzip der Wavetable Synthese<br />

Bei einigen Wavetable-Synthesizern kann man sogar eigene Wellenformen in den<br />

ROM-Speicher laden oder selbst programmieren. Diese sollten auch die Interpolation<br />

zwischen verschiedenen Wellenformen beherrschen.<br />

3.3.3 Additive Synthese<br />

Das Prinzip der Fourieranalyse ermöglicht die Aufspaltung von akustischen<br />

Schwingungen in kleinere sinusförmige Teilschwingungen. Das Ergebnis sind die<br />

einzelnen Obertöne komplexer Klänge. Die Additive Synthese geht den umgekehrten<br />

Weg und versucht durch die additive Vermischung von mehreren einfachen<br />

Sinusschwingungen einen reichhaltigen Klang zu erzeugen, d.h. das Spektrum eines<br />

Klanges wird aus einzelnen Obertönen zusammengesetzt. Aus diesem Grund wird sie<br />

häufig auch als Fouriersynthese bezeichnet. Fü r die Erzeugung der Teiltöne werden<br />

41


separate Oszillatoren verwendet, die einfache Sinusschwingungen generieren<br />

können. Jeder Oszillator besitzt zudem eine eigene Hüllkurve, die den zeitlichen<br />

Verlauf der Lautstärke bestimmt und dadurch maß geblich für die Betonung der<br />

Obertöne zu bestimmten Zeitpunkten verantwortlich ist.<br />

Parameter<br />

Oszillatoren,<br />

Hüllkurven<br />

Parameter<br />

Effekte<br />

Klang<br />

Abbildung 15: Prinzip der Additiven Synthese<br />

Mit dem Prinzip der Additiven Synthese kann theoretisch jeder Klang nachgebildet<br />

werden. Doch sollte man dabei bedenken, daß bei der Nutzung von sehr vielen<br />

Oszillatoren, die bitter nötig sind, um einen komplexen Klang zu i<strong>mit</strong>ieren, der<br />

Nutzer <strong>mit</strong> einer wahren Flut von Parametern ü berschwemmt wird. Auß erdem ist zu<br />

beachten, daß der Rechenaufwand proportional zur Anzahl der Oszillatoren und den<br />

dazugehörigen Hüllkurven steigt, was sich auf Synthesizer, die Echtzeitelemente<br />

besitzen, negativ auswirkt.<br />

3.3.4 FM-Synthese<br />

Die FM-Synthese wurde im Jahr 1973 an der Stanford Universität von Chowning<br />

entwickelt. Die Firma Yamaha erkannte schnell das Potential der vielversprechenden<br />

Idee. Das Unternehmen kaufte die Patente für das Verfahren und entwickelte es<br />

weiter. Erst einige Jahre später gelang Yamaha der ersehnte Durchbruch. 1983 wurde<br />

der legendäre DX7-Synthesizer veröffentlicht, der unglaublich schnell populär wurde<br />

und Yamaha eine marktbeherrschende Position im Synthesizermarkt einbrachte.<br />

Aufgrund des Erfolgs wurden in den Folgejahren etliche Ableger des DX7 in allen<br />

nur erdenklichen Varianten produziert, aber auch in Soundkarten von Computern und<br />

anderen Geräten eröffneten sich ungeahnte Möglichkeiten.<br />

42


Die FM-Synthese (Frequenzmodulation) und PM-Synthese (Phasenmodulation)<br />

werden unter dem Begriff der Modulationssynthese zusammengefaß t. Beide<br />

Syntheseverfahren sind sich sehr ähnlich. Der einzige Unterschied beider Verfahren<br />

ist, daß die FM-Synthese die Frequenz und die PM-Synthese die Phase von<br />

Oszillatoren modulieren. Die Vorgehensweise beider Prinzipien ist am Ende nicht<br />

wirklich entscheidend für die Klangerzeugung. Allgemein bekannt ist meistens nur<br />

die FM-Synthese, obwohl es hier oft zu Verwechslungen kommt, die schon allein<br />

durch die Hersteller von Synthesizern verursacht werden. Der Grund ist in einem<br />

Nachteil der Frequenzmodulation zu finden: Es kann nämlich durchaus vorkommen,<br />

daß bei der Modulation der Frequenzen auch negative Frequenzbänder entstehen,<br />

wenn ein Modulator eine höhere Frequenz besitzt als der modulierte Oszillator. Bei<br />

dem Auftreten von negativen Frequenzen werden diese einfach als positiv<br />

angesehen, was aber zum unerwü nschten Effekt der Phasenverschiebung um 180°<br />

fü hrt und der daraus resultierenden Frequenzverdopplung der betroffenen Bereiche,<br />

an denen schon ein anderes Frequenzband existiert. Bei der Phasenmodulation ist<br />

dieses Problem nicht gegeben, weil negative und positive Phasenverschiebungen den<br />

gleichen Effekt bewirken. Deshalb implementieren Hersteller bevorzugt die PM-<br />

Synthese, verkaufen dann aber ihre Geräte als FM-Synthesizer.<br />

Das Prinzip der Modulation ist nicht wirklich neu. Auch andere Verfahren wie<br />

Subtraktive Synthese, Wavetable Synthese und in seltenen Fällen auch die Additive<br />

Synthese erlauben die Modulation eines Oszillators oder Filters durch einen LFO<br />

oder eine Hüllkurve. Sogar gegenseitige Modulation von Oszillatoren (Ring- und<br />

Kreuzmodulation) findet Anwendung. Die Möglichkeiten sind allerdings stark<br />

eingeschränkt, weil bei diesen Verfahren die Komponenten ein knapper Rohstoff<br />

sind. Bei der FM- und PM-Synthese ist dies anders, da hier von vornherein die<br />

Komponenten für derartige Verkettungen vorgesehen sind. Die zwei wichtigsten<br />

Elemente der FM-Synthese sind Oszillator und Hü llkurve. Beide Elemente werden in<br />

einem Operator zusammengefaß t, der wiederum als Baustein für die Aufstellung<br />

eines speziellen Ablaufplans dient. Dieser Ablaufplan wird als Algorithmus oder<br />

auch FM-Algorithmus bezeichnet. In einem Algorithmus werden mehrere<br />

Operatoren zusammengefaß t und <strong>mit</strong>einander verbunden. Wenn ein Operator die<br />

Frequenz oder Phase eines anderen moduliert, dann heiß t dieser Modulator. Die<br />

43


letzten Operatoren im Algorithmus sind die Träger (sie modulieren keinen anderen<br />

Operator mehr). Auch die Rückkopplung (Selbstmodulation) eines Operators ist<br />

möglich und erzeugt, je nach Rückfü hrungsstärke, ein zusätzliches Rauschen im<br />

Klang. Die Träger werden in erster Linie auf die Tonhöhe und die Dynamik des<br />

Klanges angesetzt, während die Modulatoren für die richtige Klangfarbe sorgen.<br />

Diese kann um so reichhaltiger werden, je mehr Operatoren eines Algorithmus als<br />

Modulatoren verwendet werden.<br />

Parameter<br />

FM-Algorithmus<br />

(Operatorenverkettung)<br />

Parameter<br />

Effekte<br />

Klang<br />

Abbildung 16: Prinzip der FM-Synthese<br />

Der einfachste denkbare Algorithmus besteht aus nur zwei Operatoren und wird als<br />

einfache FM-Synthese bezeichnet. Die beiden Operatoren werden entweder in Reihe<br />

(1 Modulator und 1 Träger) oder parallel (2 Träger) <strong>mit</strong>einander verkettet. Die<br />

Parallelschaltung von Trägern zeigt, daß auch eine stark eingeschränkte Version der<br />

Additiven Synthesen nachgebildet werden kann. Mit dieser einfachen Form eines<br />

Algorithmus <strong>mit</strong> zwei Operatoren können schon eine Menge Klänge generiert<br />

werden, doch wird man da<strong>mit</strong> sicherlich keine groß en Ü berraschungen erleben.<br />

Diese Tatsache führt direkt zur komplexen FM-Synthese, die drei oder mehr<br />

Operatoren in einem Algorithmus vereint. Dadurch können noch komplexere<br />

Klangstrukturen hergestellt werden. Das fü hrt aber auch zu folgendem Nachteil: Je<br />

mehr Operatoren in einem Algorithmus verwendet werden, desto schwieriger ist<br />

nachzuvollziehen, welche Komponenten in welcher Weise den Klang beeinflussen<br />

und wie die einzelnen Parameter an diesem Vorgang beteiligt sind. Deshalb werden<br />

bei den meisten FM-Synthesizern auch nur 4 bis 6 Operatoren eingebaut. In der<br />

folgenden Abbildung sind einige <strong>Algorithmen</strong> für einen FM-Synthesizer <strong>mit</strong> 5<br />

Operatoren zu sehen (die Träger befinden sich in der untersten Reihe, alle anderen<br />

Operatoren sind Modulatoren):<br />

44


Abbildung 17: <strong>Algorithmen</strong> eines FM-Synthesizers <strong>mit</strong> 5 Operatoren<br />

Die Verallgemeinerung, daß ein bestimmter Algorithmus ein konkretes Instrument<br />

nachbildet, ist nicht richtig. Allein die unterschiedlichen Einstellungsmöglichkeiten<br />

der Parameter lassen eine breite Palette von Klängen entstehen. Jedoch kann man<br />

folgendes festhalten: <strong>Algorithmen</strong>, die aus vielen Trägern und wenigen Modulatoren<br />

bestehen, erzeugen Klänge, die aus mehreren Bestandteilen bestehen, aber keine<br />

komplexen Obertöne aufweisen. Nutzt man auf der anderen Seite wenige Träger und<br />

viele Modulatoren, dann erhält man sehr komplexe Frequenzspektren.<br />

Segen und Fluch liegen bei der FM-Synthese nah beieinander. Mit diesem Verfahren<br />

können auch heute noch neue und unverbrauchte Klänge erzeugt werden, was <strong>mit</strong><br />

anderen Synthesemethoden nicht möglich wäre. Dabei werden die vielfältigen und<br />

reichhaltigen Klangfarben <strong>mit</strong> recht bescheidenen Mitteln erreicht. Doch die<br />

Bescheidenheit ist trü gerisch und kann zu unerwartetem Chaos führen, da das<br />

Zusammenspiel der Parameter oft nicht durchschaubar ist. Besonders bei vielen und<br />

komplex <strong>mit</strong>einander verbundenen Operatoren zeigt dieser Nachteil seine chaotische<br />

Auswirkung. Eine schnelle Programmierung eines Klanges nach Gefü hl, wie z.B. bei<br />

der Subtraktiven Synthese, ist da<strong>mit</strong> nicht möglich. Viele Musiker versuchen deshalb<br />

in einem langwierigen Trial-Error-Verfahren den Klang nach ihren Vorstellungen zu<br />

45


formen, was unter Umständen mehrere Tagen in Anspruch nimmt. Diese<br />

Vorgehensweise ist dem Zufall voll und ganz ausgeliefert. Eine etwas logischere<br />

Herangehensweise verlangt dem Kü nstler einiges ab. Dazu muß er nicht nur wissen,<br />

wie der Klang einmal klingen soll, sondern auch wie sich dieser in seine<br />

Komponenten zerlegen läßt und <strong>mit</strong> welchem FM-Algorithmus sich diese am besten<br />

generieren lassen. Auf den ersten Blick klingt das natü rlich ziemlich<br />

wissenschaftlich. Doch es gibt einige feste Regeln, die den Klangtü ftler dabei<br />

unterstü tzen:<br />

Der Träger (engl.: carrier) erzeugt in erster Linie den Grundton eines Klanges, der<br />

vom Menschen als Tonhöhe wahrgenommen wird. Wenn die Trägerfrequenz erhöht<br />

bzw. gesenkt wird, dann verschiebt sich das gesamte Klangspektrum nach rechts<br />

bzw. nach links. Eine weitere wichtige Aufgabe des Trägers ist die Belebung des<br />

Klanges. Dazu wird die im Träger enthaltene Hüllkurve eingesetzt, die dem Klang<br />

oder Klangbestandteil (mehrere Träger) die gewü nschte zeitliche Dynamik verleiht.<br />

Auch die Lautstärke des Klanges wird vom Träger bestimmt und sogar zum Gewicht,<br />

wenn mehrere Klangbestandteile <strong>mit</strong>einander vermischt werden.<br />

Der Modulator (engl.: modulator) kann zwei verschiedene Aufgaben ü bernehmen.<br />

Wenn seine Frequenz unter 20 Hz (untere Hörschwelle des Menschen) liegt, dann<br />

erzeugt dies einen Vibrato-Effekt, wie er auch von LFOs erzeugt wird. Liegt die<br />

Frequenz ü ber 20 Hz, dann entstehen neue Obertöne im Frequenzspektrum, die auch<br />

als Seitenbänder (engl.: sidebands) bezeichneten werden und den Klangcharakter<br />

erheblich aufwerten können. Wenn die Modulatorfrequenz angehoben bzw. gesenkt<br />

wird, dann erhöht bzw. verringert sich auch der Abstand zwischen den einzelnen<br />

Seitenbändern, d.h. das Klangspektrum wird einer Streckung bzw. Stauchung<br />

unterzogen.<br />

Das Frequenzverhältnis (engl.: frequency ratio) zwischen zwei Operatoren, in der<br />

Form F T : F M (Trägerfreq. zu Modulatorfreq.) bzw. F MA : F MB (Modulatorfreq. A zu<br />

Modulatorfreq. B) steht in einem festen Zusammenhang zu den erzeugten<br />

Seitenbändern im Frequenzspektrum. Dabei gilt: Wenn die Frequenz des Modulators<br />

einem ganzen Vielfachen der Trägerfrequenz entspricht (z.B. 1:2 oder 1:3 oder allg.<br />

46


1:N, wobei N eine natü rliche Zahl ist), dann entstehen nur harmonische Obertöne.<br />

Wenn die Modulatorfrequenz dagegen kein ganzes Vielfaches ist (z.B. 2:5 oder 3:8<br />

oder allg. N:M, wobei N und M natü rliche Zahlen sind), dann entstehen harmonische<br />

und unharmonische Obertöne, die sich im Klang als Verzerrung oder Rauschen<br />

bemerkbar machen. Der Träger selbst erzeugt den Grundton an der Stelle F T im<br />

Frequenzspektrum. Alle Obertöne bzw. Seitenbänder (F K ) lassen sich nun <strong>mit</strong> den<br />

folgenden zwei Formeln berechnen:<br />

[6] F K = FT<br />

+ k FM<br />

(obere Seitenbä nder)<br />

[7] FK<br />

= FT<br />

- k FM<br />

(untere Seitenbä nder)<br />

k = 1, 2, K,<br />

n<br />

Wichtig bei der Berechnung der Seitenbänder ist, daß negative Frequenzen in den<br />

positiven Frequenzbereich gespiegelt werden und sich demnach dort als zusätzliche<br />

Seitenbänder einreihen. Weiterhin ist folgender Effekt zu beobachten: Wenn die<br />

Trägerfrequenz das doppelte Maß der Modulatorfrequenz erreicht oder dieses<br />

ü bersteigt (2 F T F M ), dann entstehen auch<br />

Seitenbänder, die unter der Grundfrequenz des Trägers liegen. Das fü hrt dazu, daß<br />

der Zuhörer ein niedriger liegendes Seitenband als neuen Grundton wahrnimmt. Die<br />

Bildung eines Frequenzverhältnisses zwischen Träger und Modulator dient vorrangig<br />

dazu, die Frequenzen der beiden Operatoren relativ zueinander einzustellen. Das ist<br />

bei der Programmierung von Klängen eine groß e <strong>Hilfe</strong> und wird daher von fast allen<br />

Synthesizern auf diese Weise implementiert.<br />

Der Modulationsindex (engl.: modulation amount oder modulation index) reguliert<br />

die Intensität, <strong>mit</strong> der ein Träger (oder ein anderer Modulator) moduliert wird, d.h.<br />

die Amplitude des Modulators bestimmt die maximale Abweichung von der<br />

Frequenz des Trägers und da<strong>mit</strong> auch wie viele Seitenbänder einmal entstehen<br />

werden. Grundlegend kann gesagt werden, daß eine steigende Modulatoramplitude<br />

auch ein verstärktes Auftreten von Seitenbändern zur Folge hat. Die im Modulator<br />

integrierte Hüllkurve ermöglicht zudem noch die zeitliche Steuerung der<br />

Modulationsintensität, was hier der Funktionsweise eines Filters sehr nahe kommt.<br />

47


3.3.5 Weitere Syntheseverfahren<br />

Sampling basiert auf dem Prinzip der Veränderung eines aufgenommen<br />

digitalisierten Naturklanges, der als Sample abgespeichert wird. Die Bearbeitung der<br />

digitalen Naturklänge geschieht durch Transponierung, Loops, LFOs, Filter,<br />

Hü llkurven und einer ganzen Reihe von Effekten. Das Ergebnis ist ein mehr oder<br />

weniger originalgetreuer Klang. Dieses Verfahren wird immer häufiger und vor<br />

allem in der elektronischen Musikproduktion verwendet. Aus diesem Grund wird das<br />

Sampling oft den Syntheseverfahren zugeordnet, obwohl es im eigentlichen Sinne<br />

keines ist, da es die entstehenden Klänge nicht selbst erzeugt, sondern die<br />

aufgenommenen Samples nur verändert.<br />

Die LA-Synthese (Linear Arithmetische Synthese) ist der Vorgänger aller<br />

Syntheseverfahren, welche Klänge aus Wellenformen erzeugen, die im ROM-<br />

Speicher eines Synthesizers abgelegt sind. Das Grundprinzip des Verfahrens nutzt<br />

eine ganz bestimmte Eigenschaft des Menschen aus. Er ist nämlich in der Lage einen<br />

Klang schon an seiner Einschwingungsphase, die auch als Attack-Phase bekannt ist,<br />

zu erkennen. Diese Wellenformen der Einschwingungsphase werden in digitalisierter<br />

Form im Synthesizer abgespeichert. Die restlichen Phasen eines Klanges, also<br />

Abkling- (Decay), Stationär- (Sustain) und Ausklingphase (Release), können <strong>mit</strong><br />

<strong>Hilfe</strong> der Attack-Phase durch Subtraktive Synthese reproduziert werden.<br />

Das Physical Modelling ist ein einzigartiges Syntheseverfahren. Es basiert auf der<br />

Entwicklung von Modellen, die es ermöglichen die physikalischen Eigenschaften<br />

von akustischen Instrumenten im Computer zu simulieren. Für diesen Zweck wird<br />

Aufbau und Funktionsweise des Instrumentes analysiert. Aus den gewonnenen<br />

Erkenntnissen wird ein Gesetz abgeleitet, das alle Vorgänge, die im realen<br />

Instrument ablaufen, berechnen kann. Dazu gehört die Erzeugung von Schallwellen<br />

durch einen Klangerreger (z.B. das Zupfen der Gitarrensaite oder das Blasen in die<br />

Flöte) und die Reflexion der Schallwellen im Resonanzkörper. Die aufgestellte<br />

Gesetzmäßigkeit wird dann als Schaltung von spezifisch eingestellten Oszillatoren<br />

und Filtern realisiert. Das Resultat dieser aufwendigen Vorbereitung ist ein Klang,<br />

der sich sehr naturgetreu anhört. Allerdings hat diese Art der Synthese zwei<br />

48


Nachteile: Auf der einen Seite benötigt man genaue Kenntnisse ü ber die<br />

Beschaffenheit der einzelnen Instrumente, um ein geeignetes Modell aufzubauen und<br />

zum anderen werden die Nutzer hier nicht <strong>mit</strong> den herkömmlichen Oszillator-,<br />

Hü llkurven und Filterparametern konfrontiert, sondern da<strong>mit</strong>, wie stark in eine Flöte<br />

geblasen oder an einer Gitarrensaite gezupft wird. Eine Variation der Parameter ist<br />

ohnehin nur selten möglich und oft stark eingeschränkt.<br />

Die Granularsynthese ist eine Weiterentwicklung der Wavetable Synthese, wird<br />

aber kaum eingesetzt. Das Syntheseprinzip der Klangerzeugung beruht hier auf der<br />

Verkettung von vielen kleinen Schallpartikeln, den sogenannten Grains, die in der<br />

Regel nur 5 – 100 Millisekunden lang sind. Grains können einfache Schwingungen<br />

in Form von Sinus-, Dreieck-, Rechteck- oder Sägezahnwellen sein, die von<br />

Oszillatoren generiert werden. Allerdings werden häufiger komplexe Wellenformen<br />

bestimmter gesampelter Klänge genutzt, die erfahrungsgemäß eine bessere<br />

Klanggrundlage darstellen. Die Einfluß nahme auf Dynamik, Tonhöhe und Länge<br />

eines Klanges kann während der Verkettung der Partikel zur Geltung gebracht<br />

werden, indem man Amplitude und Dauer der Grains verändert oder<br />

Wiederholungsabschnitte definiert.<br />

Auch die Vektorsynthese ist eine Weiterentwicklung der Wavetable Synthese.<br />

Grundlage bilden vier oder mehr Oszillatoren, deren Wellenformen und Frequenzen<br />

separat eingestellt werden können. Ein Vektor, daher auch der Name der Synthese,<br />

bestimmt das Mischungsverhältnis der beteiligten Oszillatoren in Form einer XY-<br />

Funktion, die zusätzlich von der Zeit abhängig ist. Die Werte des dreidimensionalen<br />

Vektors werden von einem Joystick oder manchmal auch von Hü llkurven gesteuert.<br />

Genau wie bei der Wavetable Synthese, erzeugen die Oszillatoren obertonreiche<br />

Wellenformen, die auch hier nachträglich durch Filter und Verstärker verändert<br />

werden, indem man ihnen Klanganteile entzieht. Das Ziel der Vektor Synthese liegt<br />

hauptsächlich in der kreativen Nutzung der Oszillatoren, die fü r die Erzeugung der<br />

obertonreichen Wellenformen verantwortlich sind und dadurch die Klangfarbe von<br />

Anfang an vorgeben. Mit <strong>Hilfe</strong> der Vektor Synthese erhofft man sich neue<br />

interessante Klänge zu finden.<br />

49


3.4 Synthesekomponenten<br />

Die einzelnen Komponenten haben unterschiedliche Aufgaben. Es gibt vier<br />

Kriterien, die im Wesentlichen von diesen Komponenten realisiert werden mü ssen:<br />

Dazu gehören die Erzeugung der Tonhöhe (Grundfrequenz), Klangfarbe und<br />

Lautstärke sowie die Belebung bzw. Dynamisierung des Klanges. Eine ausfü hrliche<br />

Darstellung der folgenden Komponenten ist in den Büchern [SCH-98], [HOE-02]<br />

und [ANW-00] zu finden.<br />

3.4.1 Oszillator<br />

Die Funktion des Oszillators, die in der Bereitstellung des Ausgangsmaterials für<br />

einen Klang besteht, wurde in den vorangegangenen Punkten schon häufiger<br />

erwähnt. Die Eigenschaften des entstehenden Klanges hängen von den jeweils<br />

ausgewählten Grundwellenformen ab, die der Oszillator permanent liefert. Bekannte<br />

und weitverbreitete Wellenformen sind Sägezahn, Dreieck, Sinus, Rechteck und Puls<br />

sowie das Rauschen (siehe Abb. 18). Jede dieser Grundschwingungen besitzt zudem<br />

zusätzliche Eigenschaften, die sich wiederum auf den erzeugten Klang auswirken. Es<br />

kommt dabei auch auf die Art der <strong>Klangsynthese</strong> an, welche Grundwellenformen<br />

bevorzugt eingesetzt werden. Im folgenden Abschnitt sind die wichtigsten<br />

Grundwellenformen und ihr Charakter kurz dargestellt:<br />

Die Sägezahnwelle (engl.: saw wave oder sawtooth wave) ist schon von Anfang an<br />

in allen Synthesizern vorhanden und erzeugt ein reichhaltiges Spektrum, in dem alle<br />

Obertöne <strong>mit</strong> sinkender Intensität vorkommen. Aus diesem Grund wird sie besonders<br />

bei den subtraktiven Syntheseverfahren verwendet. Den Klangcharakter kann man<br />

als kräftig, hart und hell beschreiben.<br />

Die Rechteckwelle (engl.: rectangle wave oder square wave) ist in ihrer Form durch<br />

einen abrupten Wechsel zwischen maximaler und minimaler Amplitude geprägt, der<br />

genau in der Mitte eines Durchlaufs stattfindet. Sie erschafft alle ungeraden Obertöne<br />

im Spektrum. Die Lautstärke der entstehenden Obertöne im Klangspektrum ergibt<br />

sich durch die natü rliche Reihe 1/N, wobei N hier der Ordnung des jeweiligen<br />

50


Obertons entspricht. Das verleiht ihr einen recht hohlen, elektronischen Klang. Sie<br />

stellt auß erdem eine besondere Form der Pulswelle dar, wobei die Pulsbreite von<br />

Hoch- und Tiefphase einem Verhältnis von 50:50 entspricht.<br />

Die Pulswelle (engl.: pulse wave) läßt demnach auch andere Punkte für einen<br />

Wechsel zu, was bei einem Pulsbreitenverhältnis von 1:99 sogar zu einem<br />

nadelförmigen Impuls führt. Dabei spielt es keine Rolle, ob eine Welleform durch<br />

ein Verhältnis der Gestalt 25:75 oder 75:25 gebildet wird, da der daraus resultierende<br />

Klang vom menschlichen Ohr nicht unterschieden werden kann, d.h. die Wellenform<br />

ist nur in ihrer Phase verschoben. Das Resultat sind hohle bis näselnde Klänge,<br />

wobei eine ausgeglichene Pulsbreite eher hohl und ein immer ungleicheres<br />

Verhältnis mehr und mehr näselnd klingt.<br />

Die Dreieckwelle (engl.: triangle wave) erinnert in ihrer Form am ehesten an die<br />

Sinuswelle und erzeugt, genau wie die Rechteckwelle, nur ungerade Obertöne, deren<br />

Lautstärken sich aus 1/N 2 ergeben. Diese Eigenschaften verleihen ihr einen weichen<br />

und fließ enden Klangcharakter.<br />

Die Sinuswelle (engl.: sine wave) ist die einfachste Grundwellenform, die so in der<br />

Natur nicht existiert und im Gegensatz zu allen anderen keine Obertöne besitzt,<br />

sondern nur einen Grundton. Aus diesem Grund wird sie bevorzugt bei additiven und<br />

modulierenden Synthesetechniken verwendet. Den Klangcharakter einer Sinuswelle<br />

kann man als sehr weich beschreiben.<br />

Das Rauschen (engl.: noise) besteht aus zufällig erzeugten Signalen und stellt<br />

eigentlich keine Grundwellenform dar. Es wird oft in Oszillatoren integriert oder als<br />

eigenständiger Rauschgenerator zur Verfü gung gestellt. Bildet man das Mittel der<br />

generierten Signale, kann man erkennen, daß alle Frequenzen des Klangspektrums<br />

vorkommen. Deshalb besitzt das Rauschen auch keine Tonhöhe. Man unterscheidet<br />

zudem zwischen dem Weiß en Rauschen (engl.: white noise) und dem Rosa Rauschen<br />

(engl.: pink noise). Weiß es Rauschen enthält, wie schon erwähnt alle Frequenzen<br />

und Rosa Rauschen betont die tiefen Frequenzanteile.<br />

51


Sägezahn<br />

Rechteck<br />

Puls (25:75)<br />

Dreieck<br />

Sinus<br />

Rauschen<br />

Abbildung 18: Grundwellenformen<br />

Die Palette an Grundwellenformen wurde in den letzten Jahren noch erheblich<br />

ausgebaut. Auf der Suche nach neuen Eigenschaften wurden zum einen die bereits<br />

erwähnten Wellenformen modifiziert oder <strong>mit</strong>einander kombiniert. Die bekanntesten<br />

Beispiele dafü r sind der Moog-Sägezahn (engl.: moog saw), der durch Addition von<br />

Dreieck- und Sägezahnwelle gewonnen wird und die abgeschnittene Sägezahnwelle<br />

(engl.: spaced saw wave oder peak wave).<br />

Der Oszillator bietet neben der Auswahl der Grundwellenform noch die Möglichkeit<br />

die Frequenz (Tonhöhe), Phase und Lautstärke (Amplitude) einzustellen. Weitere<br />

interessante Effekte lassen sich durch eine Hü llkurve oder einen LFO erzeugen. So<br />

kann eine Hü llkurve komplexe Verläufe fü r die Amplitude (Lautstärkeverläufe) als<br />

auch für die Tonhöhe (Frequenzverläufe) steuern oder <strong>mit</strong> einem LFO kann die<br />

Amplitude (Tremolo) oder Frequenz (Vibrato) geringfü gig moduliert werden.<br />

Weiterhin ist es möglich zwei Oszillatoren so <strong>mit</strong>einander zu kombinieren, daß sie<br />

sich gegenseitig modulieren (Ring-, Kreuz-, Frequenz- und Amplitudenmodulation)<br />

oder ein Oszillator (Master) einen anderen (Slave) synchronisiert, d.h. jedesmal wenn<br />

der Master eine komplette Periode durchlaufen hat, zwingt er auch den Slave von<br />

vorn zu beginnen.<br />

52


3.4.2 Hüllkurve<br />

Natü rliche Klänge sind nur sehr selten eintönig, sondern besitzen einen dynamischen<br />

Lautstärkeverlauf, der sich zeitlich ändert. In diesem Verlauf unterscheidet man<br />

zwischen Einschwingungsphase, stationärer Phase und Ausschwingungsphase. In der<br />

Synthesizertechnik wird dieses Verhalten durch eine Hü llkurve (auch als Envelope<br />

bezeichnet) nachgeahmt. Diese wird ASR-Hü llkurve genannt, wobei A für Attack<br />

(Einschwingungsphase), S für Sustain (stationäre Phase) und R für Release<br />

(Ausschwingungsphase) steht. Die ASR-Hü llkurve wurde später noch erweitert und<br />

ist heute als ADSR-Hü llkurve (Abb. 19) in fast allen Synthesizern zu finden. Das<br />

zusätzliche D steht fü r Decay und erweitert die Einschwingungsphase, so daß auch<br />

eine abgeschwächte stationäre Klangphase möglich ist.<br />

Lautstärke<br />

A<br />

D<br />

S<br />

R<br />

Zeit<br />

Abbildung 19: ADSR-Hüllkurve<br />

Aufgrund ihrer doch recht niedrigen Flexibilität entwickelte man andere Konzepte<br />

fü r Hü llkurven. Das Ziel war jetzt nicht mehr nur die Zeitanteile fü r Attack, Decay,<br />

Sustain und Release sowie die Anschlagdynamik fü r die Sustain-Phase einstellen zu<br />

können, sondern auch den Level fü r Attack, Decay und Release zu bestimmen. Das<br />

Resultat war das Mehrstufen-Modell, das die gewü nschten Eigenschaften vorweisen<br />

konnte.<br />

3.4.3 Verstärker<br />

Die Aufgabe des Verstärkers (engl.: Amplifier) liegt darin, ein durchgehendes<br />

Sample (Signal) in seiner Intensität abzuschwächen und müßte folglich eigentlich<br />

Verschwächer heiß en. Der Verstärker wird fast immer auf die Lautstärke eines<br />

53


Klanges angesetzt. Ist der Lautstärkepegel eines Verstärkers auf 0% eingestellt, so<br />

wird das Signal vollkommen ausgelöscht, bei 50% wird es halbiert und bei 100%<br />

wird es gar nicht verändert. Stattet man nun einen Verstärker zusätzlich noch <strong>mit</strong><br />

einer Hüllkurve aus, können einfache bis komplexe Lautstärkeverläufe erzeugt<br />

werden, die einen Klang oft erheblich aufwerten.<br />

3.4.4 Filter<br />

Ein Filter hat die Aufgabe bestimmte Frequenzbereiche eines Klanges unverändert<br />

passieren zu lassen. Alle anderen Frequenzen werden abgeschwächt oder sogar<br />

ausgelöscht. Dadurch können sehr viele neue Klangfarben erzeugt werden. Die<br />

Parameter eines Filters sind die Arbeitsfrequenz (auch Kenn- oder Eckfrequenz;<br />

engl.: cuttoff frequency), die Flankensteilheit und die Stärke der Resonanz (engl.:<br />

resonance oder peak). Die Arbeitsfrequenz ist ein Schwellenwert. Das Filter bleibt<br />

inaktiv, solange der Wert eines Signals unter bzw. ü ber dem der Arbeitsfrequenz<br />

liegt. Erst wenn dieser ü ber- bzw. unterschritten wird, tritt das Filter in Aktion und<br />

verringert die Intensität des passierenden Signals. Dies geschieht nicht sofort,<br />

sondern es verringert die Intensität des Signals in Abhängigkeit zur Flankensteilheit.<br />

Die Resonanz sorgt zusätzlich dafü r, daß alle Signale, die im näheren Bereich der<br />

Arbeitsfrequenz liegen, verstärkt werden. Filter werden aufgrund ihrer Eigenschaften<br />

unterschieden: Tiefpaß filter (Abb. 20) eliminieren alle hohen Frequenzen und<br />

Hochpaß filter (Abb. 20) schwächen alle tiefen Frequenzen ab. Das Bandsperrfilter<br />

verringert alle Frequenzen im definierten Bereich und das Bandpaß filter läßt die<br />

Signale <strong>mit</strong> den gü ltigen Frequenzen passieren.<br />

Cuttoff<br />

Cuttoff<br />

Amplitude<br />

Tiefpaß<br />

Amplitude<br />

Hochpaß<br />

Frequenz<br />

Frequenz<br />

Abbildung 20: Tiefpaß- und Hochpaßfilter<br />

54


Setzt man einen LFO auf einen der Parameter eines Filters an, so können durch die<br />

Modulation interessante Effekte erzielt werden. Eine Hüllkurve ermöglicht zudem<br />

noch komplexe Ä nderungen, die sich einsetzen lassen, um einen Klangfarbenverlauf<br />

zu realisieren.<br />

3.4.5 Effekte<br />

Effekte werden oft eingesetzt, um einem Klang besondere Eigenschaften zu<br />

verleihen, die ein Syntheseverfahren nicht ermöglicht. Deshalb besitzen einige<br />

Synthesizer eine Effektsektion. Man unterscheidet grundsätzlich vier Arten von<br />

Effekten: Diese sind Lautstärke-, Zeitverzögerungs-, Wellenformungs- und<br />

Frequenzeffekte. Zu den Effekten für die Lautstärke zählen Tremolo, Panning und<br />

variable Lautstärkeveränderung (Compression, Expansion, Noise-Gating). Die<br />

Zeitverzögerungseffekte stellen u.a. Echo, Reverberation (Hall), Chorus, Flanging<br />

und Phasing bereit, während Distortion zu den Wellenformungseffekten gehört. Die<br />

letzte Art sind die Frequenzeffekte Vibrato, Pitch-Shifting, Wah-Wah und Vocoding.<br />

55


4 <strong>Digitale</strong> <strong>Klangsynthese</strong> <strong>mit</strong> <strong>Hilfe</strong><br />

<strong>Genetischer</strong> <strong>Algorithmen</strong><br />

4.1 Implementation der Klassenbibliotheken<br />

Da<strong>mit</strong> mein Ansatz verwirklicht werden konnte, muß te ich entsprechende<br />

Bibliotheken für die Arbeit <strong>mit</strong> Genetischen <strong>Algorithmen</strong> und FM-Synthesizern<br />

entwickeln. Bei der Implementation wurde von Anfang an auf die Effektivität der<br />

Bibliotheken geachtet, da Horner und Wehn <strong>mit</strong> hohen, aber besonders Garcia <strong>mit</strong><br />

teilweise extremen Rechenzeiten zu kämpfen hatten. Die Bibliotheken für die<br />

Genetischen <strong>Algorithmen</strong> und FM-Synthesizer wurden in der Programmiersprache<br />

Java geschrieben. Für die Entwicklung wurde Java 1.4 (JDK SE 1.4.0 Beta 3)<br />

verwendet. Die virtuelle Maschine wurde unter der Version 1.4 (JRE 1.4.0 Beta 3)<br />

betrieben.<br />

4.1.1 Genetische <strong>Algorithmen</strong><br />

Das grundlegende Gerü st der Genetischen <strong>Algorithmen</strong> habe ich in der abstrakten<br />

Klasse AbstractEvolution vereinigt. Der Ablauf einer Evolution ist annähernd so, wie<br />

ich es bereits im Punkt 2.3 beschrieben habe. Die Evolutionsklasse verfü gt ü ber die<br />

notwendige Reproduktions- und Ersetzungsstrategie sowie eine Population, die alle<br />

Individuen einer Generation enthält. Die einzige Funktion der Klasse<br />

AbstractEvolution, die noch vom Programmierer implementiert werden muß , ist<br />

prepareInitialPopulation() (Abb. 21). Sie ist für die Bereitstellung einer<br />

Ausgangspopulation verantwortlich.<br />

public class XxxEvolution extends AbstractEvolution {<br />

public void prepareInitialPopulation() {<br />

// Bildung der Ausgangspopulation<br />

}<br />

}<br />

Abbildung 21: Ableitung der Klasse AbstractEvolution<br />

57


Da<strong>mit</strong> die Ausgangspopulation erstellt und Folgepopulationen bewertet werden<br />

können, muß noch eine weitere abstrakte Klasse näher spezifiziert werden:<br />

AbstractIndividual (Abb. 22). Ein solches Individuum besitzt genau ein Chromosom<br />

und die wichtige Schnittstelle Evaluation. Ein Chromosom besteht aus einer<br />

Ansammlung von Elementen eines bestimmten pri<strong>mit</strong>iven Datentyps. Zur Zeit habe<br />

ich nur binäre (BinaryChromosome), ganzzahlige (IntegerChromosome) und reelle<br />

(DoubleChromosome) Datentypen realisiert. Einer dieser drei Typen muß ausgewählt<br />

werden. Mit den Eigenschaften des entsprechenden Datentyps eines Chromosoms<br />

kann ein Algorithmus fü r dessen Dekodierung entwickelt werden. Die Dekodierung<br />

eines Chromosoms wird im Interface Evaluation verwendet, welches die<br />

Implementation der beiden Funktionen realizeEvaluation() und realizeFitness()<br />

erfordert. Diese Methoden sind für die Bildung der Fitneß eines Individuums<br />

zuständig und werden von der Funktion evaluate() nacheinander ausgefü hrt: Zuerst<br />

realizeEvaluation(), in der das Chromosom dekodiert wird und die erhaltenen<br />

Parameter des Optimierungsproblems in die Zielfunktion eingesetzt werden. Danach<br />

realizeFitness(), in der, wenn es nötig ist, eine Anpassung der vorher berechneten<br />

Rohfitneß vorgenommen werden kann.<br />

public class XxxIndividual extends AbstractIndividual {<br />

public XxxIndividual() {<br />

super (new IntegerChromosome(size));<br />

}<br />

public void realizeEvaluation() {<br />

// Dekodierung des Chromosoms<br />

// Bewertung des Individuums => Rohfitne ß<br />

}<br />

}<br />

public void realizeFitness() {<br />

// Anpassung der Rohfitneß => Fitneß<br />

}<br />

Abbildung 22: Ableitung der Klasse AbstractIndividual<br />

Die Realisierung der abstrakten Klassen AbstractEvolution und AbstractIndividual<br />

stellt die Hauptarbeit dar, wenn ein spezifisches Problem durch diese Bibliothek<br />

implementiert werden soll. In Abbildung 23 sind die Strukturen und Beziehungen der<br />

wichtigsten Schnittstellen und Klassen dieser Bibliothek fü r Genetische <strong>Algorithmen</strong><br />

grafisch dargestellt:<br />

58


Evolution<br />

<br />

AbstractEvolution<br />

<br />

Reproduction<br />

<br />

Replacement<br />

Population<br />

<br />

Evaluation<br />

<br />

Individual<br />

<br />

AbstractIndividual<br />

<br />

Chromosome<br />

Binary<br />

Chromosome<br />

Integer<br />

Chromosome<br />

Double<br />

Chromosome<br />

Abbildung 23: Klassenstruktur für den Genetischen Algorithmus<br />

Die beiden Interfaces Reproduction und Replacement benötigen keiner weiteren<br />

Implementation durch den Programmierer. Sie sind bereits vollständig realisiert, was<br />

ich im Folgenden kurz erläutern möchte. Für das Interface Reproduction habe ich<br />

eine abstrakte Klasse AbstractReproduction definiert. Jede Reproduktionsstrategie,<br />

die von dieser Klasse ableitet, hat Zugriff auf drei Interfaces, die als Genetische<br />

Operatoren für die Selektion, Kreuzung und Mutation verantwortlich sind. Für die<br />

Selektion von Individuen aus einer Population ist das Interface Selection zuständig.<br />

Dieses habe ich wiederum als abstrakte Klasse (AbstractSelection) erweitert. Auf<br />

dieser basieren die bereitgestellten Selektionsverfahren für den Wettkampf<br />

(TournamentSelection), das Ranking (RankedSelection) und die Skalierung<br />

(ScaledSelection). Die Funktionsweise der Verfahren wurde schon im Punkt 2.6.1<br />

dargestellt. Neben der Selektion von Individuen müssen selbige auch verändert<br />

werden können, um neue Nachkommen zu schaffen. Diese Aufgabe wird vom<br />

Kreuzungs- und Mutationsoperator ü bernommen. Die Kreuzung wird durch das<br />

Interface Crossover und die Mutation durch das Interface Mutation repräsentiert. Zu<br />

beiden Interfaces habe ich abstrakte Klassen geschrieben, die die Wahrscheinlichkeit<br />

fü r das Ausfü hren des jeweiligen Operators enthalten. Eine direkte Implementation<br />

59


der unterschiedlichen Kreuzungs- und Mutationstechniken, wie ich sie in den<br />

Punkten 2.6.2 und 2.6.3 beschrieben habe, war nicht möglich, da ich verschiedene<br />

pri<strong>mit</strong>ive Datentypen fü r die Chromosomen zugelassen habe. Aus diesem Grund<br />

habe ich für jeden Datentyp eine eigene abstrakte Klasse vorgesehen. Für die<br />

Kreuzung sind dies BinaryCrossover, IntegerCrossover, DoubleCrossover und für<br />

die Mutation BinaryMutation, IntegerMutation, DoubleMutation. Aus diesen<br />

Klassen können dann die eigentlichen Operatoren für die Kreuzung und Mutation<br />

hervorgehen, die die entsprechende Funktion cross() aus dem Interface Crossover<br />

und mutate() aus dem Interface Mutation realisieren. So habe ich u.a. die Ein-Punkt-<br />

Kreuzung (XxxSingleCrossover), die Zwei-Punkt-Kreuzung (XxxDualCrossover) und<br />

die gleichmäßige Kreuzung (XxxUniformCrossover) sowie die gleichmäßige<br />

Mutation (XxxUniformMutation) realisiert, wobei Xxx fü r den jeweiligen pri<strong>mit</strong>iven<br />

Datentyp (Binary, Integer, Double) steht.<br />

<br />

Reproduction<br />

<br />

AbstractReproduction<br />

<br />

Crossover<br />

<br />

Selection<br />

<br />

Mutation<br />

<br />

AbstractCrossover<br />

<br />

AbstractSelection<br />

<br />

AbstractMutation<br />

<br />

BinaryCrossover<br />

<br />

IntegerCrossover<br />

<br />

DoubleCrossover<br />

RankedSelection<br />

TournamentSelection<br />

ScaledSelection<br />

<br />

BinaryMutation<br />

<br />

IntegerMutation<br />

<br />

DoubleMutation<br />

Abbildung 24: Klassenstruktur für die Reproduktion<br />

Eine standardmäßig realisierte Variante der Klasse AbstractReproduction liegt vor.<br />

Die entsprechende Klasse heiß t DefaultReproduction. Die Funktion reproduce(), die<br />

aus dem Interface Reproduction stammt, ist bereits nach dem Schema in Abbildung 2<br />

(Zeilen 5 bis 8) implementiert. Wie fü r die Reproduktionsstrategie habe ich auch fü r<br />

die Schnittstelle Replacement, die das Ersetzungsverfahren repräsentiert, eine<br />

60


abstrakte Klasse AbstractReplacement definiert. Auf der Basis dieser Klasse habe ich<br />

drei wichtige Verfahren für die Ersetzung von Individuen einer Population<br />

umgesetzt. Dazu zählen die Generationsersetzung (GenerationReplacement), der<br />

starke und schwache Elitismus (ElitismReplacement) sowie der dynamische<br />

Elitismus (DynamicElitismReplacement). Die Entwicklung weiterer Strategien für<br />

die Ersetzung ist möglich. Dazu muß die Klasse AbstractReplacement abgeleitet und<br />

die Funktion replace() implementiert werden.<br />

<br />

Replacement<br />

<br />

AbstractReplacement<br />

Generation<br />

Replacement<br />

DynamicElitism<br />

Replacement<br />

Elitism<br />

Replacement<br />

Abbildung 25: Klassenstruktur für die Ersetzung<br />

Abschließ end möchte ich noch einmal zusammenfassen, welche Schritte für die<br />

Implementation eines Optimierungsproblems <strong>mit</strong> <strong>Hilfe</strong> dieser Bibliothek notwendig<br />

sind:<br />

• Spezifikation eines Verfahrens, das alle Parameter der Zielfunktion aus dem<br />

Chromosom ausliest bzw. dekodiert.<br />

• Spezifikation der Klasse AbstractIndividual, d.h. Realisierung der Funktionen<br />

realizeEvaluation() und realizeFitness(), um die Fitneß eines Individuums zu<br />

bestimmen.<br />

• Spezifikation der Klasse AbstractEvolution, d.h. Realisierung der Funktion<br />

prepareInitialPopulation(), um eine Ausgangspopulation zu erschaffen.<br />

Sobald alle genannten Schritte vollzogen sind, kann der Genetische Algorithmus wie<br />

folgt gestartet werden: Als erstes muß ein neues Objekt der Klasse XxxEvolution<br />

erzeugt werden. Danach können Konfigurationen vorgenommen werden, wie etwa<br />

die Auswahl eines geeigneten Ersetzungsverfahrens, eines Selektions-, Kreuzungsoder<br />

Mutationsoperators, einer Populationsgröß e und einer maximalen Anzahl an<br />

61


Generationen. Im Anschluß wird die Funktion evolve() aufgerufen, <strong>mit</strong> welcher der<br />

Genetische Algorithmus letztendlich aktiviert wird.<br />

public class XxxMain {<br />

public static void main(String[] args) {<br />

XxxEvolution ev = new XxxEvolution();<br />

// Konfiguration => ev.setXxx();<br />

ev.evolve();<br />

// Präsentation der Resultate<br />

}<br />

}<br />

Abbildung 26: Erzeugung und Start des Genetischen Algorithmus<br />

Neben der Anzahl an Generationen, die vom Algorithmus durchlaufen werden,<br />

können auch noch weitere Abbruchbedingungen spezifiziert werden. Dafü r muß das<br />

Interface TerminationCondition bzw. dessen Funktion terminate() implementiert und<br />

zu der entsprechenden Evolutionsklasse XxxEvolution durch die Funktion<br />

addTerminationCondition() hinzugefü gt werden. Der Genetische Algorithmus bricht<br />

dann am Ende einer Generation ab, wenn eine der zusätzlichen Abbruchbedingungen<br />

wahr wird oder die maximale Anzahl an Generationen erreicht wurde.<br />

4.1.2 FM-Synthesizer<br />

Der von mir implementierte Synthesizer fü r die FM-Synthese wird von der Klasse<br />

FMSynthesizer repräsentiert (Abb. 27). Er kann sowohl die Frequenz als auch die<br />

Phase eines Oszillators modulieren. Der Synthesizer verfü gt ü ber ein Objekt der<br />

Klasse FMAlgorithm, welches die Verknü pfungen der Operatoren bestimmt. Ein<br />

Algorithmus besitzt eine bestimmte Anzahl an Operatoren, dabei mindestens 2 für<br />

eine Träger-Modulator Beziehung. Demnach besteht der einfachste Algorithmus fü r<br />

eine Frequenzmodulation aus nur zwei Operatoren. Diese können parallel oder<br />

kaskadenförmig <strong>mit</strong>einander verbunden sein. Die Ausgangssignale der Operatoren<br />

der untersten Ebene (Träger) werden durch Addition <strong>mit</strong>einander verknü pft. In einem<br />

Operator befinden sich ein Oszillator (FMOscillator) und eine Hüllkurve<br />

(FMEnvelope), die im mathematischen Sinne zeitabhängige Funktionen darstellen.<br />

Die ausgehenden Signale des Oszillators und der Hüllkurve werden durch eine<br />

Multiplikation <strong>mit</strong>einander verknü pft. Die Klasse FMOscillator kann durch 4<br />

62


statische Eingänge (Amplitude, Frequenz, Phase und Wellentyp) sowie einen<br />

dynamischen Parameter, der fü r den Modulationsoperator vorgesehen ist, gesteuert<br />

werden. Wenn kein Modulationsoperator vorhanden ist, dann wird die Frequenz bzw.<br />

Phase des entsprechenden Operators nicht moduliert. Ein spezielles Flag ermöglicht<br />

zudem noch die Rü ckfü hrung (Feedback) des Ausgangssignals zum Zeitpunkt t, um<br />

es als Modulationskomponente zum Zeitpunkt t + 1 einsetzen zu können. In der<br />

Klasse FMEnvelope wurde eine ADSR-Hü llkurve realisiert, die durch 5 Parameter<br />

gesteuert werden kann. Dabei entsprechen die ersten beiden Parameter den<br />

Zeitanteilen fü r die Einschwingungsphase (Attack und Decay), der zweite und dritte<br />

Parameter den Zeitanteilen der stationären (Sustain) und der Ausschwingungsphase<br />

(Release). Der letzte Parameter regelt die Intensität der stationären Phase. Das<br />

Ausgangssignal der Hü llkurve liegt zwischen 0 und 1.<br />

<br />

FMComponent<br />

FMAddition<br />

FMEnvelope<br />

FMOperator<br />

FMOscillator<br />

FMSynthesizer<br />

FMAlgorithm<br />

<br />

Wavetable<br />

Sine<br />

Wavetable<br />

Triangle<br />

Wavetable<br />

Saw<br />

Wavetable<br />

Square<br />

Wavetable<br />

Abbildung 27: Klassenstruktur für den FM-Synthesizer<br />

Die Gleichung des einfachsten Algorithmus <strong>mit</strong> kaskadenförmiger Verbindung der<br />

Form f CAR (f MOD ()) ist nachfolgend für die Frequenzmodulation [8] und für die<br />

Phasenmodulation [9] formuliert, wobei f C , p C und A C die Frequenz, Phase und<br />

Amplitude des Trägers sind und f M , p M sowie A M die Frequenz, Phase und<br />

Amplitude des Modulators, M I der Modulationsindex sowie t die Zeit.<br />

( ( C I M<br />

M M ) t pC<br />

)<br />

( t + p + M A (t) sin 2 π f t p )<br />

[8] (t) sin 2 π f + M A (t) sin( 2 π f t + p )<br />

A +<br />

C<br />

[9] A (t) sin 2 π f<br />

( + )<br />

C<br />

C<br />

C<br />

I<br />

M<br />

Die Amplitude des Trägers (A C ) und Modulators (A M ) entspricht hier der oben<br />

genannten zeitabhängigen Hü llkurvenfunktion. Die parallele Verbindung der beiden<br />

M<br />

M<br />

63


Operatoren kann man als Additive Synthese betrachten, was natü rlich auch fü r mehr<br />

als zwei Operatoren gilt. Bei dieser Form der Operatorenverknü pfung wird allerdings<br />

auch keine Modulation der Frequenz oder Phase vorgenommen, wie nachfolgend zu<br />

sehen ist:<br />

[10] A (t) sin( 2 π f t + p ) + A (t) sin( 2 π f t + p )<br />

C1<br />

C1<br />

C1<br />

Anstelle der hier verwendeten Sinusfunktion (sin) kann auch eine andere<br />

Grundwellenform, wie etwa die Dreieck-, Rechteck- oder Sägezahnwelle eingesetzt<br />

werden. Dies kann ü ber die Funktion setWavetable() in der Klasse FMOscillator<br />

erreicht werden. Die Funktion fordert als Parameter ein Wellentabellen-Objekt<br />

(abstrakte Klasse Wavetable). Zur Auswahl stehen 4 Klassen, die von Wavetable<br />

abgeleitet und realisiert wurden: SineWavetable (Sinus), TriangleWavetable<br />

(Dreieck), SquareWavetable (Rechteck) und SawWavetable (Sägezahn).<br />

C2<br />

C2<br />

C2<br />

4.2 Klanganalyse<br />

Da<strong>mit</strong> ich auf eine Vergleichsbasis zurü ckgreifen kann, benötige ich eine<br />

charakteristische Darstellung eines Klanges. Ich habe mich dabei für das<br />

Frequenzspektrum eines Klanges entschieden. Die gesuchten Frequenzbänder des<br />

Spektrums können <strong>mit</strong> <strong>Hilfe</strong> der Fouriertransformation berechnet werden. Diese<br />

versucht eine stetige Funktion, in diesem Fall ein kurzer Abschnitt eines Klanges, in<br />

seine Sinuskomponenten zu zerlegen. Allerdings handelt es sich bei den zu<br />

analysierenden Abschnitten um digitale Klänge und dementsprechend wird fü r deren<br />

Analyse die sogenannte Discrete Fourier Transformation (DFT) verwendet. Von<br />

der zu untersuchenden Funktion wird ein Fenster von N zusammenhängenden<br />

Punkten (Samples) herausgegriffen und analysiert. Da diese Methode für groß e<br />

Fenster <strong>mit</strong> N 2 Rechenoperationen sehr rechenintensiv ist und viele Redundanzen<br />

aufweist, verwende ich die Fast Fourier Transformation (FFT). Sie stellt eine<br />

optimierte Form der diskreten Fouriertransformation dar und benötigt Dank einer<br />

ausgeklü gelten Technik (bit reverse ordering) von Cooley und Tukey (1965) nur<br />

noch N log(N) Rechenoperationen. Einzige Voraussetzung fü r die FFT ist, daß die<br />

Anzahl der Samples (Fenstergröß e) einer Zweierpotenz entspricht. Demnach werden<br />

ü blicherweise Fenstergröß en von 64, 128, 256, 512 usw. bis zu 65536 angewendet.<br />

64


Das resultierende Ergebnis der schnellen Fouriertransformation ist ein Vektor der<br />

Größ e N / 2, in dem das Spektrum des untersuchten Klangabschnittes hinterlegt<br />

wurde. Bei den Vektorelementen handelt es sich, je nach Fenstergröß e, um mehr<br />

oder weniger präzise Frequenzbänder. Dabei gilt: Je kleiner ein Fenster ist, desto<br />

kleiner wird die Frequenzauflösung (mehr Frequenzen pro Frequenzband), d.h. das<br />

Ergebnis wird immer ungenauer. Erhöht man dagegen die Fenstergröß e, steigt auch<br />

die Frequenzauflösung (weniger Frequenzen pro Frequenzband) und demzufolge<br />

wird auch das Ergebnis immer genauer. In der folgenden Abbildung ist das Ergebnis<br />

der Fourieranalyse einer kurzen Sinusschwingung zu sehen:<br />

150<br />

100<br />

50<br />

0<br />

-50<br />

-100<br />

-150<br />

256 Samples 128 Frequenzbänder<br />

125<br />

100<br />

75<br />

50<br />

25<br />

0<br />

0 50 100 150 200 250<br />

0 25 50 75 100 125<br />

- Frequenz (Sinus) bei 200 Hz<br />

- 128 Frequenzbänder á 31,25 Hz<br />

- Abtastrate bei 8000 Hz<br />

- Frequenz (Sinus) im 7. Frequenzband<br />

- Nyquistfrequenz bei 4000 Hz<br />

Abbildung 28: Zeit- und Frequenzdomä ne<br />

Es kann manchmal passieren, daß im er<strong>mit</strong>telten Spektrum plötzlich Frequenzen<br />

auftreten, die aber im analysierten Klangabschnitt ü berhaupt nicht vorkommen.<br />

Diese falschen Frequenzen werden als Artefakte bezeichnet. Die Ursache fü r deren<br />

Entstehung liegt in der beliebigen Auswahl eines bestimmten Abschnittes im Klang,<br />

dessen Signal normalerweise stetig verläuft. Doch das erste und letzte Sample eines<br />

Abschnittes unterscheiden sich meist stark in ihrem Wert, wie es auch beim abrupten<br />

Wechsel in einer Sägezahn- oder Rechteckwelle der Fall ist und verursachen dadurch<br />

die ungewollten Frequenzanteile. Der Einsatz einer Fensterfunktion vor Beginn der<br />

Fouriertransformation kann diesen Effekt abschwächen oder sogar beseitigen. Dazu<br />

werden die Signale an den Seiten des Analysefensters abgeschwächt. Die Stärke und<br />

Form der Abschwächung wird durch eine geeignete Funktion festgelegt. Fü r diesen<br />

Zweck gibt es eine Vielzahl an Funktionen <strong>mit</strong> unterschiedlichen Eigenschaften.<br />

Dazu zählen Rechteck-Funktion (rectangular function) ohne eine Abschwächung,<br />

65


Dreieck-Funktion (triangular function), Blackman-, Hamming- oder Hanning-<br />

Funktion. In Abb. 29 werden die Auswirkungen von drei Funktionen verglichen.<br />

Rechteck-Fensterfunktion<br />

150<br />

100<br />

50<br />

0<br />

-50<br />

-100<br />

-150<br />

0 50 100 150 200 250<br />

Dreieck-Fensterfunktion<br />

150<br />

100<br />

50<br />

0<br />

-50<br />

-100<br />

-150<br />

0 50 100 150 200 250<br />

125<br />

100<br />

75<br />

50<br />

25<br />

0<br />

0 25 50 75 100 125<br />

125<br />

100<br />

75<br />

50<br />

25<br />

0<br />

0 25 50 75 100 125<br />

Blackman-Fensterfunktion<br />

150<br />

100<br />

50<br />

0<br />

-50<br />

-100<br />

-150<br />

0 50 100 150 200 250<br />

125<br />

100<br />

75<br />

50<br />

25<br />

0<br />

0 25 50 75 100 125<br />

Abbildung 29: Fensterfunktionen Rechteck, Dreieck und Blackman<br />

Durch die Anwendung der Rechteck-Funktion sind zwar die Amplituden im<br />

Ergebnis der Frequenzanalyse am deutlichsten ausgeprägt, allerdings können hier<br />

auch Artefakte vorkommen. Die Dreiecks-Funktion vermindert das Auftreten der<br />

falschen Frequenzanteile und besitzt noch relativ deutliche Amplitudenwerte. Die<br />

Blackman-, Hamming- und Hanning-Funktion leisten gute Arbeit bei der<br />

Eliminierung der Artefakte, liefern aber <strong>mit</strong>telmäßige Amplitudenwerte.<br />

4.3 Realisierung des Genetischen Algorithmus<br />

Mit dem Vorliegen der beiden Bibliotheken fü r Genetische <strong>Algorithmen</strong> (Lösen von<br />

Optimierungsproblemen) und FM-Synthesizer (Produktion von Klängen durch das<br />

Verfahren der Frequenz- oder Phasenmodulation) konnte nun ein spezifischer<br />

66


<strong>Genetischer</strong> Algorithmus für die Entwicklung eines optimierten FM-Synthesizers<br />

realisiert werden. Die in 4.1 genannten Schritte fü r das Dekodierungsverfahren, den<br />

Evaluationsmechanismus und die Erstellung der Ausgangspopulation wurden<br />

realisiert.<br />

4.3.1 Aufbau eines Chromosoms<br />

Die Informationen für den Aufbau eines FM-Synthesizers werden aus einem<br />

Chromosom des Typs IntegerChromosom ausgelesen. Das Alphabet der Instanzen<br />

dieser Klasse wird auf ganzen Zahlen im Bereich von 0 bis 9 beschränkt. Die<br />

Position der Instruktionen fü r den strukturellen Aufbau und die einzelnen Parameter<br />

werden durch die Klasse RevivalDecoder definiert. Da<strong>mit</strong> ü bernimmt sie auch die<br />

Aufgabe der Interpretation und Dekodierung eines FM-Synthesizer-Chromosoms.<br />

Da<strong>mit</strong> aus einem Chromosom ein gü ltiger FM-Synthesizer konstruiert werden kann,<br />

ist zunächst die Anzahl der verwendeten Operatoren notwendig, wobei bis zu n<br />

dieser Operatoren in jeweils gleich groß en Segmenten nacheinander im Chromosom<br />

untergebracht werden. Ein Operatorensegment enthält die eigentlichen Gene des<br />

Chromosoms.<br />

FM-Synthesizer-Chromosom<br />

Operator 1 Operator 2<br />

... Operator n<br />

STI<br />

STI<br />

WAV FRE PHA MOD FDB<br />

ATT DEC SUS REL LEV<br />

25 98 65 63873 61092 6594 2 032 510 494 369 854<br />

Struktur Oszillator Hüllkurve<br />

Abbildung 30: Aufbau eines FM-Synthesizer-Chromosoms<br />

Die <strong>Algorithmen</strong> der FM-Synthese sind immer graphenförmig, wobei ein Groß teil<br />

davon zu einer baumförmigen Struktur erweitert werden kann. Graphenförmige<br />

<strong>Algorithmen</strong> werden i.d.R. nur verwendet, wenn eine Knappheit an Operatoren<br />

67


esteht. In diesem Fall wird ein Operator als Modulator für zwei oder mehr<br />

Operatoren genutzt. Da bei Softwaresynthesizern eine solche Knappheit nicht<br />

vorliegt, können für mehrere Operatoren einzelne Modulatoren verwendet werden.<br />

Die Erweiterung eines graphenförmigen zu einem baumförmigen Algorithmus ist in<br />

Abbildung 31 dargestellt.<br />

Graphenstruktur<br />

Erweiterung<br />

Baumstruktur<br />

Abbildung 31: Graphen- und Baumstrukturen<br />

Die ersten beiden Gene (STI) dienen nun der Indizierung eines Feldes, das Vektoren<br />

enthält, welche wiederum die Anweisungen für den strukturellen Aufbau des<br />

Algorithmus der FM-Synthese beinhalten. Beide Gene besitzen eine Länge von 2<br />

und können daher Werte zwischen 0 und 99 annehmen. Sie enthalten die<br />

Informationen fü r die Feldkoordinaten, welche durch Konvertierung des Allels des<br />

ersten Gens in den Bereich [0; 2] und des zweiten Gens in den Bereich [0; 1]<br />

berechnet werden können.<br />

Strukturgen (Information) Genlänge Quellintervall Zielintervall<br />

STI (Feldkoordinate 1) 2 [0; 99] [0; 2]<br />

STI (Feldkoordinate 2) 2 [0; 99] [0; 1]<br />

Indiziert man nun das Feld <strong>mit</strong> den berechneten Koordinaten, erhält man einen der<br />

insgesamt 6 möglichen Vektoren <strong>mit</strong> den Anweisungen fü r den strukturellen Aufbau.<br />

Ein ausgewählter Vektor enthält drei ganzzahlige Elemente, dessen Werte zwischen<br />

0 und 2 liegen und demnach drei verschiedenen Anweisungen entsprechen. Diese<br />

haben fü r den strukturellen Aufbau folgende Bedeutung:<br />

• Anweisung 1 (Wert 0): Operator soll als Modulator kaskadenförmig zum<br />

Vorgänger eingeordnet werden. Sollte dies nicht möglich sein, wird die<br />

nächste Alternative Anweisung aus dem Vektor ausgefü hrt.<br />

68


• Anweisung 2 (Wert 1): Operator soll als Modulator parallel zum letzten<br />

Modulator eingeordnet werden. Sollte dies nicht möglich sein, wird die<br />

nächste alternative Anweisung aus dem Vektor ausgefü hrt.<br />

• Anweisung 3 (Wert 2): Operator wird als Träger eingeordnet. Diese<br />

Anweisung kann immer erfolgreich ausgefü hrt werden.<br />

Das erste Element des Vektors ist die primäre Anweisung, die beiden anderen<br />

Elemente sind Alternativen. Eine der beiden Alternativen ist immer funktionsfähig,<br />

falls die primäre Anweisung nicht durchgefü hrt werden konnte. Die Vorteile des<br />

Verfahrens liegen auf der Hand: Ich benötige keine Reparaturmechanismen für<br />

Chromosomen, die durch Kreuzung oder Mutation beschädigt wurden. Auch von<br />

einer dynamisch veränderlichen Größ e der Chromosomen kann abgesehen werden.<br />

Ich habe bereits erste Testläufe <strong>mit</strong> diesem Verfahren durchgefü hrt und die<br />

Ergebnisse waren sehr vielversprechend. Durch die lineare Struktur eines<br />

Chromosoms bei den Genetischen <strong>Algorithmen</strong> sind die hinteren Operatoren leider<br />

von den vorderen abhängig, d.h. eine Mutation in einem der Strukturgene bei den<br />

vorderen Operatoren könnte starke strukturelle Auswirkungen auf den entwickelten<br />

Algorithmus haben, während eine Mutation bei einem der hinteren Operatoren<br />

weniger stark ausfallen wü rde.<br />

Die Gene 3 bis 7 (WAV, FRE, PHA, MOD und FDB) enthalten die genetischen<br />

Informationen fü r den Oszillator. Das dritte Gen (WAV) liefert bei einer Länge von<br />

2 einen Wert von 0 bis 99. Nach einer linearen Transformation in den Bereich [0; 3]<br />

indiziert es eine der 4 Grundwellenformen Sinus, Dreieck, Rechteck oder Sägezahn.<br />

Das vierte und fü nfte Gen (FRE und PHA) stellen die Frequenz und Phase bereit. Mit<br />

einer Genlänge von jeweils 5 können sie Werte zwischen 0 und 99999 annehmen.<br />

Die Transformation der Frequenz hängt allerdings von der maximal darstellbaren<br />

Frequenz des Originalklangs ab und bewegt sich dementsprechend im Bereich von 0<br />

bis zur Nyquistfrequenz. Die Phase wird in das Intervall [0; 2Π ] transformiert. Das<br />

sechste Gen (MOD) enthält den Wert fü r den Modulationsindex, der von der Höhe<br />

der Frequenz abhängig ist und in das Intervall [0; f / 2] transformiert wird. Das<br />

siebente Gen (FDB) ist eigentlich nur eine binäre Anweisung, ob ein Oszillator sich<br />

selbst moduliert (Feedback) oder nicht. Es besitzt die geringste Genlänge von 1 und<br />

69


kann demnach Werte von 0 bis 9 annehmen. Durch eine Transformation wird es in<br />

einen binären Wert umgewandelt.<br />

Oszillatorgen (Information) Genlänge Quellintervall Zielintervall<br />

WAV (Grundwellenform) 2 [0; 99] [0; 3]<br />

FRE (Frequenz) 5 [0; 99999] [0; Nyquistfrequenz]<br />

PHA (Phase) 5 [0; 99999] [0; 2Π ]<br />

MOD (Modulationsindex) 4 [0; 9999] [0; f / 2]<br />

FDB (Feedback) 1 [0; 9] [0; 1]<br />

Mit <strong>Hilfe</strong> der ausgelesenen Werte kann der Oszillator (FMOscillator) des aktuellen<br />

Operators konfiguriert werden. Danach beginnt die Dekodierung der Parameter fü r<br />

die Hü llkurve, was im folgenden Abschnitt beschrieben wird.<br />

Die Gene 8 bis 12 (ATT, DEC, SUS, REL und LEV) enthalten die genetischen<br />

Informationen fü r die Parameter der Hü llkurve. Das achte und neunte Gen (ATT und<br />

DEC) bestimmen den Anteil für die Einschwingungsphase, das zehnte Gen (SUS)<br />

den Anteil für die stationäre Phase und das elfte Gen (REL) den Anteil für die<br />

Ausschwingungsphase. Die vier zuvor genannten Gene haben alle eine Länge von 3<br />

und können demnach Werte von 0 bis 999 annehmen. Eine Transformation findet<br />

nicht statt, sondern die Werte der Gene werden direkt an ein Objekt der Klasse<br />

FMEnvelope weitergeleitet, wo sie noch einer Normalisierung unterzogen werden.<br />

Das letzte Gen (LEV) enthält die Information für die Stärke der stationären Phase<br />

und besitzt die gleiche Genlänge wie die anderen Hüllkurvengene. Da<strong>mit</strong> kann es<br />

auch Werte im Bereich [0; 999] annehmen, die wiederum in gebrochene Zahlen<br />

umgewandelt werden, die im Intervall [0; 1] liegen.<br />

Hüllkurvengen (Information) Genlänge Quellintervall Zielintervall<br />

ATT (Attack-Anteil) 3 [0; 999] [0; 999]<br />

DEC (Decay-Anteil) 3 [0; 999] [0; 999]<br />

SUS (Sustain-Anteil) 3 [0; 999] [0; 999]<br />

REL (Release-Anteil) 3 [0; 999] [0; 999]<br />

LEV (Sustain-Level) 3 [0; 999] [0; 1]<br />

Mit <strong>Hilfe</strong> der ausgelesenen Werte können die Eigenschaften der Hüllkurve<br />

(FMEnvelope) des entsprechenden Operators eingestellt werden.<br />

70


Wenn die Struktur des Algorithmus vollständig aufgebaut ist und die Oszillatoren<br />

sowie Hüllkurven aller Operatoren richtig konfiguriert wurden, dann kann der<br />

Algorithmus (FMAlgorithm) der Instanz eines Synthesizers (FMSynthesizer)<br />

ü bergeben werden. Da<strong>mit</strong> liegt ein gültiger Synthesizer für Frequenz- oder<br />

Phasenmodulation vor. Durch die anschließ ende Synthese und Analyse des Klanges<br />

(siehe 4.3.2), kann dessen Leistungsfähigkeit durch einen Vergleich <strong>mit</strong> dem<br />

Frequenzspektrum des Originalklanges er<strong>mit</strong>telt werden. Ein auf diese Weise<br />

strukturiertes Chromosom ermöglicht zudem die unbekü mmerte Verwendung<br />

vorhandener Kreuzungs- und Mutationsoperatoren fü r den Typ IntegerChromosome<br />

(siehe 4.3.4).<br />

4.3.2 Erzeugung und Bewertung eines Individuums<br />

Ein FM-Synthesizer Individuum habe ich von der Klasse AbstractIndividual<br />

abgeleitet und als RevivalIndividual realisiert. Bei der Erzeugung eines neuen<br />

Individuums wird auch ein Chromosom des Typs IntegerChromosom instanziert. Die<br />

Länge des Chromosoms kann von der Klasse RevivalDecoder bestimmt werden. Das<br />

Alphabet wird durch die entsprechenden Methoden der Klasse IntegerChromosom<br />

spezifiziert. Ein Zeichen kann dann ganze Zahlen im Bereich von 0 bis 9 annehmen.<br />

Nachdem das Chromosom in der geforderten Länge vorliegt und das Alphabet<br />

bestimmt wurde, können alle Zeichen <strong>mit</strong> zufälligen Werten belegt werden. Dies<br />

geschieht auf der Basis von gleichverteilten Zufallszahlen.<br />

Neben einer Möglichkeit für die Erzeugung eines Individuums, muß auch dessen<br />

Bewertung spezifiziert werden. Da<strong>mit</strong> dies möglich ist, habe ich die Funktionen<br />

realizeEvaluation() und realizeFitness() aus dem Interface Evaluation realisiert. Die<br />

Bewertung eines Individuums wird durch die Zielfunktion realizeEvaluation()<br />

er<strong>mit</strong>telt. Dies geschieht in drei Schritten: Zuerst kommt der RevivalDecoder zum<br />

Einsatz. Er interpretiert bzw. dekodiert ein Chromosom und baut aus den<br />

entschlü sselten Informationen einen gü ltigen FM-Synthesizer auf. Danach folgt das,<br />

was die Synthesizer am besten können, nämlich einen Klang erzeugen. Der<br />

Syntheseprozeß wird allerdings nicht den kompletten Klang erstellen, vielmehr<br />

werden viele einzelne Abschnitte synthetisiert, die ü ber den gesamten Zeitraum der<br />

71


Synthese verteilt sind. Diese Abschnitte definiere ich hier<strong>mit</strong> als Synthesefenster,<br />

dessen Länge immer gleich ist. Die Größ e der Synthesefenster entspricht der Größ e<br />

der Fenster fü r die Fouriertransformation. Die Verteilung der Synthesefenster habe<br />

ich in linearer und logarithmischer Form vorgesehen. Die lineare Verteilung<br />

behandelt alle Zeitpunkte des zu synthetisierenden Klanges völlig gleichberechtigt.<br />

Der Zeitpunkt f lin (x) eines Synthesefensters x wird durch die folgende Formel<br />

berechnet:<br />

Smax<br />

[11] flin(x)<br />

= (x -1)<br />

N -1<br />

win<br />

x = 1, 2, K,<br />

N win<br />

Dagegen betont die logarithmische Verteilung besonders die Einschwingungsphase,<br />

vernachlässigt dafü r die stationäre Phase und die Ausschwingungsphase. Den<br />

Zeitpunkt f log (x) für ein Synthesefenster x berechne ich <strong>mit</strong> <strong>Hilfe</strong> der folgenden<br />

Gleichung:<br />

[12]<br />

f<br />

log<br />

(x) = S<br />

x = 1, 2, K,<br />

max<br />

Ê log N<br />

Á1-<br />

Ë log N<br />

N win<br />

( win - x + 1)<br />

ˆ<br />

( -1) ˜˜<br />

win<br />

¯<br />

Die in den Gleichungen verwendeten Variablen S max und N win werden vom Nutzer<br />

noch vor Beginn des evolutionären Prozesses angegeben, wobei S max die maximale<br />

Anzahl der verteilbaren Zeitpunkte bzw. Sample-Positionen im Klang ausdrü ckt und<br />

N win die Anzahl der Analyse- bzw. Synthesefenster angibt.<br />

linear<br />

f(x 1<br />

) f(x Nwin<br />

)<br />

Zeit t in Samples<br />

f(x 1<br />

)<br />

f(x Nwin<br />

)<br />

logarithmisch<br />

Abbildung 32: Verteilung der Synthesefenster<br />

Nachdem die Positionen der Synthesefenster bestimmt wurden, werden für diese<br />

Zeitabschnitte die entsprechenden Klangschnipsel synthetisiert und der schnellen<br />

72


Fouriertransformation unterzogen. Die aus der FFT resultierenden N win Spektren der<br />

Abschnitte des Syntheseklangs werden <strong>mit</strong> den passenden N win Spektren des<br />

Originals verglichen, die zu Beginn meines Verfahrens er<strong>mit</strong>telt wurden. Ich benutze<br />

nun die folgende Formel fü r den Vergleich der Frequenzbänder von Original- (FO)<br />

und Syntheseklang (SO):<br />

N win N ws - 1<br />

[13] e = Â<br />

Á<br />

Â<br />

w = 1<br />

Ê<br />

Á<br />

Ë<br />

i=<br />

0<br />

FO w - FS<br />

i<br />

w = 1, 2, K , Nwin und i = 0,1, K,<br />

Nws<br />

-1<br />

w i<br />

ˆ<br />

˜<br />

˜<br />

¯<br />

Dabei entsprechen die in der Formel angegebenen Variablen w einem der N win<br />

Analysefenster der Fouriertransformation und i einem der N ws Frequenzbänder aus<br />

der Frequenzanalyse des Fensters w. Das Ergebnis e beschreibt den Fehler des<br />

synthetisierten Klanges in Bezug auf das Original und stellt die Rohfitneß für ein<br />

Individuum dar. Da<strong>mit</strong> gilt folgender Zusammenhang: Je größ er die Rohfitneß ist,<br />

desto schlechter kann ein Individuum den Originalklang i<strong>mit</strong>ieren und je kleiner der<br />

Wert desto besser kann es das Original nachbilden. Der Fehlerwert 0 wü rde so<strong>mit</strong><br />

einer perfekten Nachbildung entsprechen. Da meine Bibliothek fü r die Genetischen<br />

<strong>Algorithmen</strong> eine Maximumsuche durchfü hrt und der oben beschriebene Prozeß eine<br />

Fehlersuche (Minimierung) ist, muß die Rohfitneß dementsprechend angepaß t<br />

werden. Dies habe ich <strong>mit</strong> der Implementation der Funktion realizeFitness()<br />

verwirklicht. Durch eine Negation der Rohfitneß eines jeden Individuums kann die<br />

Minimierung des Fehlers als Maximumsuche dargestellt werden.<br />

4.3.3 Realisierung des Evolutionsprozesses<br />

Nachdem nun ein Dekodierungsverfahren für ein FM-Synthesizer-Chromosom, ein<br />

Mechanismus fü r dessen Erzeugung und ein Verfahren fü r die Bewertung der Fitneß<br />

eines Individuums spezifiziert wurden, fehlt nur noch ein Mechanismus für die<br />

Bildung der Ausgangspopulation und das Grundgerü st des Genetischen Algorithmus.<br />

Dieses wird durch die abstrakte Klasse AbstractEvolution bereitgestellt, die ich<br />

bereits im Punkt 4.1.1 erläutert habe. Dementsprechend habe ich durch deren<br />

Ableitung die Klasse RevivalEvolution erstellt, die auch die Realisierung der<br />

73


Funktion prepareInitialPopulation() erforderte. Die Bildung der Ausgangspopulation<br />

wird dabei durch die Instanzierung von N Individuen des Typs RevivalIndividual<br />

erreicht, wobei N für die Populationsgröß e steht. Einige Parameter des<br />

Evolutionsprozesses werde ich von vornherein fest einstellen und eine Ä nderung<br />

durch den Nutzer nicht mehr zulassen. Dazu zählt auch der Typ der<br />

Reproduktionsstrategie, welche fü r die Bildung der Nachkommen zuständig ist. Ich<br />

greife hier auf die standardmäßig implementierte Klasse DefaultReproduction<br />

zurü ck, die nach dem Konzept in Abbildung 2 (Zeile 5 bis 8) arbeitet.<br />

4.3.4 Genetische Operatoren<br />

Die Selektion wird <strong>mit</strong> den in 2.6.1 beschriebenen Funktionalitäten (rangbasierte und<br />

skalierte Selektion sowie Wettkampfselektion) und den in 4.1.1 implementierten<br />

Formen (RankedSelection, ScaledSelection und TournamentSelection) verwendet.<br />

Als Kreuzungsoperatoren setze ich, aufgrund des verwendeten Chromosomentyps<br />

IntegerChromosome, die dazu passenden Klassen IntegerXxxCrossover ein, wobei<br />

Xxx hier fü r das verwendete Kreuzungsverfahren (Ein-Punkt-Kreuzung, Zwei-Punkt-<br />

Kreuzung usw.) steht. Die Funktionsweise der ganzzahligen Kreuzungsverfahren ist<br />

<strong>mit</strong> denen der binären (siehe 2.6.2) identisch.<br />

Auch der Mutationsprozeß ist vom Typ IntegerChromosome abhängig. Aus diesem<br />

Grund benutze ich die Klassen fü r die ganzzahlige Mutation (IntegerXxxMutation).<br />

Besonders sei hier die gleichmäßige Mutation (IntegerUniformMutation) erwähnt,<br />

die ähnlich wie die binäre Variante funktioniert: Jedes Zeichen im Chromosom wird<br />

auf die Wahrscheinlichkeit hin getestet, ob es mutiert wird oder nicht, d.h. fü r jedes<br />

Zeichen wird eine gleichverteilte reelle Zufallszahl im Intervall [0; 1] er<strong>mit</strong>telt und<br />

wenn diese kleiner ist als die Mutationswahrscheinlichkeit, dann findet die Mutation<br />

an der entsprechenden Position statt. In diesem Fall wird ein neuer Wert für das<br />

betreffende Zeichen durch eine gleichverteilte ganzzahlige Zufallszahl er<strong>mit</strong>telt, die<br />

im Bereich von 0 bis 9 liegt.<br />

74


4.4 Die Applikation Revival<br />

Der zuvor beschriebene evolutionäre Prozeß arbeitet ohne Interaktionen <strong>mit</strong> einem<br />

Nutzer und kann demnach als automatisiert angesehen werden. Jedoch soll es<br />

möglich sein, daß ein Nutzer vor Beginn des Prozesses ü ber einige Eigenschaften fü r<br />

den Genetischen Algorithmus, die Klanganalyse und -synthese bestimmen darf.<br />

Weiterhin soll der Nutzer nach der Entwicklung eines Synthesizers dessen<br />

Algorithmus und die optimierten Parameter der Operatoren ansehen können. Aus<br />

diesem Grund habe ich meine Applikation Revival <strong>mit</strong> einer grafischen Schnittstelle<br />

ausgestattet.<br />

Abbildung 33: Applikation Revival<br />

Die Schnittstelle ermöglicht die Konfiguration aller nötigen Parameter auf einfache<br />

Weise und präsentiert dem Nutzer die Ergebnisse des Evolutionsprozesses. Der<br />

Ablauf einer Evolution <strong>mit</strong> Revival wird in vier Phasen vollzogen: In der ersten<br />

Phase (Konfigurationsphase) mü ssen die Parameter fü r den Prozeß von einem Nutzer<br />

ausgewählt werden. In der zweiten Phase (Analysephase) ü bernimmt das Programm<br />

die Kontrolle und analysiert den Originalklang in Bezug auf sein Spektrum. In der<br />

dritten Phase (Evolutionsphase) beginnt die eigentliche Arbeit meines Verfahrens.<br />

Der implementierte Genetische Algorithmus RevivalEvolution versucht nun einen<br />

75


FM-Synthesizer zu entwickeln, der am Ende die Fähigkeit besitzen soll, den<br />

vorgegebenen Klang annähernd nachzubilden. Nachdem der künstliche<br />

Evolutionsprozeß terminiert, werden die Ergebnisse der Analyse- und besonders der<br />

Evolutionsphase ausgewertet und fü r den Nutzer grafisch aufbereitet. In der vierten<br />

Phase (Präsentationsphase) werden dem Nutzer dann die vorbereiteten Ergebnisse<br />

präsentiert.<br />

Nutzer<br />

Konfigurationsphase<br />

Analysephase<br />

Evolutionsphase<br />

Präsentationsphase<br />

Nutzer<br />

Abbildung 34: Evolution eines FM-Synthesizers <strong>mit</strong> Revival<br />

Ich habe noch zusätzlich die Möglichkeit für das Abspeichern einer aktuellen<br />

Konfiguration als Datei (*.par) ermöglicht. Zu einem späteren Zeitpunkt kann diese<br />

erneut geladen und verwendet werden, ohne alle Einstellungen noch einmal<br />

spezifizieren zu mü ssen.<br />

4.4.1 Konfigurationsphase<br />

In dieser Phase kann der Nutzer verschiedene Parameter für den Genetischen<br />

Algorithmus (RevivalEvolution), die Fouriertransformation (FFT) und <strong>Klangsynthese</strong><br />

(FMSynthesizer) konfigurieren sowie einen Klang auswählen, der nachgebildet<br />

werden soll. Diese vier Parametergruppen werden in den drei folgenden Schritten<br />

spezifiziert:<br />

Der erste Schritt ist die Auswahl eines Originalklanges, der als WAV-Datei im PCM-<br />

Format geladen werden kann. Zusätzlich werden einige Informationen des<br />

76


angegebenen Klangs wie die Samplerate, die Anzahl der Samples und die Spieldauer<br />

angezeigt. Die Applikation Revival verarbeitet nur einen Kanal eines Klangs (Mono).<br />

Sollte ein Klang <strong>mit</strong> zwei Kanälen (Stereo) geladen werden, dann wird nur der linke<br />

Kanal verwendet. Neben dem Originalklang, kann auch eine WAV-Datei angegeben<br />

werden, in welcher der synthetisierte Klang des besten Individuums des gesamten<br />

Evolutionsprozesses abgespeichert wird. Dieser Klang wird ausschließ lich im Mono-<br />

Format gespeichert.<br />

Der zweite Schritt befaß t sich <strong>mit</strong> der Konfiguration der Parameter für den<br />

Genetischen Algorithmus. Mit den entsprechenden Feldern können die Größ e der<br />

Population, die maximale Anzahl an Generationen, ein Selektionsverfahren, eine<br />

Ersetzungsstrategie, der Initialisierungstyp fü r den Zufallsgenerator, ein Mutationsund<br />

Kreuzungsoperator sowie die Wahrscheinlichkeiten fü r Mutation und Kreuzung<br />

eingestellt werden. Dabei sind folgende Beschränkungen und Vorgaben zu beachten:<br />

Die Populationsgröß e (Population size) kann mindestens 2 bis maximal 200<br />

Individuen betragen. Ein Wert, der kleiner oder größ er ist, macht keinen Sinn und<br />

verschwendet nur unnötig Ressourcen. Die maximale Generationsanzahl<br />

(Generations) fordert einen Wert von 10 bis 1000. Die möglichen Optionen fü r ein<br />

Selektionsverfahren (Selection) sind Wettkampfselektion, lineare und nicht lineare<br />

rangbasierte Selektion sowie linear, logarithmisch und exponentiell skalierte<br />

Selektion. Als Ersetzungsstrategie (Replacement) kann der starke und schwache<br />

Elitismus (<strong>mit</strong> einem Eliteanteil von 10%, 25% oder 50%), die Generationsersetzung<br />

und der Dynamische Elitismus (<strong>mit</strong> 10%, 25% und 50% maximalem Eliteanteil)<br />

eingestellt werden. Der Kreuzungsoperator (Crossover) wird durch die Verfahren der<br />

Ein-Punkt-Kreuzung, der Zwei-Punkt-Kreuzung (<strong>mit</strong> und ohne Translokation) und<br />

der gleichmäßigen Kreuzung sowie der Mischform aus Ein-Punkt- (1/3) und Zwei-<br />

Punkt-Kreuzung <strong>mit</strong> Translokation (2/3) bei möglichen Wahrscheinlichkeitsraten<br />

von 10% bis 100% spezifiziert. Als Mutationsoperator (Mutation) können die<br />

gleichmäßige Mutation, die Inversions- und Transloktionsmutation angegeben<br />

werden, wobei die Mutationswahrscheinlichkeit im Rahmen von 0% bis 25%<br />

geregelt wird. Der Zufallsgenerator (Random seed) kann <strong>mit</strong> einem festen Wert<br />

(letzter Initialisierungswert), dem Wert 0 (Reset) oder der aktuellen Zeit initialisiert<br />

werden.<br />

77


Der dritte Schritt ermöglicht die Einstellung der Parameter für die Analyse und<br />

Synthese eines Klanges. In Bezug auf die Klanganalyse können Größ e der<br />

Analysefenster, Abdeckungsrate, Verteilung und Art der Fensterfunktion festgelegt<br />

werden. Die Größ e eines Fensters (FFT window size) wird durch einen der Werte 64,<br />

128, 256, 512, 1024, 2048, 4096 oder 8192 bestimmt. Die Anzahl der Fenster wird<br />

durch die Abdeckungsrate (FFT window rate) im Bereich von 1% bis 150%<br />

bestimmt. Die Verteilung der Analysefenster (FFT window distribution) kann linear<br />

oder logarithmisch (Betonung der Einschwingungsphase) erfolgen. Die möglichen<br />

Optionen für die Fensterfunktion (FFT window function) sind Dreieck, Hamming,<br />

Hanning, Blackman, Bartlett und Rechteck. In Bezug auf die <strong>Klangsynthese</strong> können<br />

die Anzahl der Operatoren (Operator number) von mindestens einem bis maximal<br />

100 Operatoren und der Typ der Modulationssynthese (Modulation type) als<br />

Frequenz- oder Phasenmodulation konfiguriert werden.<br />

4.4.2 Analysephase<br />

Diese Phase dient der Er<strong>mit</strong>tlung des Frequenzspektrums des Originalklangs durch<br />

die Fouriertransformation, wobei die in 4.4.1 angegebenen Parameter verwendet<br />

werden. Bevor die Frequenzanalyse beginnen kann, mü ssen zuerst die Zeitpunkte fü r<br />

die Analysefenster <strong>mit</strong> <strong>Hilfe</strong> der Verteilungsfunktion berechnet und in einem Vektor<br />

abgelegt werden, da sie später noch für die Frequenzanalyse der synthetisierten<br />

Klänge Anwendung finden. Danach wird die Fouriertransformation fü r jedes der N win<br />

Analysefenster durchgefü hrt. Die daraus resultierenden N ws /2 Frequenzbänder pro<br />

Fenster werden in einem Feld (FO) hintergelegt. Die Ergebnisse sind Voraussetzung<br />

fü r die Evolutionsphase, wo sie dann <strong>mit</strong> den Spektren der synthetisierten Klänge<br />

(FS) verglichen werden.<br />

4.4.3 Evolutionsphase<br />

Dies ist ohne Zweifel der wichtigste Teil meines Verfahrens. Hier wird <strong>mit</strong> <strong>Hilfe</strong> der<br />

Genetischen <strong>Algorithmen</strong> ein FM-Synthesizer entwickelt und optimiert. Das nötige<br />

Grundgerü st fü r den kü nstlichen Evolutionsprozeß (siehe 2.3 und 4.3.3) wird durch<br />

die Klasse RevivalEvolution zur Verfü gung gestellt. Der Ablauf der Prozedur beginnt<br />

78


<strong>mit</strong> der Konfiguration der Instanz und dem Aufruf der Funktion evolve(): Diese fü hrt<br />

als erstes die von mir in 4.3.3 realisierte Funktion prepareInitialPopulation() aus, die<br />

eine Ausgangspopulation erzeugt. Danach wird die soeben erstellte Population noch<br />

bewertet (siehe 4.3.2). Anschließ end beginnt der iterative Teil des Genetischen<br />

Algorithmus. Zuerst werden <strong>mit</strong> <strong>Hilfe</strong> der Reproduktionsstrategie Nachkommen<br />

gebildet, wobei sich deren Anzahl nach der Größ e der aktuellen Population richtet.<br />

Die Bildung von genau zwei Nachkommen wird demnach durch die Selektion von<br />

ebenfalls zwei Elternindividuen und deren Kreuzung erreicht. Anschließ end folgt<br />

noch die Mutation der Nachkommen. Wenn genü gend Kinderindividuen gebildet<br />

wurden, werden diese bewertet. Danach wird die Ersetzungsstrategie aufgerufen, um<br />

die Population der vorhergehenden Generation und die erzeugten Nachkommen fü r<br />

die nächste Generation zu bilden. Da bei manchen Ersetzungsverfahren (z.B.<br />

schwacher Elitismus) noch zusätzlich Veränderungen am genetischen Material der<br />

Individuen (Mutationen) vorgenommen werden, muß die aktuelle Population noch<br />

einmal bewertet werden. Solange die maximale Generationsanzahl nicht erreicht ist,<br />

wird der Prozeß von Reproduktion, Bewertung der Kinder, Ersetzung, Bewertung der<br />

aktuellen Population, Er<strong>mit</strong>tlung des besten Synthesizers fortgesetzt.<br />

1<br />

Konfiguration der Instanz RevivalEvolution<br />

2<br />

Bildung einer Ausgangspopulation von Synthesizern<br />

3<br />

Bewertung der Ausgangspopulation<br />

4<br />

Wiederhole solange nicht genügend Nachkommen gebildet wurden<br />

5<br />

Selektion von zwei Individuen (Eltern)<br />

6<br />

Kreuzung der Eltern (Nachkommen)<br />

7<br />

Mutation der Nachkommen<br />

8<br />

Evaluation der Nachkommen<br />

9<br />

10<br />

Aufruf der Ersetzungsstrategie<br />

Evaluation der aktuellen Population<br />

11<br />

12<br />

Er<strong>mit</strong>tlung des besten Synthesizers dieser Generation<br />

Wiederhole solange Terminierungsbedingung nicht wahr ist<br />

Abbildung 35: Ablauf der Evolutionsphase<br />

79


Da<strong>mit</strong> ein Nutzer schon während dieser Phase einen groben Eindruck ü ber den<br />

Fortschritt des Prozesses erhält, werden im Status-Fenster der Applikation Revival,<br />

beim Auftreten eines neuen besten Individuums, Informationen wie Generation,<br />

Fitneß des Individuums und die durchschnittliche Fitneß der aktuellen Population<br />

angezeigt. Da die Evolutionsphase sehr viel Zeit in Anspruch nehmen kann, wurde<br />

zusätzlich ein Abbruchmechanismus eingebaut. Wenn die künstliche Evolution<br />

abgeschlossen ist oder vorzeitig beendet wurde, folgt die Aufbereitung der<br />

Ergebnisse fü r die Präsentationsphase.<br />

4.4.4 Präsentationsphase<br />

In der vierten und letzten Phase kann sich der Nutzer die vorbereiteten Ergebnisse<br />

ansehen. Dort gibt es drei verschiedene Ansichten. Die erste Ansicht (Sound<br />

evolvement) zeigt den Original- und Syntheseklang sowohl in der Zeit- als auch in<br />

der Frequenzdomäne. Es ist möglich den originalen Klang und die synthetisierten<br />

Klänge der besten Synthesizer aller Generationen anzusehen und anzuhören.<br />

Abbildung 36: Ansicht Sound evolvement<br />

In der nächsten Ansicht (Algorithm evolvement) wird der beste Synthesizer des<br />

Evolutionsprozesses, genauer gesagt dessen Algorithmus und Parameter, als Baum<br />

dargestellt. Die Blätter und Knoten entsprechen den verwendeten Operatoren, von<br />

80


denen der Typ (Träger = CAR oder Modulator = MOD) und die Informationen zu<br />

den Parametern des Oszillators sowie der Hü llkurve ausgegeben werden. Dies sind<br />

fü r den Oszillator der Wellentyp (WF = Sinus | Dreieck | Sägezahn | Rechteck), die<br />

Frequenz (F), die Amplitude (A), die Phase (P), der Modulationsindex (MI – nur<br />

wenn nötig) und der Feedback-Indikator (FB = ja | nein) sowie fü r die Hü llkurve die<br />

prozentualen Anteile der Einschwingungsphase (A, D), der stationären Phase (S)<br />

inklusive Level (L) und der Ausschwingungsphase (R).<br />

Abbildung 37: Ansicht Algorithm evolvement<br />

Die letzte Ansicht (Fitness evolvement) bietet eine Darstellung der Entwicklung der<br />

Fitneß ü ber den gesamten Zeitraum der künstlichen Evolution, wobei die x-Achse<br />

dem Generationsverlauf und die y-Achse dem Fitneß wert des jeweils besten<br />

Individuums einer Generation entspricht.<br />

Abbildung 38: Ansicht Fitness evolvement<br />

81


4.5 Experimente<br />

Mit <strong>Hilfe</strong> der von mir entwickelten Applikation Revival habe ich eine Reihe von<br />

Experimenten durchgefü hrt. Basierend auf den Ergebnissen konnte ich mir einen<br />

Ü berblick ü ber die Abhängigkeiten und Zusammenhänge bestimmter Einfluß größ en<br />

sowie ü ber eventuelle Schwachstellen in meinem Verfahren verschaffen. Die dafü r<br />

benötigten Klänge habe ich aus dem Synthesizer meiner Soundkarte aufgenommen.<br />

Es handelt sich vorwiegend um klassische Instrumente wie Klavier, Trompete, Orgel<br />

oder Harfe. Die Klangbeispiele sind jeweils 2 Sekunden lang. Sie wurden <strong>mit</strong> einer<br />

Abtastfrequenz von 8000 Hz und einer Genauigkeit von 16 Bit pro Sample kodiert.<br />

Die vorliegenden Klänge habe ich zuerst nach einer standardmäßigen Konfiguration<br />

(siehe 4.5.1) untersucht. Da der Test vieler Klänge einen erheblichen Zeitaufwand<br />

darstellt, habe ich mich auf zwei Klänge beschränkt, die ich fü r meine Experimente<br />

verwende: Einen Trommelschlag (TaikoDrum.wav) und einen Klavierklang<br />

(Piano.wav). Alle anderen Instrumente werden anhand der standardmäßigen und<br />

später einer möglichst optimalen Konfiguration nur einmal getestet.<br />

Alle Experimente wurden auf dem gleichen Computer durchgefü hrt, der <strong>mit</strong> einem<br />

AMD-Athlon Prozessor (550 MHz) ausgestattet ist und ü ber 512 MB Arbeitspeicher<br />

verfü gt. Als Betriebssystem wurde Windows 2000 eingesetzt. Wie bereits erwähnt,<br />

verwende ich die Java Runtime Environment der Version 1.4.0 Beta3.<br />

4.5.1 Standardkonfiguration<br />

Schon während der Implementation meines Verfahrens habe ich sehr viele Versuche<br />

durchgefü hrt. Dabei haben sich allmählich bestimmte Werte fü r einen Groß teil der<br />

Parameter herauskristallisiert. Alle anderen Werte basieren entweder auf eigenen<br />

Erfahrungen oder auf Erkenntnissen aus einigen Quellen dieser Arbeit. Hier die<br />

ausgewählten Parameterwerte (GA = Genetische <strong>Algorithmen</strong>; KA = Klanganalyse;<br />

KS = <strong>Klangsynthese</strong>):<br />

• (GA) Populationsgröß e: 24 Individuen<br />

• (GA) Generationsanzahl: 250 Generationen<br />

82


• (GA) Selektionsverfahren: Wettkampfselektion<br />

• (GA) Ersetzung: Dynamischer Elitismus <strong>mit</strong> max. Anteil der Elite von 10%<br />

• (GA) Kreuzungsoperator: Ein-Punkt-Kreuzung (33%) und Zwei-Punkt-<br />

Kreuzung <strong>mit</strong> Translokation (67%) bei einer Kreuzungswahrscheinlichkeit<br />

von 75% (Kreuzungsrate meistens im Bereich von 60% – 90%)<br />

• (GA) Mutationsoperator: Gleichmäßige Mutation bei einer Mutationsrate von<br />

2% (ü bliche Werte sind 1% – 3%)<br />

• (GA) Initialisierung des Zufallsgenerators <strong>mit</strong> einem festen Wert<br />

• (KA) Fenstergröß e: 256 Samples<br />

• (KA) Abdeckung: 75%<br />

• (KA) Verteilung der Fenster: linear<br />

• (KA) Fensterfunktion: Dreieck<br />

• (KS) Anzahl der Operatoren: 6 (auch in digitalen FM-Synthesizern werden<br />

i.d.R. nur 4 oder 6 Operatoren verwendet)<br />

• (KS) Modulationstyp: FM<br />

Die Resultate der folgenden Experimente werden alle in tabellarischer Form<br />

dargestellt. In der ersten Spalte ist die Art des Experiments festgehalten. Die nächste<br />

Spalte zeigt die Rechenzeit (gerundet auf Minuten), die für die Entwicklung eines<br />

Synthesizers benötigt wurde. Die dritte Spalte enthält die letzte Generation, in der<br />

eine strukturelle Ä nderung im Algorithmus des besten Synthesizers stattfand. In der<br />

letzten Spalte ist der prozentuale Fehler von einem Durchlauf meines Verfahrens<br />

aufgefü hrt (bester Fitneß wert der Ausgangspopulation durch den besten Fitneß wert<br />

der letzten Generation mal 100 in Prozent). Die folgende Tabelle zeigt die Resultate<br />

eines Durchlaufs für die Klänge eines Klaviers (Piano.wav) und einer Trommel<br />

(TaikoDrum.wav), die auch fü r die weiteren Experimente verwendet wurden:<br />

Klavier / Trommel Zeit [min] LSV [Generation] Fehler [%]<br />

Standardkonfiguration 20 / 21 232 / 208 13,2 / 9,3<br />

Wie der Tabelle zu entnehmen ist, dauerte die Berechnung der Syntheseklänge<br />

durchschnittlich 20 Minuten. Eine feste Struktur für den Algorithmus wurde in<br />

83


eiden Fällen erst sehr spät gefunden. Bei beiden Klängen konnte bereits in der 75.<br />

Generation eine Fehlerrate von unter 20% erreicht werden, die sich dann allerdings<br />

bis zum Ende des Prozesses nur noch geringfü gig verbesserte. Die durchschnittlichen<br />

Grundfrequenzen (Klavier 262 Hz und Trommel 76 Hz) wurden sehr genau<br />

nachgebildet und die Dynamik der Klänge kann als gut gewertet werden.<br />

4.5.2 Parameter des Genetischen Algorithmus<br />

Die ersten Experimente drehen sich alle um die Parameter der Genetischen<br />

<strong>Algorithmen</strong>. Abgesehen von der Populationsgröß e und der maximalen Anzahl an<br />

Generationen, sollten die Parameter keinen schwerwiegenden Einfluß auf den Prozeß<br />

ausü ben, solange sie nicht extreme Werte annehmen.<br />

Experiment EXP452-A. Variation der Populationsgröße. Es wurden die folgenden<br />

Testfälle betrachtet: 6, 12, 24, 36 und 48 Individuen in der Population des<br />

kü nstlichen Evolutionsprozesses.<br />

Klavier / Trommel Zeit [min] LSV [Generation] Fehler [%]<br />

EXP452-A1: 6 Individuen 5 / 5 24 / 15 15,4 / 9,3<br />

EXP452-A2: 12 Individuen 10 / 10 167 / 17 16,0 / 10,0<br />

EXP452-A3: 24 Individuen (STD) 20 / 21 232 / 208 13,2 / 9,3<br />

EXP452-A4: 36 Individuen 30 / 30 249 / 15 12,2 / 10,0<br />

EXP452-A5: 48 Individuen 42 / 42 250 / 126 13,6 / 10,1<br />

Es ist ersichtlich, daß sogar bei einer Populationsgröß e von nur 6 Individuen immer<br />

noch eine erstaunlich niedrige Fehlerrate erreicht wird (und das bei einem Viertel der<br />

Zeit des Standards). Das beste Hörergebnis und da<strong>mit</strong> die beste Nachbildung des<br />

Originals gelang <strong>mit</strong> der Standardkonfiguration von 24 Individuen. Ein höherer Wert<br />

fü r die Populationsgröß e scheint nicht angebracht, da einerseits keine besseren<br />

Ergebnisse zu erwarten sind und andererseits die Rechenzeit kontinuierlich ansteigt.<br />

Experiment 452-B: Variation der maximalen Generationsanzahl. Die folgenden<br />

Testfälle wurden untersucht: 50, 100, 150, 200, 250, 300, 350, 400, 450 und 500<br />

Generationen bis zur Terminierung der kü nstlichen Evolution.<br />

84


Klavier / Trommel Zeit [min] LSV [Generation] Fehler [%]<br />

EXP452-B1: 50 Generationen 4 / 4 39 / 50 29,0 / 18,2<br />

EXP452-B2: 100 Generationen 8 / 8 92 / 50 14,3 / 12,6<br />

EXP452-B3: 150 Generationen 12 / 12 125 / 149 13,8 / 9,9<br />

EXP452-B4: 200 Generationen 16 / 17 157 / 168 13,7 / 9,4<br />

EXP452-B5: 250 Generationen (STD) 20 / 21 232 / 208 13,2 / 9,3<br />

EXP452-B6: 300 Generationen 24 / 25 232 / 296 11,7 / 9,1<br />

EXP452-B7: 350 Generationen 28 / 29 232 / 348 10,9 / 9,0<br />

EXP452-B8: 400 Generationen 32 / 33 232 / 400 10,5 / 8,9<br />

EXP452-B9: 450 Generationen 36 / 38 232 / 401 10,4 / 8,9<br />

EXP452-B10: 500 Generationen 40 / 42 232 / 401 10,3 / 8,9<br />

Erwartungsgemäß verbesserte sich die Fitneß der besten Individuen im Laufe des<br />

kü nstlichen Evolutionsprozesses. In den ersten 100 Generationen geschah dies sehr<br />

schnell, danach nur noch schwach. Die aus den besten Synthesizern resultierenden<br />

Klänge konnte ich ab einer bestimmten Generation (Klavier 350 und Trommel 200)<br />

nicht mehr unterscheiden.<br />

Experiment 452-C. Variation der Selektionsstrategie. Es wurden die drei folgenden<br />

Verfahren betrachtet: Wettkampfselektion, nicht lineare Rangselektion und<br />

exponentiell skalierte Selektion.<br />

Klavier / Trommel Zeit [min] LSV [Generation] Fehler [%]<br />

EXP452-C1: Wettkampfsel. (STD) 20 / 21 232 / 208 13,2 / 9,3<br />

EXP452-C2: nicht lineare Rangsel. 21 / 20 183 / 183 11,5 / 9,2<br />

EXP452-C3: exponentiell skalierte Sel. 21 / 20 240 / 181 12,6 / 9,0<br />

Keines der eingesetzten Selektionsverfahren kann einen entscheidenden Vorteil<br />

vorweisen. Im Gegensatz zum Standard können die nicht lineare Rangselektion und<br />

die exponentiell skalierte Selektion jedoch eine geringfü gig bessere Fehlerrate<br />

erreichen.<br />

Experiment 452-D. Variation der Ersetzungsstrategie. Die folgenden Verfahren fü r<br />

die Ersetzung wurden untersucht: Starker und schwacher Elitismus <strong>mit</strong> einem<br />

Eliteanteil von 10%, 25% und 50%; dynamischer Elitismus <strong>mit</strong> einem maximalen<br />

Anteil der Elite von 10%, 25% und 50%.<br />

85


Klavier / Trommel Zeit [min] LSV [Generation] Fehler [%]<br />

EXP452-D1: st. Elitismus 10% 20 / 21 230 / 63 12,7 / 10,3<br />

EXP452-D2: st. Elitismus 25% 21 / 21 152 / 224 26,2 / 9,1<br />

EXP452-D3: st. Elitismus 50% 21 / 21 32 / 72 15,6 / 8,9<br />

EXP452-D4: schw. Elitismus 10% 20 / 20 221 / 214 12,4 / 9,7<br />

EXP452-D5: schw. Elitismus 25% 20 / 19 245 / 24 14,4 / 12,6<br />

EXP452-D6: schw. Elitismus 50% 20 / 20 237 / 247 22,5 / 8,6<br />

EXP452-D7: dyn. Elitismus 10% (STD) 20 / 21 232 / 208 13,2 / 9,3<br />

EXP452-D8: dyn. Elitismus 25% 20 / 21 210 / 222 13,1 / 8,6<br />

EXP452-D9: dyn. Elitismus 50% 20 / 20 144 / 22 16,8 / 9,2<br />

Die Verwendung einer Ersetzungsstrategie <strong>mit</strong> einem kleinen Anteil der Elite (10%)<br />

scheint die bessere Wahl zu sein, obwohl hier die Ergebnisse der beiden Klänge eher<br />

widersprü chlich ausfallen (starker Elitismus Trommel: niedriger Eliteanteil schlecht,<br />

hoher gut; schwacher Elitismus Klavier: niedriger Eliteanteil gut, hoher schlecht).<br />

Experiment 452-E. Variation der Kreuzungsoperatoren. Es wurden die folgenden<br />

Möglichkeiten untersucht: Mischoperator aus Ein-Punkt-Kreuzung und Zwei-Punkt-<br />

Kreuzung <strong>mit</strong> Translokation; Zwei-Punkt-Kreuzung und gleichmäßige Kreuzung.<br />

Alle <strong>mit</strong> einer Kreuzungswahrscheinlichkeit von jeweils 60%, 75% und 90%.<br />

Klavier / Trommel Zeit [min] LSV [Generation] Fehler [%]<br />

EXP452-E1: 1P/2PT-Kreuz. 60% 20 / 20 232 / 208 13,2 / 9,3<br />

EXP452-E2: 1P/2PT-Kreuz. 75% (STD) 20 / 21 232 / 208 13,2 / 9,3<br />

EXP452-E3: 1P/2PT-Kreuz. 90% 19 / 21 47 / 244 12,8 / 9,0<br />

EXP452-E4: 2P-Kreuzung 60% 20 / 19 214 / 6 11,1 / 10,8<br />

EXP452-E5: 2P-Kreuzung 75% 19 / 20 185 / 6 14,3 / 10,0<br />

EXP452-E6: 2P-Kreuzung 90% 20 / 20 34 / 24 14,9 / 10,1<br />

EXP452-E7: gleichm. Kreuzung 60% 20 / 21 14 / 122 21,6 / 7,7<br />

EXP452-E8: gleichm. Kreuzung 75% 21 / 20 112 / 1 13,9 / 8,3<br />

EXP452-E9: gleichm. Kreuzung 90% 21 / 20 163 / 7 23,1 / 9,7<br />

Im Durchschnitt kann die Kombination aus Ein-Punkt-Kreuzung und Zwei-Punkt-<br />

Kreuzung <strong>mit</strong> Translokation die besten Ergebnisse erzielen, besonders bei der Wahl<br />

einer hohen Kreuzungswahrscheinlichkeit (90%). Sehr widersprü chlich sind die<br />

Ergebnisse der gleichmäßigen Kreuzung, wo die Fehlerraten beim Klavier eher<br />

schlecht ausfallen und bei der Trommel eher gut.<br />

86


Experiment 452-F. Variation der Mutationsoperatoren. Es wurden die folgenden<br />

Möglichkeiten untersucht: Gleichmäßige und dynamisch gleichmäßige Mutation.<br />

Alle <strong>mit</strong> einer Mutationswahrscheinlichkeit von jeweils 1%, 2% und 3%.<br />

Klavier / Trommel Zeit [min] LSV [Generation] Fehler [%]<br />

EXP452-F1: gleichm. Mut. 1% 20 / 20 127 / 12 23,5 / 13,7<br />

EXP452-F2: gleichm. Mut. 2% (STD) 20 / 21 232 / 208 13,2 / 9,3<br />

EXP452-F3: gleichm. Mut. 3% 20 / 20 211 / 114 14,0 / 8,7<br />

EXP452-F4: dyn. gleichm. Mut. 1% 21 / 21 232 / 164 25,4 / 15,9<br />

EXP452-F5: dyn. gleichm. Mut. 2% 20 / 20 146 / 233 12,2 / 8,5<br />

EXP452-F6: dyn. gleichm. Mut. 3% 20 / 20 179 / 19 14,1 / 9,9<br />

Die besten Ergebnisse konnten <strong>mit</strong> der dynamisch gleichmäßigen Mutation und einer<br />

Mutationswahrscheinlichkeit von 2% erzielt werden. Eine Mutationsrate von 1%<br />

behindert den kü nstlichen Evolutionsprozeß sehr stark (doppelte Fehlerrate).<br />

4.5.3 Parameter der Klanganalyse<br />

Experiment 453-A. Variation der Fenstergröße. Es wurden die folgenden Werte<br />

untersucht: 64, 128, 256, 512, 1024 und 2048 Samples pro Fenster.<br />

Klavier / Trommel Zeit [min] LSV [Generation] Fehler [%]<br />

EXP453-A1: 64 Samples 20 / 21 249 / 133 17,8 / 10,2<br />

EXP453-A2: 128 Samples 20 / 20 203 / 14 13,8 / 14,2<br />

EXP453-A3: 256 Samples (STD) 20 / 21 232 / 208 13,2 / 9,3<br />

EXP453-A4: 512 Samples 20 / 20 233 / 13 10,3 / 9,1<br />

EXP453-A5: 1024 Samples 20 / 21 215 / 221 9,5 / 12,0<br />

EXP453-A6: 2048 Samples 20 / 21 10 / 5 9,5 / 11,0<br />

Wie erwartet, sind die Resultate <strong>mit</strong> sehr kleinen Analysefenstern (64, 128) schlecht<br />

ausgefallen (die entwickelten Klänge klingen in Bezug auf das Original entfremdet),<br />

die <strong>mit</strong> sehr groß en nur in befriedigendem Maß e. Am besten wurden die beiden<br />

Testklänge <strong>mit</strong> der Standardkonfiguration nachgebildet. Ich weise auch darauf hin,<br />

daß ein Analysefenster <strong>mit</strong> einer Größ e von 256 Samples in etwa der Genauigkeit<br />

von einem Achtel einer Oktave entspricht.<br />

87


Experiment 453-B. Variation der Abdeckungsrate. Es wurden die folgenden Werte<br />

getestet: 25%, 50%, 75% und 100% Abdeckung des Klanges <strong>mit</strong> Analysefenstern.<br />

Klavier / Trommel Zeit [min] LSV [Generation] Fehler [%]<br />

EXP453-B1: 25% 7 / 7 171 / 156 16,2 / 10,0<br />

EXP453-B2: 50% 14 / 14 250 / 220 23,5 / 8,5<br />

EXP453-B3: 75% (STD) 20 / 21 232 / 208 13,2 / 9,3<br />

EXP453-B4: 100% 26 / 27 6 / 17 13,2 / 9,3<br />

Es ist ersichtlich, daß ein gewisses Mindestmaß an Analysefenstern nötig ist, da<strong>mit</strong><br />

ein Klang einigermaß en gut nachgebildet werden kann. Der Standardwert von 75%<br />

hat sich als gut herausgestellt und eine höhere Abdeckung bewirkt anscheinend keine<br />

weiteren Verbesserungen.<br />

Experiment 453-C. Variation der Fensterverteilung. Die folgenden Testfälle wurden<br />

untersucht: lineare und logarithmische Verteilung der Analysefenster.<br />

Klavier / Trommel Zeit [min] LSV [Generation] Fehler [%]<br />

EXP453-C1: linear (STD) 20 / 21 232 / 208 13,2 / 9,3<br />

EXP453-C2: logarithmisch 17 / 18 7 / 21 34,9 / 19,7<br />

Wie in der Tabelle zu sehen ist, wurden <strong>mit</strong> <strong>Hilfe</strong> der logarithmischen Verteilung<br />

keine besseren Ergebnisse erzielt, obwohl beide Klänge eine genaue Nachbildung<br />

ihrer Einschwingungsphase erfordern. Leider ist sogar eine Verschlechterung der<br />

Fehlerrate auf mehr als das Doppelte eingetreten.<br />

Experiment 453-D. Variation der Fensterfunktion. Die folgenden Versuche wurden<br />

durchgefü hrt: Dreieck-, Hamming-, Hanning-, Blackman-, Bartlett- und Rechteck-<br />

Funktion.<br />

Klavier / Trommel Zeit [min] LSV [Generation] Fehler [%]<br />

EXP453-D1: Dreieck (STD) 20 / 21 232 / 208 13,2 / 9,3<br />

EXP453-D2: Hamming 21 / 21 190 / 191 23,6 / 9,5<br />

EXP453-D3: Hanning 19 / 20 6 / 206 13,4 / 9,3<br />

EXP453-D4: Blackman 21 / 21 234 / 17 13,7 / 9,4<br />

EXP453-D5: Bartlett 20 / 21 232 / 208 13,2 / 9,3<br />

EXP453-D6: Rechteck 20 / 21 221 / 219 19,2 / 9,9<br />

88


Die Ergebnisse der verschiedenen Fenster-Funktionen weichen nur in einem sehr<br />

geringen Maß voneinander ab, wobei die hohe Fehlerrate bei der Hamming-Funktion<br />

sicherlich als Ausnahme gewertet werden kann, da sie der Blackman- und Hanning-<br />

Funktion sehr ähnelt. Die Rechteck-Funktion, die keine Ä nderungen an den Werten<br />

vornimmt, hat, im Gegensatz zu den anderen Fensterfunktionen, erwartungsgemäß<br />

schlecht abgeschnitten.<br />

4.5.4 Parameter der <strong>Klangsynthese</strong><br />

Experiment 454-A. Variation der Anzahl der Operatoren. Es wurden die folgenden<br />

Möglichkeiten untersucht: Verwendung von 2, 4, 6, 8, 10, 15 und 20 Operatoren fü r<br />

den Algorithmus der FM-Synthese.<br />

Klavier / Trommel Zeit [min] LSV [Generation] Fehler [%]<br />

EXP454-A1: 2 Operatoren 8 / 8 0 / 0 11,1 / 11,4<br />

EXP454-A2: 4 Operatoren 14 / 15 11 / 11 14,8 / 10,3<br />

EXP454-A3: 6 Operatoren (STD) 20 / 21 232 / 208 13,2 / 9,3<br />

EXP454-A4: 8 Operatoren 26 / 27 241 / 199 13,0 / 10,2<br />

EXP454-A5: 10 Operatoren 33 / 33 199 / 225 12,2 / 10,9<br />

EXP454-A6: 15 Operatoren 47 / 48 248 / 234 17,2 / 17,5<br />

EXP454-A7: 20 Operatoren 64 / 65 242 / 239 19,6 / 32,3<br />

Das Experiment hat gezeigt, daß schon 2 bis 6 Operatoren genü gen, um eine gute<br />

Nachbildung der Originalklänge zu erreichen. Eine Verwendung von sehr vielen<br />

Operatoren scheint nicht angebracht zu sein, da die Fehlerrate <strong>mit</strong> steigender Zahl<br />

der Operatoren (ab etwa 10 Operatoren) immer schlechter wird.<br />

4.5.5 Optimierte Standardkonfiguration<br />

Basierend auf den bisher durchgefü hrten Experimenten, habe ich eine optimierte<br />

Standardkonfiguration <strong>mit</strong> den folgenden Ä nderungen erstellt:<br />

• (GA) Generationsanzahl: 400 Generationen<br />

• (GA) Selektionsverfahren: nicht lineare Rangselektion<br />

89


• (GA) Ersetzung: Dynamischer Elitismus <strong>mit</strong> max. Anteil der Elite von 10%<br />

• (GA) Kreuzungsoperator: Ein-Punkt-Kreuzung (33%) und Zwei-Punkt-<br />

Kreuzung <strong>mit</strong> Translokation (67%) bei einer Kreuzungsrate von 90%<br />

• (GA) Mutationsoperator: Dynamisch gleichmäßige Mutation bei einer<br />

Mutationsrate von 2%<br />

• (GA) Initialisierung des Zufallsgenerators <strong>mit</strong> einem neuen festen Wert<br />

Alle anderen Parameter des Genetischen Algorithmus, der <strong>Klangsynthese</strong> und der<br />

Klanganalyse werden nicht verändert. Auf der Grundlage der nun vorliegenden<br />

optimierten Standardkonfiguration habe ich einen weiteren Test durchgefü hrt. In der<br />

folgenden Tabelle sind die Testergebnisse der beiden Konfigurationen (Standard und<br />

optimiert) fü r mehrere Klangbeispiele aufgefü hrt:<br />

Klang (Standard / optimiert) Zeit [min] LSV [Generation] Fehler [%]<br />

Banjo – Banjo.wav 21 / 29 119 / 6 25,9 / 13,6<br />

Kirchenorgel – ChurchOrgan.wav 19 / 31 4 / 226 38,8 / 34,8<br />

Harfe – Harp.wav 20 / 31 8 / 365 18,6 / 11,6<br />

Orgel – Organ.wav 19 / 29 2 / 3 34,7 / 27,0<br />

Klavier – Piano.wav (STD) 20 / 33 232 / 350 13,2 / 9,9<br />

Flächenklang – SlowString.wav 21 / 30 212 / 19 35,5 / 29,6<br />

Gitarre – SteelGuitar.wav 20 / 32 22 / 295 18,6 / 12,3<br />

Synthy 1 – SweepPad.wav 21 / 32 206 / 198 28,6 / 24,0<br />

Trommel – TaikoDrum.wav (STD) 21 / 33 208 / 129 9,3 / 8,1<br />

Trompete – Trumpet.wav 21 / 33 224 / 378 41,9 / 33,7<br />

Glocke – TubularBells.wav 20 / 33 31 / 17 15,0 / 11,4<br />

Synthy 2 – WarmPad.wav 20 / 33 249 / 286 32,3 / 24,4<br />

Durch die Optimierung der Standardkonfiguration konnte die durchschnittliche<br />

Fehlerrate von 26% (Standard) auf 20% gesenkt werden. Im Gegenzug ist die<br />

Rechenzeit im Schnitt auf etwa 32 Minuten angestiegen. Die Ursache dafü r liegt in<br />

der höher gewählten Anzahl von 400 statt 250 Generationen, die bis zur<br />

Terminierung des kü nstlichen Evolutionsprozesses durchlaufen werden. Auffällig ist,<br />

daß einige Klangbeispiele (z.B. Orgel und Trompete) ü berdurchschnittlich schlecht<br />

abschneiden.<br />

90


4.5.6 Experiment 455 (Banjo)<br />

Nachdem ich nun alle angedachten Experimente durchgefü hrt habe, möchte ich<br />

abschließ end noch die Entwicklung eines FM-Synthesizers fü r zwei Beispielklänge<br />

ausfü hrlich darlegen. Als erstes Beispiel dient der Klang eines Banjos (Banjo.wav),<br />

das zur Familie der Gitarren gehört. Für die Einstellung der Parameter wird die<br />

optimierte Standardkonfiguration (siehe 4.5.5 und 4.5.1) verwendet.<br />

Abbildung 39: Zeitdomä ne (oben) und Frequenzdomä ne (unten) des Originalklangs (Banjo)<br />

Wie in Abb. 39 zu sehen ist, besitzt der Klang eine Grundfrequenz (höchste Spitze<br />

im Frequenzspektrum) von knapp 800 Hz (genau: 786 Hz). Nachdem die kü nstliche<br />

Evolution abgeschlossen war, konnte ich folgende Beobachtungen machen: In den<br />

ersten 6 Generationen wurde die Struktur für den Algorithmus der FM-Synthese<br />

entwickelt. Die Fehlerrate sank dabei sehr schnell auf 57,1%. Danach folgten einige<br />

Generationen, in denen keine Verbesserungen erzielt wurden, d.h. es konnte<br />

wahrscheinlich kein besserer Algorithmus gefunden werden. Ab der 10. Generation<br />

wurden nur noch die Parameter der Oszillatoren und Hüllkurven optimiert. In der<br />

111. Generation ist die Fehlerrate bereits auf 17,7% gesunken und die Grundfrequenz<br />

des Klanges (783 Hz) sowie die Frequenzen einiger naheliegender Obertöne wurden<br />

sehr gut nachgebildet. Während der letzten 289 Generationen wurden fast nur noch<br />

Ä nderungen an den Parametern der Hü llkurve vorgenommen.<br />

91


Abbildung 40: Entwicklung der Fitneß(Banjo)<br />

Die entwickelte Struktur besteht nur aus Trägern und enthält keine Modulatoren. Je<br />

ein Träger ist für die Erzeugung genau eines Teiltons zuständig (alle Oszillatoren<br />

nutzen Sinusschwingungen). Ein derartiger Algorithmus entspricht eigentlich eher<br />

dem Verfahren der Additiven Synthese, findet aber oft auch bei der FM-Synthese<br />

Anwendung.<br />

T1<br />

T2 T3 T4 T5<br />

T6<br />

Abbildung 41: Entwickelte Struktur (Banjo)<br />

Abbildung 42: Zeitdomä ne (oben) und Frequenzdomä ne (unten) des Syntheseklangs (Banjo)<br />

92


4.5.7 Experiment 451 (Trommel)<br />

Als zweites Beispiel dient der Klang einer Trommel (TaikoDrum.wav). Für die<br />

Einstellung der benötigten Parameter wurde die Standardkonfiguration aus 4.5.1<br />

angewandt.<br />

Abbildung 43: Zeitdomä ne (oben) und Frequenzdomä ne (unten) des Originalklangs (Trommel)<br />

Wie in Abb. 43 zu sehen ist, besitzt der Klang eine Grundfrequenz von knapp 80 Hz<br />

(genau: 76 Hz). Nach der Terminierung des kü nstlichen Evolutionsprozesses konnte<br />

ich folgende Beobachtungen machen: In den ersten 50 Generationen wurde intensiv<br />

nach einer passenden Struktur gesucht und gleichzeitig eine Optimierung der<br />

Parameter vorgenommen. Die Fehlerrate sank dementsprechend schnell auf 18,2%<br />

herab. Danach konnte ü ber 80 Generationen lang keine besser geeignete Struktur<br />

gefunden werden. Erst in Generation 144 wurde ein passender Algorithmus er<strong>mit</strong>telt,<br />

<strong>mit</strong> einer Fehlerrate von 10,0%. Es gab zwar auch später noch vereinzelt Ä nderungen<br />

in der Struktur (Generationen 149, 168, 206, 208), aber diese hatten kaum Einfluß<br />

auf das Ergebnis. Die Ursache liegt im entsprechenden Trägerstrang, dessen<br />

Modulatoren es sind, die sich in ihrer Struktur ab und zu ändern, der Träger aber nur<br />

auf einen sehr kleinen Teil des Klanges (max. 1%) einwirkt. In den Generationen 150<br />

bis 250 fanden nur noch Anpassungen der Hü llkurven und Oszillatoren statt, die aber<br />

nur einen minimalen Effekt erzielten. Die erreichte Fehlerrate betrug am Ende 9,3%.<br />

93


Abbildung 44: Entwicklung der Fitneß(Trommel)<br />

Die entwickelte Struktur besteht aus 2 Trägern und 4 Modulatoren. Der erste Träger<br />

wird von den Modulatoren direkt und indirekt moduliert. Er wirkt nur auf die ersten<br />

20 Millisekunden des Klanges ein. Der zweite Träger dient dazu, den Grundton<br />

(gefunden in Generation 80) <strong>mit</strong> einer Frequenz von 76 Hz zu erzeugen.<br />

M3<br />

M2<br />

M4<br />

M1<br />

T1<br />

T2<br />

Abbildung 45: Entwickelte Struktur (Trommel)<br />

Abbildung 46: Zeitdomä ne (oben) und Frequenzdomä ne (unten) des Syntheseklangs (Trommel)<br />

94


5 Ergebnisse<br />

Mein Verfahren ist in der Lage eine annähernde Nachbildung von Klängen zu<br />

realisieren, indem es eine passende Struktur für den Algorithmus eines FM-<br />

Synthesizers entwickelt und die beteiligten Parameter optimiert. Dadurch konnte in<br />

fast allen Fällen die Tonhöhe (Grundfrequenz) erstaunlich genau nachgebildet<br />

werden. Die Dynamik der Lautstärke eines Syntheseklanges paß t sich i.d.R. an die<br />

des Originals an. Bei harmonischen Klängen wurden einige dem Grundton<br />

naheliegende Obertöne erzeugt.<br />

Es ist mir zudem gelungen, dem Nutzer die Auswahl eines Algorithmus und der<br />

Parameter der FM-Synthese abzunehmen, <strong>mit</strong> der ein bestimmter Klang nachgebildet<br />

werden soll. Es hat sich allerdings gezeigt, daß weiterhin solide Kenntnisse im<br />

Gebiet der Klangerzeugung von groß em Vorteil sind. Dies spiegelt sich in folgendem<br />

Sachverhalt wider: Für die Nachbildung eines einfachen Tons (Sinus) ist nur ein<br />

Operator <strong>mit</strong> einem Sinusoszillator notwendig. Verwendet man 2 oder mehr<br />

Operatoren, erlegt man dem Genetischen Algorithmus nur unnötig Arbeit auf, was<br />

dann auch an den schlechteren Ergebnissen zu erkennen ist. Ein komplexer Klang<br />

dagegen kann sicherlich nicht <strong>mit</strong> nur einem Operator reproduziert werden.<br />

Der Genetische Algorithmus brachte eine Vielzahl von Strukturen hervor (fü r ein<br />

und denselben Klang sogar verschiedene). Es ist mir aufgefallen, daß viele der<br />

entwickelten <strong>Algorithmen</strong> das Prinzip der Additiven Synthese nachahmen. Das kann<br />

natü rlich auch an der Art der getesteten Klänge liegen (vorwiegend klassische<br />

Instrumente). Bei den Strukturen, die mehrere Modulatoren besaß en, konzentrierten<br />

sich i.d.R. ein oder zwei Träger auf die zu erzeugende Grundfrequenz, der andere<br />

Teil (oft ein Träger <strong>mit</strong> einer Struktur aus Modulatoren) versuchte die komplexe<br />

Einschwingungsphase (oft die ersten 100 Millisekunden eines Klangs) nachzubilden.<br />

Die Struktur des Algorithmus entwickelte sich erwartungsgemäß innerhalb der ersten<br />

100 Generationen, d.h. der Genetische Algorithmus schlug eine grobe Suchrichtung<br />

ein. Danach wurde durch Optimierung der Parameter der Klang in seiner Tonhöhe,<br />

95


Klangfarbe und Dynamik geformt. Am Ende des Prozesses fanden nur noch<br />

Feineinstellungen statt, die den Fehler weiter senkten. Eine Ä nderung der Struktur<br />

gegen Ende der künstlichen Evolution ist möglich, betrifft aber nur Teile der<br />

Struktur, die keinen oder nur kaum Einfluß auf den Klang ausü ben.<br />

Aufgrund groß er Unterschiede in der Komplexität von Tönen, Klängen und<br />

Geräuschen ist es oft schwierig vorherzusagen, wie gut mein Verfahren einen Klang<br />

nachbilden wird bzw. ob es ü berhaupt eine Lösung findet. Ich konnte allerdings<br />

feststellen, daß einfache Töne (Sinus, Dreieck) <strong>mit</strong> einem Operator sehr gut<br />

(Fehlerrate von 0,5% bis 5%) resynthetisiert werden können und klassische<br />

Instrumente gut bis befriedigend (Fehlerraten von etwa 7% bis 40%).<br />

Im Groß en und Ganzen sind die Ergebnisse ermutigend. Eine Fortfü hrung der<br />

Forschungen in diesem Gebiet ist weiterhin notwendig. Ein interessanter Aspekt ist<br />

beispielsweise, daß mein Verfahren oft Strukturen entwickelt hat, die eher als<br />

Additive Synthese zu bezeichnen sind. Eine Optimierung der Parameter eines<br />

Synthesizers <strong>mit</strong> Additiver Synthese liegt also nahe und sollte möglich sein, da man<br />

<strong>mit</strong> diesem Verfahren theoretisch jeden Klang erzeugen kann.<br />

Ein lohnenswertes Ziel liegt sicherlich in der Nutzung dieses Verfahrens zur<br />

Komprimierung eines einzelnen Klanges. Mit Komprimierung meine ich nicht die<br />

reine Reduzierung des Informationsgehaltes, die durch geschickte Speicherung der<br />

Amplitudenwerte (z.B. DPCM) oder Beseitigung von Redundanzen (z.B. MPEG)<br />

erreicht wird. Vielmehr denke ich an die Speicherung der Informationen, die fü r die<br />

Erzeugung der Klangdaten notwendig sind, d.h. Algorithmus und Parameter der FM-<br />

Synthese. Die Größ e einer Datei in dieser Form würde, je nach Anzahl der<br />

verwendeten Operatoren, weniger als 1 oder 2 Kilobyte betragen. Ein 2 Sekunden<br />

langer, bei 8000 Hz Abtastrate und 16 Bit pro Sample kodierter Klang wü rde eine<br />

circa 32 Kilobyte groß e Datei erzeugen. Ein ähnlicher Ansatz ist natü rlich auch <strong>mit</strong><br />

anderen Syntheseverfahren denkbar. Die Komprimierung ganzer Lieder auf diese<br />

Weise halte ich zur Zeit für kaum möglich, da diese Aufgabe zum einen extrem<br />

komplex ist (mehrere <strong>mit</strong>einander vermischte Klänge) und zum anderen eine sehr<br />

hohe Rechenzeit fü r die Entwicklung eines Modells notwendig wäre (schon fü r ein 2<br />

96


Sekunden langes Klangbeispiel werden 30 min Rechenzeit benötigt). Ich möchte<br />

auch darauf hinweisen, daß diese Idee nicht völlig neu ist, denn ein ähnliches Ziel<br />

wird auch bei der Umwandlung von Pixel- in Vektorgrafiken verfolgt.<br />

Eine weitere Möglichkeit sehe ich in der Verbindung dieses Verfahrens <strong>mit</strong> einer<br />

vorhandenen Lösung (Software) eines FM-Synthesizers. Ein Nutzer benötigt nur eine<br />

geeignete Voreinstellung des FM-Synthesizers (auch bekannt als Preset), um einen<br />

bestimmten Klang zu erzeugen. Das ist natü rlich schwierig, wenn diese<br />

Voreinstellung noch nicht existiert. Es ist nun folgendes denkbar: Der Nutzer gibt<br />

diesem Verfahren einen zu bestimmenden Klang vor. Daraufhin wird automatisch<br />

eine Struktur <strong>mit</strong> geeigneten Parametern entwickelt, <strong>mit</strong> deren <strong>Hilfe</strong> der gegebene<br />

Klang annähernd nachgebildet wird. Auf der Basis der er<strong>mit</strong>telten Ergebnisse kann<br />

anschließ end der reale FM-Synthesizer konfiguriert werden. Danach wird der Nutzer<br />

wieder aktiv, indem er noch einige Feineinstellungen an den Parametern des<br />

Synthesizers vornimmt, bis er <strong>mit</strong> dem Ergebnis zufrieden ist.<br />

97


6 Zusammenfassung<br />

Die Idee dieser Arbeit liegt in der automatischen Nachbildung eines Klanges <strong>mit</strong><br />

<strong>Hilfe</strong> eines <strong>Klangsynthese</strong>verfahrens und evolutionären <strong>Algorithmen</strong>. In der<br />

Anfangsphase der Arbeit wurde aus den bekannten Syntheseverfahren die FM-<br />

Synthese ausgewählt. Der Grund fü r meine Entscheidung liegt im bekannten Erfolg<br />

des Verfahrens. Schon <strong>mit</strong> wenigen grundlegenden Komponenten wie Oszillator<br />

oder Hüllkurve können komplexe Schwingungen erzeugt werden. Die Suche nach<br />

einem FM-Synthesizer, der einen vorgegebenen Klang nachbilden kann, wird von<br />

einem Genetischen Algorithmus ü bernommen. Dieser er<strong>mit</strong>telt eine passende<br />

Struktur und optimale Parameter für die Hüllkurven und Oszillatoren des FM-<br />

Synthesizers.<br />

Da<strong>mit</strong> eine Realisierung des Ansatzes möglich war, wurden Klassenbibliotheken fü r<br />

Genetische <strong>Algorithmen</strong> und FM-Synthesizer implementiert. Auf der Basis der<br />

Klassenbibliotheken konnte letztlich die Applikation Revival entwickelt werden, die<br />

eine grafische Nutzerschnittstelle besitzt und den Genetischen Algorithmus für die<br />

Suche nach einem FM-Synthesizer realisiert. Nach der Vorgabe eines Klanges und<br />

einigen Einstellungen für den Genetischen Algorithmus, die Klanganalyse und die<br />

<strong>Klangsynthese</strong> beginnt Revival <strong>mit</strong> der Entwicklung eines FM-Synthesizers.<br />

Das entwickelte Verfahren ist in der Lage eine passende Struktur und optimale<br />

Parameter für den Prozeß der FM-Synthese zu finden und da<strong>mit</strong> einen gegebenen<br />

Klang annähernd nachzubilden. Die Gü te eines resynthetisierten Klanges hängt dabei<br />

stark von der Komplexität des Originals ab, d.h. selbst ein einfacher Sinuston kann<br />

zwar sehr gut nachgebildet werden, aber eben nur sehr gut und nicht exakt.<br />

99


100


Thesen<br />

Die automatisierte Entwicklung einer Struktur und optimaler Parameter für den<br />

Prozeß der FM-Synthese auf der Basis eines vorgegebenen Klanges und den<br />

Genetischen <strong>Algorithmen</strong> ist möglich.<br />

Die Annäherung an die Tonhöhe, Klangfarbe und Dynamik eines gegebenen Klanges<br />

<strong>mit</strong> einem optimierten FM-Synthesizer ist möglich.<br />

Der Vorteil fü r einen Nutzer liegt darin, daß er nicht mehr selbst die Oszillatoren und<br />

Hü llkurven einstellen muß oder einen passenden Algorithmus auszuwählen hat.<br />

Die Nachbildung von natü rlichen und klassisch instrumentalen Klängen, die bis jetzt<br />

von der FM-Synthese nicht erzeugt werden konnten, wird möglich.<br />

Die Nachbildung eines Klanges auf diese Weise, kann einen Einblick in den<br />

strukturellen Aufbau und die verwendeten Parameter der FM-Synthese für eine<br />

bestimmte Art von Klängen geben.<br />

Mit meinem Verfahren ist die Komprimierung eines Klanges denkbar.<br />

Es gibt viele Lösungsmöglichkeiten (FM-Synthesizer), <strong>mit</strong> denen ein gegebener<br />

Klang annähernd nachgebildet werden kann.<br />

Die perfekte Nachbildung eines Klanges ist extrem schwierig, da die meisten Klänge<br />

sehr komplex sind.<br />

Solide Kenntnisse und Erfahrungen im Gebiet der Klangerzeugung sind weiterhin<br />

von groß em Vorteil.<br />

101


102


Literaturverzeichnis<br />

[ABD-99]<br />

T. Y. Abdullah: Synthesizers, Music & Television. – F.M. Synthesis.<br />

1999<br />

(http://tyala.freeyellow.com/2fmsynth.htm)<br />

[ANW-00]<br />

F. Anwander: Synthesizer. So funktioniert elektronische Klangerzeugung.<br />

Bergkirchen: PPV Presse Project Verlags GmbH, 2000<br />

[BEN-99]<br />

P. J. Bentley: Evolutionary Design by Computers. San Francisco:<br />

Morgan Kaufmann Publishers Inc, 1999<br />

[BOL-98]<br />

D. Boles: Multimedia-Systeme (Kapitel 10). Technische Universität<br />

Oldenburg, 1998<br />

(http://www-is.informatik.uni-oldenburg.de/~dibo/teaching/mm98/<br />

script98/main.html)<br />

[BOU-93]<br />

P. Bourke: DFT (Discrete Fourier Transform), FFT (Fast Fourier<br />

Transform). 1993<br />

(http://astronomy.swin.edu.au/~pbourke/analysis/dft/index.html)<br />

[FIE-01]<br />

M. Fiedler: Die FM-Synthese, Ein Ü berblick. Universität Oldenburg,<br />

2001<br />

(http://home.arcor.de/mfiedler/fm/fm.html)<br />

[FIS-98]<br />

T. P. Fischer: Das Synthesizer-Lexikon im Internet. Technische<br />

Universität Berlin, 1998<br />

(http://home.snafu.de/sicpaul/tpf_syn0.htm)<br />

[FRI-99] H. Fritz: Wissenswertes zur Schallanalyse. Universität Wien. 1999<br />

(http://www.unet.univie.ac.at/~a7425519/Skripten/Schallanalyse.html)<br />

[GAR-01]<br />

R. A. Garcia: Automatic Generation of Sound Synthesis Techniques.<br />

Massachusetts: Massachusetts Institute of Technologies, 2001<br />

[GOU-97] C. Gould: Soundwave – Beginner's Synthesizer FAQ. 1997<br />

(http://tilt.largo.fl.us/faq/synthfaq.html)<br />

103


[GRO-02]<br />

R. Groß mann, R. Koch, C. Kühnel: Verfahren digitaler Audioverarbeitung.<br />

Universität Lü neburg, 2002<br />

(http://audio.uni-lueneburg.de/texte/digaudio/index.html)<br />

[HOE-02]<br />

U. G. Hoenig: Workshop Synthesizer. Klangerzeugung für Musiker.<br />

Bergkirchen: PPV Presse Project Verlags GmbH, 2002<br />

[HOR-93]<br />

A. Horner, J. Beauchamp, L. Haken: FM Matching Synthesis with<br />

Genetic Algorithms. Illinois: CERL Sound Group, Computer Music<br />

Project and Center for Complex Systems Research, University of<br />

Illinois, 1993<br />

[IWE-02]<br />

H. Iwe: Genetische <strong>Algorithmen</strong>. Dresden: Hochschule für Technik<br />

und Wirtschaft Dresden, 2002<br />

[JOH-99]<br />

C. G. Johnson: Exploring the sound-space of synthesis algorithms<br />

using interactive genetic algorithms. Exeter: Department of Computer<br />

Science, University of Exeter, 1999<br />

[JUN-98]<br />

G. Junker: MIDI-Synthese in der kognitiven Musikologie: eine<br />

exemplarische Studie des psychoakustischen Phänomens der<br />

subjektiven Tondauer. Universität Wien, 1998<br />

(http://kunstbank.waidhofen.at/<strong>mit</strong>glied/junker/publikationen.html)<br />

[KOK-00] L. Kok, B. Mest: Musiksynthese. Universität Hamburg, 2000<br />

(http://tech-www.informatik.uni-hamburg.de/lehre/medien-audio/<br />

vortraege/synthese/index.htm)<br />

[MIC-96]<br />

Z. Michalewicz: Genetic Algorithms + Data Structures = Evolution<br />

Programs. 3. Aufl., New York: Springer Verlag, 1996<br />

[RAB-01]<br />

R. Rabenstein: <strong>Digitale</strong> Klänge. Laboratorium fü r Nachrichtentechnik,<br />

Universität Erlangen-Nü rnberg, 2001<br />

[RIT-00] M. Ritsche: Musik am Computer. Waldorfschule Ü berlingen, 2000<br />

(http://www.waldorf-am-see.de/projekte/musik/musik.htm)<br />

[RIT-02]<br />

W. Ritsch: Einfü hrung in die Elektronische Musik. Graz: Universität<br />

fü r Musik und Darstellende Kunst Graz, 2002<br />

104


[SCH-98]<br />

R. Sch<strong>mit</strong>z: Analoge <strong>Klangsynthese</strong>. Das Einsteigerbuch zu<br />

Synthesizern und Soundprogrammierung. Köln: Wizoo midi, music &<br />

audio technology GmbH, 1998<br />

[WEH-98]<br />

K. Wehn: Using Ideas from Natural Selection to Evolve Synthesized<br />

Sounds. Oslo: Department of Informatics, University of Oslo, 1998<br />

[WEI-02] E. W. Weisstein: Eric Weisstein's World of Mathematics. 2002<br />

(http://mathworld.wolfram.com/)<br />

105


106


Abbildungsverzeichnis<br />

Abbildung 1: Zustandsräume <strong>Genetischer</strong> <strong>Algorithmen</strong> ...................................... 17<br />

Abbildung 2: Struktur <strong>Genetischer</strong> <strong>Algorithmen</strong> ................................................. 19<br />

Abbildung 3: Modellierung und Interpretation des Chromosoms......................... 22<br />

Abbildung 4: Bildung von Nachkommen ............................................................ 26<br />

Abbildung 5: Vergleich verschiedener Selektionsmethoden ................................ 27<br />

Abbildung 6: Beispiel fü r Russisches Roulette .................................................... 28<br />

Abbildung 7: Kreuzungspunkte........................................................................... 29<br />

Abbildung 8: Beispiel Ein-Punkt-Kreuzung ........................................................ 29<br />

Abbildung 9: Beispiel Zwei-Punkt-Kreuzung...................................................... 30<br />

Abbildung 10: Beispiel Zwei-Punkt-Kreuzung <strong>mit</strong> Translokation ......................... 30<br />

Abbildung 11: Beispiel gleichmäßige Kreuzung.................................................... 31<br />

Abbildung 12: Beispiel gleichmäßige Mutation..................................................... 32<br />

Abbildung 13: Prinzip der Subtraktiven Synthese ................................................. 40<br />

Abbildung 14: Prinzip der Wavetable Synthese..................................................... 41<br />

Abbildung 15: Prinzip der Additiven Synthese...................................................... 42<br />

Abbildung 16: Prinzip der FM-Synthese ............................................................... 44<br />

Abbildung 17: <strong>Algorithmen</strong> eines FM-Synthesizers <strong>mit</strong> 5 Operatoren................... 45<br />

Abbildung 18: Grundwellenformen....................................................................... 52<br />

Abbildung 19: ADSR-Hü llkurve........................................................................... 53<br />

Abbildung 20: Tiefpaß - und Hochpaß filter............................................................ 54<br />

Abbildung 21: Ableitung der Klasse AbstractEvolution......................................... 57<br />

Abbildung 22: Ableitung der Klasse AbstractIndividual........................................ 58<br />

Abbildung 23: Klassenstruktur fü r den Genetischen Algorithmus ......................... 59<br />

Abbildung 24: Klassenstruktur fü r die Reproduktion............................................. 60<br />

Abbildung 25: Klassenstruktur fü r die Ersetzung .................................................. 61<br />

107


Abbildung 26: Erzeugung und Start des Genetischen Algorithmus ....................... 62<br />

Abbildung 27: Klassenstruktur fü r den FM-Synthesizer........................................ 63<br />

Abbildung 28: Zeit- und Frequenzdomäne............................................................ 65<br />

Abbildung 29: Fensterfunktionen Rechteck, Dreieck und Blackman..................... 66<br />

Abbildung 30: Aufbau eines FM-Synthesizer-Chromosoms.................................. 67<br />

Abbildung 31: Graphen- und Baumstrukturen....................................................... 68<br />

Abbildung 32: Verteilung der Synthesefenster...................................................... 72<br />

Abbildung 33: Applikation Revival....................................................................... 75<br />

Abbildung 34: Evolution eines FM-Synthesizers <strong>mit</strong> Revival................................ 76<br />

Abbildung 35: Ablauf der Evolutionsphase........................................................... 79<br />

Abbildung 36: Ansicht Sound evolvement............................................................. 80<br />

Abbildung 37: Ansicht Algorithm evolvement....................................................... 81<br />

Abbildung 38: Ansicht Fitness evolvement ........................................................... 81<br />

Abbildung 39: Zeit- und Frequenzdomäne des Originalklangs (Banjo) ................. 91<br />

Abbildung 40: Entwicklung der Fitneß (Banjo)..................................................... 92<br />

Abbildung 41: Entwickelte Struktur (Banjo)......................................................... 92<br />

Abbildung 42: Zeit- und Frequenzdomäne des Syntheseklangs (Banjo) ................ 92<br />

Abbildung 43: Zeit- und Frequenzdomäne des Originalklangs (Trommel) ............ 93<br />

Abbildung 44: Entwicklung der Fitneß (Trommel) ............................................... 94<br />

Abbildung 45: Entwickelte Struktur (Trommel).................................................... 94<br />

Abbildung 46: Zeit- und Frequenzdomäne des Syntheseklangs (Trommel) ........... 94<br />

108


Glossar<br />

Additive Synthese<br />

ADSR<br />

Algorithmus<br />

Attack<br />

Bewertungsfunktion<br />

Carrier<br />

Chromosom<br />

Decay<br />

Dreieckschwingung<br />

Elitismus<br />

<strong>Klangsynthese</strong>verfahren, bei dem ein Klang durch das<br />

Zusammensetzen von vielen Teiltönen <strong>mit</strong> unterschiedlicher<br />

Tonhöhe und zeitlichem Verlauf (Hü llkurve) erzeugt wird.<br />

Abk. für Attack, Decay, Sustain, Release. Parameter der<br />

Hü llkurve, welche die Zeitabschnitte der Einschwingungsphase<br />

(Attack und Decay), der stationären Phase (Sustain)<br />

und der Ausschwingungsphase (Release) eines Klanges<br />

beschreiben.<br />

Auch FM-Algorithmus; in der FM-Synthese beschreibt der<br />

A. welche der Operatoren wie <strong>mit</strong>einander verbunden sind.<br />

Zeitabschnitt der Hüllkurve, der die Einschwingungsphase<br />

eines Klanges beschreibt.<br />

Siehe Zielfunktion.<br />

Engl. fü r Träger.<br />

Ein C. besteht aus n Zeichen eines bestimmten Alphabets<br />

(Zahlen oder Zeichen). Die Zusammenfassung mehrerer<br />

Zeichen ergibt die Gene, welche die Parameter eines<br />

Optimierungsproblems darstellen und da<strong>mit</strong> den Genotyp<br />

eines Individuums repräsentieren.<br />

Zeitabschnitt der Hüllkurve, der den Abfall von der<br />

maximalen Lautstärke der Einschwingungsphase zur<br />

stationären Haltephase beschreibt.<br />

Auch Dreieckwelle; eine der typischen Grundwellenformen<br />

eines Oszillators. Mit der D. können nur ungerade Obertöne<br />

erzeugt werden, deren Intensität <strong>mit</strong> steigender Ordnung<br />

exponentiell abnimmt. Sie besitzt einen weichen und<br />

fließ enden Klangcharakter.<br />

Ein Ersetzungsverfahren, welches, neben den erzeugten<br />

Nachkommen, auch die besten Individuen der aktuellen<br />

Generation in die nächste Generation ü berträgt. Es wird<br />

dabei zwischen dem schwachen, starken und dynamischen<br />

Elitismus unterschieden.<br />

109


Envelope<br />

Ersetzung<br />

Feedback<br />

Fitneß<br />

FM<br />

FM-Synthese<br />

Frequenzmodulation<br />

Gen<br />

Genotyp<br />

Grundwellenform<br />

Hüllkurve<br />

Individuum<br />

Kreuzung<br />

Engl. fü r Hü llkurve.<br />

Auch Ersetzungsverfahren; Prinzip<br />

Engl. fü r Rü ckkopplung.<br />

Maß für die Güte eines Individuums, das <strong>mit</strong> <strong>Hilfe</strong> der<br />

Zielfunktion er<strong>mit</strong>telt wird.<br />

Siehe Frequenzmodulation.<br />

<strong>Klangsynthese</strong>verfahren, bei dem ein Klang durch die<br />

Verknü pfung (Algorithmus) weniger Operatoren (Oszillator<br />

<strong>mit</strong> einer Hü llkurve) in Form von Trägern und Modulatoren<br />

erzeugt wird. Die Modulatoren verändern die Tonhöhe der<br />

Träger, wodurch sehr komplexe Spektren entstehen können.<br />

Auch FM; zeitliche Veränderung der Frequenz eines<br />

Oszillators durch einen anderen Oszillator oder eine<br />

Hü llkurve.<br />

Repräsentation eines Parameters des Optimierungsproblems<br />

in einem Chromosom.<br />

Bezeichnung für die Gesamtheit aller Gene, die in einem<br />

Chromosom eines Individuums vorkommen.<br />

Verlauf der Periode einer Schwingungsform. Die typischen<br />

G. Dreieck, Rechteck, Sägezahn und Sinus beherrschen fast<br />

alle Oszillatoren.<br />

Komponente des Synthesizers, die einen zeitlichen Verlauf<br />

generiert, der für die Veränderung der Lautstärke oder<br />

Tonhöhe eingesetzt wird. Eine viel genutzte Variante ist die<br />

ADSR-Hü llkurve.<br />

Auch Phänotyp; Eine konkrete Lösung eines Optimierungsproblems,<br />

die parallel zu anderen Lösungen in einer<br />

Population existiert.<br />

Auch Rekombination, Crossover; <strong>Genetischer</strong> Operator, der<br />

die Zeichen der Chromosomen zweier Individuen (Eltern)<br />

vermischt, um zwei Nachkommen (Kinder) zu bilden.<br />

Lö sungsraum Auch phänotypischer Raum; Bezeichnung für die<br />

Gesamtheit aller Lösungen eines Optimierungsproblems.<br />

110


Modulator<br />

Mutation<br />

Oberton<br />

Operator<br />

Optimum<br />

Oszillator<br />

Phänotyp<br />

Phasenmodulation<br />

PM<br />

Population<br />

Rechteckschwingung<br />

Release<br />

Reproduktion<br />

Komponente des FM-Synthesizers, welche die Frequenz,<br />

Phase oder Amplitude eines Oszillators zeitlich ändert.<br />

<strong>Genetischer</strong> Operator, der eine zufällige Veränderung eines<br />

oder mehrerer Zeichen im Chromosom eines Individuums<br />

vornimmt.<br />

Ein Klang besteht aus Teiltönen, wobei der tiefste Teilton<br />

(Grundton) die wahrgenommene Tonhöhe bestimmt und die<br />

Obertöne die Klangfarbe. Die Obertöne stehen meistens in<br />

einem ganzzahligen Verhältnis zum Grundton.<br />

Auch FM-Operator; diese Bezeichnung wurde von Yamaha<br />

eingefü hrt und stellt eine Mischkomponente dar, in der ein<br />

Oszillator und eine Hü llkurve vereint sind. Der O. wird in<br />

einem Algorithmus als Träger oder Modulator verwendet.<br />

Bezeichnung für die beste bisher gefundene Lösung eines<br />

Optimierungsproblems.<br />

Komponente des Synthesizers, die einfache Schwingungen<br />

in einer bestimmten Tonhöhe (Frequenz) erzeugt. Die<br />

meisten O. beherrschen die gängigen Grundwellenformen<br />

Sägezahn, Rechteck, Dreieck und Sinus.<br />

Bezeichnung fü r die Gesamtheit aller konkret ausgebildeten<br />

Merkmale der Gene eines Individuums.<br />

Auch PM; zeitliche Ä nderung der Phase eines Oszillators<br />

durch einen anderen Oszillator oder eine Hü llkurve.<br />

Siehe Phasenmodulation.<br />

Zusammenfassung aller Individuen einer Generation.<br />

Auch Rechteckwelle; eine typische Grundwellenform eines<br />

Oszillators. Mit der R. können alle ungeraden Obertöne<br />

erzeugt werden, deren Intensität <strong>mit</strong> steigender Ordnung<br />

proportional abnimmt. Sie besitzt einen hohlen und<br />

elektronischen Klangcharakter.<br />

Zeitabschnitt der Hü llkurve, der die Ausschwingungsphase<br />

eines Klanges beschreibt.<br />

Sammelbegriff für die Bildung der Nachkommen der<br />

nächsten Generation. Die R. schließ t die Genetischen<br />

Operatoren Selektion, Kreuzung und Mutation ein.<br />

111


Rückkopplung<br />

Auch Feedback; das Ausgangssignal eines Operators wird<br />

als zusätzliche Modulationsquelle fü r diesen verwendet.<br />

Sägezahnschwingung Auch Sägezahnwelle; typische Grundwellenform eines<br />

Oszillators. Mit der S. können alle Obertöne erzeugt<br />

werden. Die Intensität der Obertöne nimmt <strong>mit</strong> steigender<br />

Ordnung exponentiell ab. Sie besitzt einen kräftigen, harten<br />

und hellen Klangcharakter.<br />

Sample<br />

Selektion<br />

Sinusschwingung<br />

Suchraum<br />

Sustain<br />

Syntheseverfahren<br />

Synthesizer<br />

Träger<br />

Zielfunktion<br />

Der kleinste Teil eines digitalisierten Klanges, der zu einem<br />

bestimmten Zeitpunkt einen bestimmten Wert (Amplitude)<br />

besitzt. Auch ein Klang wird oft als Sample bezeichnet.<br />

<strong>Genetischer</strong> Operator, der ein Individuum in Abhängigkeit<br />

zu seiner Fitneß aus der aktuellen Population auswählt. Die<br />

Wahrscheinlichkeit für die Auswahl wird durch ein<br />

entsprechendes Selektionsverfahren (Ranking, Wettkampf<br />

oder Skalierung) er<strong>mit</strong>telt.<br />

Auch Sinuswelle; eine der typischen Grundwellenformen<br />

eines Oszillators. Mit der S. kann ein Grundton erzeugt<br />

werden, aber keine Obertöne. Demnach besitzt sie einen<br />

sehr weichen Klangcharakter.<br />

Auch genotypischer Raum; Bezeichnung fü r die Gesamtheit<br />

aller in einem Chromosom kodierbaren Lösungen eines<br />

Optimierungsproblems.<br />

Zeitabschnitt der Hüllkurve, der die stationäre Phase eines<br />

Klanges beschreibt.<br />

Es beschreibt das prinzipielle Vorgehen eines Synthesizers<br />

bei der Erzeugung eines Klanges. Die wichtigsten Vertreter<br />

sind FM-Synthese, Subtraktive Synthese, Additive Synthese<br />

und die Wavetable Synthese.<br />

Ein S. ist eine Hard- oder Software, die durch das<br />

Zusammenwirken verschiedener Komponenten (Oszillator,<br />

Hü llkurve, Filter) einen Klang erzeugt.<br />

Auch Carrier; Komponente des FM-Synthesizers. Ein oder<br />

mehrere Träger erzeugen die Amplitudenwerte des Klanges.<br />

Definition des Optimierungsproblems. Interpretiert man die<br />

im Chromosom kodierten Parameter und setzt sie in die Z.<br />

ein, erhält man die Fitneß eines Individuums.<br />

112

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!