Op 23 maart 2021 21:27:15 schreef Waters:
Ik probeer de error van het originele naar de 16 bit omzetting zo laag mogelijk te maken, vandaar dat ik wat "vogel" met de waarden. Misschien is dat fout.
Hoe kom je aan een afwijking van 10−10 ?
Ik heb van de originele samples, de afgeronde samples en ten slotte van de 'adjusted'
samples het aandeel 2e harmonische bepaald. Gewoon 'Fourier met de hand'; steeds elke sample vermenigvuldigd met de bijbehorende sinus resp. cosinus van de gevraagde harmonische voor de betreffende sample, en dat getotaliseerd. Eigenlijk moeten de totalen nog door 50 gedeeld worden, maar dat maakt voor het vervormingspercentage niets uit.

(klik=groter)
De fundamental levert zo een totaal op van ruim 220000, en de tweede harmonische (zowel I als Q-component) totalen van in de orde van grootte van 10−10 (wat je dan dus nog door 223000 moet delen om daarmee het percentage vervorming te vinden).
Alleen in jouw 'adjusted samples' kolom, waarin je soms wel en soms niet 1 optelt of aftrekt, komen de totalen op maar liefst 2 resp. 4. T.o.v. de fundamental nog steeds niet zoveel: 0,002 %, maar merkbaar.
Het beste is dus gewoon NIET aan de afgeronde samples te rommelen.
Het afronden op zich veroorzaakt trouwens géén even harmonischen, al doe je het nog zo grof (4 bits bijv.). Ook andere vormen van afronden, zoals 'bankers' rounding', kunnen geen even harmonischen veroorzaken.
--
e: Ik weet dat je de samples halverwege de sinus 'omhoog gegooid' hebt, zodat de samples positief blijven. Je telt dus als het ware een negatieve, opgetilde blokgolf op bij de sinus.
Ik heb hierboven daarvoor niet gecorrigeerd. Voor de even harmonischen maakt het niets uit, omdat de blok geen even harmonischen bevat. En voor de orde van grootte van de fundamental maakt het niet zoveel uit. Wel is de blok dus in tegenfase met je sinus, en groter, zodat de Fourier-uitkomst voor de fundamental een negatief getal oplevert.
Als ik wél corrigeer, dus de stap 'eruithaal', dan wordt het totaal voor de fundamental ca. 819200. De andere getallen blijven praktisch gelijk.
