Rechteck mit DPW-Algorithmus

OP #2538637
Lesenswert?

Hallo Leute,

ich habe das Problem das ich bei der folgend geschilderten Methode einen 
Rechteck zu erzeugen versuche, dieser aber alles andere als eine 
Aliasingreduzierte Pulswelle ist.

Wie nach DPW wird erstens der Modulo-Counter qudriert und der alte Wert 
vom neuen abgezogen. Danach wird durch "c" verstärkt (c=fs/(4f)).
Ich erzeuge halt zwei Sägezähne unterschiedlicher Phasenlage und diese 
beiden Sägezähne hören sich einzeln sehr sauber an .Auf dem Oszie sehen 
die auch super aus halt bandlimitid.

Wenn ich nun aber den einen Sägezahn vom anderen abziehe (laut 
DPW-Algorithmus), dann kommt da zwar ein Rechteck heraus welcher aber 
sehr unsauber klingt. Samplingfrequenz beträgt 62,25 kHz und der 
erzeugte Rechteck soll eine Frequenz von 0 bis 2500 Hz haben 
(einstellbar).

Im Anhang habe ich mal die Assemblerroutine im ASM30-Format für DSPIC's.

Wer kann mir da einen Ratschlag geben was ich da Falsch mache?

Vielen Dank schon mal im Voraus...
Angehängte Dateien:
OP #2540255
Lesenswert?

Servus,

ja das kann schon sein, aber jetzt stelle Dir mal die Sägezähne unsigned
vor ,dann kommt da ein Rechteck raus. Der Dac in dem DSPIC ist auf 
signed konfiguriert und ein unsigned in Signed wird in einer extra 
Routine gemacht kurz bevor die Samples and den DAC übergeben werden.

Danke für deine Hilfe
Gast #2542550
Lesenswert?

Sind die beiden Sägezähne exakt 180° auseinander? Der eine muss ja nach 
unten gehen, während der andere rauf geht (bei 'signed' würden sie sich 
im Nullpunkt treffen). Dann hättest Du ein Rechteck mit 50% Pulsweite. 
Ist dem so, oder hast Du eher eine Pulswelle?
Gast #2542562
Lesenswert?

Ach sorry, 50% war glaub ich Käse. Sollte die Differenz nicht pi/2 oder 
so sein? Verschieb mal den invertierten in der Phase, addiere beide und 
schau Dir den Plot an. Wenn beide bandlimitiert sind, muss die Addition 
das auch sein.
Wenn Du aber eher einen Nadelimpuls hast, und die Sägezähne waren nicht 
wirklich bandlimitiert, wird das mit abnehmender Pulsweite 
offensichtlicher.
OP #2542726
Lesenswert?

Mensch Sascha,

danke erstmal für deine Teilnahme und Hilfe, aber ich habe den Fehler
gefunden. und Zwar die Sägezähne müssen beide positiv sein aber 
phasenverschoben. Mein Fehler war die letztendliche Verstärkung des 
Signales. Das Ding war einfach übersteuert (c=fs/(4f)).
Das scheint so nicht zu stimmen oder mein Prog ist fehlerhaft.


Jungens danke noch mal

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren