Forum: Digitale Signalverarbeitung / DSP / Machine Learning VA Oscillators mit Bandlimited Methodes (BLIT) ?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von yello8247 (Gast)


Lesenswert?

Hallo Zusammen

Ich möchte mir einen Digitalen Synthesizer mit einem uP oder DSP 
programmieren. (Learning by doing)

Laut diversen Informationen im Internet (Bsp.www-ccrma.stanford.edu
Alias-Free Digital Synthesis of classic Analog Waveforms)
Scheint nun die einfachste Aufgabe nähmlich einen Sägezahn oder Rechteck
zu generieren doch nicht so einfach zu sein wie angenommen.

Vielleicht aber fehlt mir auch nur der nötige mathematische background 
um die
kompliziert beschriebenen Funktionen von der in der Praxis eingesetzten 
vereinfachten Formeln zu unterscheiden.

Wie genau ein Sägezahnoscillator mit der Methode ''BLIT'' (Bandlimited 
Impuls Train) erzeugt werden kann verstehen ich nun gar nicht ?
https://ccrma.stanford.edu/~stilti/papers/blit.pdf

Hat da jemand Erfahrung ?

Eine weitere Methode beschrieben in (New Approaches To Digital 
Subtractive Synthesis von Vesa Välimäki UNI Helsinki)
http://www.music.mcgill.ca/~ich/researc ... cr1071.pdf

verstehe ich so halbwegs mit der Formel (DPW algorithm) bin ich mir aber 
nicht so sicher ob ich dies richtig verstanden habe ?
DPW =
Modulo Counter (Erzeugt Sägezahn)
1. Inkrementierter Wert wird aus den Zähler gelesen.
2. Dieser Sampelwert wird Quadriert (.)2
3. Dem neuen quadrierten Sampelwert wird der alte Wert abgezogen (1-Z 
hoch 1)
4. Der neue Sampelwert wird verstärkt durch c=1/(4*(f/fs)
5. Out (DAC)

Hab ich das so richtig verstanden ?

Gruss
Yello

von Alexander L. (lippi2000)


Lesenswert?

Das ist genau richtig.

Und warum macht er das?

Grundsätzlich gilt:

kontinuierliches Signal --> nichtperiodisches Spektrum
diskretes Signal --> periodisches Spektrum (Periode mit fs)

Problem ist, dass ein Sägezahnsignal aus undendlich vielen Harmonischen 
besteht. Da allerdings durch die Abtastfrequenz das Spektrum mit fs 
periodisch ist, überlagern sich die hochfrequenten Anteile. Abhilfe kann 
man nur schaffen, wenn man entweder fs erhöht oder das Sägezahnsignal 
filtert.

Ein normaler TP-Filter würde zwar Abhilfe schaffen, aber gleichzeitig 
die Signalform stark ändern. Dies geschieht aufgrund des 
Amplitudenganges, bei dem schon die niedrigen Frequenzen gedämpft 
werden.

Jetzt kommt der Ansatz:
Der Sägezahn ist von 0 bis T eine lineare Funktion. Diese wird 
anschließend quadriert. Der Differenzierer besitzt Hochpass-Verhalten, 
wodurch man nur die höherfrequenten Anteile erhält. Werden diese von 
Spektrum des Sägezahnsignals abgezogen werden die sich gegenseitig 
überlagernden Anteile reduziert.

Ein weiterer Effekt ist, dass lediglich die Samples nahe t=0 und t=T 
verändert werden. Die Linearität der restlichen Samples bleibt erhalten.

Gruß Alexander

von yello8247 (Gast)


Lesenswert?

Hallo Alexander

vielen dank Deiner ausführlichen erklärung !!

So langsam dämmert es bei mir. Huch

In dem Fall ist BLIT nur ein Oberbegriff dessen algorithmen 
verschiedener
natur sein können ?

Wie eben das Bsp.
DPW oder
Additive Synthese (addition von Oberwellen bis zum gewünschten Signal)
Wavetable
usw.

gehören zur Kategorie von BLIT ?

während ein einfacher Sägezahn erzeugt nur durch einen Zähler
nicht zu der Kategorie BLIT zählt ?

Gruss
Yello

von yello8247 (Gast)


Lesenswert?

Offensichtlich enthält der Sägezahn Harmonische mit unendlich hoher 
Frequenz. Deshalb führt eine Abtastung zu erheblichem Aliasing, d.h. 
Frequenzen über fg werden auf Frequenzen unterhalb fg abgebildet. Dies 
führt zu”unsauberem“ Klang oder gar zu falscher Tonhöhe und kann nicht 
durch nachträgliche Filterung behoben werden. Es bleibt nichts
anderes übrig, als die Wellenform bandbeschränkt (unter Einhaltung des 
Abtasttheorems)zu synthetisieren. Band limited impuls train (BLIT).

Aber was mir noch nicht richtig in den Kopf will ist folgendes.
Es ist völlig einleuchtend wenn ich ein Eigangssignal erfassen will 
(Sampling) und dieses eine höhere Frequenz als 1/2 von fs hat, diese
Abtastung führt dann zu erheblichem Aliasing (Das zu schnelle Signal hat 
dann nur noch ein Wert pro Periode erfasst und kann somit nicht mehr 
Rekonstruiert werden!
Abhilfe höhere Abtastung oder AA-Filter vor der Abtastung. Da ist mir 
noch alles Klar !!

Was aber nun hat die Abtastung und das Abtasttheorem von Shannon bei 
einer Signalerzeugung (Oszillator) zu tun ????? :oops:
Da wird das gewünschte Signal ja nicht abgetastet sondern direkt mit 
entsprechenden Algorithmen erzeugt rsp. die nötigen Sampels pro Perioden 
werden ja bestimmt gesetzt und können nicht durch aliasing plötzlich 
verschwinden und somit das Signal verfälschen.

Genau da habe ich noch einen knopf in der Leitung !!

Kann mir da jemand helfen ?

Gruss
Yello

von jonas biensack (Gast)


Lesenswert?

>Offensichtlich enthält der Sägezahn Harmonische mit unendlich hoher
>Frequenz.

Jede natürliche vorkommende Wellenform (außer Sinus) hat harmoische 
Oberwellen, deren Frequenz immer ein vielfaches der Grundfrequenz ist.
So und diese Oberwellen werden von ihrer Amplitude immer geringer  je 
höher ihre "Ordnung" wird, soll heißen die 15 Harmonische ist kaum noch 
wahrnehmbar und um so höher die Harmonische desto weniger Amplitude ... 
irgendwann gegen quasi null.

>Aber was mir noch nicht richtig in den Kopf will ist folgendes.
>Es ist völlig einleuchtend wenn ich ein Eigangssignal erfassen will
>(Sampling) und dieses eine höhere Frequenz als 1/2 von fs hat, diese
>Abtastung führt dann zu erheblichem Aliasing (Das zu schnelle Signal hat
>dann nur noch ein Wert pro Periode erfasst und kann somit nicht mehr
>Rekonstruiert werden!

Überleg mal, ob das zu abtastende Signal nun von einem ADC kommt, oder 
aus einem Speicher oder sonst wo ist doch egal, das Threorem schlägt 
immer zu ;)
und hat immer gültigkeit... Noch ein Kaffee?

gruß Jonas

von jonas biensack (Gast)


Lesenswert?

So ich versuche es nochmal anders zu erklären:

Versuch mal dir bitte folgendes vorzustellen:

Du hast einen Speicher in dem du Samples zur Ausgabe einer Wellenform 
hast.
Nehmen wir die einfachste, ein Rechteck. Wenn ich nun diesen Speicher 
periodisch auslese (in dem Beispiel immer zwei Werte) bekomme ich am 
Ausgang
ein Rechteckwellenform mit genau der halben Abtastfrequenz, da sich ein 
Wert ja genau alle zwei Samples wiederholt (bzw. der Nulldurchgang alle 
zwei Samples passiert).

S1 S2
0  255

|  |  |  |  |  |  |
|     |     |     |
0 255 0 255 0 255 0 255


Deshalb ist die maximale Frequenz die ich so ausgben kann eben genau die 
hälfte der Abtastfrequenz. Klar oder ?
Also das Therorem lässt sich "umgekehrt" viel leichter verstehen...

Gruß Jonas

von yello8247 (Gast)


Lesenswert?

jonas biensack schrieb:
> Überleg mal, ob das zu abtastende Signal nun von einem ADC kommt, oder
> aus einem Speicher oder sonst wo ist doch egal, das Threorem schlägt
> immer zu ;)
> und hat immer gültigkeit... Noch ein Kaffee?

Ohh Ja Klar ! jetzt verstehe ich !
Nach dem ADC werden die Werte ja auch in einen Speicher geschrieben.
zwar nur kursfristig bis der nächste Samplewert erfasst wird.
Aber für die Rekonstruktion ist es ja egal ob die Werte vom ADC oder
von einem Speicher kommen.

Vielen Dank für die Erklärung

Gruss und schöne Pfingsten
Roger

von jonas biensack (Gast)


Lesenswert?

>Ohh Ja Klar ! jetzt verstehe ich !
>Nach dem ADC werden die Werte ja auch in einen Speicher geschrieben.
>zwar nur kursfristig bis der nächste Samplewert erfasst wird.
>Aber für die Rekonstruktion ist es ja egal ob die Werte vom ADC oder
>von einem Speicher kommen.

>Vielen Dank für die Erklärung

>Gruss und schöne Pfingsten
>Roger

Find ich toll!
Gute nacht :)

von Alexander L. (lippi2000)


Lesenswert?

Also für mich macht es schon einen Unterschied, ob ich DAC oder ADC 
betrachte!

Beim ADC habe ich das Problem der Unterabtastung.

Bei DAC habe ich ein weiteres Problem. Dies ist die Quantisierung. Mal 
im ganz Kleinen betrachtet, erzeuge ich bei einem Sägezahn zwischen 
jedem Samplepaar eine Sprungfunktion mit entsprechenden Offset.

Je nach dem wie schnell die Wandlung erfolgt und mit welcher 
Amplitudenänderung entstehen jetzt noch zusätzliche Frequenzanteile.

Dein Gedankenspiel mit dem Rechtecksignal, welches mit fs/2 umgesetzt 
wird ist aber korrekt. In diesem Fall wäre ja schon die Grundfrequenz am 
Limit des Aliasing.

von yello8247 (Gast)


Lesenswert?

Alexander Liebhold schrieb:
> Bei DAC habe ich ein weiteres Problem. Dies ist die Quantisierung. Mal
> im ganz Kleinen betrachtet, erzeuge ich bei einem Sägezahn zwischen
> jedem Samplepaar eine Sprungfunktion mit entsprechenden Offset.

Hmm

Demnach habe ich doch zwei verschiede Probleme zu beachten ?

Annahme Sinus-Signal:

Beim ADC oder (Signalgenerator Mathematisch erzeugt) kann bei einer 
Signalfrequenz von > als 0.5 x Abtastrate eine Unterabtastung entstehen 
(Aliasing).

Beim DAC müssen die entstehenden Treppenstufen mit einem 
Rekonstruktionsfilter geglättet werden.
Da ein Sinus nur aus einer Grundwelle besteht, genügt ein relativ 
einfaches
Filter ohne grosse Beeinflussung des gewünschten Signales.

Annahme Sägezahn:

Nun wird es komplizierter !!
Beim ADC gilt noch das selbe wie bei einem Sinussignal
Signalfrequenz > 0.5 x Abtastung führt zu Aliasing !

Beim DAC wird es nun schwierig !!
Da ein Sägezahn aus einer Grundwelle mit einem sehr grossen Anteil von
Oberwellen besteht (Spektrum) spiegelt es uns nun Frequenzanteile in den
hörbaren Bereich ! Im Uebergangsbereich von +1 auf -1 haben wir sogar 
eine
sehr grosse Treppenstufe (dirac Impuls mit unentlichem Signalspektrum).

Diese Spiegelung der Frequenzen in den hörbaren Bereich kann man nicht 
mehr
Filtern ohne das gewünschte Signal zu verfälschen !!!!!!

Lösung:
BLIT (Bandlimted Impuls Train)
Es muss ein Sägezahn generiert werden, dessen Oberwellenspektrum so 
begrenzt wird, dass die höchste erzeugte Oberwelle immer noch < 0.5 x 
Abtastung entspricht.
Bsp. Fs = 44.1kHz
Sägezahn mit einer Frequenz von 11kHz dürfte nur noch eine Oberwelle 
besitzen !!

Fazit:
Es ist ein Ding der Unmöglichkeit einen Zägezahn in der Qualität einer
analogen Schaltung in einem digitalen System (VA) zu Erzeugen !!!!!
Jetzt ist mir auch klar warum die echt analogen synthesizer immer noch 
um
Welten besser klingen als die digitalen.

Mach da immer noch einen Ueberlegungsfehler oder hab ich es nun entlich 
kappiert ?

Gruss
Roger

PS:Der Teufel liegt im detail

von Maik W. (werner01)


Lesenswert?

Guten Tag zusammen,


Das analoge Synthesizer besser klingen finde ich jetzt nicht, sondern
siw klingen einfach nur anders! Hör Dir mal den Virus an oder die 
Monomachine von Electron. Ich finde das die für VA sehr gut klingen.

oder den JP8000.

Ach ja analoge Synthesizer haben mehr Schwierigkeiten mit 
Sinusoszillator!


mfg

von yello8247 (Gast)


Lesenswert?

Maik Werner schrieb:
> Das analoge Synthesizer besser klingen finde ich jetzt nicht, sondern
> siw klingen einfach nur anders!

Klar das meint man in der regel auch damit ! Und schlussentlich klinkt
das eben besser. ist aber natürlich geschmacksache.

Ich habe einige digitale und auch analoge Flagschiffe.

Die digitalen klingen halt alle eher steril.

Bei den analogen klingen selbst die gleichen Modelle untereinander
unterschiedlich. (Bauteiltoleranzen erwärmung usw. lassen Grüssen).
Bei den analogen hat man das gefühl das die Dinger leben !
(Die Balken biegen sich).

Aber manchmal will man ja auch bewusst den digitalen Sound einsetzten.

Also beide haben natürliche Ihre Daseinsberechtigung.

Und nicht umsonst boomen die analogen (Auferstehung von Moog, Dave smith 
usw.) !!!!!!!!!!!!

Gruss
Yello8247

von yello8247 (Gast)


Lesenswert?

Ach ja und betreffens Sinusgenerator wollte ich noch sagen:

Den brauchts bei der subtraktiven klangerzeugung gar nicht !!!

Gruss
Yello8247

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Leider habe ich den thread erst jetzt per Zufall gefunden, muss aber 
etwas Grundsätzliches dazu schreiben, auch wenn er schon alt ist:

yello8247 schrieb:
> BLIT (Bandlimted Impuls Train)
Dazu gab es Mitte der 1990er mal ein paper, als das Thema VA-Synthese 
verstärkt aufkame und man die Grenzen erkannt hatte. Es wird seither in 
vielen digitalen Synthesizern verwendet. Ich benutze das u.a. hier: 
Digitaler LaPlace-Funktionsgenerator im FPGA wobei ich die Wellen 
kontrolliert, händisch zusammensetze.

BLIT und BLEP sind aber diesbezüglich nicht die Ultima Ratio, denn:

Der Knackpunkt ist, dass analoge Synthesizer und viele andere Geräte 
eben Grenzfrequenzen aufweisen, die weit oberhalb der 20kHz liegen, 
welche wir ja üblicherweise als Obergrenze annehmen. Ein Sägezahn oder 
auch das problematischere Rechteck, hat in einem solchen System immer 
irgendwo eine analoge Folgestufe, die eine endliche Bandbreite besitzt 
und das Signal somit begrenzt. Das gilt auch das klassische Dreieck und 
sogar für solche additiv gewonnenen, bandlimitierten Signale, die schon 
einmal einen Verzerrer durchlaufen haben. Alle diese Schaltungsteile, 
wie der Verzerrer selbst, sind in irgendeiner Weise bandbegrenzend, aber 
nicht notwendigerweise bei 20k.

Im Gegenteil: Diese Begrenzung hängt mit der konkreten Schaltungstechnik 
zusammen und liegt im Bereich von 50kHz bis 250kHz, was ich so gemessen 
und gesehen habe. Einmal ist es ein simpler Tiefpass, einmal das 
Gain-Bandwidth-Limit eines OP und einmal ein Transistor-Spannungsfolger, 
der die Kapazität der Folgestufe nicht beliebig packt. Je nachdem, wie 
das Gerät aussieht und wofür es gedacht ist, ist die Wirkung stark 
unterschiedlich. Ringmodulatoren z.B. und Diodenverzerrer produzieren 
durchaus Frequenzen von jenseits der 100kHz mit relevantem Pegel!

Diese Oberwellen laufen nun in die Folgeschaltung hinein. Das sind oft 
Filter oder weitere Verzerrer, die immer ein gewisses nichtlineares 
Verhalten und auch ein zeitliches Einschwingverhalten haben. Es macht 
daher einen großen Unterschied, wie steilflankig man diese ansteuert und 
wieviel Energie man hinein gibt. Auch wenn man diese Oberwellen in den 
besagten Wellenformen nicht höhren könnte bzw sie am Ausgang des 
Synthesizers - spätestens am folgenden Verstärker eliminiert würden, so 
verändern sie auf dem Weg dahin doch den Klang, weil sie Filter anders 
anregen, zusätzlich  zum Schwingen bringen oder nichtlineare Stufen 
weiter aussteuern. Umgekehrt können sie Kompressorkomponenten in den 
Schaltungen stärker und früher zum limitieren anregen. Gerade analoge 
Kompressoren und ihre digitalen Nachbauten sind sehr empfindlich 
gegenüber transienten Oberwellen und reagieren anders. Fehlen diese 
Oberwellen, hat besonders der Beginn eines Tones weniger Charakter.

Das ist mithin das, was Viele beim digitalen Synthesizer als "steril" 
einstufen. D.h. die Rechecke z.B. "leben" nicht, weil die Filter, die 
sie bearbeiten sollen, kein Leben eingehaucht bekommen (nebst der 
Tatsache, dass die bei digitaler Formulierung oft genau so bandlimitiert 
arbeiten, weil sie den Randbedingungen der  btastfrequenz unterliegen). 
Umgekehrt führen Oberwellen mitunter auch zu einer Vervollständigung 
oder Vergleichmäßigung des Rauschspektums, was sich bei diskreten 
Verzerrern (Bandsättigung, Ladder-Filter) als "Weichmacher" entpuppt! 
Ein durch Oberwellen "gedithertes" Signal klingt im Detail auch anders, 
als eines, welches mit statistischem Rauschen ge"noise shaped" wurde.

Somit fehlt durch das limitieren der Wellen relevanter Klang im 
Endprodukt.

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

yello8247 schrieb:
> Fazit:
> Es ist ein Ding der Unmöglichkeit einen Zägezahn in der Qualität einer
> analogen Schaltung in einem digitalen System (VA) zu Erzeugen !!!!!
Wenn man mit den üblichen Frequenzen arbeitet, ja. Man kann aber mit 
einer entsprechenden Abtastrate den Sägezahn und alle anderen 
oberwellenlastigen Signale in konventioneller Weise erzeugen und nutzen, 
wenn man Nyquist entsprechend berücksichtigt, d.h. eine hohe Abtastrate 
verwendet.

Man kann mit z.B. 768kHz diese Oberwellen sehr leicht transportieren 
(Nyquist = 384) und auf die Filter und Verzerrer wirken lassen. Erst 
kurz vor dem Mixdown, wenn es nur noch lineare Bearbeitung gibt, also am 
Ausgang des Synths, werden sie runtergesampelt. Dann reichen die 192kHz, 
die man heute üblicherweise nutzt, bequem aus. Einige DSP-Synths gehen 
ja deshalb schon den Weg und nutzen 192kHz, um wenigstens so etwas um 
die 75kHz Bandbreite abzudecken. Das funktioniert natürlich nur, wenn 
die SW planmäßig dafür ausgelegt ist und nicht etwa, wenn man einen 
konventionellen plugin in der DAW auf ein Wave mit 192kHz loslässt.

So richtig geht es IMHO erst ab 384kHz aufwärts. Da scheitert es bei 
Softwaresystemen aber meist an der Rechenleistung, weil jede Verdoppung 
der Frequenz die mögliche Stimmenzahl halbiert und bei Filtern zu 
teilweise quadratischem Aufwand führt.

Bei 768kHz hat man natürlich auch noch problematische Oberwellen des 
Quellsignals im Spektrum, die vor Nyquist entweder weggefiltert werden 
oder - obwohl sie im Stoppband liegen - nicht perfekt genullt sind 
(digitale FIR-Filter!!). Diese führen auch zu Alias, aber das Fehlen der 
Anteile bei z.B. 200kHz aufwäerts macht keinen quantitativen 
Unterschied, weil die Amplituden klein sind und die noch existenten, 
umgeklappten Alias-Frequenzen reichen qualitativ zu 99% nicht in den 
hörbaren Bereich hinunter. Bei dem Beispiel 768 und einer GF von rund 
200, die ich verwende, müssten schon relevante Frequenzen zwischen 
750-768 kHz auftauchen, damit man sie umgeklappt als Spiegelfrequenz 
zwischen 0...18000 hören könnte.

Als Vergleich:

Nimmt man das Oberwellenspekrum eines 1kHz-Rechtecks, dann liegen 
zwischen 15kHz und Unendlich fast 40% der Energie - bei 15kHz bis real 
150kHz in einem analogen Synth vielleicht noch 30%. All diese Frequenzen 
werden durch BLEP- und BLIT-Synthesizer erst garnicht erzeugt und deren 
Auswirkung fehlt dann im Klang. Das gilt mithin auch für alle möglichen 
Folgen dieser Oberwellen in nichtlinearen Verzerrern. Es gilt aber auch 
für Oberwellen aus den eingespeisten Grundwellen, die ein Verzerrer 
erzeugen würde und die auch wegkastriert werden müssen, d.h das 
Rechenmodell darf/kann die gar nicht erzeugen. Über mehrere Stufen kommt 
da immer mehr Abweichung zustande.

Bei mir ist das z.B. nicht der Fall und oberhalb der 700, wo ich 
Probleme bekommen könnte, sind nur noch Promille der Energie zu finden. 
Davon wird wiederum nur ein Bruchteil herunter geklappt. Nach meiner 
Berechnung dämpfe ich die Alias-Oberwellen für das 1kHz-Rechteck mit 
mehr als 80dB. Schon -40 bis -50dB THD-Signalanteil gelten aber als 
nicht mehr hörbar, wenn er sich über das Spektrum verteilt.

Um es also auf den Punkt zu bringen:

Die Nutzung bandlimitierter Signale beseitigt nur ein Problem, dass die 
Verwender von limitierten Samplefrequenzen haben, weil sie damit nicht 
klarkommen. Sie lassen die Problemoberwellen einfach weg. Damit lassen 
sie aber auch die Wirkung derselben in analogen Folgestufen weg. Richtig 
wäre es, den analogen Synth in seiner Gänze zu simulieren, also mit 
seiner typischen internen Bandbreite, die er ja hat. Dann passt das. 
Sinnvollerweise muss man dazu in den Modellen die Bandbreite individuell 
an die Stufe anpassen.

Bevor nun das Gegenargument kommt:

Es gibt natürlich Methoden, auch die Wirkung der Oberwellen formelmäßig 
einzufangen und bandlimitiert zu berechnen, indem die mutmaßlichen 
Spiegelfrequenzen mit einem transformierten Modell der Folgestufe 
gefaltet wird. Das stößt aber auch an rechnerische Grenzen, birgt meist 
weniger Genauigkeit und versagt komplett, wenn man nicht weiß, was der 
Kunde anschließen wird. Nur dann, wenn man ihm das Signal im Zeitbereich 
gibt, kann er einen Verzerrer einstellen, programmieren oder hinzufügen, 
der dann richtig arbeitet. Ansonsten bräuchte er ein Model im 
Frequenzbereich.

In der Studiotechnik klappt es mit der Weiternutzung der bandlimitierten 
Signale auch nur soweit, wenn man diese analog herausführt, sie dadurch 
gefiltert bekommt und das eigene Studiogerät ebenfalls eine 20k-Grenze 
bringt. An der Stelle sieht man aber schon den Effekt: jedes Gerät hat 
seine eigene individuelle Bandbegrenzung und genau dort, im Höhenbereich 
unterscheiden sie sich, weil dort die Filter arbeiten. Das ist bei 
Synths so und beim HIFI. Sobald man Abtastfrequenzen nutzt, die den 
headroom zum Horbaren einschränken, machen die AA-Filter den 
Klangunterschiede und das wieder abhängig davon, was der Verstärker 
ihnen an Höhen und Transienten verpasst :-)

von HF-Techniker (Gast)


Lesenswert?

Sehr interessante Ausführungen. Nur:

Jürgen Schuhmacher. schrieb:
> Die Nutzung bandlimitierter Signale ...
> ...  lassen die Problemoberwellen einfach weg. Damit lassen
> sie aber auch die Wirkung derselben in analogen Folgestufen weg. Richtig
> wäre es, den analogen Synth in seiner Gänze zu simulieren, also mit
> seiner typischen internen Bandbreite, die er ja hat.

Das spricht aus meiner Sicht keineswegs gegen die Verwendung von 
bandlimitierten Signalen, z.B. nach der BLIT-Methode. Man muss eben nur 
die Oberwellen, die es zu erzeugen gilt, so aufweiten, damit der 
individuelle Bereich des Objektes abgedeckt ist.

> Bei mir ist das z.B. nicht der Fall und oberhalb der 700, wo ich
> Probleme bekommen könnte
Meines Erachtens bekommst du bereits bei >384kHz (Fs/2) Probleme mit der 
Darstellung.

von Michael W. (Gast)


Lesenswert?

yello8247 schrieb:
> Da wird das gewünschte Signal ja nicht abgetastet sondern direkt mit
> entsprechenden Algorithmen erzeugt rsp. die nötigen Sampels pro Perioden
> werden ja bestimmt gesetzt und können nicht durch aliasing plötzlich
> verschwinden und somit das Signal verfälschen.

Kommt darauf an, mit welcher Frequenz du abtastest und mit welchen 
Nutzfrequenzen du arbeiten möchtest. Solange der maximale Anstieg in 
einem Sample passieren darf, kommst du über Nyquist nicht hinaus.

Ich habe aber z.B. diese Problematik:
Beitrag "bandlimitierte Rechtecksignale zielgenau erzeugen"

Die Abtastfrequenz für den DAC ist deutlich höher, als das Nutzsignal an 
Komponenten haben darf. Als Beispiel kann der DAC mit 10MHz an samples 
befeuert werden und soll bandbegrenzte Rechtecke bis zu (als Beispiel) 
300kHz ausgeben. Benutze ich eine einfache DDS, die die Zielfrequenz von 
5kHz - 20kHz ausgibt, hat das Rechteck beim 10MHz-Signal einen Anstieg 
von 100ns, wenn ich direkt ein Rechteck daraus mache (z.B. "if Sinus > 0 
-> output = 1, else -1")

Das ist aber viel zu viel für die Anwendung. Sie muss auf eine Oberwelle 
von 300kHz begrenzt werden. Ich kann aber nicht einfach das Signal mit 
3us hochzählen und eine Rampe machen, weil der Knick erheblich mehr 
Oberwellen hat. Das muss irgendwie S-förmig sein. Ich kann aber immer 
noch nicht sagen, wie man zielführend auf diese Kurve kommt.

von HF-Techniker (Gast)


Lesenswert?

M. W. schrieb:
> Die Abtastfrequenz für den DAC ist deutlich höher, als das Nutzsignal an
> Komponenten haben darf.
Das ist per se nicht unbedingt falsch, aber:

> Als Beispiel kann der DAC mit 10MHz an samples
> befeuert werden und soll bandbegrenzte Rechtecke bis zu (als Beispiel)
> 300kHz ausgeben.
Wer braucht denn einen 30-fachen overhead?

> Zielfrequenz von 5kHz - 20kHz
Wenn die Grundfrequenz bis maximal 20kHz geht, ist bei der Grenze von 
300kHz immerhin die 15. Oberwelle mit drin und die hat kaum noch an 
Wert. Da dürfte sich kaum ein Unterschied zeigen, ob man die Oberwellen 
noch weiter dämpft.

> ein Rechteck beim 10MHz-Signal einen Anstieg von 100ns, wenn ich direkt
> ein Rechteck daraus mache
Wer macht denn das Recheck? Also wer sagt dem DAC, was er zu wandeln 
hat? Ein Prozessor nehme ich an, der von 0 auf MAX hochknallt? Die 
Frequenz, die der DAC dann sieht, ist immer ein Sprung, egal, wie 
langsam oder schnell dein Zeugs davor ist. Sprung bleibt Sprung. Bei 
dem zeitlichen overhead würde es eine einfache Rampe tun, denke ich.

von Michael W. (Gast)


Lesenswert?

HF-Techniker schrieb:
> Wer braucht denn einen 30-fachen overhead?
Das ist nur ein Beispiel. Der DAC kann die Frequenz, muss aber nicht 
damit angesteuert werden. Ich kann das in Grenzen auswählen.

> Wenn die Grundfrequenz bis maximal 20kHz geht
> Da dürfte sich kaum ein Unterschied zeigen, ob man die Oberwellen
> noch weiter dämpft.
Auch das ist nur ein Beispiel. Die Harmonischen gehen so weit, dass sie 
relevant sind, auch bei den kleine werdenen Anteilen.

> Wer macht denn das Recheck?
Meine Anwendung: Die Pulsumschaltung der Brücke. Siehe thread.

> Bei dem zeitlichen overhead würde es eine einfache Rampe tun, denke ich.
Wurde probiert. Reicht nicht aus.

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Hier werden aber 2 unterschiedliche Dinge diskutiert:

Einmal: Was kann BLEP und BLIT - bzw. was nicht?

Und das Thema aus dem anderen thread: Wie bekommt man die in der 
Anstiegszeit begrenzten Wellen?

Dafür wäre der direkte Weg wohl, eine COS-Funktion in den Übergang 
einzupassen. Das könnte man leicht zusammenbasteln. Die Sache stimmt 
dann insoweit, als dass der nachfolgende Filter perfekt folgt, solange 
er eine deutliche höhere Grenzfrequenz besitzt, keine Phasenverschiebung 
und auch keine wesentlichen Überschwinger produziert.

Der etwas komplexere und allgemeine Weg ist wie schon beschrieben, die 
Oberwellen hart zu limitieren und die Harmonischen davor auszufaden, gfs 
auch mit einer COS-Funktion.

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Und jetzt nochmals zu dem Thema Methoden:

HF-Techniker schrieb:
> Man muss eben nur die Oberwellen, die es zu erzeugen
> gilt, so aufweiten, damit der individuelle Bereich des
> Objektes abgedeckt ist.
Genau und dann bitte dazu passend aber auch die Abtastfrequenz 
hochschrauben, damit Nyquist noch stimmt. Wie die Bandlimitierung am 
Ende erfolgt, ist dann sogar umsomehr reine Geschmacksache, denn:

HF-Techniker schrieb:
> Meines Erachtens bekommst du bereits bei >384kHz (Fs/2)
> Probleme mit der Darstellung.
Ich verwende ja ebenfalls eine Bandlimitierung und zwar variabel:

a) Sofern es die o.g. "LaPlace"-Methode ist, entspricht sie der Wirkung 
der BLIT, weil mehr Oberwellen, als später darstellbar sind, nicht 
erzeugt werden. Nur ist die Methode bei mir im Detail eine andere, weil 
ich die Wellen allgemein additiv zusammensetze, statt spezielle, 
funktionsoptimierte Lösungen zu benutzen. Das kostet mich zwar 
grundsätzlich mehr Rechenaufwand, dafür ist die Schaltung universeller 
(und kann auch für Wave-Table genutzt werden). Auch ist sie im Vergleich 
zu DSPs für FPGAs tauglicher.

b) Sofern die Wellen konventionell erzeugt und gefiltert werden, liegt 
die Bandbegrenzung deutlich unter Nyquist, aber gleichzeitig eben auch 
deutlich über dem Hörbaren. Man hat also sowohl bei der Erzeugung und 
Behandlung genug headroom, als auch bei der späteren 
Anti-Alias-Filterung.

Das ist der Trick!

von Messtechniker (Gast)


Lesenswert?

Der Vorteil "dieses" Tricks erschliesst sich mir einfach nicht. Es 
werden Wellenanteile erzeugt, die am Ende doch weggefiltert werden, um 
sie nicht auszugeben zu müssen, weil sie dann Probleme machen würden.

Wenn sie keine Wirkung haben können oder sollen, braucht man sie auch 
nicht.

Riecht für mich wieder nach Audio-Esotherik.

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Die Annahme, dass sie keine Wirkung haben, gilt nur in einem linearen 
System. Nur dann lässt sich das dahingehend vereinfachen, die 
Problemfrequenzen von vorn herein einfach wegzulassen. Analoge 
Synthesizer und die darin verwendeten Verzerrerschaltungen sind aber 
keine linearen Systeme. Ganz im Gegenteil: Die Oszillatoren sind auch 
nur der Beginn der Signalkette und selbst komplexere Wellenformen aus 
ROMs werden meistens nicht unbearbeitet ausgegeben, sondern immer in 
irgendeiner Form gefiltert. Diese realen Filter sind (auch wenn sie 
theoretisch linear sind) praktisch immer nichtlinear und es sind eben 
genau die aggressiven Wellenformen mit den Oberwellen, welche das 
anregen und nutzen.

Ich erkläre es nochmals am Beispiel des Rechtecks:

Das C3 hat ungefähr 1kHz. Sein Spektrum mit der Amplitude 1 für die 
Grundschwingung verteilt sich in etwa so:

1 kHz ... 15 kHz : 2,02 (linearer Audiobereich)
17Khz ... 23 khz : 0,23 (Eingriffbereich der AA-filter)
19kHz ... 99 kHz : 0,72 (Limit der misten analogen Geräte)
100 ... 199 kHz  : 0,35 (Limit praktisch aller anlaogen Geräte)
200 ... 383 kHz  : 0,33 (Limit Nyquist für 768k)
385 ... 739 kHz  : 0,32 (Spiegel-Frequenzen von 768 - Teil 1)
741 ... 799 kHz  : 0,04 (Problem-Spiegel-Frequenz-Bereich +/- 30kHz um 
768 herum
801 ... 999 kHz  : 0,11 (Spiegel-Frequenzen von 768 - Teil 2)
1MHz ... 5 MHz   : 0,8    weitere Spiegelfrequenzen mit teilweise 
Problembereichen


Nimmt man die ersten beiden Bereiche bis 23kHz, dann hat man das, was 
man bekommt, wenn man ein sehr steiles Rechteck mit min. 25kHz 
Bandbreite auf einen typischen Audioeingang loslässt:

Bis 15kHz ist das Meiste weitgehend linear, kaum phasenverzerrt und wird 
von den meisten Personen auch gehört. Mindestens 0,23 von insgesamt 2,25 
= rund 10% spielen sich in dem Bereich ab, in dem die 
Antialisatingfilter des Erzeugers und Empfänger Samba machen und dafür 
sorgen, dass es überall anders klingt. Diese 10% Signalanteil sind 
deutlich wahrnehmbar. Auch bei einem Ton, der deutlich tiefer liegt, ist 
das noch so.

Geht man davon aus, dass man bei den AA-Filtern im Mittel bei 21kHz auf 
50%-25% gesenkt hat, weil dort wegen 44kHz die Grenze ist, dann hat man 
irgendwo zwischen 5% und 10% des Anteils noch durch die Filter des 
eigenen Geräts beeinflusst. Das hängt davon ab, was das für Filter sind 
und wie sie schwingen.

Nimmt man jetzt z.B. ein 100kHz Rechteck und haut es auf den Eingang 
drauf, liegt fast 1/3 des Spektrums im zu filternden Bereich. 
Entsprechend ist die Auswirkung der verschiedenen Filter: Sie machen 
einen anderen Klang!

Betrachtet man weiter einen analogen Synthesizer mit klassischem 
Komparator, dann hat es durchaus 1MHz Bandbreite an dessen Ausgang. Das 
bedeutet, rund 45% der Energie der Frequenzen liegt oberhalb dessen, was 
gehört und normalerweise betrachtet wird, was aber in die Filter real 
hineinläuft. Diese 45% machen den Klang des Geräts. Was davon am Ende 
auf den Ausgang geht, hängt allein von den Folgestufen- und dem 
letztlichen Verstärker ab. Die haben freilich ebenfalls 
Bandbreitenbegrenzung, aber eben alle woanders. Bei einigen modularen 
analogen Synthesizern z.B. kann man durchaus Anteile jenseits der 50kHz 
messen.
Diese Komponenten werden also durch die finale Stufe ausgegeben und 
wirken dann wiederum auf alles, was man hinten dran schaltet.

Will man all das mit einem digitalen Signalverarbeitungssystem 
modellieren, braucht man für "externe" Signale also 2x(50+) = z.B. 
192kHz und für interne Signale etwas um den Bereich herum, den die 
meisten Folgestufen leistet: Nach meinen Erfahrungen sind das 
100kHz-200kHz intern und auch extern gibt es Geräte, die mehr können: 
Ein kürzlich inspizierter Denon AVR z.B. rühmt sich einer Bandbreite von 
10 ... 100kHz!

Das bedeutet, man müsste bei bandlimitierten Signalen durchaus 200kHz 
berücksichtigen und auf die Folgestufen geben. Wäre mit fs=384kHz noch 
halbwegs zu machen. Dann hätte man etwa 80% der Nettosignalenergie 
abgebildet. Beschränkt man sich auf 100kHz Bandbreite, käme man mit 
192kHz vlt. so garade hin - hätte aber schon 33% des Signals ignoriert.

Nimmt man aber 768kHz, dann kann man sich den Luxus leisten, mit einem 
einfachen konventionellen IIR-Filter zu arbeiten, das bei z.B. 150kHz 
einsetzt und erst nach nach 3 Oktaven zu 90% zu macht.
Das bedeutet, man bekommt praktisch alle zu nutzenden Frequenzen rein 
und hat nur die Probleme in dem vergleichsweise engen Bereich von 30kHz 
um die 768 herum, weil die wegen Nyqust an der 384 gespiegelt werden.
In dem Bereich liegen aber nur 0,04 / 4,3 = <1% der Signalanteile, die 
durch den einfachen Filter auch noch zu 90% gekillt werden. Es wird also 
nur 1 Promille in den hörbaren Bereich gespiegelt. Der weitere 
Restfehler liegt dann nur in dem Bereich, der von Effekten kommt, welche 
zu eben diesen 1% an Spiegelfrequenzen angesteuert werden. Da die 
ebenfalls mit vlt. 100k bandbegrenzt arbeiten, kommt da praktisch 
nichts.

Die Bereiche jenseits der 1MHz würden immer wieder falsche 
Spiegelfrequenzen anliefern, sie werden durch den internen Filter aber 
eliminiert, was nicht falsch ist, da die analogen Systeme das praktisch 
auch nicht verarbeiten. Es fehlt also an der Stelle nur etwas, was 
analog auch fehlen würde.

Die Frequenzen zwischen 384 und den 741 sind die eigentlich 
interessanten: Diese werden von meinem System zunächst falsch abgebildet 
und teilweise auch vom 150kHz-Filter durchgelassen. Der Signalanteil 
beträgt aber nur 0,33 / 3,9 also etwa 8%. Gefiltert sind es etwa 3%. 
Diese erzeugen jedoch nur für die interne Modellierung ein Problem, weil 
sie sich im Bereich zwischen 30kHz und 384 aufhalten (nebst denen, die 
nicht gespiegelt wurden und sich dort richtigerweise aufhalten).
Die hohen Anteile des Signals werden also nicht perfekt abgebildet, 
sondern leicht verzerrt. Davon ist aber nur die interne Modellierung von 
Effekten betroffen, die ich nach der Rechteckgewinnung anwende, die 
etwas ungenauer wird.

Die durch diese Stufen durchgelassenen ungewollten Frequenzen sowie die 
neu erzeugten in dem Bereich sind aber am Ende kein Problem, weil sie 
durch einen Audio-Tiefpass am Ausgang gefiltert werden, der bei z.B. 
24kHz dicht macht. Damit werden die durch nichtlineares Bearbeiten des 
Klangs durch die Effekteeinheiten erzeugten neuen Frequenzen im 
Audiobereich durchgelassen und die unhörbaren (ob zurecht oder zu 
unrecht generiert) gefiltert.

**********************************************************************
Es passiert also mit den hochfrequenten Anteilen in meinem System zu 97% 
das, was auch in einem analogen Synthesizer passiert, während sie bei 
BLIT und BLEP komplett fehlen.
**********************************************************************

: Bearbeitet durch User
von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Hier noch ein anderes Beispiel, warum diese Oberwellen so wichtig sind:

Nehmen wir das nichlineare Bandsättigungsmodell für ferromagnetische 
Werkstoffe mit seinen diskretisierenden Barkhausensprüngen:
http://www.96khz.org/htm/magneticmodelling2.htm

Denkt man sich ein typisches Musiksignal mit Bandbegrenzung bei 20kHz 
und Abtastung von 192kHz, dann gibt es eine maximale Steilheit der 
Amplitudenänderungen, denen das Modell dann schrittweise folgt, wobei 
u.a. am Ausgang Amplitudensprünge mit neuen Oberwellen entstehen, die 
gemäß Abtastfrequenz bis zu 96kHz Bandbreite haben können und 
entsprechend grob sind.

Denkt man sich nun zu demselben Eingangssignal etliche Oberwellen im 
Bereich 20kHz bis 70kHz hinzu, die ebenfalls mit 192kHz noch darstellbar 
sind, dann würden diese bei direkter Ausgabe durch das 
Rekonstruktionsfilter eliminiert und hätten keine Wirkung. Soweit gut.

Im Magnetmodell allerdings sorgen sie für eine Art dithern der 
Barkhausensprünge, d.h das Modell folgt schneller und präsiser dem 
niederfrequenten Anteil des Eingangssignals. Das entstehende 
Störspektrum hat dabei interessanterweise zunächst mehr Energie, was 
schlechter wäre - verschiebt sich aber derart nach oben, dass die 
spätere AA-Filterung vor dem Ausgang des Synths davon erheblich mehr 
eliminieren kann und am Ende der Klang weniger spektral gefärbt ist. In 
einer mechanischen Interpretation des Modells führen die Oberwellen 
quasi zu einer Art "Rütteln", denen die Bloch-Wände / 
Magnetisierungsgrenzen kleinteiliger folgen können.

Das ist der interessante Effekt mit vielen nichlinearen 
Verzerrerschaltungen in Synthesizern: In analoger Form klingen diese 
weicher, besonders dann, wenn sie mit Signalen gefüttert werden, die 
schon zuvor ein analoges, verzerrendes Filter gesehen haben. Bei 
digitalen Systemen wird es von Stufe zu Stufe härter - es sei denn, man 
setzt die Samplefrequenz so hoch, dass die Oberwellen weitgehend korrekt 
wiedergegeben werden. Die Maßzahl dafür ist sozusagen der Störabstand 
zwischen den Oberwellen im Nutzbereich gegenüber denen im 
Problembereich, welche wieder ins hörbare Band hineingeklappt werden 
(siehe meine Bänderanalyse des Rechtecks weiter oben).

Bei einer vollständigen Bandlimitierung durch Verwendung solcher 
bandlimitierter Methoden ist der Nutzbereich Null, d.h. der 
interessanteste Teil der analogen Filter wird gar nicht 
angestoßen/verwendet. Als Beispiel kann man sich mal den Klang der 
Software-Emulationen bzw, der FPGA-basierten Emulationen anhören, die 
einige Hersteller von ihren früheren analogen Synthesizern auf den Markt 
gebracht haben. Bei geringem Verzerrungsgrad erhält man einen Tiger ohne 
Krallen und bei starkem Einsatz der Filter wird es unangenehm zerrig.

von Audiomann (Gast)


Lesenswert?

yello8247 schrieb:
> Was aber nun hat die Abtastung und das Abtasttheorem von Shannon bei
> einer Signalerzeugung (Oszillator) zu tun ????? :oops:
> Da wird das gewünschte Signal ja nicht abgetastet sondern direkt mit
> entsprechenden Algorithmen erzeugt rsp. die nötigen Sampels pro Perioden
> werden ja bestimmt gesetzt und können nicht durch aliasing plötzlich
> verschwinden und somit das Signal verfälschen.
Es ist nicht so, dass "die Frequenzen durch Aliasing verschwinden", 
sondern welche auftauchen. Solange es sich um einen echten Oszillator 
handelt, der wie ein analoger Sinusgenerator arbeitet, gibt es immer 
eine Schwingung deren Frequenz kleiner ist, als die Abtastfrequenz. 
Damit ergeben sich nur Probleme, einen entsprechenden Filter zu 
konstruieren, der bei hohen Frequenzen in der Nähe der 
Shannon-Nyquist-Frequenz wenig schwebt und überschwingt. Ansonsten gibt 
es keine neuen Frequenzen.

Wenn aber ein sogenannter digitaler Oszillator wie bei einer digitalen 
PLL eingesetzt wird, dann springt der Wert beliebig zwischen -1 und 1 
und das gibt ein Rechteck mit Phasensprüngen und entsprechend 
assoziierte Oberwellen.

yello8247 schrieb:
> Offensichtlich enthält der Sägezahn Harmonische mit unendlich hoher
> Frequenz. Deshalb führt eine Abtastung zu erheblichem Aliasing, d.h.
> Frequenzen über fg werden auf Frequenzen unterhalb fg abgebildet. Dies
> führt zu”unsauberem“ Klang oder gar zu falscher Tonhöhe und kann nicht
> durch nachträgliche Filterung behoben werden.
Die Filterung muss natürlich VOR der Abtastung erfolgen. D.h. es wird 
ein Filter benötigt, der die Anstiegszeit so begrenzt, dass keine 
Frequenzen hindurch kommen, die nicht dargestellt werden können.

von Christoph M. (mchris)


Lesenswert?

Jürgen, du hast doch genügend Audiobeispiele, die du posten könntest. 
Mich würde der hörbare Unterschied interessieren, ansonsten sind die 
Ausführungen zu theoretisch.

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Mach ich, wenn ich mal viel Zeit habe. Das Problem ist aber, Dinge zu 
vergleichen, die nicht gleich sind. Man müsste erst einmal das Szenario 
definieren, wie ein Modell gebaut ist, das mit bandlimitierten Wellen 
operiert und im Vergleich dazu, eines mit nicht bandlimitierten. Die 
Restschaltung nimmt ja auch die eine oder andere Form jeweils Rücksicht 
und die Argumentation der BLEP-Verfechter ist, dass sie eben auch die 
Artefakte mitmodellieren und zwar die, die sich möchten. Und: jeder 
Filter verändert sich anders.

Eine Gegenüberstellung kann man aber mal machen. Allerdings müssen das 
dann auch hochaufgelöste WAVs sein und keine MP3s.

von Nathan der Weise (Gast)


Lesenswert?

Alexander L. schrieb:
> Ein normaler TP-Filter würde zwar Abhilfe schaffen, aber gleichzeitig
> die Signalform stark ändern. Dies geschieht aufgrund des
> Amplitudenganges, bei dem schon die niedrigen Frequenzen gedämpft
> werden.

Auch wenn die Rückfrage auf eine sehr alte Frage erfolgt, könnte sie 
jemand der Experten eventuell beantworten:

Wie ist das zu verstehen, dass die Signalform deformiert wird? Es wäre 
doch der Sinn, die Signalform zu ändern, wenigstens für die Frequenzen, 
die später alias-Frequenzen werden. Und das macht doch ein 
Tiefpassfilter, oder?

Angenommen ich möchte 1.2kHz gut erfassen und benutze ein Filter mit 
1.5kHz Grenzfrequenz. Werden dann Frequenzen tiefer beeinflusst?

Jürgen S. schrieb:
> Nimmt man das Oberwellenspekrum eines 1kHz-Rechtecks, dann liegen
> zwischen 15kHz und Unendlich fast 40% der Energie
Wie rechnet sich das? Amplitudenwerte zusammenzählen?

von Bernd (Gast)


Lesenswert?

Nathan der Weise schrieb:
> Angenommen ich möchte 1.2kHz gut erfassen und benutze ein Filter mit
> 1.5kHz Grenzfrequenz. Werden dann Frequenzen tiefer beeinflusst?
Ja. Bei der Grenzfrequenz von der Amplitude noch 70% da (Definition). Je 
nach Filterordnung reduziert es die Amplitude und verdreht dir die Phase 
schon bei deutlich niedrigeren Frequenzen...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.