Hallo Ich habe mir eine Platine gebastelt und mit einem R2R DA-Wandler und einem Tiny84 eine DDS nachgebaut. Ich erzeuge einen Diskreten Sinusverlauf der sich periodisch mit 15 Hz Widerholt. Die Amplitudeninformationen in meiner Look Up Table ändern sich mit einer Frequenz von 3906,25Hz. Nun weiß ich das ich meinen Tiefpass nach der grenzfrequenz dimensioniere. Ich frage ich mich gerade, was ist meine Frenzfrequenz? Ist das das Ausgangssignal an sich oder aber Änderungsrate mit der der DA Wandler seinen Diskreten Ausgang ändert?
:
Verschoben durch Moderator
DDS schrieb: > Ich frage ich mich gerade, was ist meine Frenzfrequenz? Überlege dir, welche Frequenzen durch den Tiefpass durchkommen sollen und welche nicht. Deine Abtastfrequenz willst du im Ausgangssignal möglichst gut unterdrücken, aber bei der Frequenz deines Nutzsignals (15Hz) soll die Amplitude nicht unnötig beeinflusst werden. Der Tiefpass schwächt bei seiner Grenzfrequenz ein Signal um 3db ab, d.h. die Amplitude sinkt auf 70%. Guck die den Amplitudenfrequenzgang im Bode Diagramm eines TP an und überlege, wie du die o.g. Bedingungen möglichst gut unter einen Hut bekommst.
DDS schrieb: > Hallo > > Ich habe mir eine Platine gebastelt und mit einem R2R DA-Wandler und > einem Tiny84 eine DDS nachgebaut. Ich erzeuge einen Diskreten > Sinusverlauf der sich periodisch mit 15 Hz Widerholt. Die > Amplitudeninformationen in meiner Look Up Table ändern sich mit einer > Frequenz von 3906,25Hz. > Nun weiß ich das ich meinen Tiefpass nach der > grenzfrequenz dimensioniere. Ich frage ich mich gerade, was ist meine > Frenzfrequenz? Ist das das Ausgangssignal an sich Nein. > oder aber > Änderungsrate mit der der DA Wandler seinen Diskreten Ausgang ändert? Ja. Und weil der Herr Nyquist immer dabei ist, die Häfte. Wenn man nah an fs/2 ran will, braucht man einen sehr aufwändigen, steilflankigen Filter mit vielen Stufen. Kann man sich eine geringere Grenzfrequen leisten, sagen wie 0,1 * fs, wird die Sache deutlich entspannter.
DDS schrieb: > Ich erzeuge einen Diskreten > Sinusverlauf der sich periodisch mit 15 Hz Widerholt. Die > Amplitudeninformationen in meiner Look Up Table ändern sich mit einer > Frequenz von 3906,25Hz. Ich würde mir das erzeugte Spektrum einmal ansehen. Drei Möglichkeiten: - Oszilloskop mit Spektralanalyse - PC-Soundkarte mit Spektralanalyse-Software - Smartphone mit Spektralanalyse-APP Es wird sich zeigen, dass erstens 15Hz mit Oberwellen auftreten und zweitens Signale mit 3906,25Hz und deren Oberwellen auftreten. Ersteres tritt auf, wenn das Sinussignal nicht gut codiert ist und zweiteres durch die diskrete Zusammensetzung des Nutzsignals durch 3906,25Hz Samples. Das Filter muss zumindest ab der 1/2 Samplefrequenz einsetzten. https://de.wikipedia.org/wiki/Nyquist-Shannon-Abtasttheorem Dann kann das Nutzsignal bis zu dieser Frequenz rekonstruiert werden (z.B. auch Sägezahn, Rechtecksignal ...) Wird aber nur ein sinusförmiges Nutzsignal von 15Hz benötigt, dann kann, wie schon vorher empfohlen wurde, das Filter oberhalb von 15Hz einsetzten. Ist die Grenzfrequenz tiefer als die 15Hz, dann ist das auch kein Problem, es ist halt dann die Amplitude des Nutzsignales kleiner, aber der Abstand zu den Oberwellen noch viel kleiner (der Klirrfaktor wird besser), https://de.wikipedia.org/wiki/Klirrfaktor
Wolfgang schrieb: > Der Tiefpass > schwächt bei seiner Grenzfrequenz ein Signal um 3db ab, d.h. die > Amplitude sinkt auf 70%. Kommt aber auf den Filter an. Wenn die GF entsprechend gewählt wird, wird da gar nichts abgeschwächt.
Die Art des Filters ist schon wesentlich. In der Regel wird als Grenzfrequenz aber der -3dB Punkt angegeben. Je nach Steilheit des Filters und des benötigen Signal sollte die Grenzfrequenz zwischen etwa fs/3 (drüber muss das Filter sehr steil sein) und etwa 2 x der Frequenz des Nutzsignals liegen. Es ist ein Abwägung zischen dem Aufwand für das Filter und dem Fehler durch Spiegelfrequenzen bzw. der Änderung in der Signalamplitude.
DDS schrieb: > Ich erzeuge einen Diskreten > Sinusverlauf der sich periodisch mit 15 Hz Widerholt. Die > Amplitudeninformationen in meiner Look Up Table ändern sich mit einer > Frequenz von 3906,25Hz Wie geht sich die zyklische Abfrage der Look Up Table mit 0,256ms für 15Hz aus? Wie viele Werte stehen in der Look Up Table (260,4166666)?
Die Lookup-Table wählt man typischerweise 2 Adressbits größer als die DAC-Bits. Beispiel: 8bit DAC -> 10bit Lookup-Table. Wenn man die volle Periode in der Lookup-Table hat, dann kann man direkt mit dem Akkumulatorwert auf die Tabelle zu greifen. Wenn man Speicherplatz sparen will, dann speichert man nur die Hälfte oder gar nur ein Viertel einer Sinusperiode. Dann muss man aber die 4 Quadranten unterscheiden und damit aus dem Akkumulatorinhalt die Adresse für die Lookup-Table berechnen.
:
Bearbeitet durch User
Helmut S. schrieb: > 8bit DAC -> 10bit Lookup-Table. wenn ich richtig gerechnet habe (2 hoch 10), würde das 1kB Speicher bedeuten.
GEKU schrieb: > 1kB Speicher =1024 Einträge dann wurde die Samplefrequenz für 15Hz bei 1024*15 = 15360Hz liegen, oder? Sonst würde es einen Phasensprung geben.
GEKU schrieb: > GEKU schrieb: >> 1kB Speicher > > =1024 Einträge dann wurde die Samplefrequenz für 15Hz bei 1024*15 = > 15360Hz liegen, oder? > > Sonst würde es einen Phasensprung geben. Nein. Du machst doch DDS und da muss deine deine Taktfrequenz >2mal die maximal gewünschte Ausgangsfrequenz sein. Je höher das Verhältnis Taktfrequenz/Ausgangsfrequenz ist, um so einfacher wird das Tiefpassfilter. Du könntest z. B. mit 200Hz takten. Da müsstest du jetzt ein Filter berechnen das z. B. bei 15Hz weniger als 10% Dämpfung hat aber bei 185Hz um Faktor 100 dämpft. Das erfordert ein Butterworth-Tiefpassfilter 3. Grades.
:
Bearbeitet durch User
Analogmann schrieb: > Wolfgang schrieb: >> Der Tiefpass >> schwächt bei seiner Grenzfrequenz ein Signal um 3db ab, d.h. die >> Amplitude sinkt auf 70%. > > Kommt aber auf den Filter an. Wenn die GF entsprechend gewählt wird, > wird da gar nichts abgeschwächt. Die Grenzfrequenz eines Filters ist definiert als die Frequenz, bei der ein Signal um 3db abgeschwächt wird, egal was das für ein Filter ist.
Helmut S. schrieb: > Nein. Sorry, ich war bei R2R Netzwerk DDS schrieb: > Ich habe mir eine Platine gebastelt und mit einem R2R DA-Wandler
GEKU schrieb: > Sorry, ich war bei R2R Netzwerk Ich habe das R2R Netzwerk für 15HZ Sinus und 1024 Sample mit Sample-rate von 15360Hz simuliert. Ein RC-Tiefpass mit 10k und 1000nF liefert am Ausgange Vfilt (blau), grün dargestellt ist die Spannung am Eingang Vq des RC-Filters. Das RC-Filter hat eine Grenzfrequenz von ca. 16Hz
GEKU schrieb: > > Ich habe das R2R Netzwerk für 15HZ Sinus und 1024 Sample mit Sample-rate > von 15360Hz simuliert. > > Ein RC-Tiefpass mit 10k und 1000nF liefert am Ausgange Vfilt (blau), > grün dargestellt ist die Spannung am Eingang Vq des RC-Filters. Na, da siehst du doch alles. Die Amplitude des gefilterten Signals ist schon um ~30% abgefallen. Für einen amplitudenstabilen Signalgenerator ist diese Abstimmung also eher ungünstig. Die erste Harmonische bei 45Hz istq ungefiltert bei ca. -58dB. Gefiltert dann bei -60dB (kann man so genau nicht sehen; blau auf schwarz ist eine beschissene Farbkombination). Der Filter bringt nicht viel für die erste Harmonische. Bei höheren Frequenzen sieht es dann besser aus.
An der Simulation mit den Steileren Flanken sieht man recht schön wieso man das Filter braucht: es geht um die hochfrequenten Störungen so ab etwa 1 KHz in diesem Fall. Das Filter am DDC Ausgang ist i.A. nicht dafür da die Oberwellen des Signals zu entfernen. Da sorgt man eher durch einen entsprechend guten DAC (R2R an den IO pins ist i.A. nicht sehr gut) für eine kleine Amplitude. Ggf. könnte es sich lohnen das oberste Bit von der R2R Kette abzugleichen. Für nur 15 Hz am Ausgang könnte man im Prinzip auch PWM statt dem R2R DAC nutzen. Knapp 4 kHz PWM Frequenz sind noch nicht so unmöglich hoch.
DDS schrieb: > mit einer > Frequenz von 3906,25Hz Unter Cygwin oder Linux können eigene Varianten analysiert werden. Quellcode: singen.zip
Lurchi schrieb: > Für nur 15 Hz am Ausgang könnte man im Prinzip auch PWM statt dem R2R > DAC nutzen. Eben. Vor allem ist PWM deutlich linearer als ein einfacher R2R DAC aus 1% Widerständen. > Knapp 4 kHz PWM Frequenz sind noch nicht so unmöglich hoch. Sie sind eher unnötig niedrig. Ein AVR mit 16 MHz und 10 Bit PWM schafft 16 kHz ohne ins Schwitzen zu kommen. Das erleichtert die Ausgangsfilterung zusätzlich.
Falk B. schrieb: > Vor allem ist PWM deutlich linearer als ein einfacher R2R DAC aus > 1% Widerständen. Dafür ist vermutlich bei der PWM das Störspektrum größer. (Interessant wäre eine Simulation zum Vergleich des Störspektrums und der Filtermaßnahmen) Bei R2R sind die kleinen Sprünge von Sample zu Sample maßgebend. Beim Beispiel fft15Hz-3906_25Hz.jpg kleiner -40dB. (= Faktor 100)
Zu passiven Glättungsfiltern habe ich mal hier etwas geschrieben: https://www.mikrocontroller.net/articles/AVR_PWM#Tiefpassfilter-Berechnung Das AADE-Filterprogramm ist im Web noch zu finden, allerdings ist der Autor verstorben "Neil Heckt passed away on August 19, 2015".
:
Bearbeitet durch User
GEKU schrieb: > Falk B. schrieb: >> Vor allem ist PWM deutlich linearer als ein einfacher R2R DAC aus >> 1% Widerständen. > > Dafür ist vermutlich bei der PWM das Störspektrum größer. Ach herje. Die Oberwellen der PWM liegen bei Vielfachen der Abtastfrequenz, dort muss der Filter schon LANGE ausreichend dämpfen! > (Interessant wäre eine Simulation zum Vergleich des Störspektrums und > der Filtermaßnahmen)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.