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
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
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
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
>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
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
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
>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 :)
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.
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
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
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
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.
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 :-)
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.
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.
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.
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.
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.
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!
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.
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.
**********************************************************************
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.
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.
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.
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.
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?
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...