Member
Beiträge: 1.770
Themen: 25
Registriert: Jan 2010
17.02.2019, 07:19 PM
(Dieser Beitrag wurde zuletzt bearbeitet: 17.02.2019, 07:20 PM von E_Tobi.)
Ich kopier das immer komplett wie es ist in die IDE, und mache mit "Maus + Alt" hinter das letzte Zeichen jeder Zahl ein Komma. Manchmal, bei unterschiedlich langen Zahlen, muss man mit der Version aber einige Zeichen per Hand nacharbeiten...da hab ich auch noch keine schöne Lösung ohne Script gefunden.
(Edit: Vielleicht kann man auch in die nächste Tabellenspalte ein Komma einfügen und mitsamt den Zahlen rauskopieren. Dann weiß ich aber nicht was deine IDE aus dem Tab macht, das dabei zwischen Zahl und Komma steht...dürfte eigentlich nichts schaden?)
Administrator
Beiträge: 10.240
Themen: 165
Registriert: Jun 2005
mm, die IDE ist arduino 1.8.8
btw excel Grundkurs: wie erzeugt man so ne Tabelle? also Formel für ein Feld eingeben - ist klar. wenn ich aber, wie hier, in 200 Felder eine Formel setzen will, die sich mit dem Index ändert...wie geht das dann ?
Don't worry about getting older. You're still gonna do dump stuff...only slower
Member
Beiträge: 1.770
Themen: 25
Registriert: Jan 2010
Die Formel ein Feld nutzen lassen, z.B. =2*E4
Dann das Feld mit der fertigen Formel anklicken, rechts unten gibt's dann einen kleinen schwarzen Block.
Den nehmen (der Mauszeiger wird zu einem Kreuz)und nach unten ziehen. Dann wird die nächste Formel automatisch zu =2*E5, die nächste =2*E6, usw... Wenn du das verhindern willst, weil z.B. alle Formeln mit einer Konstante arbeiten sollen, machst du E$4 draus.
Das "ziehen" funktioniert auch mit Zahlenfolgen, Datum, usw...für Zahlenfolgen gibst du in der erste Feld der Reihe 1 ein, in das zweite 2, markierst beide Felder und ziehst wieder den schwarzen Punkt nach unten. Das geht auch mit irgendwelchen anderen Folgen, aufsteigend, absteigend, wiederholend, usw.
Member
Beiträge: 15.902
Themen: 70
Registriert: Jul 2009
(17.02.2019, 07:04 PM)alfsch schrieb: noch ne dumme Frage: wie kopiere ich jetzt, zb die Spalte 7msb , in einem brauchbaren Format raus? ...oder eben von Hand Kommas setzen..?
Kannst Du nicht nen CSV export machen und dann den Feld-Trenner frei wählen?
...mit der Lizenz zum Löten!
Administrator
Beiträge: 10.240
Themen: 165
Registriert: Jun 2005
18.02.2019, 05:10 PM
(Dieser Beitrag wurde zuletzt bearbeitet: 18.02.2019, 05:12 PM von alfsch.)
...habs schon eingetippt. mit 250 x " ctrl V" --- fast meditative Tätigkeit
+ du hattest richtig vermutet: die PWM hat dominant K2 , muss wohl "phase correct" sein.
mit der 7bit PWM sagt Klirr-Messeisen : 0,6% . (Tabelle von Tobi )
Don't worry about getting older. You're still gonna do dump stuff...only slower
Member
Beiträge: 1.770
Themen: 25
Registriert: Jan 2010
18.02.2019, 08:24 PM
(Dieser Beitrag wurde zuletzt bearbeitet: 18.02.2019, 08:25 PM von E_Tobi.)
Hm, wenn ich (bzw. Calc) mich nicht verrechnet hab, hat die Tabelle selbst 2.7% Klirr, durch die 14Bit-Quantisierung.
Klingt das für euch realistisch oder liegt das völlig daneben...? Müsst doch eigentlich deutlich weniger sein...eher so 0.0x%?
Administrator
Beiträge: 10.240
Themen: 165
Registriert: Jun 2005
18.02.2019, 09:36 PM
(Dieser Beitrag wurde zuletzt bearbeitet: 18.02.2019, 09:38 PM von alfsch.)
da muttu dick ver-
kakt - calct haben. 0,6% gemessen, mit der 7bit msb Tabelle.
rein von der Quantisierung 1/127 sollte sich irgendwas bei -42dB, rund 0,5% ergeben. tuts ja auch.
14bit wären 1/16000 , also rund -84dB oder 0,005%
Don't worry about getting older. You're still gonna do dump stuff...only slower
Member
Beiträge: 15.902
Themen: 70
Registriert: Jul 2009
(18.02.2019, 09:36 PM)alfsch schrieb: 14bit wären 1/16000 , also rund -84dB oder 0,005%
Bei nur 256 Stützstellen?
...mit der Lizenz zum Löten!
Administrator
Beiträge: 10.240
Themen: 165
Registriert: Jun 2005
...will mich jetzt nicht darauf versteifen - aber afair ist das Ergebnis : DA-Wandler (Auflösung) + Rekonstruktionsfilter.
dh. ist das Filter "perfekt" , bleibt nur der Sinus ; mit der Präzision, die der Wandler eben kann.
real ist unser simples Filter natürlich nicht ideal, also wird der Klirr immer etwas grösser sein, je nach Filter bzw Frequenz.
andersherum gesehen: je mehr Stützstellen in einer Sinus-Welle sind, desto weniger aufwendig muss der Filter sein (er muss dann weniger "rekonstruieren")
...
Don't worry about getting older. You're still gonna do dump stuff...only slower
Member
Beiträge: 10.599
Themen: 355
Registriert: Jul 2012
19.02.2019, 12:19 PM
(Dieser Beitrag wurde zuletzt bearbeitet: 19.02.2019, 12:41 PM von christianw..)
Administrator
Beiträge: 10.240
Themen: 165
Registriert: Jun 2005
19.02.2019, 12:42 PM
(Dieser Beitrag wurde zuletzt bearbeitet: 19.02.2019, 01:17 PM von alfsch.)
mit suuuuper-Filter, na klar doch.
+
mein altes Problem: meine tollsten Erfindungen...hat meist jemand anders schon vor 10 Jahren gemacht...
Don't worry about getting older. You're still gonna do dump stuff...only slower
Member
Beiträge: 10.599
Themen: 355
Registriert: Jul 2012
19.02.2019, 01:53 PM
(Dieser Beitrag wurde zuletzt bearbeitet: 19.02.2019, 01:54 PM von christianw..)
Zitat:This all sounds wonderful, and it mostly is, but an important thing to remember is that increasing bit depth does NOT change distortion or unwanted PWM frequency interference. It only reduces the effective noise floor.
So, if you are mostly interested in low frequencies (ones very far away from your PWM frequency), then increasing the bit depth in this manner is extremely useful, as the distortion components become lower the further away you get from the PWM frequency.
http://www.openmusiclabs.com/learning/di...-analysis/
Member
Beiträge: 15.902
Themen: 70
Registriert: Jul 2009
sehr guter link das . Auch sehr lesenswert der drin enthaltene link auf
http://www.openmusiclabs.com/learning/di...index.html
...mit der Lizenz zum Löten!
Member
Beiträge: 1.770
Themen: 25
Registriert: Jan 2010
Ja, danke dafür. Das mit der phasenkorrekten PWM war mir bisher auch noch nicht bewusst. Aber eigentlich logisch, durch die einseitige Fixierung der Pulse verziehts den Sinus ja auch...
Administrator
Beiträge: 10.240
Themen: 165
Registriert: Jun 2005
leider...kann der doofe tiny85 nur simple pwm auf dem schnellen timer
isch grüble noch...
Don't worry about getting older. You're still gonna do dump stuff...only slower
Member
Beiträge: 15.902
Themen: 70
Registriert: Jul 2009
19.02.2019, 11:36 PM
(Dieser Beitrag wurde zuletzt bearbeitet: 19.02.2019, 11:48 PM von voltwide.)
(19.02.2019, 10:49 PM)alfsch schrieb: leider...kann der doofe tiny85 nur simple pwm auf dem schnellen timer
isch grüble noch...
ups, ich dachte das wäre Dir klar.
Das Problem ist, dass die Phasenverzerrungen mit der rel Frequenz (Fsignal/Fsample) zunehmen.
D.h. selbst wenn man die Berechnungen für eine korrigierte Tabelle hinbekäme -
bräuchte man für jede einzelne Signalfrequenz eine eigene, optimierte lookup-table.
D.h.mit dem schnellen PWM könnte man sinnvollerweise nur einen Festfrequenzgenerator mit minimierten Verzerrungen bauen - für viele lookup-tables ist gar nicht genug flash-Speicher vorhanden.
...mit der Lizenz zum Löten!
Member
Beiträge: 10.599
Themen: 355
Registriert: Jul 2012
19.02.2019, 11:39 PM
(Dieser Beitrag wurde zuletzt bearbeitet: 19.02.2019, 11:44 PM von christianw..)
Gilt das auch für Triangle?
Der wirklich schnellste Code für DDS den ich aufm Atmega kenne ist dieser:
http://codeandlife.com/2012/03/13/fast-d...-atmega88/
(Aber gemacht für R2R Ladder)
Der wirklich schnellste Code für DDS den ich aufm Atmega kenne ist dieser:
http://codeandlife.com/2012/03/13/fast-d...-atmega88/
(Aber gemacht für R2R Ladder)
Member
Beiträge: 15.902
Themen: 70
Registriert: Jul 2009
20.02.2019, 12:02 AM
(Dieser Beitrag wurde zuletzt bearbeitet: 20.02.2019, 12:05 AM von voltwide.)
(19.02.2019, 11:39 PM)christianw. schrieb: Gilt das auch für Triangle?
Nö, der Sägezahn funktiert durch stumpfes Zählen und Überlauf.
Fürs triangle müßtest Du eine bedingte Richtungsumkehr einbauen. Das kostet code.
(19.02.2019, 11:39 PM)christianw. schrieb: Gilt das auch für Triangle?
Der wirklich schnellste Code für DDS den ich aufm Atmega kenne ist dieser:
http://codeandlife.com/2012/03/13/fast-d...-atmega88/
(Aber gemacht für R2R Ladder)
Der wirklich schnellste Code für DDS den ich aufm Atmega kenne ist dieser:
http://codeandlife.com/2012/03/13/fast-d...-atmega88/
(Aber gemacht für R2R Ladder)
und dieser code läuft unsynchronisiert im Hauptprogramm. Synchrone Abarbeitung erfordert aber Abarbeitung im timer-irq.
...mit der Lizenz zum Löten!
Administrator
Beiträge: 10.240
Themen: 165
Registriert: Jun 2005
20.02.2019, 12:19 AM
(Dieser Beitrag wurde zuletzt bearbeitet: 20.02.2019, 12:31 AM von alfsch.)
(19.02.2019, 11:36 PM)voltwide schrieb: (19.02.2019, 10:49 PM)alfsch schrieb: leider...kann der doofe tiny85 nur simple pwm auf dem schnellen timer
isch grüble noch...
ups, ich dachte das wäre Dir klar.
na, altersbedingt...so viele controller, da vergisst man schon mal, welcher nu genau was kann
irgendwie bin ich an die STM32 "gewöhnt" , timer up, down oder beides...dass primitiv-timer sowas nicht können, hatte ich nicht (mehr) aufm Schirm.
rein theorethisch betrachtet: optimal, auf dem primitiv-timer, könnte sein: 2 x 8bit PWM, auf 9bit berechnet, ein cmp bekommt das Rundungs-bit, aber die PWM des 2. komplementär, also zb "5" ergibt im 1. output 5x high am Anfang, im 2. output aber 5x high am Ende des Zyklus, beide einfach summiert; das sollte eine Kompensation der Phasenverschiebung ergeben und somit ein optimales Signal. right ?
+ auf diese schräge Idee kam noch niemand...hoffe ich mal.
Don't worry about getting older. You're still gonna do dump stuff...only slower
Member
Beiträge: 10.599
Themen: 355
Registriert: Jul 2012
Äh, Moment ich hab das Mal was vorbereitet..