DFT-ähnliche Transformation unter Verwendung von Dreieckswellen anstelle von Sinuswellen


9

Wir wissen, dass DFT (diskrete Fourier-Transformation) ein Signal in mehrere Frequenzen von Sinuswellen zerlegt. Gibt es eine Transformation, die dasselbe tut, nur für Dreieckswellen?

Für meine Zwecke spreche ich nur über 1-D-Signale (wie Spannungen usw.). Ich studiere historische Börsendaten und möchte nur die Umkehrungen bestimmter Aktien betrachten. Mit anderen Worten, ich möchte mit dieser Transformation einen "Tiefpass" auf den Aktienkurs durchführen.

Edit: Wenn ja, wie kann ich das machen?


Für jedes Signal denke ich nicht, würde aber gerne einen Beweis sehen, warum nicht. Wenn Sie wissen, dass das Signal aus Dreieckswellen besteht, können Sie möglicherweise deren individuelle Frequenz, Phase und Amplitude ermitteln.
geometrisch

2
Einfache Argumentation besagt, dass es für jedes Signal möglich sein sollte. Da Dreiecke selbst durch Sinussignale unterschiedlicher Frequenzen dargestellt und skaliert werden können. Die eigentliche Frage ist, was würden Sie daraus schließen und wären solche Schlussfolgerungen praktisch nützlich?
Naresh

Nun, ich studiere historische Börsendaten und möchte nur die Umkehrungen bestimmter Aktien betrachten. Mit anderen Worten, ich möchte mit dieser Transformation einen "Tiefpass" auf den Aktienkurs durchführen
hassan789

Antworten:


8

Die nächste orthogonale Transformation, von der ich weiß, dass sie Ihren Anforderungen entspricht, ist die Schrägtransformation . Es basiert auf Sägezahnwellen (ish), aber einige der Basisfunktionen ähneln Dreieckswellen:

Schräge Basisfunktionen

(Quelle: Angewandte Fourier-Transformation )

Es wurde für die Bildcodierung / -komprimierung entwickelt, scheint jedoch ein vernünftiger erster Ansatz für die Analyse langfristiger linearer Trends / Umkehrungen in Finanzdaten zu sein. Es scheint nicht, dass viele der wichtigsten Dokumente , die die Transformation beschreiben, [kostenlos] online verfügbar sind, aber das folgende Dokument enthält wahrscheinlich genügend Details, um etwas zu implementieren:

Eine Kürzungsmethode zum Berechnen von Schrägtransformationen mit Anwendungen für die Bildverarbeitung. MM Anguh, RR Martin. IEEE Trans. Communications 43 (6), 2103-2110, 1995. ( Autorenlink ) ( pdf-Link )

Siehe insbesondere Abschnitt III, in dem die Rekursionsrelationen angegeben sind, die zum Erstellen der Transformationsmatrix verwendet wurden.


sieht vielversprechend aus!
Hassan789

Mit diesem Matlab-Code: eeweb.poly.edu/iselesni/slantlet/index.html Ich werde bald Feedback geben ...
hassan789

Ich denke nicht, dass die Slantlet-Transformation dasselbe ist wie die Slant-Transformation. Beides könnte jedoch nützlich sein.
Datageist

4

B-Splines erster Ordnung sind Dreiecke, und es gibt Algorithmen, um ein beliebiges Signal als Summe von B-Splines darzustellen. Wie bereits erwähnt, bilden diese Splines keine Orthobase, aber dies ist nicht unbedingt eine schreckliche Sache.

Ein guter Anfang ist das Papier von Unser über eine effiziente B-Spline-Approximation. http://bigwww.epfl.ch/publications/unser9301.pdf


1
Dies ist ein guter Anfang und könnte für mich sogar besser sein, besonders wenn ich parabolische B-Splines anstelle von kubischen verwenden kann. Ich werde auch mehr darüber lesen / lernen
Hassan789

2

Sie können eine Transformation durchführen, bei der Dreieckwellen anstelle von Sinuswellen verwendet werden. Dies ist jedoch keine gute Wahl, da sie nicht orthogonal sind. Orthogonalität ist eine wichtige Eigenschaft von Transformationsvektoren.

Eigenschaften orthogonaler Transformationen

Orthogonale Transformation


hmmm ... ich bin nicht so fortgeschritten, wenn es um Orthogonalität geht ... Ehrlich gesagt verstehe ich nicht, was die Implikation von Orthogonalität ist. Bedeutet dies letztendlich, dass mehr CPU-Zyklen erforderlich sind, um die Transformation durchzuführen (vollständiger Transformationskernel vs. spärlicher Transformationskernel)?
Hassan789

0

Sie können den Adjunkt des Integratoroperators (dh Cumsum) gefolgt von einer Fast Walsh-Hadamard-Transformation verwenden.

zB in Matlab

n = 16;
H = fwht(eye(n))*sqrt(n); % Walsh-Hadamrd in full unitary matrix form
S = cumsum(eye(n)); % the integrator in full matrix form
T = H*S';  % cumsum along the rows of the W-H 

Die Abschnitte mit konstanten positiven Werten in H integrieren sich, um Steigungen in den Sägezahnwellen zu verursachen; negative Werte sinken.

T ist nicht einheitlich, was Auswirkungen auf die Dimensionsdehnung hat. Auf der positiven Seite hat es eine schnelle Umkehrung: eine weitere, gefolgt von einem Unterscheidungsmerkmal.

D = inv(S');  % difference matrix with an extra row at bottom for full rank
Tinv = D*H;   % inverse of T

Könnten Sie das etwas näher erläutern? Ich sehe nicht, wie die Integration vor dem WHT das gewünschte Ergebnis liefert.
Dilip Sarwate
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.