05.11.2010, 10:28 AM
Zitat:Original geschrieben von Hans Dorn
Wenn Du mehr Bits ausgibst, verschwindet der Effekt.
Anhand des Zählerstands im Phasenakku kannst Du zwischen 2 Samples interpolieren.
1. Mehr Bits (Du scheinst das Problem noch nicht gerafft zu haben):
0000.0000.0000.0000 + 0111.0000.0000.0000 = 0111.0000.0000.0000 => low
0111.0000.0000.0000 + 0111.0000.0000.0000 = 1110.0000.0000.0000 => high
1110.0000.0000.0000 + 0111.0000.0000.0000 = 0101.0000.0000.0000 => low
0101.0000.0000.0000 + 0111.0000.0000.0000 = 1100.0000.0000.0000 => high
1100.0000.0000.0000 + 0111.0000.0000.0000 = 0011.0000.0000.0000 => low
0011.0000.0000.0000 + 0111.0000.0000.0000 = 1010.0000.0000.0000 => high
1010.0000.0000.0000 + 0111.0000.0000.0000 = 0001.0000.0000.0000 => low
0001.0000.0000.0000 + 0111.0000.0000.0000 = 1000.0000.0000.0000 => high
1000.0000.0000.0000 + 0111.0000.0000.0000 = 1111.0000.0000.0000 => high ;deal2
2. Interpolation: WAS soll ich da beim Rechteck "interpolieren"?

Natürlich hast Du Recht, dass man beim Sinus oder beim Dreieck per Interpolation die Schwebungen vermindern kann. Aber beim Rechteck (und ähnlichen sprunghaften Wellenformen) scheitert das Verfahren.
Voltwides Arb-Generator ist zielführender als dieser DDS-Krempel. Allerdings will ich ne PLL (wie schon beschrieben) zur kontinuierlichen Taktfrequenzeinstellung verwenden.