Transformation de type DFT utilisant des ondes triangulaires au lieu des ondes sinueuses


9

Nous savons que la DFT (transformée de Fourier discrète) décompose un signal en plusieurs fréquences d'ondes sinusoïdales. Existe-t-il une transformation qui fait la même chose, mais pour les ondes triangulaires?

Pour mes besoins, je ne parle que des signaux 1-d (comme les tensions, etc.). J'étudie les données historiques du marché boursier, et je veux juste regarder les inversions de certains stocks. En d'autres termes, je veux effectuer un "passe-bas" sur le cours de l'action en utilisant cette transformation.

Edit: Si oui, comment puis-je le faire?


Pour tout signal, je ne le pense pas, mais j'aimerais voir une preuve pourquoi pas. Si vous savez que le signal est composé d'ondes triangulaires, il pourrait être possible de déterminer leur fréquence, leur phase et leur amplitude individuelles.
geometrikal

2
Un raisonnement simple dit qu'il devrait être possible pour n'importe quel signal. Étant donné que les triangles eux-mêmes peuvent être représentés par des signaux sinus de fréquences différentes et peuvent être mis à l'échelle. La vraie question est de savoir ce que vous en déduisez et de telles déductions seraient-elles pratiquement utiles?
Naresh

Eh bien, j'étudie les données historiques du marché boursier, et je veux juste regarder les inversions de certains stocks. En d'autres termes, je veux effectuer un "passe-bas" sur le cours de l'action en utilisant cette transformation
hassan789

Réponses:


8

La transformation orthogonale la plus proche que je connaisse qui pourrait répondre à vos besoins est la transformation oblique . Il est basé sur des ondes en dents de scie (ish), mais certaines des fonctions de base ressemblent à des ondes triangulaires:

Fonctions de base oblique

(source: transformée de Fourier appliquée )

Il a été développé pour le codage / compression d'images, mais il semble être une première approche raisonnable pour l'analyse des tendances / inversions linéaires à long terme des données financières. Il ne semble pas que la plupart des documents clés décrivant la transformation soient disponibles [gratuitement] en ligne, mais le document suivant contient probablement suffisamment de détails pour mettre en œuvre quelque chose:

Une méthode de troncature pour calculer les transformations obliques avec des applications au traitement d'image. MM Anguh, RR Martin. IEEE Trans. Communications 43 (6), 2103-2110, 1995. ( lien de l'auteur ) ( lien pdf )

Plus précisément, voir la section III qui donne les relations de récursivité utilisées pour construire la matrice de transformation.


Cela semble prometteur!
hassan789

en utilisant ce code Matlab: eeweb.poly.edu/iselesni/slantlet/index.html je fournirai des commentaires bientôt ...
hassan789

Je ne pense pas que la transformation Slantlet soit la même chose que la transformation Slantlet. Les deux pourraient cependant être utiles.
datageist

4

Les B-splines du premier ordre sont des triangles, et il existe des algorithmes pour représenter un signal arbitraire comme une somme de B-splines. Comme mentionné, ces splines ne forment pas une orthobase, mais ce n'est pas nécessairement une chose terrible.

Un bon point de départ est le document de Unser sur l'approximation efficace de la B-spline. http://bigwww.epfl.ch/publications/unser9301.pdf


1
c'est un bon début, et en fait cela pourrait être mieux pour moi, surtout si je peux utiliser des splines b paraboliques au lieu de cubiques .... lira / apprendra plus à ce sujet également
hassan789

2

Vous pouvez faire une transformation qui utilise des ondes triangulaires au lieu des ondes sinusoïdales, mais ce n'est pas un bon choix car elles ne sont pas orthogonales. L'orthogonalité est une propriété importante des vecteurs de transformation.

Propriétés des transformations orthogonales

Transformation orthogonale


hmmm ... je ne suis pas aussi avancé en matière d'orthogonalité ... Honnêtement, je ne comprends pas quelle est l'implication de l'orthogonalité. Cela signifie-t-il finalement qu'il faut plus de cycles CPU pour faire la transformation (noyau de transformation complet vs noyau de transformation fragmenté)?
hassan789

0

Vous pouvez utiliser l'adjoint de l'opérateur intégrateur (c.-à-d. Cumsum) suivi d'une transformation rapide de Walsh-Hadamard.

par exemple dans 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 

Les sections de valeurs positives constantes dans H s'intègrent pour provoquer des inclinaisons dans les vagues en dents de scie; les valeurs négatives deviennent une baisse.

T n'est pas unitaire ce qui a des répercussions sur l'étirement dimensionnel. Du côté positif, il a un inverse rapide: un autre fwht suivi d'un différenciateur.

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

Pourriez-vous expliquer cela un peu plus? Je ne vois pas comment l'intégration avant le WHT donnera le résultat souhaité.
Dilip Sarwate
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.