Transformación tipo DFT usando ondas triangulares en lugar de ondas sin.

9

Sabemos que DFT (transformada discreta de Fourier) descompone una señal en múltiples frecuencias de ondas sinusoidales. ¿Existe una transformación que haga lo mismo, pero para las ondas triangulares?

Para mis propósitos, solo estoy hablando de señales 1-d (como voltajes, etc.). Estoy estudiando datos históricos del mercado de valores, y solo quiero ver las reversiones en ciertas acciones. En otras palabras, quiero realizar un "pase bajo" en el precio de las acciones utilizando esta transformación.

Editar: en caso afirmativo, ¿cómo puedo hacerlo?

hassan789
fuente
Para cualquier señal, no lo creo, pero me encantaría ver una prueba de por qué no. Si sabe que la señal está compuesta de ondas triangulares, entonces podría ser posible calcular su frecuencia, fase y amplitud individuales.
geometrikal
2
El razonamiento simple dice que debería ser posible para cualquier señal. Dado que los triángulos mismos pueden representarse mediante señales sinusoidales de diferentes frecuencias y pueden escalarse. La verdadera pregunta es, ¿qué inferiría de ella y serían tales inferencias prácticas?
Naresh
Bueno, estoy estudiando datos históricos del mercado de valores, y solo quiero ver las reversiones en ciertas acciones. En otras palabras, quiero realizar un "pase bajo" en el precio de las acciones utilizando esta transformación
hassan789

Respuestas:

8

La transformación ortogonal más cercana que conozco que podría satisfacer sus necesidades es la Transformación inclinada . Se basa en ondas de diente de sierra (ish), pero algunas de las funciones básicas se parecen a las ondas triangulares:

Funciones de base inclinada

(fuente: transformada de Fourier aplicada )

Fue desarrollado para la codificación / compresión de imágenes, pero parece un primer enfoque razonable para el análisis de tendencias / reversiones lineales a largo plazo en los datos financieros. No parece que muchos de los documentos clave que describen la transformación estén disponibles [gratis] en línea, pero el siguiente documento probablemente tenga detalles suficientes para implementar algo:

Un método de truncamiento para calcular transformaciones inclinadas con aplicaciones para el procesamiento de imágenes. MM Anguh, RR Martin. IEEE Trans. Comunicaciones 43 (6), 2103-2110, 1995. ( enlace del autor ) ( enlace pdf )

Específicamente, vea la Sección III que da las relaciones de recursión utilizadas para construir la matriz de transformación.

Datageist
fuente
¡parece prometedor!
hassan789
usando este código de Matlab: eeweb.poly.edu/iselesni/slantlet/index.html Pronto proporcionaré comentarios ...
hassan789
No creo que la Transformación Slantlet sea lo mismo que la Transformación Slantlet. Sin embargo, ambos pueden ser útiles.
Datageist
4

Las B-splines de primer orden son triángulos, y existen algoritmos para representar una señal arbitraria como una suma de B-splines. Como se mencionó, estas estrías no forman una ortobasis, pero esto no es necesariamente algo terrible.

Un buen lugar para comenzar es el artículo de Unser sobre aproximación eficiente de B-spline. http://bigwww.epfl.ch/publications/unser9301.pdf

lp251
fuente
1
este es un buen comienzo, y en realidad podría ser mejor para mí, especialmente si puedo usar splines parabólicas en lugar de cúbicas ... leeré / aprenderé más sobre esto también
hassan789
2

Puede hacer una transformación que use ondas triangulares en lugar de ondas sinusoidales, pero no es una buena opción porque no son ortogonales. La ortogonalidad es una propiedad importante de los vectores de transformación.

Propiedades de las transformaciones ortogonales

Transformación Ortogonal

Jim Clay
fuente
hmmm ... no estoy tan avanzado en lo que respecta a la ortogonalidad ... Sinceramente, no entiendo cuál es la implicación de la ortogonalidad. ¿Significa en última instancia que se necesitan más ciclos de CPU para realizar la transformación (kernel de transformación completo vs kernel de transformación disperso)?
hassan789
0

Puede usar el adjunto del operador integrador (es decir, cumsum) seguido de una transformación Fast Walsh-Hadamard.

por ejemplo en 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 

Las secciones de valores positivos constantes en H se integran para causar inclinaciones en las ondas de diente de sierra; los valores negativos se convierten en declive.

T no es unitario, lo que tiene repercusiones para el estiramiento dimensional. En el lado positivo, tiene un inverso rápido: otro blanco seguido de un diferenciador.

D = inv(S');  % difference matrix with an extra row at bottom for full rank
Tinv = D*H;   % inverse of T
Mark Borgerding
fuente
¿Podría explicar esto un poco más? No veo cómo la integración antes del WHT dará el resultado deseado.
Dilip Sarwate