mikrocontroller.net

Forum: Analoge Elektronik und Schaltungstechnik DDS - Ausgangssignal glätten


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

Bewertung
0 lesenswert
nicht lesenswert
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
Autor: DDS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
3906,25Hz ist meine Abtastfrequenz

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Falk B. (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: GEKU (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Analogmann (Gast)
Datum:

Bewertung
-3 lesenswert
nicht lesenswert
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.

Autor: Lurchi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: GEKU (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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)?

Autor: Helmut S. (helmuts)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
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
Autor: GEKU (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Helmut S. schrieb:
> 8bit DAC -> 10bit Lookup-Table.

wenn ich richtig gerechnet habe (2 hoch 10), würde das 1kB Speicher 
bedeuten.

Autor: GEKU (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Helmut S. (helmuts)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
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
Autor: Wolfgang (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
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.

Autor: GEKU (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Helmut S. schrieb:
> Nein.

Sorry, ich war bei R2R Netzwerk

DDS schrieb:
> Ich habe mir eine Platine gebastelt und mit einem R2R DA-Wandler

Autor: GEKU (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: GEKU (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Steilere Flanken des Eingangsignales

Autor: Axel S. (a-za-z0-9)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Lurchi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: GEKU (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
DDS schrieb:
> mit einer
> Frequenz von 3906,25Hz

Unter Cygwin oder Linux können eigene Varianten analysiert werden.
Quellcode: singen.zip

Autor: Falk B. (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: GEKU (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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)

Autor: Christoph db1uq K. (christoph_kessler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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
Autor: Falk B. (falk)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
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)

Antwort schreiben

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

Wichtige Regeln - erst lesen, dann posten!

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

Formatierung (mehr Informationen...)

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




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

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