Vor einiger Zeit habe ich verschiedene Möglichkeiten ausprobiert , um digitale Wellenformen zu zeichnen , und eines der Dinge, die ich versucht habe, war, sie anstelle der Standard-Silhouette der Amplitudenhüllkurve eher wie ein Oszilloskop anzuzeigen. So sehen Sinus und Rechteck auf einem Oszilloskop aus:
Der naive Weg dazu ist:
- Teilen Sie die Audiodatei im Ausgabebild in einen Teil pro horizontalem Pixel auf
- Berechnen Sie das Histogramm der Probenamplituden für jeden Block
- Zeichnen Sie das Histogramm nach Helligkeit als Pixelspalte
Es erzeugt so etwas:
Dies funktioniert gut, wenn es viele Samples pro Chunk gibt und die Frequenz des Signals nicht mit der Sampling-Frequenz zusammenhängt, aber nicht anders. Wenn die Signalfrequenz beispielsweise ein genaues Submultiple der Abtastfrequenz ist, treten die Abtastungen in jedem Zyklus immer mit genau den gleichen Amplituden auf, und das Histogramm besteht nur aus wenigen Punkten, obwohl das tatsächlich rekonstruierte Signal zwischen diesen Punkten vorhanden ist. Dieser Sinuspuls sollte so glatt sein wie der obige, aber nicht, weil er genau 1 kHz beträgt und die Abtastungen immer um die gleichen Punkte erfolgen:
Ich habe Upsampling versucht, um die Anzahl der Punkte zu erhöhen, aber es behebt das Problem nicht, sondern hilft nur, die Situation in einigen Fällen zu glätten.
Was ich also wirklich möchte, ist eine Möglichkeit, die wahre PDF (Wahrscheinlichkeit gegen Amplitude) des kontinuierlich rekonstruierten Signals aus seinen digitalen Abtastwerten (Amplitude gegen Zeit) zu berechnen . Ich weiß nicht, welchen Algorithmus ich dafür verwenden soll. Im Allgemeinen ist das PDF einer Funktion die Ableitung ihrer Umkehrfunktion .
PDF von sin (x):
Aber ich weiß nicht, wie ich das für Wellen berechnen soll, bei denen die Inverse eine mehrwertige Funktion ist , oder wie ich es schnell machen soll. Brechen Sie es in Zweige auf und berechnen Sie die Umkehrung von jedem, nehmen Sie die Ableitungen und addieren Sie sie alle zusammen? Aber das ist ziemlich kompliziert und es gibt wahrscheinlich einen einfacheren Weg.
Dieses "PDF mit interpolierten Daten" ist auch auf einen Versuch anwendbar, eine Schätzung der Kerndichte einer GPS-Spur durchzuführen. Es hätte ringförmig sein sollen, aber da es nur die Samples betrachtete und die interpolierten Punkte zwischen den Samples nicht berücksichtigte, sah das KDE eher wie ein Buckel als wie ein Ring aus. Wenn wir nur die Proben kennen, ist dies das Beste, was wir tun können. Aber die Proben sind nicht alles, was wir wissen. Wir wissen auch, dass es einen Pfad zwischen den Samples gibt. Für GPS gibt es keine perfekte Nyquist-Rekonstruktion wie für bandbegrenztes Audio, aber die Grundidee gilt weiterhin, mit einigen Vermutungen in der Interpolationsfunktion.