Forum: Digitale Signalverarbeitung / DSP / Machine Learning Nicht-Sinus DDS


von Schnoer' (Gast)


Lesenswert?

Werte Gemeinde,

ich beschäftige mich im Augenblick mit der ressourcenschonenden Synthese 
von nicht sinusförmigen Signalen.
Mein erster Ansatz ist eine DDS mit dem Sonderfall einer 
Rechteckschwingung die durch
definiert ist.
Ich habe zwei Fragen zu folgendem Gedankengang:
Meiner Ansicht nach ist es notwendig eine obere Grenze N zu definieren 
die verhindert, dass das Abtasttheorem verletzt wird. Zu summierende 
Teilschwingungen sollen also kleiner als Fs/2 gehalten werden.
Ich sehe keinen Weg ein allgemeingültiges N zu finden, dass nicht nur 
Schwingungen im Umfang einer Duodezime zulässt.
Würde man in der Praxis, eine alle vollständige Rechteckschwingung 
benutzen und durch einen Tiefpass ein überschreiten von Fs/2 verhindern? 
Da hier nur zwischen zwei Werten alterniert wird, schätze ich kann man 
das Konstrukt stark vereinfachen kann?
Ich hänge an der Überlegung fest, dass es streng genommen nicht das 
selbe ist einen Tiefpass auf ein unterabgetastes Signal anzuwenden oder 
dieses Signal aus Teiltönen zusammenzusetzen.

Herzlichen Dank für alle Hinweise und die nun folgenden freundlichen 
Worte

von Bastler (Gast)


Lesenswert?

Das schöne an DDS ist doch, daß man den gewünschten Kurvenverlauf 
einfach in die LUT schreibt. Also bei Rechteck die Hälfte mit MAX und 
die andere mit MIN.
 Normalerweise hat man eine konkrete Vorstellung, wie die Kurve aussieht 
und macht die Zerlegung in Sinus um die max. Frequenz (bei bestimmte, 
minimaler Amplitude) zu bekommen.

von Schnoer' (Gast)


Lesenswert?

Vielen dank Bastler!

Bastler schrieb:
> Das schöne an DDS ist doch, daß man den gewünschten Kurvenverlauf
> einfach in die LUT schreibt. Also bei Rechteck die Hälfte mit MAX und
> die andere mit MIN.

Dann müsste Fs unendlich groß sein um das Abtasttheorem nicht zu 
verletzten, denke ich?

Bastler schrieb:
> Normalerweise hat man eine konkrete Vorstellung, wie die Kurve aussieht
> und macht die Zerlegung in Sinus um die max. Frequenz (bei bestimmte,
> minimaler Amplitude) zu bekommen.
Das verstehe ich nicht.

von Gerd P. (litart)


Lesenswert?

Hallo Schnoer,

vollkommen richtig, ein bischen Theorie - z.B. zur Fouriersynthese - 
kann nicht schaden ...

Nur leider ist die Umsetzung theoretischer Betrachtungen in technisch 
machbare Ergebnisse nicht immer einfach, manchmal sogar unmöglich. 
Besonders wenn es um Grenzwertprozesse oder infinitesimal kleine 
Iterationen geht. Das ist eine Wissenschaft für sich. Die technischen 
Realisationen unterscheiden sich häufig erheblich von den theoretischen 
Ansätzen.

Bastler hat schon einen Ansatz gebracht: Versuche möglichst nicht die 
Aufgabe vom theoretischen Ansatz auf eine Realisierung herabzubrechen, 
sondern baue mit den verfügbaren Bausteinen (sei es nun Soft- oder 
Hardware) Deine gewünschte Lösung.
Du wirst hier an andere Grenzen stoßen, diese heisse es zu erkennen.
Genau das ist die Arbeit die fast alle in diesem Forum leisten und wobei 
sie Dir helfen können.

Viele Grüße
Gerd

von chris_ (Gast)


Lesenswert?

Schnoer' ist da aber auf ein Problem gestoßen, was durchaus praktische 
Relevanz hat.
Ich habe einige Versuche mit DDS und Rechteckschwingung gemacht. Es kann 
durch die DDS zu Schwebungen kommen, die man hört. Das klingt dann 
irgendwie unsauber.

von abcd (Gast)


Lesenswert?

Schnoer' schrieb:
> Dann müsste Fs unendlich groß sein um das Abtasttheorem nicht zu
> verletzten, denke ich?

Nein. Die LUT ist ja schon im Diskreten. Dort kannst Du reinschreiben 
was Du willst und das Abtasttheorem wird nie verletzt werden. Erst wenn 
Du das Diskrete Signal dann wieder in ein kontinuierliches Signal 
umwandelst, wirst Du feststellen, dass Du eben keine Frequenzen über 
FS/2 haben wirst. Bei einem Rechtecksignal, das in der LUT noch schön 
perfekt aussah, wirst Du dann im Kontinuierlichen vermutlich ein paar 
Ripple sehen.

von Schnoer' (Gast)


Lesenswert?

Uih, schon so viele Antworten und gute Gedanken. Herzlichen Dank

abcd schrieb:
> Nein. Die LUT ist ja schon im Diskreten. Dort kannst Du reinschreiben
> was Du willst und das Abtasttheorem wird nie verletzt werden. Erst wenn
> Du das Diskrete Signal dann wieder in ein kontinuierliches Signal
> umwandelst, wirst Du feststellen, dass Du eben keine Frequenzen über
> FS/2 haben wirst. Bei einem Rechtecksignal, das in der LUT noch schön
> perfekt aussah, wirst Du dann im Kontinuierlichen vermutlich ein paar
> Ripple sehen.

Was übersehe ich?
Ich gehe davon aus, dass zum derzeitigen Disskussionszeitpunkt eine LUT 
gemeint ist deren erste Hälfte die Werte MIN und deren zweite Hälfte die 
Werte Max aufweist.
Diese Werte würden also auch ausschließlich und ohne Zwischenwerte im 
Ausgang auftreten.
Wenn ich diese Werte in ein WavFile schreibe und FFTiere, erscheinen 
Frequenzanteile > Fs/2 unterhalb Fs/2. Ich denke, das würde man 
verhindern wollen.
Auch der Signalverlauf unterscheidet sich deutlich von, nach der oben 
angegebener Formel, diskret summierten Sinussen.

Gerd P. schrieb:
> Du wirst hier an andere Grenzen stoßen, diese heisse es zu erkennen.
> Genau das ist die Arbeit die fast alle in diesem Forum leisten und wobei
> sie Dir helfen können.

Vielen Dank für die Hilfe

von chris_ (Gast)


Lesenswert?

Hallo Schnoer',

meiner Ansicht nach lässt sich das Problem nicht exakt lösen. Der Fehler 
kann aber minimiert werden und zwar indem man ein LUT mit einer 
Abtastfrequenz höher als FS erzeugt.
Hat man z.B. eine Samplingfrequenz von 10kHz kann man eine LUT für 80kHz 
erzeugen ( also Faktor 8 höher ). Die LUT für die 80kHz ist keine reine 
Rechteckschwingung mehr, sondern muss mit einem TP-Filter auf FS/2 
bandbegrenzt werden.

1. Man erzeugt ein Rechtechteckschwingung x für 80kHz
2. Man speichert das gefilterte Signal y=FIR_TP(x) in der LUT
3. Die Schrittweite der DDS wird auf die 80kHz LUT angepasst

Das dürfte den hörbaren Audioeffekt ordentlich reduzieren.

von J. S. (engineer) Benutzerseite


Lesenswert?

Bei einem Rechteck oder irgendeiner anderen Funktion kommt man nicht 
über die Genauigkeit der diskreten Abtastfrequenz hinaus, wenn man das 
Ausgangssignal nicht analog filtert, weil nur ein Analogfilter, die 
Phasensprünge der DDS weich verteilen kann. Und genau deshalb nimmt man 
ja einen Sinus, weil man den entsprechend "hart" filtern kann, nämlich 
mit einer Grenzfrequenz kurz oberhalb der höchsten Zielfrequenz.

Eine Lösung für das Problem kann sein, den Sinus mit einem über ein TPF 
erzeugten BIAS-wert auszugeben und einen Komparator dranzuhängen. Dann 
hat man einen minimpierten Jitter und geringes Phasenrauschen.

Eine weitere Option, die ich mal in einem Synthesizer verwendet habe, 
war, mit dem Sinus die doppelte Frequenz zu erzeugen, diese zu filtern 
und dann zu ver-Rechtecken, indem sie auf einen Eingang rückgeführt 
wird. Das führt aufgrund der Asymmetrie zu nächst zu einem verzerrten 
d.c. Verhältnis, nach einem Herunterteilen um Faktor 2 war die Frequenz 
sehr stabil und hatte immer geglättete 50% d.c.

: Bearbeitet durch User
von C.E.S. (Gast)


Lesenswert?

Schnoer' schrieb:
> Dann müsste Fs unendlich groß sein um das Abtasttheorem nicht zu
> verletzten, denke ich?

Das muss sie für ein Rechteck sowieso.
Und wo steht in Stein gemeißelt, dass man das Abtasttheorem nicht 
verletzen darf. Man muss dabei lediglich wissen, was man tut.

von 'Schnoer (Gast)


Lesenswert?

Hallo und herzlichen dank fürs Mitdenken in die Runde!
Alles in allem bin ich verwundert darüber, dass durch lesen einiger 
Artikel und App Notes und Artikel bei mir bisher der Eindruck entstanden 
ist, dass es kein Problem darstellt alle möglichen Wellenformen durch 
die DDS darzustellen.

Bastler schrieb:
> Das schöne an DDS ist doch, daß man den gewünschten Kurvenverlauf
> einfach in die LUT schreibt

Ganz so trivial scheint es dennoch nicht zu sein.

die Aussage
Jürgen S. schrieb:
> Und genau deshalb nimmt man
> ja einen Sinus, weil man den entsprechend "hart" filtern kann

steht für mich im Widerspruch zu Bastlers Aussage.

Chris' Ansatz ist für mich nachvollziehbar und würde, denke ich meine 
ursprüngliche Frage

Schnoer' schrieb:
> Würde man in der Praxis, eine alle vollständige Rechteckschwingung
> benutzen und durch einen Tiefpass ein überschreiten von Fs/2 verhindern?
> Da hier nur zwischen zwei Werten alterniert wird, schätze ich kann man
> das Konstrukt stark vereinfachen kann?

ganz gut beantworten.

Jürgen S. schrieb:
> Eine weitere Option, die ich mal in einem Synthesizer verwendet habe,
> war, mit dem Sinus die doppelte Frequenz zu erzeugen, diese zu filtern
> und dann zu ver-Rechtecken, indem sie auf einen Eingang rückgeführt
> wird. Das führt aufgrund der Asymmetrie zu nächst zu einem verzerrten
> d.c. Verhältnis, nach einem Herunterteilen um Faktor 2 war die Frequenz
> sehr stabil und hatte immer geglättete 50% d.c.

Mit dem Ansatz werde ich bestimmt herumexperimentieren. Vielen Dank.

Jürgen S. schrieb:
> Bei einem Rechteck oder irgendeiner anderen Funktion kommt man nicht
> über die Genauigkeit der diskreten Abtastfrequenz hinaus, wenn man das
> Ausgangssignal nicht analog filtert, weil nur ein Analogfilter, die
> Phasensprünge der DDS weich verteilen kann.

Du meinst das Rekursionsfilter bei der D/A Wandlung?
Ich denke an den Fall der Erzeugung, zum Beispiel eines Wave Files.

C.E.S. schrieb:
> Schnoer' schrieb:
>> Dann müsste Fs unendlich groß sein um das Abtasttheorem nicht zu
>> verletzten, denke ich?
>
> Das muss sie für ein Rechteck sowieso.
> Und wo steht in Stein gemeißelt, dass man das Abtasttheorem nicht
> verletzen darf.

Ich habe es zumindest in der Frage mit

Schnoer' schrieb:
> Mein erster Ansatz ist eine DDS mit dem Sonderfall einer
> Rechteckschwingung die durch [Formel s.o.] definiert ist.

und

Schnoer' schrieb:
> Zu summierende
> Teilschwingungen sollen also kleiner als Fs/2 gehalten werden.

impliziert.

C.E.S. schrieb:
> Man muss dabei lediglich wissen, was man tut.

Du weißt es offensichtlich?
Wie würdest Du die Frage beantworten, ob es möglich ist ohne Filterung 
ein Rechtecksignal zu erzeugen, dass nur ungeradzahlig, ganzzahlige 
Vielfache seiner Grundschwingung enthält?

von Bastler (Gast)


Lesenswert?

Ich hab ja nicht behauptet, das ein Rechteck im LUT auch nach dem Filter 
exakt so aussieht. Denn dazu bräuchte man ja eine gegen unendlich 
gehende Grenzfrequenz.
Wenn ich alternierend MIN und MAX in eine 1000 LUT eintrage und diese 
mit 10Mhz abtaste, habe ich dann einen 5Ghz Sinus? Sicher nicht, denn 
ich würde ja max 5Mhz (besser weniger) durch den Filter lassen.
Beliebige Form eintragen sollte bedeuten, ich brauch für ein Dreieck 
oder einen Sägezahn keinen Fourier bemühen, ich kann die Form einfach 
reinschreiben. Die Ecken beider Kurven haben natürlich wieder das 
Unendlichkeits-Problem, aber das hat technisch keine Bedeutung, weil 
jede Anwendung ihre Frequenzbereich hat.
Aber ich hab's einfach mit meinem 20Mhz Oszi aus den frühen 80ern. 
Außerdem höre ich auch keine 20khz mehr. Also bitte etwas Nachsicht.

von chris_ (Gast)


Lesenswert?

Eine gute Naeherung waere den Abtastwert an der Flanke mit Hilfe des 
Nachkommanteils des Phasenakkumaltors linear interpolieren.

von J. S. (engineer) Benutzerseite


Lesenswert?

C.E.S. schrieb:
> Und wo steht in Stein gemeißelt, dass man das Abtasttheorem nicht
> verletzen darf.
Sobald man die überschreitet, erhält man Spiegelfrequenzen und das sind 
im Einzelnfall sehr niederfreqente, die sich als drift niederschlagen.

'Schnoer schrieb:
> steht für mich im Widerspruch zu Bastlers Aussage.
Nun ja: 2 Aussagen, 2 Ziele. Das Ziel bei der Rekonstruktion ist 
eigentlich, alle Oberwellen möglichst zu eliminieren. Damit 
herumzuspielen ist ein anderer Ansatz. Wie ich an anderer Stelle schon 
ausgeführt habe, lassen sich da freilich gezielte Oberwellen 
herauspräparieren, aber die dafür nötige Filterung muss der Frequenz 
angepasst werden.

'Schnoer schrieb:
> Du meinst das Rekursionsfilter bei der D/A Wandlung?
"Rekonstruktionfilter"

von chris_ (Gast)


Lesenswert?

Da mir das Thema interessant erscheint, habe ich ein wenig angefangen zu 
experimentieren. Hier finden sich zwei DDS Rechtecksignale als Wav-File. 
Beim zweiten File kann man den DDS-Fehler ziemlich gut hören:
http://hobby-roboter.de/forum/viewtopic.php?f=5&t=151

von chris_ (Gast)


Lesenswert?

>1. Man erzeugt ein Rechtechteckschwingung x für 80kHz
>2. Man speichert das gefilterte Signal y=FIR_TP(x) in der LUT
>3. Die Schrittweite der DDS wird auf die 80kHz LUT angepasst

Das Verfahren funktioniert leider nur für eine feste DDS-Frequenz, da 
sich mit einer Änderung der Abtastrate die Grenzfrequenz welche durch 
y=FIR_TP(x) gegeben ist, gleich mit verschiebt.

Ein Verfahren welches funktionieren würde, müsste die Flanken des 
Rechtecksignals detektieren und dann das gesampelte DDS-Signal der 
Flanke mit konstanter Frequenz abspielen.

Eine andere Möglichkeit wäre, eine bandbegrenzte Sprungfunktion mit 
hoher Abtastrate zu sampeln und zwei verschobene DDS-Signale zu 
erzeugen. Das Rechtecksignal ergibt sich dann aus der Subtraktion der 
beiden Signale.

Ausserdem wäre noch mein obiger Vorschlag:
>Eine gute Naeherung waere den Abtastwert an der Flanke mit Hilfe des
>Nachkommanteils des Phasenakkumaltors linear interpolieren.
Das erscheint mir auch noch viel versprechend.

von chris_ (Gast)


Lesenswert?

Juergen S. schrieb:
>Bei einem Rechteck oder irgendeiner anderen Funktion kommt man nicht
>über die Genauigkeit der diskreten Abtastfrequenz hinaus, wenn man das
>Ausgangssignal nicht analog filtert, weil nur ein Analogfilter, die
>Phasensprünge der DDS weich verteilen kann. Und

Das ist leider nicht ganz richtig.

>> http://hobby-roboter.de/forum/viewtopic.php?f=5&t=151 )
Hier habe ich ein 1100Hz Rechtecksignal mit folgender Signalkette 
erzeugt:

DDS-square wave with 64*8000Hz ==> sinc fir low pass with 4000Hz ==> 
subsampling to 8000Hz

Wie man im angehängten WAV-File hören kann, verschwinden die störenden 
DDS-Artifakte völlig. Damit ist gezeigt, dass eine geeigneter Algrithmus 
auf der Digitalen Seite des Abtastsystem funktioniert und eine 
eindeutige Verbesserung bringt.

von Sepp (Gast)


Lesenswert?

> Hier habe ich ein 1100Hz Rechtecksignal mit folgender Signalkette
> erzeugt:
>
> DDS-square wave with 64*8000Hz ==> sinc fir low pass with 4000Hz ==>
> subsampling to 8000Hz
>
> Wie man im angehängten WAV-File hören kann, verschwinden die störenden
> DDS-Artifakte völlig. Damit ist gezeigt, dass eine geeigneter Algrithmus
> auf der Digitalen Seite des Abtastsystem funktioniert und eine
> eindeutige Verbesserung bringt.

Stimmt. Funktioniert aber nur wenn man die gewünschte Frequenz beim 
Erstellen der Tabelle bereits kennt.

In der fertigen Tabelle einfach samples überspringen bzw. doppelt 
auslesen (der eigentliche Grund warum man das eigentlich macht) und 
danach fix Filtern reicht nicht. Es können trotzdem niederfrequente 
Schwingungen (=Schwebung) entstehen.

Für Frequenzen, welche nicht ganzzahlige Vielfache/Teiler der 
Tabellenlänge sind, sind unter Umständen andere Syntheseverfahren 
(Stichwort CORDIC: http://en.wikipedia.org/wiki/CORDIC) besser geeignet. 
Hängt halt von der Anwendung ab....

von W.S. (Gast)


Lesenswert?

Schnoer' schrieb:
> Dann müsste Fs unendlich groß sein um das Abtasttheorem nicht zu
> verletzten, denke ich?

Denkst du?

Also, rufe dir mal das Abtast-Theorem wieder ins Gedächtnis. Dabei wirst 
du feststellen, daß du selbiges mit einer Ausgabe nie und nimmer 
verletzen kannst - sondern lediglich manchmal nicht exakt das bekommst, 
was du haben willst.

Also, das DDS-Prinzip ist ja gerade das Ausgeben von Stützstellen in 
Abständen, die nicht zur auszugebenden Kurvenform in einem harmonischen 
Verhältnis stehen,  vulgo n*Taktperiode != Funktionsperiode

Sowas stellt man allgemeingültig so dar, daß man die gewünschte 
Kurvenform in einem Speicher vorhält und je nach Phasenwinkel einen 
Eintrag dieses Speichers ausgibt.

Natürlich ist die höchste ausgebbare Frequenz exakt die halbe 
Taktfrequenz - mehr als in jedem Takt den Ausgang komplett umdrehen geht 
einfach nicht. Irgendwelche weiteren Bedingungen für die Taktperiode 
gibt es nicht.

Also unterscheide bitte zwischen Abtastung (also A-->D) und Ausgabe 
(also D-->A). Das sind wirklich zwei verschiedene Dinge.

W.S.

von chris_ (Gast)


Lesenswert?

>Stimmt. Funktioniert aber nur wenn man die gewünschte Frequenz beim
>Erstellen der Tabelle bereits kennt.

Das entspricht aber nicht meiner vorgeschlagenen Realisierung. Dort ist 
die Tabelle konstant. Die erhöhte Genauigkeit kommt durch das UpSampling 
um den Faktor 64 und dann die Filterung mit dem SINC-Filter ( idealer 
Tiefpass ).
Der Nachteil an der Methode ist, dass man für jeden Abtastwert mit dem 
FIR-Filter filtern muss. Das ist bei Upsampling um den Faktor 64 etwas 
rechenaufwendig.

W.S. schrieb:
>Also, rufe dir mal das Abtast-Theorem wieder ins Gedächtnis. Dabei wirst
>du feststellen, daß du selbiges mit einer Ausgabe nie und nimmer
>verletzen kannst - sondern lediglich manchmal nicht exakt das bekommst,
>was du haben willst.

Er weiß aber exakt, was er haben will und in diesem Thread geht es 
darum, einen Weg dorthin zu finden.
Wir wollen z.B. eine Rechteckschwingung erzeugen, die wie eine 
Rechteckschwingung klingt.
Dass das funktioniert, kann man hören, wenn man den CD-Player 
einschaltet. Ein CD-Player kann eine für das Ohre hörbare 
Rechteckschwingung mit beliebiger Frequenz erzeugen wenn man die 
richtige CD einlegt.

von chris_ (Gast)


Lesenswert?

>Dass das funktioniert, kann man hören, wenn man den CD-Player
>einschaltet.

Oder wenn man die beiden DDS-Signale vergleicht, einmal mit und einmal 
ohne Upsampling:

http://www.hobby-roboter.de/forum/download/file.php?id=186
http://www.hobby-roboter.de/forum/download/file.php?id=189

von J. S. (engineer) Benutzerseite


Lesenswert?

chris_ schrieb:
> Juergen S. schrieb:
>>Bei einem Rechteck oder irgendeiner anderen Funktion kommt man nicht
>>über die Genauigkeit der diskreten Abtastfrequenz hinaus,
>
> Das ist leider nicht ganz richtig.
Doch, denn wie Du selber schreibst, liegt Deine Abtastfrequenz deutlich 
höher, als die erzeugte Frequenz. Die Granularität der Phase ist dabei 
bestimmend für die maximale Auflösung Deines Rechtecks. Genauer wird es 
nur, wenn die Phase durch ein Filter interpoliert wird und 
Zwischenzustände erreichen kann.

von W.S. (Gast)


Lesenswert?

CD-Player hin oder her.. Das ist egal. Wenn man nur genügend 
Stützstellen pro Periode des gewünschten Signals vorsieht, dann kann man 
selbiges auch beliebig genau abbilden. Das ist doch von Anfang an völlig 
klar gewesen.

Der Weg dorthin führt jedoch nicht über irgend einen in geschlossenen 
Formeln darstellbaren Weg wo in Echtzeit berechnet werden muß, sondern 
schlicht über Tabellen im Speicher, wo der gewünschte Kurvenverlauf 
gespeichert ist. Ob das nun ROM oder RAM ist, sei hier dahingestellt.

Mit der Tabellenvariante haben wir die Möglichkeit zu beliebeigen 
willkürlichen Kurvenformen und damit eben auch zu allen nicht 
sinusförmigen Formen. Alles Andere ist nur eine Frage des getriebenen 
Aufwandes in der Hardware, aber keine Frage von Abtast-Theorem oder 
analytischer Darstellbarkeit.

Haben wir's nun?

W.S.

von chris_ (Gast)


Lesenswert?

Hmm ... vielleicht reden wir über unterschiedliche Dinge, deshalb will 
ich versuchen, die Aufgabenstellung so wie ich sie verstanden habe, zu 
beschreiben:

Gegeben sei folgendes System:

Mikroctontroller ==> DAC ==> Anti-Aliasing Filter ==> Ausgangssignal y

Der Mikrocontroller soll den DAC so ansteuern, dass das Signal y 
rechteckförmig wird.

von W.S. (Gast)


Lesenswert?

chris_ schrieb:
> Der Mikrocontroller soll den DAC so ansteuern, dass das Signal y
> rechteckförmig wird.

Wie bitte?????

Und deswegen zergrübeln wir uns hier sämtliche Köpfe..

Port hi
warten
Port lo
warten

W.S.

von Michael W. (Gast)


Lesenswert?

W.S. schrieb:
> Und deswegen zergrübeln wir uns hier sämtliche Köpfe..

Naja, so einfach geht es wohl nicht. Der Fragesteller hat eine Tabelle 
der Kurvenform hinterlegt. Je nach Frequenz erhält man damit ein 
zeitdiskretes Signal, welches einer abgetasteten Version des 
"Soll-Signals" entspricht. Wird die Signalfrequenz höher, so werden die 
Samplingpunkte dünner. Man kann sich nicht erwarten, dass man, wenn auf 
jeder Halbwelle eines Rechtecks nur mehr ein einzelner Abtastwert liegt, 
das nachgeschaltete Tiefpassfilter wieder genau das Sollsignal ergibt. 
Man stelle sich vor, das gewünschte Signal sei ein Sinus, der nur mehr 
zwei mal pro Periode abgetastet wird: Ein ideales Rekonstruktionsfilter 
wird hier einen Sinus ergeben, aber wenn man dann auch noch Oberwellen 
möchte, wie sie in einem Rechteck drin sind, kann eine 100% 
Rekonstruktion nicht mehr funktionieren. Denn natürlich spielt das 
Abtasttheorem hier eine Rolle, auch wenn keine eigentliche Abtastung 
vorliegt, sondern das "abgetastete" Signal durch die LUP generiert wird.

Oder habe ich hier etwas falsch verstanden?

von J. S. (engineer) Benutzerseite


Lesenswert?

Michael W. schrieb:
> Oder habe ich hier etwas falsch verstanden?

Nein, Du hast das Problem exakt beschrieben. Solange die Auflösung der 
Systemfrequenz fein genug ist, das Rechteck direkt zu erzeugen, reicht 
das oberste Bit der DDS. Das versagt, wenn die Frequenz steigt. Es 
entsteht ein Jitter und ein digitales Phasenrauschen. Beides ist nur zu 
"tunneln" indem ein Sinus generiert wird, welcher möglichst gut 
gefiltert wird und der dann theoretisch beliebige Phasen haben kann und 
sich im Mittel auf d.c. 50% einstellt. Diese Signal muss dann in ein 
Rechteck umgewandelt werden. Das geht dann nur durch erneutes Abtasten 
mit einem Schmitttrigger-Eingang mit u.U. vorgeschalteten 
Symmetrierglied, das den lokalen Signaloffset reduziert und dafür sorgt, 
dass wirklich 50% d.c. entstehen.

: Bearbeitet durch User
von chris_ (Gast)


Lesenswert?

>Oder habe ich hier etwas falsch verstanden?

Meiner Meinung nach hast Du es richtig verstanden.

Vielleicht war die Aufgabenstellung oben noch nicht präzise genug 
formuliert.

Der Mikrocontroller im oben erwähnten System

Mikroctontroller ==> DAC ==> Anti-Aliasing Filter ==> Ausgangssignal y

soll die Daten mit einer konstanten Rate wie z.B. 8kHz aktualisieren.

Damit lassen sich z.B. Sinussignale bis zu 4kHz erzeugen.

Die Aufgabe lautet also z.B.:

Erzeuge mit einer gegebenen Abtastrate von 8kHz ein bandbegrenztes 
Rechtecksignal.

an W.S.: wie machst Du das mit diesem System?

Der TO oben hat aber als Beispiel eine Rechtecksignal mit einer 
unendlichen Bandbreite verwendet weil das als Beispielsignal relativ 
einfach zu verstehen ist. Das Ausgangssignal y hat natürlich eine 
begrenzte Bandbreite.

von chris_ (Gast)


Angehängte Dateien:

Lesenswert?

Hier habe ich ein Rechtecksignal mit 1kHz erzeugt und als wav-File mit 
Fs=8kHz abgelegt. Man kann es sich herunterladen und anhören:

http://www.hobby-roboter.de/forum/download/file.php?id=186

Das mit Audacity analysierte Spektrum sieht dann wie das Bild oben aus.
Es ist das Spektrum eines idealen Rechtecksignals.

von chris_ (Gast)


Angehängte Dateien:

Lesenswert?

Das Signal im vorigen Post wurde mit Hilfe einer DDS erzeugt.
Gibt man aber 1100Hz statt 1kHz für die Rechteckfrequenz vor, sieht das 
Spektrum nicht mehr so sauber aus und der Ton hört sich auch nicht mehr 
so gut an:

http://www.hobby-roboter.de/forum/download/file.php?id=186

von chris_ (Gast)


Lesenswert?

Die Frage ist also, wie kann man die DDS so erweitern, damit bei 8kHz 
Abtastfrequenz wieder ein sauberes Spektrum entsteht.

von Paul B. (Gast)


Lesenswert?

Was du da siehst sind die Spiegelfrequenzen, die sich aus der 
Interferenz der Abtastrate mit der Endfrequenz ergeben. Wenn Du einen 
Sinus erzeugen würdest, bekämst du nach einem Filter mit z.B. 1,5kHz 
Grenzfrequenz nur die Frequenzen rund um die 1100Hz. Die anderen wären 
sehr gering.

Willst Du in der Tat ein 1100 Hz-Rechteck erzeugen, musst du entweder 
die Abtastfrequenz auf 8800 Hz erhöhen oder die Tabelle um etwa 10% 
verkürzen.

von chris_ (Gast)



Lesenswert?

>Willst Du in der Tat ein 1100 Hz-Rechteck erzeugen, musst du entweder
>die Abtastfrequenz auf 8800 Hz erhöhen oder die Tabelle um etwa 10%
>verkürzen.

Oder die DDS mit einem geeigneten Verfahren erweitern, damit es auch bei 
8kHz noch funktioniert.
Im Bild sind damit die Spiegelfrequenzen stark reduziert und der Sound 
hört sich wieder klar an:

http://www.hobby-roboter.de/forum/download/file.php?id=189

Man könnte die Spiegelfrequenzen noch weiter unterdrücken, das hätte mir 
bei der einfachen Methode aber zu viel Rechenzeit gekostet.

von chris_ (Gast)


Lesenswert?

Vielleicht ist ein konkretes Anwendungsbeispiel ganz nützlich.
Man kann versuchen, einen SID  auf einem Atmega8 zu realisieren.

SID = C64 sound chip, eine Art Synthesizer
http://www.waitingforfriday.com/index.php/Commodore_SID_6581_Datasheet

Der Chip enthält 3 Tongeneratoren Dreieck, Sägezahn, Rechteck die am 
Ausgang noch über einen Filter geleitet werden können.

Das DDS Verfahren bietet sich für die Realisierung an, führt aber zu den 
oben genannten Problemen. Es wäre dort schön, wenn man eine Möglichkeit 
findet, trotz der beschränken Rechenleistung des Atmega8 Tongeneratoren 
mit gutem Klang zu programmieren.

von J. S. (engineer) Benutzerseite


Lesenswert?

chris_ schrieb:
> Das DDS Verfahren bietet sich für die Realisierung an, führt aber zu den
> oben genannten Problemen. Es wäre dort schön, wenn man eine Möglichkeit
> findet, trotz der beschränken Rechenleistung des Atmega8 Tongeneratoren
> mit gutem Klang zu programmieren.
Da würde ich aber dann nach Möglichkeit HW-Timer verwenden.
Soll es wirklich DDS sein, dann kann man das so machen, dass wie oben 
schon angedeutet, die DDS einen Sinus macht - gfs einen sehr einfachen 
mit ver-n-fachter Frequenz, das auf einen Ausgangspin legt, an dem ein 
Doppel-T-Filter hängt und einen sauberen Sinus baut, welher über einen 
Schmitt-Trigger wieder auf einen Eingang geht. Der zeigt dann dann einen 
frequenzgenaues Rechteck, das man runterteilen kann.

Oder  man geht den Weg und verwendet die reine Stimmung und nutzt 
ganzzahlige Teiler.

von chris_ (Gast)


Lesenswert?

>Da würde ich aber dann nach Möglichkeit HW-Timer verwenden.
Das würde bei einer SID-Emulation nicht gehen, weil hinter den 
Tongeneratoren noch ein Filter implementiert werden muss. Der Filter ist 
verstimmbar und es macht deshalb Sinn, diesen Filter auch digital zu 
realisieren.
Die Theorie der Signalverarbeitung erlaubt es, das System rein digital 
zu realisieren ( bis auf den DAC und den Anti-Aliasing Filter natürlich 
).

Es ist die Herausforderung, diese Realisierung zu finden

Der Satz im ersten Post von Schnoer deutet für mich darauf hin, dass das 
sein Ziel war:
Schnoer schrieb:
>ich beschäftige mich im Augenblick mit der ressourcenschonenden Synthese
>von nicht sinusförmigen Signalen.

Was ich meiner Meinung nach mit den Spektren und den Beispielsignalen 
hoffentlich gezeigt habe:
Die Synthese der Signale mittels DDS ist fehlerbehaftet und es gibt 
digitale Verfahren, diese Fehler zu minimieren.

von chris_ (Gast)


Lesenswert?

Hier noch ein schönes Beispiel, was ein SID konnte:

http://sid.kubarth.com/sids/003_X-Out_PSID.sid
X-Out
Michael Hendriks
1989 Rainbow Arts

von J. S. (engineer) Benutzerseite



Lesenswert?

Hier habe ich mit Excel kurz eine Simulation angefertig, die den 
Sachverhalt verdeutlicht:

Ein 5 Bit Phasenvektor wird mit statischem (oben) sowie steigendem 
Vortrieb (unten) hochgezählt und der Sinus aus einer 4-Bit Tabelle 
(-15...15) abgelesen und gespiegelt.

Es entsteht der dunkelblaue schlechte Sinus, der auch als Rechteck nicht 
mehr zu gebrauchen ist.

Durch zwei IIR-Filter erster Orndung, die zwei RC-Gliedern entsprechen, 
entstehen die blaue und die türkise Kurve.

Diese wird rückgespeist und erzeugt ein Rechteck, welches sehr stabil 
ist und Nulldurchgänge an Stellen hat, die nicht den diskreten 
Taktzeitpunkten entsprechen.

Ein Doppel-T ist nicht gerade der Superfilter, eine BIAS-Korrektur ist 
nicht drin und zudem erfolgt die Berechnung nur mit 100facher 
Überabtastung, d.h. die "Analogwerte" sind auch noch diskret.

Trotzdem ist das Rechteck sauber und es funktioniert sogar der Sweep, 
der als Rohdaten sowohl starken Jitter, als auch eine Schwebung 
aufzeigt.

von chris_ (Gast)


Angehängte Dateien:

Lesenswert?

>Trotzdem ist das Rechteck sauber und es funktioniert sogar der Sweep,

Sieht schön aus :-)

Jetzt sollten wir es einmal mit einem Sägezahn probieren ;-)

von chris_ (Gast)


Lesenswert?

Hier noch zwei Sägezahnsweeps von 100Hz bis 1000Hz, damit das ganze 
nicht zu theoretisch bleibt:
http://hobby-roboter.de/forum/download/file.php?id=190
Die mit einer gewöhnlichen DDS erzeugte Version hört sich wesentlich 
schlechter an als die erweiterte Version.
Beide sind mit Fs=8kHz.

von J. S. (engineer) Benutzerseite



Lesenswert?

chris_ schrieb:
> Jetzt sollten wir es einmal mit einem Sägezahn probieren ;-)

Bitte sehr. Diesmal wird das Rechteck vor der Bildung noch etwas 
symmetriert (Komparator, der den zweifach gefilterten Sinus mit einer 
nochmals stark tiefpassgefilterten Version dieses Sinus vergleicht) und 
auf einen Aufwärts-Abwärtsintegrator gegeben. Damit wird die Frequenz 
halbiert. Das ist nötig, weil das Dreieick sonst wegläuft. Ein Sägezahn 
läuft entsprechend mit Reset und der vollen Frequenz. So funktioniert es 
bis zu etwa 0,4 fs, bei FPGAs also durchaus bis z.B. 50MHz Das Dreieck 
ist dann so gut, wie die jeweilige Analogelektronik zulässt.

Will man das digital machen, muss man den Ausgang auf einen Eingang 
zurückführen und einen Zähler anwerfen, der dann die Stufigkeit, also 
die Präzision des Dreiecks bestimmt. Bei 10 bit und geschickter 
Amplitudenkorrektur sind mit 50 MHz Eingang etwa 25kHz 
Ausgangsgrundfrequenz möglich - als Dreieck im Ultraschallbereich. Für 
geringe Frequenzen im Audiobereich, wenn die höchste Oberwelle des 
Dreiecks nur noch 20kHz betragen muss, nimmt man logischerweise nur den 
ursprünglichen Zähler der DDS.

von J. S. (engineer) Benutzerseite


Lesenswert?

chris_ schrieb:
> Die mit einer gewöhnlichen DDS erzeugte Version hört sich wesentlich
> schlechter an als die erweiterte Version.
Kommt eben darauf an, wie die erzeugt wurde. Mit einer einstufigen DDS 
ist schnell Ende mit der Auflösung, vor allem wenn man krumme Frequenzen 
darstellen will. Bei einem FPGA kann man die Frequenz künstlich 
strechen, wie ich hier beschrieben habe:

Beitrag "Re: Frequenzumsetzer 1000 : 999"

Wenn man einen Microcontroller nutzt, ist es besser, man macht es 
zweistufig und benutzt einen für die DDS-basierte Frequenzsynthese 
(Sinus) und den anderen für die Wellenform. Dann kann man jede beliebige 
Wellenformen hinterlegen und ziemlich sauber abspielen.

Beitrag "Re: Universell programmierbarer DDS-Funktionsgenerator"

von chris_ (Gast)


Lesenswert?

Nur der Korrektheit halber ... zwischen Dreieck- und Sägezahnschwingung 
gibt es einen Unterschied:

http://de.wikipedia.org/wiki/Kippschwingung

von Paul B. (Gast)


Lesenswert?

chris_ schrieb:
> Hier habe ich ein 1100Hz Rechtecksignal mit folgender Signalkette
> erzeugt:
>
> DDS-square wave with 64*8000Hz ==> sinc fir low pass with 4000Hz ==>
> subsampling to 8000Hz
>
> Wie man im angehängten WAV-File hören kann, verschwinden die störenden
> DDS-Artifakte völlig.

Könntest Du bitte nochmal verdeutlichen, wie genau Deine Signalkette 
aussieht. Nach dem Satz in Deinem Beitrag arbeitest Du mit 64x8k = 
520kHz.

Ist das die Frequenz, auf der Deine FIR läuft?

Wie passt das mit der Forderung zu sammen, dass ein uc das machen soll?

von chris_ (Gast)


Lesenswert?

Hallo Frank,

die von mir geposteten WAV-Files haben eine Abtastfrequenz von 8kHz.
Sollte ein Mikrocontroller eine Signal mit 8kHz erzeugen können?

Hier hatte ich mehrere Ansätze vorgeschlagen:
Beitrag "Re: Nicht-Sinus DDS"

Vielleicht fällt Dir auch noch eine gute Methode ein, das würde mich 
sehr freuen, weil ich ein Verfahren auch gerne mal auf einem MC umsetzen 
würde. Bis jetzt sind es nur Matlab-Simulationen.

von J. S. (engineer) Benutzerseite


Lesenswert?

chris_ schrieb:
> Bis jetzt sind es nur Matlab-Simulationen.
Das scheint mir ein bischen der Kanckpunkt der Angelegenheit zu sein. 
Auf welches Rekonstruktionsfilter hin sind denn die Wellen optimiert?

Denn das ist es, was Du mit der digitalen Vorverarbeitung machst: Du 
limitierst die Bandbreiten so, dass störende Frequenzen oberhalb der 
späteren Fs wegoptimiert werden und gleichzeitig das Signal innerhalb 
des Abspielbereiches beim Audio/der SOundkarte noch "rechteckig ist".

Das ist natürlich logisch, dass ein so vorbereitetes Signal besser 
klingt, nur wird die Methode so langsam aber sicher versagen, wenn die 
fs steigt und kein headroom mehr besteht. Zudem brauchst Du eine für das 
Endsignal optimierte Tabelle.

Wenn Du das ganz zielführend machen willst, brauchst Du die umgekehrte 
Laplacetransformierte des Filters und des Einspeisesignals und kannst 
dann erste so optimieren, dass das Rechteck den gewünschten 
Verhältnissen entspricht. Das wird aber so oder so immer eine 
Insellösung bleiben, da sie für andere Wellenformen und Frequenzen 
sofort versagt, denn der statistisch günstigste, weil fehlerärmste Fall 
für jede Signalform unterhalb Fs ist nun mal die Linearität, also gar 
kein Filter :-)

Wenn es aber darum geht, ein echtes Rechteck zu beauen, ist es allemal 
einfacher, einen echen Rechteckgenerator zu nehmen, also einen 
hochsteilen Verstärker, der von einem Sinus gespeist wird. Damit ist wie 
gesagt jede Phase und Frequenz bis 0,4 fs gleichberechtigt und 
supersauber möglich.

Zurückkommend auf meine Eingangsfrage und die Anmerkung mit dem Filter 
in Matlab wäre es nämlich hier konkret so, dass Du ein 1,5kHz 
Rekonstruktionsfilter nehmen würdest, um den steuernden Sinus glatt zu 
bekommen und das dann extern erzeugte Rechteck untersuchst. So würde man 
das bauen, denn dieses Rechteck hat alle benötigten Oberwellen intus.

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


Lesenswert?

Zu Deiner Frage, wie man das verbessern könnte:

Angenommen, Du hast wirklich den Fall, dass Du mit einem DA-Wandler 
tatsächliche Rechtecke generieren willst. Dann wirst Du erstmal den 
AA-Filter am Ausgang des DACs weglassen, um das Bandbreitenlimit zu 
umgehen. Gleichzeitig reduzierst Du damit das Problem der 
Spiegelfrequenzen.

Wenn das nicht geht, muss der Linearitätsbereich ausgedehnt werden, 
indem ein Präsenzaspekt in den vorverzerrenden Filter imtegriert wird, 
also eine Anhebung des Frequenzbandes so, dass es dem auslaufenden 
AA-Filter entgegeben arbeitet.

von chris_ (Gast)


Lesenswert?

>Angenommen, Du hast wirklich den Fall, dass Du mit einem DA-Wandler
>tatsächliche Rechtecke generieren willst.

Genau darum habe ich oben genau hingeschrieben, um welche Art von System 
es sich in diesem Thread handeln soll, damit in der Diskussion keine 
Mißverständnisse aufkommen.

> Mikroctontroller ==> DAC ==> Anti-Aliasing Filter ==> Ausgangssignal y

Es soll in diesem Thread um Abtastsysteme gehen, wie man sie in 
Soundkarten, CD-Playern usw. findet.
Diese haben nun einmal einen Antialiasing Filter am Ausgang und können 
deshalb nur bandbegrenzte Signale erzeugen.
Wir sprechen in diesem Thread über die Erzeugung von nicht-sinusförmigen 
Signalen mittels DDS auf einem Abtastsystem

Michael W. (armeinsteiger) schrieb:
>http://www.analog.com/static/imported-files/tutorials/450968421DDS_Tutorial_rev12-2-99.pdf

Das Dokument ist sehr gut und verdeutlicht die Fehler der DDS um die es 
hier geht unter dem Stichpunkt "truncation"

von J. S. (engineer) Benutzerseite


Lesenswert?

chris_ schrieb:
> Das Dokument ist sehr gut und verdeutlicht die Fehler der DDS um die es
> hier geht unter dem Stichpunkt "truncation"

Die Thematik ist ja eigentlich hinlänglich bekannt und gerade das 
Abschneiden des Vektors durch die endliche Tabelle ist auch hier schon 
desöfteren erörtert worden. Mit einem optimierten Filter zur 
Vorverarbeitung der Signalform ist da aber nur wenig zu erzielen. Wenn 
muss es eine Nachbearbeitung des Signals bei der Erzeugung sein, wenn 
der Jitter entsteht, z.B. durch Dithering und/oder Interpolation.

Was mich nochmal interessieren würde:

Welche Einsatzgebiete / Applikationen siehst Du für solche Methoden?

von chris_ (Gast)


Lesenswert?

>Die Thematik ist ja eigentlich hinlänglich bekannt

Mit schien es nicht so, als wenn in diesem Thread jedem die Thematik 
hinlänglich bekannt ist.

Aber zurück zum Thema: "Der rechenzeiteffizienten Erzeugung von 
Nicht-Sinus Signalen wie z.B. Rechteck, Sägezahn, Dreieck usw. "

>Welche Einsatzgebiete / Applikationen siehst Du für solche Methoden?

Hier ist eine schöne Hardware auf der diese Art von Algorithmen laufen 
soll:
http://hackaday.io/list/2864-The-Hackaday-Prize%3A-Semifinalists

von chris_ (Gast)


Lesenswert?

Entschuldigung, das war der falsche Link. Hier der richtige:
http://hackaday.com/2014/06/14/an-arm-based-dsp-modelling-synth/

von chris_ (Gast)


Angehängte Dateien:

Lesenswert?

Der dsp-G1 ist ein ARM Cortex M0 LPC810 im 8 Pin Dip.

von J. S. (engineer) Benutzerseite


Lesenswert?

chris_ schrieb:
> Mit schien es nicht so, als wenn in diesem Thread jedem die Thematik
> hinlänglich bekannt ist.
Nunja, es gibt hier im Forum etliches dazu und wir haben derzeit 3 
Sinus-Threads parallel am Laufen :-)

von W.S. (Gast)


Lesenswert?

Jürgen S. schrieb:
> Die Thematik ist ja eigentlich hinlänglich bekannt und gerade das
> Abschneiden des Vektors durch die endliche Tabelle ist auch hier schon
> desöfteren erörtert worden. Mit einem optimierten Filter zur
> Vorverarbeitung der Signalform ist da aber nur wenig zu erzielen. Wenn
> muss es eine Nachbearbeitung des Signals bei der Erzeugung sein, wenn
> der Jitter entsteht, z.B. durch Dithering und/oder Interpolation.

Nanana..
Also, wie genau man eine Stützstelle ausgeben kann, ist natürlich eine 
Frage der Größe der Wertetabelle - sowohl in deren Amplituden-Bitbreite 
als auch in der schieren Anzahl der Stützstellen.

Aber eines ist klar: die Stützstelle, die gerade ausgegeben wird, ist 
wirklich exakt (im Rahmen der Bitbreite). Da kann man garnichts per 
Dithering ändern - und eine Interpolation gibt es per se nicht. Das 
würde ja bedeuten, daß man Zwischenschritte zwischen den zeitlich 
gegebenen Stützstellen hätte, was auf eine vervielfachte Taktfrequenz 
hinausliefe.

W.S.

von Marcus (Gast)


Lesenswert?

chris_ schrieb:
>> Der Mikrocontroller soll den DAC so ansteuern, dass das Signal y
>> rechteckförmig wird.

W.S.schrieb
> Wie bitte?????

> Und deswegen zergrübeln wir uns hier sämtliche Köpfe..

> Port hi
> warten
> Port lo
> warten

Bist Du Dir sicher, dass Du die Problematik schon vollständig erfasst 
hast?

von Erklärbär (Gast)


Lesenswert?

Marcus schrieb:
> Bist Du Dir sicher, dass Du die Problematik schon vollständig erfasst
> hast?
Die Frage habe ich mir auch gerade gestellt, als ich den Faden 
druchgegangen bin. Bit einem so bschriebenen Rechteck würde man nichts 
anderes machen können als eben dieses Rechteck und keine DDS-Funktion. 
Schon gar keine beliebige.

W.S. schrieb:
> Aber eines ist klar: die Stützstelle, die gerade ausgegeben wird, ist
> wirklich exakt (im Rahmen der Bitbreite).
Nein, weil die Phase, die zum Ablesen benutzt wird, vorher abgeschnitten 
werden muss, um auf die Adresse zu kommen.

> Da kann man garnichts per Dithering ändern
Doch, indem überabtastet wird und der Rund


> und eine Interpolation gibt es per se nicht. Das
> würde ja bedeuten, daß man Zwischenschritte zwischen den zeitlich
> gegebenen Stützstellen hätte,
Die hat man, denn das sind die vorher abgeschnittenen Kommastellen.

von chris_ (Gast)


Lesenswert?

Hallo Erklärbär,
meiner Meinung nach hast Du die Sache gut zusammengefasst und die Fehler 
von W.S. und Jürgen erklärt.

>> und eine Interpolation gibt es per se nicht. Das
>> würde ja bedeuten, daß man Zwischenschritte zwischen den zeitlich
>> gegebenen Stützstellen hätte,
>Die hat man, denn das sind die vorher abgeschnittenen Kommastellen.

Spitzfindig gesagt ist das eine lineare Interpolation. Vielleicht wären 
andere Interpolationen noch ein wenig besser. Aber leider halt auch 
rechenaufwendiger. Man müsste vielleicht mal verschiedene ausprobieren.

von W.S. (Gast)


Lesenswert?

Erklärbär schrieb:
> Bit einem so bschriebenen Rechteck würde man nichts
> anderes machen können als eben dieses Rechteck und keine DDS-Funktion.
> Schon gar keine beliebige.

Und genau dieses hat Chris ja geschrieben:
chris_ schrieb:
>> Der Mikrocontroller soll den DAC so ansteuern, dass das Signal y
>> rechteckförmig wird.

Wo ist hier irgend eine DDS-Funktionalität? Der DAC soll ein blankes 
Rechteck ausgeben - jedenfalls lese ich das aus seinen Worten.

Über die Granularität des Wartens zwischen den Ausgaben können wir uns 
ja noch unterhalten. Im Prinzip ist das aber nix anderes als die 
Diskussion über die Samples beim DDS. Dort haben wir eben auch ne 
Granularität in Form der Samplefrequenz, wo es feiner nicht geht. Es 
nützt auch nix, von irgendwelchem Dithering zu schwafeln, denn selbiges 
könnte ja frühestens in der nächsten Periode des zu erzeugenden Signale 
greifen und würde nur das Jitter erhöhen und keinerlei Nutzbeitrag 
liefern.

Erklärbär schrieb:
> Nein, weil die Phase, die zum Ablesen benutzt wird, vorher abgeschnitten
> werden muss, um auf die Adresse zu kommen.

Und? Auf dieser Adresse findet sich dann ein Wert, der per se ebenfalls 
abgeschnitten ist - sprich von endlicher Bitanzahl - und es macht 
überhaupt keinen Unterschied, daß da nun der Phasenwert auch nur mit 
endlicher Bitzahl eingeht. Du weißt doch noch, daß beim Übergang von 
DeltaX zu dx so ziemlich alles entweder konstant oder linear wird.

So, nun erkläre mal, WAS du hier dithern willst. Sowas wie 
'Überabtastung' lasse ich nicht gelten, schließlich haben wir immer eine 
Samplefrequenz, mit der die Amplitudenwerte ausgegeben werden und wenn 
man da Zwischenwerte haben will, muß man selbige eben erhöhen, anders 
geht es nicht. Wir reden von einer Ausgabe (also D-->A) und nicht von 
einer Abtastung (A-->D), gelle?

chris_ schrieb:
> Spitzfindig gesagt ist das eine lineare Interpolation.
Und das ist ein Unsinn. Bei einer Ausgabe von Werten in einem festen 
Zeitraster gibt es keine Interpolation, sondern nur die Ausgabe des zu 
dem im Raster leigenden Zeitpunkt gehörigen Wertes.

Wenn ich deinen Gedanken mal ausformuliere, dann heißt der so: Wir haben 
zwar den Zeitpunkt t zu dem eben der Wart Y(t) gehört, aber ich meine 
eigentlich einen anderen Zeitpunkt t+dt, wozu auch der Wert Y(t+dt) 
gehören würde, weil ich einen Restbetrag bei meiner Phasenrechnung habe.

Aber in Wirklichkeit haben wir tatsächlich den Zeitpunkt t und nicht 
den Zeitpunkt t+dt, weswegen auch eine Ausgabe von Y(t+dt) falsch wäre.

Klaro jetzt?

W.S.

von chris_ (Gast)


Lesenswert?

>Wo ist hier irgend eine DDS-Funktionalität? Der DAC soll ein blankes
>Rechteck ausgeben - jedenfalls lese ich das aus seinen Worten.

Da liegt Deine falsche Annahme.

Der DAC soll ein Signal ausgeben, dessen Spektrum nach dem Filter am 
Ausgang dem Spektrum eines Rechtecksignals entspricht.
( Die Bandbreite des "Rechtecksignals" ist natürlich durch den Filter 
begrenzt )

von J. S. (engineer) Benutzerseite


Lesenswert?

chris_ schrieb:
> Spitzfindig gesagt ist das eine lineare Interpolation.

Genau und zwar eine solche, wie ich sie weiter oben und auch hier
Beitrag "Re: DDS Grundlagenfrage"

... vorgeschlagen habe. Nur funktioniert das - anders, als Du es mit 
Deiner Vorverarbeitung tust - zur Laufzeit, also für alle auszugebenden 
Frequenzen und nicht nur für die, die Du während deines Vorprozessierens 
angenommen hast. Der FIR-Filter, den Du applizierst, ist nämlich nichts 
anderes, als eine solche Interpolation.

Richtig sauber geht es aber mit einer richtigen Interpolation und einem 
anti aliasing Filter am Ausgang.

Zu W.S.

Dass das Signal nach einer Interpolation nicht mehr rechteckig sein 
kann, ist augenscheinlich, aber

a) Ist dies dank des AA-Filters ohnehin nicht möglich und es stellt 
mithin einen Kompromiss bezüglich des Jitter-Themas dar

b) bezog sich mein Einwurf des Ditherns ausdrücklich auf den Fall der 
Erzeugung eines Rechtecks über den Umweg eines Sinus und eines 
Schalters, wie ich es oben in der Grafik simuliert habe (und wie man das 
auch machen würde, wenn es um ein tatsächliches Rechteck ginge).


Was die Erzeugung von "Rechtecken" innerhalb der von Audioband gesetzten 
Grenzen angeht, so ist der oben beschriebene Fall ja ein Sonderfall von 
Vielen:

Abtastung 8k, Zielfrequenz 1,1k Bandende geschätzt 20k.

Sicherlich kann man das in der beschriebenen Weise auf diese Frequenz 
hin optimieren, aber schon wenn die Bandgrenze verändert wird, muss sich 
auch das Signal ändern.

Letztlich läuft es darauf hinaus, dass in dem Bereich, in dem der 
Bandfilter beginnt, abzuschnüren, eine Präsenz gesetzt werden muss. 
Signalverarbeitungstechnisch läuft es auf eine Modifikation der 
FIR-Koeffienten hinaus, elektronisch gesehen, muss ein Hochpassfilter 
davor.

Dies führt praktisch zu einem overshoot der Wellenform gegenüber dem 
idealen Rechteck und damit zu scheinbar steileren Signalen - indirekt 
aber auch zu einem Verlust der maximal möglichen Amplitude, da man mehr 
headroom braucht.

Das macht aber praktisch kein Mensch, weil damit die gesamte 
Übertragungskennlinie des System weniger linear ist, was besonders in 
den Audiosystemen nicht erwünscht ist.

Sicher kann man damit das System etwas rechtecktauglicher machen, 
bezahlt aber an anderer Stelle dafür und daher müsste man zur 
Feinoptimierung die Randbedingungen genauer spezifizieren, was dann das 
"optimale" Rechteck sein soll.

Da man Rechtecke üblicherweise zum Schalten braucht, kommt es auf die 
Steilflankigkeit an und die ist nunmal durch die Bandbreite des 
AA-Filters absolut limitiert.

von chris_ (Gast)


Lesenswert?

Juergen S. schrieb
>Abtastung 8k, Zielfrequenz 1,1k Bandende geschätzt 20k.

>Sicherlich kann man das in der beschriebenen Weise auf diese Frequenz
>hin optimieren, aber schon wenn die Bandgrenze verändert wird, muss sich
>auch das Signal ändern.

Theoretisch ja, praktisch nein. Ich kann auch gerne ein fünf mal so 
langes Signal posten, der Anfang wird genau gleich wie beim alten Signal 
sein. Der Interpolationsfilter ist 400Taps lang ( was vermutlich schon 
viel zu viel ist ).

von W.S. (Gast)


Lesenswert?

chris_ schrieb:
> Da liegt Deine falsche Annahme.
>
> Der DAC soll ein Signal ausgeben, dessen Spektrum nach dem Filter am
> Ausgang dem Spektrum eines Rechtecksignals entspricht.

ACH?

Also mir ist klar: wenn nach einem Filter ein Rechteck herauskommen 
soll, dann hat es auch vor dem Filter ein Rechteck und das Filter ist 
ein simpler Draht.

Wir landen allen Verrenkungen zum Trotz immer wieder bei 
Port(hi)..Port(lo). Das ist die grundlegend Art, ein Rechtecksignal zu 
erzeugen, besser kriegt man es mit nem DAC + irgend einem 
signalveränderndem Filter auch nicht hin.

Ist das so schwer?

W.S.

P.S.:

Jürgen S. schrieb:
> Richtig sauber geht es aber mit einer richtigen Interpolation und einem
> anti aliasing Filter am Ausgang.

Ein Antialiasing-Filter an einem AUSGANG?
Bin ich im falschen Film? An einem Ausgang gibt es keine Alii. Das ist 
ein Vorrecht der Eingänge - und es besteht darin, daß das analoge Signal 
zwischen zwei Abtastpunkten einen Wendepunkt hat bzw. haben kann.

Ein Ausgang hingegen kann ne Grundwelle und Oberwellen haben, aber das 
sind keine Alii.

von J. S. (engineer) Benutzerseite


Lesenswert?

W.S. schrieb:
> in Antialiasing-Filter an einem AUSGANG?
Ja, ein AA-Filter am Ausgang. Du darfst es natürlich gerne auch 
klassisch "Rekonstruktionsfilter" nennen, allerdings ist es ja dessen 
ureigenste Aufgabe Alias-Frequenzen (alias = andere), nämlich andere, 
als erwünschte Frequenzen zu unterdrücken und das tut es ja auch, indem 
es die unerwünschten Oberwellen mindert und damit nicht nur lineare 
Verzerrungen unterdrückt, sondern auch tatsächliche Spiegelfrequenzen 
vermeidet, die an den Nichtlinearitäten der folgenden Signalkette 
entstehen.

> Bin ich im falschen Film?
Nein, in der Realität und zwar in einer hier exakt im Detail 
betrachteten. Du darfst Dir gerne mal Simulationen mit idealen und 
fastidealen Filtern aufbauen und die entstehenden Frequenzen betrachten.

> An einem Ausgang gibt es keine Alii.
Am Ausgang selbst nicht, aber an dem nichtidealen Filter danach.

> Das ist ein Vorrecht der Eingänge
Nein, die Ausgänge haben 1977 erfolgreich gegen das AA-Monopol von 
Eingängen geklagt und das Landgericht Hamburg hat entschieden, dass 
Ausgänge den Eingängen in diesem Punkt völlig gleichgestellt sein 
müssen, da an beiden Abtasteffekt entstehen.

> und es besteht darin, daß das analoge Signal
> zwischen zwei Abtastpunkten einen Wendepunkt hat bzw. haben kann.
Ein Wendepunkt ist hier garnicht von Nöten, es reicht ein ausreichender 
Beitrag einer entsprechenden Oberwelle. Man kann das Ganze auch auf 
Steilheitsbetrachtungen zwischen zwei Punkten herunterbrechen, aber die 
Betrachtung im Frequenzbereich ist einfacher.

> Ein Ausgang hingegen kann ne Grundwelle und Oberwellen haben
ja und genau diese Oberwellen, die nicht erwünscht sind und die im 
REKO-Filter, welches niemals perfekt ist, nicht zu Null gemacht werden 
und später auf einen nichtlinearen Anteil eines Verstärkers treffen, 
sind das Problem.

Die folgende Signalkette darf da nicht ganz ausser Acht gelassen werden. 
Beim Audio ist das z.B. der oft äusserst unlineare Ohrhörer bzw die 
HIFI-Box und auch in unserem Beispiel des hingetrimmten Rechecks in 
diesem Thema hier lohnt ein Blick auf das, was nacher kommt, was also 
das Supi-Dupi Rechteck mal verarbeiten soll.

Wer schon mal mit Rechtecksignalen bei Synthesizern und Amps, speziell 
mit der 1-Bit-Technik experimentiert hat, weiss wovon ich spreche :-)

Ich darf Dir versichern, dass ich durch das Thema Wellensynthese 
ziemlich durch bin, mit und ohne DDS. Rechteckfrequenzen sind eine 
Standardwelle in Audiosynthesizern, speziell als Quellsignal. Viele 
sounddesignen damit herum und den wenigsten ist wirklich im Detail 
bewusst, was die vielen netten Filter in den Synthies daraus dann machen 
und wie sie durch den hohen Oberwellengehalt getriggert werden, siehe 
Durchstimmung.

von J. S. (engineer) Benutzerseite


Lesenswert?

chris_ schrieb:
> Theoretisch ja, praktisch nein. Ich kann auch gerne ein fünf mal so
> langes Signal posten, der Anfang wird genau gleich wie beim alten Signal
> sein. Der Interpolationsfilter ist 400Taps lang ( was vermutlich schon
> viel zu viel ist ).

Ich verstehe den Sinn hinter diesem Satz nicht und auch nicht, inwiefern 
dies ein Einwand gegen meine Darstellung sein soll. (?)

Es ging darum, dass Du ein mit Faktor 64 überabgetastetes und 
gefiltertes Signal hinterlegst und abspielst, welches ein bessere 
Ergebnis bringt / bringen soll, als ein nichtbearbeitetes. Ich führte 
aus, dass diese Filterung für eine andere Frequenz wiederholt werden 
muss und es nicht reicht, einfach die einmal hinterlegte Frequenz 
anders, z.B. 10% schneller abzuspielen um dann ebenfalls ein gutes 
Rechteck zu haben. Dies impliziert, dass diese Vorverarbeitung offline 
geschieht, denn wäre sie online, würden wir über eine ganz andere 
Abtastfrequenz sprechen, für die auch das Filter wiederum anders 
aussehen könnte.

: Bearbeitet durch User
von Michael W. (Gast)


Lesenswert?

W.S. schrieb:
> Bin ich im falschen Film? An einem Ausgang gibt es keine Alii.

Sicher gibt es die: in jedem zeitdiskreten Signal sind Frequenzen 
vorhanden, die sich im Vielfachen der Abtastfrequenz wiederfinden. Würde 
man nicht bandbegrenzen, so hätte man größere Probleme.

von Michael W. (Gast)


Lesenswert?

Michael W. schrieb:
> die sich im Vielfachen der Abtastfrequenz wiederfinden

wiederholen wäre besser formuliert.

von chris_ (Gast)


Lesenswert?

Jürgen S. schrieb
>Ich verstehe den Sinn hinter diesem Satz nicht und auch nicht, inwiefern
>dies ein Einwand gegen meine Darstellung sein soll. (?)

>Es ging darum, dass Du ein mit Faktor 64 überabgetastetes und
>gefiltertes Signal hinterlegst und abspielst, welches

Habe ich ja gar nicht. Das war der erste Ansatz, den ich verworfen habe. 
Dafür habe ich 3 verschiedene andere Methoden genannt

Beitrag "Re: Nicht-Sinus DDS"

und mit einer davon sogar die Beispielsignale erstellt. Die Signale kann 
man sich anhören, analysieren, oder anderen Leuten schenken. Sie sind 
real und in der Welt. Die Methoden zur Erzeugung der Signale können 
genau so auf dem Mikrocontroller laufen.
Damit ist eindeutig gezeigt, dass sich mit anderen Methoden als der DDS 
bessere Rechtecksignale mit beliebiger Frequenz unterhalb von Fs/2 auf 
einem einfachen Abtastsystem mit vorgegebenem, konstantem Fs erzeugen 
lassen.

Eigentlich wollte ich hier mehr über die Optimierung der Verfahren 
diskutieren, als über die Frage, ob es überhaupt Verfahren gibt.

von Rolf S. (audiorolf)


Lesenswert?

Ich finde dass das ein interessantes Thema sein kann, aber eines bekomme 
ich nicht mit:

chris_ schrieb:
> Habe ich ja gar nicht. Das war der erste Ansatz, den ich verworfen habe.
> Dafür habe ich 3 verschiedene andere Methoden genannt

Diese 3 Schritte dort, sind das jetzt 3 unterschiedliche Methoden oder 3 
Steps einer einzigen Methode?

chris_ schrieb:
> dass sich mit anderen Methoden als der DDS
> bessere Rechtecksignale ... erzeugen lassen.
Du möchtest diese neue(n) Methode(n) nicht als DDS, also direkte 
digitale Synthese bezeichnet sehen?

von chris_ (Gast)


Lesenswert?

>Ich finde dass das ein interessantes Thema sein kann, aber eines bekomme
>ich nicht mit:

Die DDS ist eine sehr weit verbreitete Methode um z.B. Signale für 
Audiosynthesizer zu erzeugen.
Im allerersten Post dieses Threads vermutet der TO dass es bei der DDS 
Fehler gibt und zwar besonders gut sichtbar bei "nicht Sinus" Signalen 
wie einem Rechtecksignal. Er beschäftigt sich mit Signalsynthese und 
sucht jetzt nach besseren Methoden.

>Du möchtest diese neue(n) Methode(n) nicht als DDS, also direkte
>digitale Synthese bezeichnet sehen?

Der Name der Methode ist egal. Es ist wie mit einem Algortihmus für die 
Primzahlsuche: Entwirf einen, diskutiere mit Leuten und mit der Zeit 
finden sich effizientere Algorithmen.

von Rolf S. (audiorolf)


Lesenswert?

chris_ schrieb:
> Die DDS ist eine sehr weit verbreitete Methode um z.B. Signale für
> Audiosynthesizer zu erzeugen.

Das ist mir schon bekannt, aber beantwortet meine Frage so richtig 
nicht.

Ich frage daher nochmals, weil ich den Ablauf der neuen Methode nicht 
erkennen kann. Wo und an welcher Stelle wird etwas anders gemacht, als 
bei klassischer DDS?

von chris_ (Gast)


Lesenswert?

Die erste der 3 vorgeschlagenen Methoden: es wird ein virtuelles 
DDS-Signal mit der N-fachen Abtastfrequenz erzeugt mit einem virtuellen 
digitalen TP auf Fs/2 gefiltert, dann werden die Werte mit der 
Abtastfrequenz an der jeweils N-ten Stelle abgetastet und auf den DAC 
ausgegeben.

Die Methode ergibt ein sehr sauberes Signal, wie man weiter oben bei dem 
Sägezahn Sweep oder dem Rechteck hören kann, sie ist aber ziemlich 
rechenaufwendig.

Der Unterschied zur gewöhnlichen DDS: Die Erzeugung des Zwischensignals 
und die Filterung.

von Rolf S. (audiorolf)


Lesenswert?

Das ist meinem Verständnis nach eine Art Überabtastung der Tabelle. Soll 
das einmalig geschehen oder bei jeder Sample-Erzeugung?

von chris_ (Gast)


Lesenswert?

>Soll das einmalig geschehen oder bei jeder Sample-Erzeugung?
Man muss das Ganze immer online rechnen, deshalb ist es relativ 
rechenaufwendig. Der Tiefpass muss ja mit der N-fachen Frequenz laufen, 
das kostet Zeit.

Im ersten Ansatz weiter oben hatte ich überlegt, eine hochauflösende 
Tabelle eines abgetasteten Rechtecksignals abzulegen und via DDS 
auszulesen. Das geht aber nicht, wie weiter oben schon angemerkt:
"Das Verfahren funktioniert leider nur für eine feste DDS-Frequenz, da
sich mit einer Änderung der Abtastrate die Grenzfrequenz welche durch
y=FIR_TP(x) gegeben ist, gleich mit verschiebt."

von Michael W. (Gast)


Lesenswert?

chris_ schrieb:
> Im ersten Ansatz weiter oben hatte ich überlegt, eine hochauflösende
> Tabelle eines abgetasteten Rechtecksignals abzulegen

In Echtzeit lässt sich die vermutlich nicht anlegen, nehme ich an.

von chris_ (Gast)


Lesenswert?

>In Echtzeit lässt sich die vermutlich nicht anlegen, nehme ich an.

Das Problem einer Tabelle ist, dass eine Schwingung mit beliebiger 
Frequenz nicht immer hineinpasst ( z.B. könnte das Signal um 1/2 Sample 
"überstehen" )

von Herbert (Gast)


Lesenswert?

Hier noch mal das Ergebnis eines neuen Syntheseverfahrens, das von der 
Rechenzeit vermutlich auch auf einem 16MHz AVR laufen könnte:

http://hobby-roboter.de/forum/download/file.php?id=198

Es sind zwei Sweeps von 400Hz bis 1200Hz und Fs=8kHz.
Die Artifakte der gewöhnlichen DDS sind sehr deutlich hörbar.

von W.S. (Gast)


Lesenswert?

Jürgen Schuhmacher schrieb:
> W.S. schrieb:
>> in Antialiasing-Filter an einem AUSGANG?
> Ja, ein AA-Filter am Ausgang. Du darfst es natürlich gerne auch
> klassisch "Rekonstruktionsfilter" nennen, allerdings...

..allerdings schreibst du Unsinn, weil du dich nicht präzise ausdrückst. 
Ein Ausgang ist ein Ausgang und liefert eine Ausgangsspannung und diese 
ist etwas ANALOGES. Dort gibt es ganz grundsätzlich keine Alii. Punkt.

Versuche mal, das zu begreifen. Alii sind ein digitales Artefakt und 
kommen NUR in der digitalen Domäne vor, nicht jedoch in der analogen 
Welt. Deshalb gibt es in der analogen Welt zwar sehr wohl Oberwellen, 
aber keine Alii. Halte bitte diese Begrifflichkeiten sauber voneinander 
getrennt, sonst reden wir alle immerzu aneinander vorbei und Babylon ist 
angesagt.

Jürgen Schuhmacher schrieb:
> Ein Wendepunkt ist hier garnicht von Nöten, es reicht ein ausreichender
> Beitrag einer entsprechenden Oberwelle.

Genau diese Ungenauigkeit im Ausdruck meine ich. Analoge Signale, die 
sich unharmonisch ändern, enthalten Oberwellen, aber das sind keine 
Alii. Auf der Eingangsseite eines digitalen Systems hingegen ist ein 
Alias eine schlichte Fehlinterpretation, die dadurch entsteht, daß 
tatsächlich ein Eingangsspannungsverlauf einen Wendepunkt zwischen zwei 
Samples hat, also analog eine höhere Frequenz hat, aber durch die 
Nichtsichtbarkeit dieses Wendepunktes als ein Signal unterhalb der 
halben Abtastfrequenz digital wahrgenomen wird. Quasi an der halben 
Abtastfrequenz gespiegelt. Das ist aber etwas GANZ anderes als eine 
Oberwelle eines nicht sinusförmigen analogen Signals.

Haben wir das nun endlich?

W.S.

von W.S. (Gast)


Lesenswert?

chris_ schrieb:
> Die erste der 3 vorgeschlagenen Methoden: es wird ein virtuelles
> DDS-Signal mit der N-fachen Abtastfrequenz erzeugt mit einem virtuellen
> digitalen TP auf Fs/2 gefiltert, dann werden die Werte mit der
> Abtastfrequenz an der jeweils N-ten Stelle abgetastet und auf den DAC
> ausgegeben.

Nun erkläre doch mal, wo der von dir gedachte Nutzen dieses Vefahrens 
liegt.

Ich sehe da nämlich gar keinen Nutzen, sondern nur ein gewaltiges 
Aufbauschen des Aufwandes ohne echten Nutzen. Es wäre schlicht und 
einfach viel besser, dieses "virtuelle" DDS-Signal direktemang 
auszugeben. Durch die N-fache Samplefrequenz und die damit mögliche 
größere Wertetafel ist auch die Anzahl der Stützstellen pro Periode der 
auszugebenden Kurvenform N-fach größer - was dazu führt, daß man es am 
analogen Ausgang des DAC sehr viel leichter hat, mit einem nachfolgenden 
analogen Filter das Nutzsignal ausreichend sauber zu bekommen, also auf 
weniger als 1/2 Taktfrequenz zu begrenzen ohne dabei die ja als nicht 
sinusförmig angenommene Kurvenform gar zu sehr zu verfälschen.

Wollte man deinem Vorschlag folgen, so hätte man am DAC-Ausgang ja 
wiederum nur den einfachen Takt im Signal und nicht den N-fachen, womit 
das nachfolgende analoge Filtern zu N-facher Verfälschung des 
gewünschten Signalverlaufes führen würde.

W.S.

von Filterspezialist (Gast)


Lesenswert?

W.S. schrieb:
> Alii sind ein digitales Artefakt und
> kommen NUR in der digitalen Domäne vor, nicht jedoch in der analogen
> Welt. Deshalb gibt es in der analogen Welt zwar sehr wohl Oberwellen,
> aber keine Alii.

Da bist Du! aber jetzt gründlich daneben. Wenn es die Aliasfrequenzen, 
die Du offenbar "Alii" nennst, nicht gäbe, wären sie ja kein Problem, 
oder?

Sie würden durch das Filtern ja vollständig verschwinden und blieben im 
digitalen System. Das Gegenteil ist aber der Fall. Der Filter, genauer 
seine Kurvenform, gibt darüber Aufschluss, wie stark die ungewollten 
Frequenzen im Signal enthalten sind und das es keinen perfekten Filter 
gibt, sind sie immer enthalten, wenn auch nur ein bischen.

von chris_ (Gast)


Lesenswert?

Ich finde das Problem sehr interessant, weil es Ähnlichkeiten mit dem 
Teilchen-Welle Dualismus der Heisenbergschen Unschärferelation hat. ( 
Das meinte zumindest ein Kollege,dem ich diesen Thread gezeigt habe ).
Nur mit dem Modell der Welle kann man die Interferenzen bei eines 
Elektronenstrahls nach einem Spalt erklären.
Hier ist es ähnlich: Betrachtet man das Signal nur im Zeitbereich, gibt 
es keinen Weg ein Rechtecksignal von 1.1kHz bei Fs=8kHz zur erzeugen.
Erst die Betrachtung im Frequenzbereich erlaubt die richtige Sicht und 
eröffnet den Blick auf Lösungen.

Wenn ich die Antworten auf diesen Thread beobachte, komme ich zu 
folgender Einschätzung:
Einige Verstehen das Problem nicht, wollen aber trotzdem etwas 
schreiben. Die anderen Verstehen das Problem, glauben aber nicht an eine 
Lösung und wollen gerne, dass andere ihre Sichtweise teilen und gar 
nicht erst nach einer Lösung suchen. Relativ wenige verstehen das 
Problem, haben auch die Lösungen schon bemerkt und machen sich so ihre 
Gedanken.
z.B. hat Schnoer als TO das Problem schnell durchschaut, das merkt man 
schon aus der präzissen und kurzen Einleitung. Allderdings hat er sich 
auch relativ schnell aus dem Thread verabschiedet, nachdem er die 
wichtigsten Erkenntnisse gewonnen hatte.

von chris_ (Gast)


Lesenswert?

Was ich bei meinem ersten Verfahren gemacht habe, ist den Anti-Aliasing 
Filter ins Digitale verschoben.
Darauf hat mich gerade dieser Beitrag gebracht:
http://dsp.stackexchange.com/questions/9205/can-we-have-a-digital-anti-aliasing-filter

von J. S. (engineer) Benutzerseite


Lesenswert?

W.S. schrieb:
> Ein Ausgang ist ein Ausgang und liefert eine Ausgangsspannung und diese
> ist etwas ANALOGES. Dort gibt es ganz grundsätzlich keine Alii. Punkt.
Ob etwas nur Analog zu sehen ist (was ja immer der Fall ist) oder auch 
als digital betrachtet werden kann, ist Intepretationssache und hat auch 
mit der vorliegenden Frage nach der Intepreation von FRequenzen nichts 
zu tun (?)

> Alii sind ein digitales Artefakt und
> kommen NUR in der digitalen Domäne vor, nicht jedoch in der analogen
> Welt.
Nein, dem ist nicht so. In der rein digitalen Domain wären die 
Aliasfrequenzen unter bestimmen Umständen gar kein Problem, die Wirkung 
entsteht vornehmlich am Ausgang, in der "analogen Welt" wie Du es nennst 
und auch dort ist es eine Frage der genauen Beschaltung.

Um dies nochmals etwas zu verdeutlichen:

Es gibt 2 Filter, einen vor dem digitalen System und seiner diskreten 
Abtastungmimik und einer dahinter. Beide sollen verhindern, dass 
unerwünschte Frequenzen erfasst, generiert oder ausgegeben werden.

Die Abtastfrequenz des digitalen Systems trennt die Eingangswellen, die 
man sich aus einer Grundwelle und Oberwellen aufgebaut denken an, in die 
zwei Abteile Nutzsignal und Fehlsignal, die beide ebenfalls aus 
Grundwellen und Oberwellen aufgebaut sind. Die Unterscheidung ist an der 
Stelle aber wenig nutzbringend - wichtiger ist das Verständnis dafür, 
dass Aliasfrequenzen entstehen und warum sie entstehen.

Ob man diese bereits als im Ur-Signal befindlich erachtet und so 
deklaerit, ist mehr ein verbaler Aspekt, als ein technischer.

Die alleinige Deklaration "Oberwelle" ist jedenfalls nicht zielführend, 
denn es sind nicht generell alle Oberwellen im Signal, die Alias 
produzieren, sondern nur die oberhalb von Nyquist. Von daher halte ich 
die Deklaration "AA-Frequenzen" sehr wohl für aussagefähig und 
zielführend.

Die wäre die eine Seite der Signalkette, kommen wir nun zur Gegenseite:

Davon ausgehend, dass wir am Ausgang eines DACs aus den bekannten 
Gründen wieder ein dediziertes Filter haben, ist auch hier der Begriff 
AA-Filter zweckmässig, denn auch hier werden nicht irgendwelche 
Oberwellen beseitigt, sondern es werden wieder nur die unerwünschten 
Oberwellen beseitig


t, damit sie nicht zu "anderen" (alias) Frequenzen führen.

Diesmal sind es aber nicht die ehemaligen unerwünschten Oberwellen im 
Primärsignal, denn die sind ja bei unzureichender Elimination in Form 
von Spiegelfrequenzen unterhalb Nyqusit neu aufgetaucht und durch ein 
Ausgangsfilter nicht mehr zu beseitigen.

An dem Ausgang sind es neue Frequenzen, die unerwünscht sind und die 
ihrerseits (wie auch die Nutzfrequenzen) an nichtlinearen Folgegliedern 
= Filtern Störfreqenzen = alias-Frequenzen erzeugen können. Es handelt 
sich nämlich um diejenigen Oberwellen, die bei der stufenförmigen 
Ausgabe des DACs = lokales Rechteckverhalten erzeugt werden und die 
beseitigt werden müssen. Deren Beseitigung durch das 
Rekonstrukionsfilter ist aber wieder nicht einfach nur ein 
Oberwellenfilter, sondern ein selektives Filter für unerwünschte 
Oberwellen.

Das Rekonstruktionsfilter hat also zwei funktionelle Eigenschaften: Es 
interpoliert nicht vorhandene Zeitpunkte und verhindert das Entstehen 
von neuen Aliasfrequenzen. Von daher ist auch am Ausgang eines digitalen 
Systems / DACs den Begriff AA-Filter definitiv sinnvoll.

Wer das genauer untersuchen möchte, wo der Unterschied der Wirkung 
Interpolation / Aliasunterdrückung liegt, der simuliere einen virtuellen 
DA-Wandler in Spice, der einmal mit und einmal ohne 
Rekonstruktionsfilter arbeitet und einmal auf einen linearen Verstärker 
geht (wo es noch keine Alias-Effekte gibt) und alternativ auf einen 
"fastidealen" Verstärker und einen Lautsprecher geht. Deren 
Tiefpassverhalten ist nämlich nicht dem vergleichpar, was ein gutes 
Rekonstruktionsfilter leistet und damit sind auch die Ergebnisse nicht 
dieselben, sondern das teilweise nichtlineare Verhalten dieser 
Folgeglieder dämpft nicht einfach die neuen Oberwellen weg, sondern 
produziert neue Oberwellen aber auch Wellenanteile im gespiegelten 
Bereich, also niederfrequente Anteile, die wiederum im Nutzband liegen. 
Von daher wird immer ein möglichst optimales Rekonstruktionsfilter 
eingesetzt, das nur linear verzerrt, also die unerwünschten Oberwellen 
wegdämpft, welches aber keinesfalls nicht-linear verzerrt, damit  die 
gfs nichtlinearenFolgeglieder solche Frequenzen erst garnicht 
mitbekommen. Da es dies tut, wirkt es faktisch als AA-Filter und da es 
auf andere Oberwellen wirkt, als jenes am Eingang, hat es typischerweise 
auch eine etwas andere Grenzfrequenz und Steilheit.

von J. S. (engineer) Benutzerseite


Lesenswert?

W.S. schrieb:
> Das ist aber etwas GANZ anderes als eine
> Oberwelle eines nicht sinusförmigen analogen Signals.
Eben, Du warst es aber, der statt des Begriffes der Aliasfrequenzen mit 
"Oberwellen" begonnen hat. :-)

> Haben wir das nun endlich?
Wenn Du meine Ausführung gelesen und verstanden hast, müsste es nun 
klar, sein, ja. :-)

Zusammengefasst sprechen wir also sinnigerweise bei dem Thema nicht von 
Oberwellen und Nicht-Oberwellen und auch nicht von einer strikten 
Zuordnung derselben zu jeweils einer der beiden Domänen, wie Du es tust, 
sondern wir sprechen von a) Oberwellen, die zu Alias führen (können) und 
b) solchen, die nicht zu Alias führen, weil sie entweder vorgefilter 
wurden, korrekt gesampelt wurden, unverfälscht rekonstruiert wurden oder 
am Ausgang weggefiltert wurden, bzw. (bei Audio zumindest) nach all den 
Prozeduren immer noch oder neuerdings enthalten sind, aber im Unhörbaren 
liegen.

Wenn wir das nun auf die vorliegende Methode anwenden, haben wir 
zunächst in dem Signal keine Aliasfrequenzen, weil es mutmaßlich clen 
erzeugt wird.

Praktisch entstehen aber an der nachfolgenden Signalkette, spätestens am 
Lautsprecher unerwüsnchte Störfrequenzen, die von den Oberwellen 
herrühren, die

a) von dem digitalen Filter is Signal eingefügt wurden
b) von dem analogen Rekonstruktionsfilter teilgewdämpft wurden
c) von dem Lautsprecher verzeerrt wurden

Von daher stellt sich bei der Betrachtung, die oben durchgeführt wurde, 
nämlich "klingt besser" sofort die Frage, an welchem System klingt das 
besser?

von J. S. (engineer) Benutzerseite


Lesenswert?

chris_ schrieb:
> Was ich bei meinem ersten Verfahren gemacht habe, ist den Anti-Aliasing
> Filter ins Digitale verschoben.
Was Du damit erreichst ist, dass Du die Filterparameter flexibler im 
Griff hast und damit unter Umständen eine für Deinen Fall bessere 
Rekonstruktion erzielst.

Die "bessere Rekonstruktion" sieht aber so aus, dass Du die zum Rechteck 
gehörigen Oberwellen (in dem richtigen Verhältnis) in die Welle 
hineintreibst und dies idealerweise unter Berücksichtigung der Kurve des 
folgenden analogen Filters. Dass dies prinzipiell gehen muss ist 
augenscheinlich, stellt n.E. aber keine neue Erkenntnis dar:

Wenn Du das nämlich weitertreibst, musst Du auch die Kennlinie des 
folgenden Verstärkers und des Lautsprechers mit einbeziehen und Deine 
Induktionswelle darauf hin optimieren. Wenn du das zielführend tust, 
galangst Du zu dem, was in der Industrie Nicht-Lineare-Vorverzerrung 
genannt wird:

Das verändernde Verhalten des Ausgangs wird antizipiert und eine dafür 
optimale Vorkompenation appliziert. Das ist hinlänglich bekannt und wird 
angewendet, z.B. sogar auch im Bereich Audio bei den Digitalverstärkern 
mit Rückkoppplung.

Allerdings sind die Kurven dort eben nicht auf Rechtecke getrimmt und 
auch nicht auf eine bestimmte Frequenz, sondern es wird so verzerrt, 
dass ein möglichst lineares Verhalten herauskommt, weil man ja ein 
ganzen Band von z.B. 20..20000 Hz nutzen will.

von chris_ (Gast)


Angehängte Dateien:

Lesenswert?

W.S. schrieb
>Ich sehe da nämlich gar keinen Nutzen, sondern nur ein
>gewaltiges Aufbauschen des Aufwandes ohne echten Nutzen.

Nimm mal das Signal im Anhang und höre es Dir genau an. Es hat die selbe 
Abtastfrequenz wie ein CD-Player.
Wie würdest Du das Signal für den CD-Player erzeugen, damit es besser 
klingt?

von J. S. (engineer) Benutzerseite


Lesenswert?

Zusammenfassend bleibt also festzustellen, dass das Verfahren

a) nicht neu ist
b) nicht allgemein nutzbar ist
c) unvollständig bleibt

Unvollständig bleibt es, weil

c1) trotz optimierter Ansteuerung immer noch das Filter am Ausgang 
wirkt, das ein echtes REchteck verhindert. Man betreibt also nur 
Optimierung in dem Bandbereich, zwischen Grundwelle und 
Filtergrenzfrequenz

c2) nicht auf den vollständigen Signalpfad hin optimert werden kann, 
weil der nicht bekannt ist oder als allgemein angenommen werden muss.

Theoretisch funktioniert das Verfahren also, ich sehe nur kaum einen 
praktischen Nutzen, auss dem einen, von mir mal vorgeschlagenen, 
nämlich, den analogen Audiopfad zur digitalen Übertragungen zu nutzen. 
Dabei wäre es aber erforderlich, mit dem Audiosystem eine erheblich 
höhere Abtastrate intern zu fahren und auch einen DAC zu geben, als das 
Reko-Filter hinten annimmt, nämlich die etwa 15kHz.

http://www.96khz.org/oldpages/midiasaudio.htm

Somit bleibt das Verfahren auf die Fälle beschränkt, wo ich z.B. eine 
9600kHz Datenleitung über 48kHz Audio transortieren will. Auf der 
Leitung wären dann durch eine Überbetonung der Flanke, worauf es 
faktisch hinausläuft, steilere Rechtecke darstellbar. Das hat aber 
tatsächlich auch nicht wieder einen grossen Wert, weil sowas aus 
EMV-Gründen keiner nutzt und auch da ist das Signal nur beim Verlassen 
des Generatorsystems wirklich rechteckig, hat also den Zielfrequenzgang.

Wie es am Empfänger aussieht, ist wieder was anderes.

Ich muss W.S. hier also zustimmen: Wenig Praxisbezug.

chris_ schrieb:
> imm mal das Signal im Anhang und höre es Dir genau an. Es hat die selbe
> Abtastfrequenz wie ein CD-Player.
Ein mp3 ist dafür denkbar ungeeignet, weil genau das, was Du authentisch 
zeigen willst, nämlich den genauen Verlauf der rechteckformenden 
Oberwellen, im mp3 vermatscht wird.

Zudem wird es sich auf meinem 96kHz Studiosystem gänzlich anders 
anhören, als auf der 44kHz Soundkarte. Die haben gänzlich andere 
Filterkurven. Selbst ein authentisches WAV wird also unterschiedliche 
Ergebnisse produzieren.

: Bearbeitet durch User
von chris_ (Gast)


Lesenswert?

> a) nicht neu ist
a) Ich nehme an Du meinst das erste der Verfahren
b) Natürlich ist es neu. Zumindest für die Mitleser hier, sonst hätte 
schon jemand das Verfahren hier im Thread erwähnt. Ich kann nicht 
erkennen, dass Du schon darauf hingewiesen hättest.
Die "erfinderische Höhe" liegt hier in der Kombination von 
hochauflösender DDS in Kombination mit einem digitalen Anti-Aliasing 
Filter.

von chris_ (Gast)



Lesenswert?

W.S.
>Nun erkläre doch mal, wo der von dir gedachte Nutzen dieses Verfahrens
>liegt.

Sehr viele digitale Abtastsysteme sind im Consumer-Bereich zu finden. 
PC's, Smartphones, digital Radios, CD-Player usw. arbeiten fast alle im 
Audiofrequenzbereich mit einer Abtastrate von Fs=44100Hz.
Zuerst habe ich hier nur die Signale mit Fs=8kHz gezeigt, weil bei 
niedriger Abtastfrequenz der Störeffekt der DDS besonders gut zu hören 
ist.
Umso erstaunter war ich vom Höreindruck des Sweep Signals zwei Posts 
weiter oben mit Fs=44100Hz. Ich hätte nicht gedacht, dass bei so einer 
hohen Abtastfrequenz die DDS-Artefakte noch so störend sind ( Übrigens 
selbst bei der MP3 anstatt der Wav Codierung gut hörbar ).
Zum Vergleich habe ich noch das mit dem erweiterten DDS-Verfahren 
erzeugte Signal als MP3 gepostet. Im Unterschied zum Signal der normalen 
DDS sind hier die Artefakte völlig verschwunden. Damit sollte gezeigt 
sein, dass

1. die DDS störende Artefakte verursachen kann
2. es bessere Verfahren gibt, diese Artefakte zu vermeiden

Ich habe mich auch immer schon gewundert, warum die C64 SID Freaks den 
klanglichen Unterschied einer SID-Emulation und dem realen Baustein 
bemängeln. Der orginale SID erzeugt seine Wellenformen Sägezahn, 
Dreieck, Rechteck mit Zählern und einer Grundfrequenz von 2MHz.
Die hier geposteten Signale und Analysen deuten auf einen Grund für den 
klanglichen Unterschied.

Ich hoffe damit den Nutzen des Verfahrens am praktischen Beispiel 
gezeigt zu haben.

von Rolf S. (audiorolf)


Lesenswert?

chris_ schrieb:
> Die "erfinderische Höhe" liegt hier in der Kombination von
> hochauflösender DDS in Kombination mit einem digitalen Anti-Aliasing
> Filter.

Gruezi Chris,

ich möchte Dir nicht zu nahe treten und Dein Engagement, das Du hier an 
den Tag legst, um Dein Verfahren der Welt näher zu bringen, 
hinunterreden, aber schon muss ich doch das Ausmaß der erfinderischen 
Höhe zur Diskussion stellen:

1) Einmal ist die DDS nicht wirklich hochauflösend. Wir arbeiten in 
Applikationen mit Ultrasone-Signalen mit 100fach höheren Frequenzen, 
weil diese noch moduliert werden. Wird alles per DDS und Filter gemacht 
und ist super genau.

2) Zum Zweiten ist eine Verwendung digitaler AntiAliasFilter-Techniken 
vor der Ausgabe ein Normal. Den ausgehenden Wellenpaketen wird ein 
Marker aufgedrückt, der beim Wiederempfang einen Entscheid ermöglicht, 
aus welcher Distanz das Signal empfangen worden ist.

3) Und auch in der Musik hat man das in großen Ausmaß, dass Klangimpulse 
mit FIR-Filtern vorbearbeitet werden von daher ist auch der 
Benutzungsvorgang einer Soundkarte nicht so ganz neu. Wenn bei Dir das 
DDS-Signal auf 1kHz nicht so sauber klingt, wie Du es erwartest, liegt 
das an der Art wie Du Deine DDS gemacht hast. Du liest sie bei dem einen 
Bespiel brutal aus und erzeugst beim anderen Beispiel mit Deinem 
Vorfilter eine Sammlung von Zwischenpunkten im Signal. Wie ich das oben 
schon angefragt hatte,

Beitrag "Re: Nicht-Sinus DDS"

bin ich der Ansicht, dass dieses nichts anderes ist, als eine versteckte 
Überabtastung der Tabelle mit einer Art von Mittelwertbildung des 
Ergebnisses.

Und das ist aber schon das gängige und bekannte Verfahren, um aus 
DDS-Tabellen mehr Genauigkeit herauszufischen. Das ist leider nicht neu 
sondern machen alle so, wenn Du einmal hier schauen möchtest

http://fpgasynth.beepworld.de/pldaudio.htm

von W.S. (Gast)


Lesenswert?

Jürgen Schuhmacher schrieb:
> Ob etwas nur Analog zu sehen ist (was ja immer der Fall ist) oder auch
> als digital betrachtet werden kann, ist Intepretationssache und hat auch
> mit der vorliegenden Frage nach der Intepreation von FRequenzen nichts
> zu tun (?)

Herrje nochmal NEIN, NEIN und nochmals NEIN.

Im Analogen haben wir es mit einem stetigen Verlauf einer Größe zu tun, 
den man je nach Bedarf und Aufwand beliebig fein anschauen kann.

Im Digitalen haben wir es mit grundsätzlich anderen Dingen zu tun, 
nämlich mit Samples, also mit zeit- und amplitudendiskreten Signalen.

Das ist ein himmelweiter Unterschied! Bitte ENDLICH dieses begreifen 
zu wollen!

So. Und nun kommen wir zu den "Aliassen" (auf Wunsch eines einzelnen 
Mitschreibers. Alias ist Einzahl und solange es keine anständige 
Eindeutschung gibt, sag ich sonst eben Alii).. also:

Ein analoges Signal kann eine Grundwelle und Oberwellen und sonstwelche 
Signalanteile enthalten - und die sind alle ganz real enthalten. Es 
gibt dort keine Ali.., weil das analoge Signal ja ein kontinuierliches 
Signal ist und man deshalb sehr wohl alle Signalanteile im Prinzip 
voneinander unterscheiden kann.

Ein Alias ist hingegen etwas anderes, nämlich wie gesagt eine 
Fehlinterpretation aufgrund der Verletzung des Abtasttheorems, also eine 
Input-Angelegenheit analog-->digital.

Dabei passiert folgendes: ein real existierendes Signal oberhalb der 
halben Abtastfrequenz wird fälschlich als Signal unterhalb der halben 
Abtastfrequenz angesehen - und entsprechend im Digitalen 
weiterverarbeitet. Es ist also ein rein digitales Artefakt, das nur 
dadurch zustande kommt, daß es sich hier eben nicht um ein 
kontinuierliches Signal handelt, sondern um Samples.

chris_ schrieb:
> Nimm mal das Signal im Anhang und höre es Dir genau an. Es hat die selbe
> Abtastfrequenz wie ein CD-Player.

_WAAAAS?_ Du willst mir eine MP3 Datei als Referenz zeigen? Ich bin 
wirklich im falschen Film. Also, mein Lieber, ich kenne zur Genüge die 
elenden Artefakte, die aus der MP3-Kompression herrühren. Selbst im sog. 
Klassikradio krieg ich Zustände, wenn die mal wieder das Adagio for 
Strings spielen, da klirren genau diese Artefakte bei den Stellen wo die 
Streicher ganz hoch spielen geradezu unerträglich. Allerdings für 
Hörbücher ist MP3 sehr gut geeignet.

So, und nun ganz konkret: wenn du nur ganz wenig Stützstellen pro 
Periode hast - z.B. eben 1.1 kHz Rechteck bei 8 kHz Samplefrequenz, dann 
klingt ein Rechteck immer häßlich, weil du mit garnix in der Welt es 
fertig bringst, einen analogen "mittleren" Wert für eine Flanke des 
Rechtecks, die ein Stückchen vor oder hinter der Sampleflanke liegt, zu 
errechnen. Dir bleibt in diesem Falle nur die Alternative, entweder 
tatsächlich das MSB des DDS direkt auszugeben (Port hi, Port lo) und mit 
dem Jitter zu leben - oder ein Gemisch aus Sinus und 3*Sinus in deine 
Wertetabelle zu schreiben und anschließend analog bei 4 kHz 
tiefpaßzufiltern. Das ist dann zwar kein Rechteck mehr, nicht mal 
ansatzweise, aber die einzige Chance, die du hast.

W.S.

von chris_ (Gast)


Lesenswert?

>_WAAAAS?_ Du willst mir eine MP3 Datei als Referenz zeigen?
>Ich bin wirklich im falschen Film.

Nur mal Interesse halber: Hast Du Dir die beiden Signale im Vergleich 
angehört?

von chris_ (Gast)


Lesenswert?

Rolf S. (audiorolf)
>http://fpgasynth.beepworld.de/pldaudio.htm

Hallo Rolf,

aus Deinem Link entnehme ich, dass Du jahrzentelange Erfahrung in der 
Entwicklung der digitalen Signalverabeitung hast, deshalb brauche ich 
Dir sicherlich wenig darüber zu erzählen.

>ich möchte Dir nicht zu nahe treten und Dein Engagement,
>das Du hier an den Tag legst, um Dein Verfahren der Welt
>näher zu bringen,hinunterreden, aber schon muss ich doch
>das Ausmaß der erfinderischen Höhe zur Diskussion stellen
Das Verfahren gehört eher zu den Grundlagen, deshalb ist es für 
"eingefleischte" Signalverarbeiter sicherlich keine neue Sache.
Ich nehme aber an, dass Du diesen Thread nicht von oben nach unten 
durchgelesen hast. Das solltest Du tun, man lernt sehr viel über die 
Anschauungsweise verschiedener Leute auf das Problem und es wird Dir 
beim Durchlesen sicherlich nicht langweilig.
Das Ziel meiner Anstrengungen ist eigentlich nur zu zeigen, dass es 
überhaupt möglich ist, das Signal einer DDS zu verbessern. Dazu habe ich 
Audiosignale erzeugt, die man sich anhören kann in der Annahme, dass 
etwas was man sich anhören kann, einen Zweifel daran doch aus der Welt 
schaffen könnte.
>3) Und auch in der Musik hat man das in großen Ausmaß,
> dass Klangimpulse mit FIR-Filtern vorbearbeitet werden
> von daher ist auch der Benutzungsvorgang einer Soundkarte
> nicht so ganz neu. Wenn bei Dir das
Hast Du hier eventuell ein paar Literatur-Links? Ich würde gerne meinen 
Blick auf ein paar konkrete Implementierungen werfen.
Das Beispiel mit der Soundkarte und den Audiodateien habe ich gemacht, 
weil jeder einen PC ein Soundkarte hat und sich die Beispiele hier mit 
einem Klick anhören kann. Dadurch ist die Signalverarbeitung nicht mehr 
so trocken und theoretisch, sondern kann direkt von jedem Mitleser hier 
"erlebt" werden.

>DDS-Signal auf 1kHz nicht so sauber klingt, wie Du es erwartest,
>liegt das an der Art wie Du Deine DDS gemacht hast.
>Du liest sie bei dem einen Bespiel brutal aus ...
Ich sehe aus Dir sprich die Erfahrungen mit den FPGAs. Hier im 
Mikrocontrollernetz wird die DDS üblicherweise in der Form, die Du als 
brutal bezeichnest, realisiert. Die hier verwendeten Mikrocontroller 
sind eher leistungsschwach, deshalb besteht die DDS meistens nur aus 
einem Zeiger, der durch die Tabelle läuft. Ein wirklich elegantes und 
auf die Spitze getriebenes Projekt ist dieses hier:

Beitrag "17 Kanal Avr Synthesizer in Asm"

>2) Zum Zweiten ist eine Verwendung digitaler
>AntiAliasFilter-Techniken vor der Ausgabe ein Normal.
>Den ausgehenden Wellenpaketen wird ein Marker aufgedrückt,
>der beim Wiederempfang einen Entscheid ermöglicht,
>aus welcher Distanz das Signal empfangen worden ist.

Bei FPGAS kann ich mir das gut vorstellen, bei den genannten 
Mikrocontrollern scheint es mir schwierig, aber vielleicht könntest Du 
einen Vorschlag machen, wie das auf einem MC realisiert werden könnte.

von chris_ (Gast)


Angehängte Dateien:

Lesenswert?

W.S. schrieb
> _WAAAAS?_ Du willst mir eine MP3 Datei als Referenz zeigen? Ich bin
> wirklich im falschen Film. Also, mein Lieber, ich kenne zur Genüge die
> elenden Artefakte, die aus der MP3-Kompression herrühren. Selbst im sog.
> Klassikradio krieg ich Zustände, wenn die mal wieder das Adagio for
> Strings spielen, da klirren genau diese Artefakte bei den Stellen wo die
> Streicher ganz hoch spielen geradezu unerträglich.

keinesfalls wollte ich Dein Gehör durch das posten von MP3-Files 
beleidigen, aber es schien mir von Nutzen, dem MC-Netz nicht zu viel 
Speicherplatz abzuverlangen. Auch können die MP3-Files ohne große Mühen 
im Browser durch einen Klick abgespielt werden.
Da mein unsensibles Gehör die Qualitätsunterschiede der beiden MP3-Files 
recht deutlich zu verorten wusste, erschien es mir ausreichend, 
MP3-Files zu posten.

Aber es soll auf keinen Fall das ästhetische Empfinden jedweder 
Randgruppe verletzt werden und ich würde in diesem Thread (falls 
gewünscht) auch Bedürfnisse der Anhänger von veganen Glaubensrichtung 
berücksichtigen.

Natürlich will ich den Hörern mit sehr feinem Gehör und puristischem 
Anspruch, den Wohlgenuss des reinen Klanges nicht verwehren und stelle 
im Anhang die WAV-Files zur Verfügung. So können auch ihre Ohren vom 
erstklassigen Sound reiner Rohdaten umschmeichelt werden.

Für die etwas robusteren Mitleser, die Ihrem Gehör aus 
Bequemlichkeitsgründen mit einem Klick die minderwertige Qualität der 
MP3-Kompression zumuten können, hier noch einmal die Links auf die 
beiden Tonstücke:

http://www.mikrocontroller.net/attachment/231480/squareSweep_440Hz_1200Hz_fs44100_dds.mp3
http://www.mikrocontroller.net/attachment/231501/squareSweep_440Hz_1200Hz_fs44100_dds_LPCorrection.mp3

von Rolf S. (audiorolf)


Lesenswert?

W.S. schrieb:
> So. Und nun kommen wir zu den "Aliassen" (auf Wunsch eines einzelnen
> Mitschreibers.
Damit ist wohl meine Wenigkeit gemeint, nehme ich mal an.

> Ein analoges Signal kann eine Grundwelle und Oberwellen und sonstwelche
> Signalanteile enthalten
Welche "sonstigen" Signalanteile siehst Du? Nach allgemeiner Definition 
hat es eigentlich nur 1 Grundwelle und viele Oberwellen.

> und die sind alle ganz real enthalten.
Na, im Digitalen sind schon auch alle Signale "real" enthalten, oder :-)

> Es gibt dort keine Ali..
Vorne nicht, aber Du darfst nicht vergessen, dass diese "falsch" 
aufgefassten Frequenzen im Signal verbleiben, sobald Du es ausgibts, 
deshalb sind sie natürlich auch im Analogsignal vorrätig. Da gibt es 
keinen Unterschied. Man weiss es halt nur nicht unbedingt, dass es 
falsche Anteile sind, die vorher nicht drin waren.

> weil das analoge Signal ja ein kontinuierliches
> Signal ist und man deshalb sehr wohl alle Signalanteile im Prinzip
> voneinander unterscheiden kann.
Sobald Du es ausgibts, wird es auch dort ein kontinuierliches Signal. 
Nur bekommt es einen Zacken. Das ist ja hier das Problem, umd das es 
geht. Ihr beiden diskutiert schon über das Filter, das am Ausgang ist 
und welche Funktion es hat, oder?

> Ein Alias ist hingegen etwas anderes, nämlich wie gesagt eine
> Fehlinterpretation aufgrund der Verletzung des Abtasttheorems, also eine
> Input-Angelegenheit analog-->digital.
Das scheint mir der Knackpunkt des gesamten Disputs. Du lässt den 
Begriff Alias oder Allii nur für das zu, was am Eingang bei der 
Auffassung der Signale geschieht (neue Frequenzen wegen falscher 
Erfassung) und Jürgen bespricht das, was am Ausgang passiert, wenn es 
dort neue Fehlsignale gibt, weil das Filter nicht taugt.

Was ich dazu sagen kann ist, daß ich mir um die Details des 
Ausgangsfilters noch keine so genauen Gedanken gemacht habe. Solange das 
linear ist, kann dort eigentlich nicht viel passieren. Es muss nur so 
gebaut sein, dass es die hohen Frequenzen über dem, was das digitale 
Signal darstellen kann, platt macht. Der Übergangsbereich ist natürlich 
eine gewisse Challenge, wenn es keine Überabtastung hat.

Jetzt kommt dann eben die Frage auf, wie das Filter hier aussehen 
sollte, wenn man Rechtecktsignale ausgeben möchte?

von Rolf S. (audiorolf)


Lesenswert?

chris_ schrieb:
> Bei FPGAS kann ich mir das gut vorstellen, bei den genannten
> Mikrocontrollern scheint es mir schwierig, aber vielleicht könntest Du
> einen Vorschlag machen, wie das auf einem MC realisiert werden könnte.

Grundsätzlich sehe ich da keinen grossen Unterschied. Sobald Du mehr tun 
willst, als Tabellen lesen, braucht es CPU-Power. Wenn es einen 
Controller hat, der ausreichend leiset, kann man sicher solche Methoden 
anwenden um das Signal steiler zu machen. Jedesmal ein Filter 
vorzuschieben scheint mir doch sehr aufwändig, da ist eine größere 
Tabelle vielleicht empfehlenswerter.

von chris_ (Gast)


Lesenswert?

Rolf S. (audiorolf)
>Grundsätzlich sehe ich da keinen grossen Unterschied. Sobald Du mehr tun
>willst, als Tabellen lesen, braucht es CPU-Power. Wenn es einen
>Controller hat, der ausreichend leiset,

Oder eben ( und das ist der Ausgangspunkt des TOs und die höhere Kunst ) 
rechenzeitoptimierte Algorithmen zu finden, die auch auf 
leistungsschwachen MCs laufen.

Im ersten Schritt ging es darum überhaupt Möglichkeiten aufzuzeigen, 
dass es geht. Es mag hier den ein oder anderen geben, der es trotz 
größter Bemühungen nicht verstehen kann. Aber fortgeschrittenen 
Signalverarbeiungsfachleuten, die nicht mehr am grundlegenden 
Verständnis festhängen, wird bestimmt etwas einfallen.

von Signalverarbeiter (Gast)


Lesenswert?

Nun dann gebe ich mal meinen Senf dazu:

Wenn es darum ginge, mit bandbegrenzten Signalen das Beste rauszuholen, 
was machbar ist, dann bestehen immer Möglichkeiten der Optimierung. Und 
wenn man das zu sendene Signal kennt, dann geht das einmal mehr, weil 
der zu optimierende Bandbereich bekannt ist. Da sind immer Reserven 
drin.

Wie gesagt, "wenn es darum ginge". Das ist aber eine so derart kleine 
Niesche, dass auch mir keine Anwendungsfälle einfallen möchten, die 
nicht durch weniger aufwenige Vorgangsweisen locker zu toppen sind. Für 
mich hat das auch mit DDS nicht so ganz viel zu tun, da sich hinter 
diesem Begriff die Gewinnung eines Sinussignals verbirgt, weil sich eben 
damit am Meisten anfangen lässt.

Was hier betrieben wird, wäre als Impulsformung besser beschrieben und 
welche Qualität sich damit darstellen lässt, sollte man durch einen 
Oberwellenvergleich untersuchen: Wenn schon ein bekanntes Signal, ein 
Rechteck Verwendung findet, dann müsste sich das Fouriertechnisch 
analysieren lassen, was rauskommt. Das möchte ich sehen und nicht ein 
mp3, das wieder deformiert.

von Jenaer (Gast)


Lesenswert?

chris_ schrieb:
> Oder eben ( und das ist der Ausgangspunkt des TOs und die höhere Kunst )
> rechenzeitoptimierte Algorithmen zu finden, die auch auf
> leistungsschwachen MCs laufen.
Ich habe den Beitragsstrang durchforstet, finde aber nirgends eine 
solche rechenzeitoptimierte Methode. Dass ein hochfrequent abgetastetes 
FIR-Filter die Lösung sein sollte, will ich so recht nicht glauben. Das 
würde ja bedeuten, für jeden auszugebenden Punkt ein Mehrfaches an 
Berechnungen (Summationen und Division) durchzuführen, nur um 
Zwischenwerte zu erhalten. Außerdem ist mir noch nicht klar, was daran 
anderes sein soll, als ein direkt ausgerechneter Zwischenwert.

Wenn der ideale Zeitpunkt für die Flanke des Rechtecks nicht genau 
getroffen werden kann, liesse sich das doch so ausrechnen, dass einfach 
das duty cycle Verhältnis herangezogen wird. Wenn die ideale Flanke z.B. 
zwischen Punkt 4 und 5 läge und an der Stelle 4.2 kommen müsste, gibt 
man einfach das 0,2fache der Amplitude aus.

von Raymund H. (raymund_h)


Lesenswert?

Jenaer schrieb:

> Wenn der ideale Zeitpunkt für die Flanke des Rechtecks nicht genau
> getroffen werden kann, liesse sich das doch so ausrechnen, dass einfach
> das duty cycle Verhältnis herangezogen wird. Wenn die ideale Flanke z.B.
> zwischen Punkt 4 und 5 läge und an der Stelle 4.2 kommen müsste, gibt
> man einfach das 0,2fache der Amplitude aus.

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

von W.S. (Gast)


Lesenswert?

Rolf S. schrieb:
> Das scheint mir der Knackpunkt des gesamten Disputs. Du lässt den
> Begriff Alias oder Allii nur für das zu, was am Eingang bei der
> Auffassung der Signale geschieht (neue Frequenzen wegen falscher
> Erfassung) und Jürgen bespricht das, was am Ausgang passiert, wenn es
> dort neue Fehlsignale gibt, weil das Filter nicht taugt.

Ja, so langsam nähern wir uns dem Problem. Es ist nämlich genau das, 
was ich viel weiter oben schon einmal angemahnt habe: Klarheit im 
Ausdruck und nicht die Begriffe verwechseln, sonst herrscht hier nur 
noch Babylon und alle reden aneinander vorbei.

Und zum Ausgangsspektrum bei DDS und allen anderen Ausgängen mit 
jitterndem Verhalten: Dort haben wir nicht nur ne Grundwelle mit ihren 
Oberwellen, sondern auch Mischprodukte, also Faus*Ftakt, 7*Faus*3*FTakt, 
um nur mal zwei Beispiele aus Dutzenden herauszugreifen. Aber das sind 
keine Fehlinterpretationen, sondern ganz reale Signalanteile. Ein Alias 
hingegen ist eine scheinbare Grundwelle, die es realiter nicht gibt. 
Sowas wird schon seit Jahrzehnten technisch ausgenutzt beim sog. 
Sampling-Oszilloskop. Durch das Samplen kann man Kurven im GHz-Bereich 
darstellen, die man mit nem braven analogen Oszi nie und nimmer 
darstellen könnte.

W.S.

von chris_ (Gast)


Angehängte Dateien:

Lesenswert?

Jenaer schrieb:
>Wenn der ideale Zeitpunkt für die Flanke des Rechtecks nicht genau
>getroffen werden kann, liesse sich das doch so ausrechnen, dass einfach
>das duty cycle Verhältnis herangezogen wird. Wenn die ideale Flanke z.B.
>zwischen Punkt 4 und 5 läge und an der Stelle 4.2 kommen müsste, gibt
>man einfach das 0,2fache der Amplitude aus.

Hallo Jenaer,

daran hatte ich auch schon gedacht und hier erwähnt:
Beitrag "Re: Nicht-Sinus DDS"

Von der Rechenzeit wäre es super, aber leider ist der Effekt nicht ganz 
so gut, wie man erwarten würde.

Der Höreindruck des TP-interpolierten ist wirklich viel besser:
http://www.hobby-roboter.de/forum/download/file.php?id=189

von Jenaer (Gast)


Lesenswert?

Raymund H. schrieb:
> http://en.wikipedia.org/wiki/Gibbs_phenomenon
Ich erkenne noch nicht, wie dieser Beitrag mit meinem in Zusammenhang 
steht - könntest Du das bitte erläutern?

chris_ schrieb:
> Von der Rechenzeit wäre es super, aber leider ist der Effekt nicht ganz
> so gut, wie man erwarten würde.
Es ist eben eine einfache Interpolation mit einem Knick zwischendurch.

von chris_ (Gast)


Lesenswert?

>Es ist eben eine einfache Interpolation mit einem Knick zwischendurch.
Naja, wenn Du Dir die Files im Vergleich anhörst, merkst Du den 
Unterschied. Bei der linearen Interpolation muss man wirklich genau hin 
hören um überhaupt einen Unterschied zur normalen DDS festzustellen. Im 
Spektrum "sieht" man es besser, als dass man es hören kann. Das hätte 
ich wie gesagt, so nicht erwartet.

von J. S. (engineer) Benutzerseite


Lesenswert?

W.S. schrieb:
> Dort haben wir nicht nur ne Grundwelle mit ihren
> Oberwellen, sondern auch Mischprodukte, also Faus*Ftakt, 7*Faus*3*FTakt,
> um nur mal zwei Beispiele aus Dutzenden herauszugreifen. Aber das sind
> keine Fehlinterpretationen, sondern ganz reale Signalanteile.
Na also, Du scheinst also verstanden zu haben, dass im Ausgangssignal 
Aliasfrequenzen gibt, die es zu unterdrücken gilt, bzw genauer: dass es 
sie dort gäbe, wenn man das Filter nicht einsetzt. Damit ist es mir 
vollkommen unbegreiflich, warum Du hier eine Gegenargumentation aufbauen 
möchtest.

Sieh Dir doch mal diese Grafik an:
http://www.analog.com/static/imported-files/application_notes/351016224AN_837.pdf

Das Rekonstruktionsfilter am Ausgang eines DACs, wirkt funktioniell 
immer auch Alias-Effekten entgegen und dies insbesondere dann, wenn 
diese wie hier durch die DDS und ihre Probleme erst generiert 
werden/würden. Das ist also ganz unabhängig von irgendwelchen 
Alias-Effekten an einem Eingang die durch Sampling erzeugt werden.

W.S. schrieb:
> Herrje nochmal NEIN, NEIN und nochmals NEIN.
Doch, doch und nochmal doch :-)

Auch wenn man die Thematik aus Deiner Sicht sieht, also strikt zwischen 
Digital und Analog trennt und dabei dem Digitalen nur die diskreten 
Zustände zuordnet und der Analogwelt wiederum nur die kontinuierlichen, 
wie Du es oben tust, wird doch eines evident:

Das Signal, das eben noch diskret war, wird durch die Ausgabe am Ausgang 
urplötzlich kontinuierlich und zwar in der Weise, dass das Analogsignal 
zu den Zeitpunkten, die vorher diskret bestimmt waren, nämlich den 
Takten, 100% korrekt abgebildet wird, während es in den Zwischenzeiten 
durch das Halten des Wertes mit völlig falschen "Spannungen" aufgefüllt 
wird. Dieses Signal, das ich nach wie vor "digital" nenne, da es zwar 
physikalisch gesehen "kontinuierlich" ist, aber aus funktioneller Sicht 
nicht analog dem Eingang oder dem gewollten Signal ist (von "analog" = 
sich entsprechend), enthält also völlig falsche Frequenzen, die es zu 
beseitigen gilt.

Ob man jetzt die durch die Recheckbildung des DACs verursachten falschen 
Frequenzen als wörtlich "andere" = alias sieht oder nur/auch die durch 
die DDS (Phasenjitter) verursachten Frequenzen so nennt, ist 
Geschmackssache. Es sind jeweils Vielfache und Mischungen der 
Grundfrequenzen, also einmal der Abtastfrequenz am DAC und einmal der 
erzeugenden DDS Frequenz.

Jetzt aber mal wieder zurück zur inhaltlichen Fragestellung:

von J. S. (engineer) Benutzerseite


Lesenswert?

Es ging ja um die Optimierung der Stützpunkte im Hinblick auf die 
optimale Zielwellenform, hier beispielhaft das Rechteck. Dazu nochmal 
folgender Einwurf:

chris_ schrieb:
> ei der linearen Interpolation muss man wirklich genau hin
> hören um überhaupt einen Unterschied zur normalen DDS festzustellen. Im
> Spektrum "sieht" man es besser,

Beim Spektrum, das du optisch betrachtest, ist der analoge Filter am 
Ausgang des DAC nicht enthalten, von daher ist das nicht vergleichbar 
dem, was Du hörst. Und was Du da im Detail hörst ist wiederum vom 
Einzelfall DEINES Filters abhängig. Gerade weil es hier nicht darum 
geht, wie üblich, ein eindeutig bandbegrenztes Signal = Sinus im 
Hörbaren, zu übermitteln, bei dem der Filterverlauf unberücksichtigt 
bleibt, weil er schon auf den Frequenzhang des systems angepasst ist, 
sondern weil hier der Filter optmiert angesteuert werden muss, ist er 
wichtig.

von J. S. (engineer) Benutzerseite


Lesenswert?

Rolf S. schrieb:
> Was ich dazu sagen kann ist, daß ich mir um die Details des
> Ausgangsfilters noch keine so genauen Gedanken gemacht habe.
Darum musst Du Dir normal auch keine grossen Gedanken machen, für 
Audioapplikationen kommt es allein auf ein sinnvolles Filterdesign im 
Hinblick auf PassBand/StoppBand-Verlauf an, sodass die Eckfrequenzen 
richtig liegen und zu der Samplingfrequenz passen.

Wie du schon richtig vermutest, ist das hier in der Applikation aber 
anders. Der genaue Filterverlauf muss bekannt sein, wenn ich darüber ein 
optimiertes Rechteck bringen will und damit wird auch klar, worin der 
Unterschied der Interpolation mit den Geraden und dem Filter liegt:

Bei einer nennen wir es echten Audioapplikation werden die 
höherfrequenten Anteile bewusst gedämpft und im Signal ignoriert bzw sie 
werden, soweit noch vorhanden nicht gehört, von daher ist die 
Knickbildung im Signal kein Problem. Die DDS mit dem Ziel einer 
Sinuserzeugung gewinnt durch eine Interpolation generell und mit einer, 
die mit einem Filter hergestellt wurde, erst recht, denn der Filter 
dämpft die Knicke in der Kurver besser.

Hingegen ist es hier so, dass eine DDS mit dem Ziel einer 
Rechteckerzeugung durch eine Interpolation nicht generell gewinnt, weil 
die Steilheit verloren geht und die neu entstehenden Frequenzen (oder 
besser die jetzt fehlenden) nicht zu dem anderen Ziel passen, sondern 
irgendwelche Oberwellen generieren / wegnehmen. Damit ist auch der 
Unterschiede zwischen einem interpolierenden Filter und der 
Geradeninterpolation grosser: Die Geradeninterpolation hat mehr 
Oberwellen bzw das falsche Oberwellenverhältnis.

von J. S. (engineer) Benutzerseite


Angehängte Dateien:

Lesenswert?

Es muss also ein Kompromiss zwischen Filterung des Jitters und 
Aufrechterhalt der Steilheit des Rechtecks gefunden werden. Wie sich das 
im Detail dann anhört, ist also immer auch Zufall. Hindrehen kann man 
das, wie ich schon sagte nur im Groben und auch nur in dem zur Verfügung 
stehenden Bandbereich zwischen der Grundfrequenz des Rechtecks und dem 
Bandende das der Filter am DAC definiert. Bei einem 50Hz hätte man genug 
Resserve, um ein Rechteck zu produzieren, wobei das gelinkte 
GibbsPhänoman ja bedeutet, dass dies nur theoretisch klappt und eine 
Annäherung an das Rechteck bei praktisch realisierbaren Oberwellen nicht 
gelingen kann.

Man kann nur versuchen, den effektiven Bandbereich zu erweitern, indem 
man ein vorverzerrendes Filter benutzt. Ich habe hier nochmal eine Datei 
angehängt, die zeigt, was ich oben beschreibe:

Das Ausgangsfilter wird mit einer Präsenzanhebung so verzerrt 
angesteuert, dass das Ergebnis steiler wird. Dieser Filter muss dem 
Interpolationsfilter in der DDS überlagert werden, um das Signal weiter 
zu optimieren. Je weiter man das treibt, desto geringer wird die 
Signalamplitude und auch hier ergibt sich irgendwann der Punkt, dass der 
"Hochpass" denn man da für benötigt, die reale Filtercharakteristik 
nicht komplett ausgleichen kann.


> Jetzt kommt dann eben die Frage auf, wie das Filter hier aussehen
> sollte, wenn man Rechtecktsignale ausgeben möchte?
Die besten Rechtecke bekommt man mit der DDS-Anordnung dann, wenn man 
das Filter am DAC komplett weglässt und den DAC mit der Zielfrequenz 
ansteuert und dabei voll durchsteuert :-)

: Bearbeitet durch User
von chris_ (Gast)


Lesenswert?

>>chris_ schrieb:
>> Bis jetzt sind es nur Matlab-Simulationen.
> Jürgen Schuhmacher
>Das scheint mir ein bischen der Kanckpunkt der Angelegenheit zu sein.
>Auf welches Rekonstruktionsfilter hin sind denn die Wellen optimiert?

Auf die Filterkette "deine Soundkarte=>deine Lautsprecher=> deine 
Ohren".
Als Meßgerät zur Beurteilung der Signale kannst Du Deine Ohren 
verwenden.
Angedacht ist dabei ein differentielles Verfahren:
1. Signal 1 anhören
2. Signal 2 anhören
3. Schlussfolgerungen ziehen.

von J. S. (engineer) Benutzerseite


Lesenswert?

Jaja, aber dann läufst Du doch genau in den Iterationsprozess hinein, 
den ich oben indirekt andeutete, nämlich in die schrittweise Optimierung 
der Vorverzerrung hin zu einer bestimmten Anordnung eines einzelnden 
Benutzers.

Das kann aber doch kein Ziel sein, jeweils für die eigene (falsche) 
Signalkette exemplarisch zu optimieren. Besonders die Ohren sind ja sehr 
falsch wie man weiss.

Die Vorgehensweise müsste sein, die Vorverzerrung aus einer Funktion 
abzuleiten, in die das Zielsignal und der anzunehmende Filterverlauf der 
DAC-Anordnung eingeworfen werden und da landen wir wieder bei inverser 
Fourier und Faltung wie schon vorgeschlagen. Dann hätte man ein Optimum 
für den Durchschnitt der abbildenen Systeme, die auf minderwertigen 
Audioanlagen zwar schlechter klingen, aber grundsätzlich "richtig" sind.

: Bearbeitet durch User
von Elektroniker (Gast)


Lesenswert?

Jürgen Schuhmacher schrieb:
> Das Ausgangsfilter wird mit einer Präsenzanhebung so verzerrt
> angesteuert, dass das Ergebnis steiler wird. Dieser Filter muss dem
> Interpolationsfilter in der DDS überlagert werden, um das Signal weiter
> zu optimieren.
sehr schöne idee, wir praktiker nehmen dafür einfach einen Kondensator, 
der den höherfrequenten Anteil im Signal weiterleitet und die Kurze 
wieder steiler macht:-)

von W.S. (Gast)


Lesenswert?

Jürgen Schuhmacher schrieb:
> W.S. schrieb:
>> Herrje nochmal NEIN, NEIN und nochmals NEIN.
> Doch, doch und nochmal doch :-)

Nochmals N_E_I_N !

So, jetzt habe ich mehrfach versucht, euch das Brett vom Kopfe 
abzureißen und es ist mit nicht gelungen. Ich geb's auf, redet von mir 
aus durcheinander wie ihr wollt und versteht euch so wie die Leute in 
Babylon.

Grrrmpf.. alias W.S.

von Marc (Gast)


Lesenswert?

Neulich im Autoradio:
"Achtung, es kommt Ihnen ein Falschfahrer entgegen"

W.S. darauf: "Wieso einer, es sing ganz viele"

von J. S. (engineer) Benutzerseite


Lesenswert?

Marc schrieb:
> Neulich im Autoradio:
> "Achtung, es kommt Ihnen ein Falschfahrer entgegen"
>
> W.S. darauf: "Wieso einer, es sing ganz viele"

:D

Naja, W.S. ist nicht wirklich ein Falschfahrer, er versteht nur meinen 
Fahrstil nicht, bzw er guckt in den Rückspiegel und sieht die falschen 
Frequenzen von der anderen Seite. Der ganze Aufhänger war ja, ob man die 
per DDS erzeugten ungewollten Frequenzen, die mit einem 
DAC-Ausgangsfilter gedämpft werden, nun Aliasfrequenzen nennen darf, und 
dies auch dann darf, wenn nur ihre Wirkung im späteren Ausgangssignal 
betrachtet und damit dieser Filter am Ausgang, ein "AA"-Filter genannt 
werden darf. Ich bleibe beim Ja, respektiere aber, wenn es jemand anders 
sieht.

von Paul B. (Gast)


Lesenswert?

chris_ schrieb:
> die von mir geposteten WAV-Files haben eine Abtastfrequenz von 8kHz.
> Sollte ein Mikrocontroller eine Signal mit 8kHz erzeugen können?
sicher kann der uc die 8kHz erzeugen, aber die Anforderung besteht in 
Deiner Anwengung doch in der Berechnung des Filters und damit tritt eine 
effektiv viel höhere Abtastfrequenz auf. Die Welle, die Du inten 
behandelst hat also eine virtuell 64fache Abtastrate.

> Vielleicht fällt Dir auch noch eine gute Methode ein, das würde mich
> sehr freuen, weil ich ein Verfahren auch gerne mal auf einem MC umsetzen
> würde.
Ich würde das strikt empfehlen, das umzusetzen und real zu testen, dabei 
Laufzeiten und Rechenbedarf ermitteln.

> Bis jetzt sind es nur Matlab-Simulationen
Könntest / Möchtest du diese publizieren?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.