Trasformazione simile a DFT utilizzando le onde triangolari anziché le onde sin


9

Sappiamo che DFT (trasformata discreta di Fourier) scompone un segnale in più frequenze di onde sinusoidali. Esiste una trasformazione che fa la stessa cosa, ma per le onde triangolari?

Per i miei scopi, sto parlando solo di segnali 1-d (come tensioni, ecc.). Sto studiando i dati storici del mercato azionario e voglio solo vedere le inversioni in alcuni titoli. In altre parole, voglio eseguire un "passa-basso" sul prezzo delle azioni usando questa trasformazione.

Modifica: se sì, come posso farlo?


Per ogni segnale, non credo, ma mi piacerebbe vedere una prova perché no. Se sai che il segnale è composto da onde triangolari, potrebbe essere possibile calcolare la loro frequenza, fase e ampiezza individuali.
geometrikal

2
Il semplice ragionamento dice che dovrebbe essere possibile per qualsiasi segnale. Poiché i triangoli stessi possono essere rappresentati da segnali sinusoidali di frequenze diverse e possono essere ridimensionati. La vera domanda è: cosa ne deduresti e tali inferenze sarebbero praticamente utili?
Naresh

Bene, sto studiando i dati storici del mercato azionario e voglio solo vedere le inversioni in alcuni titoli. In altre parole, voglio eseguire un "passa-basso" sul prezzo delle azioni usando questa trasformazione
hassan789

Risposte:


8

La trasformazione ortogonale più vicina che conosco che potrebbe soddisfare le tue esigenze è la trasformazione inclinata . Si basa su onde a dente di sega (ish), ma alcune delle funzioni di base assomigliano a onde triangolari:

Funzioni di base inclinate

(fonte: trasformata di Fourier applicata )

È stato sviluppato per la codifica / compressione delle immagini, ma sembra un primo approccio ragionevole per l'analisi di tendenze / inversioni lineari a lungo termine nei dati finanziari. Non sembra che molti dei documenti chiave che descrivono la trasformazione siano disponibili [gratuitamente] online, ma il seguente documento probabilmente ha dettagli sufficienti per implementare qualcosa:

Un metodo di troncamento per il calcolo delle inclinazioni si trasforma con le applicazioni all'elaborazione delle immagini. MM Anguh, RR Martin. IEEE Trans. Communications 43 (6), 2103-2110, 1995. ( link autore ) ( link pdf )

In particolare, vedere la Sezione III che fornisce le relazioni di ricorsione utilizzate per costruire la matrice di trasformazione.


sembra promettente!
hassan789

usando questo codice Matlab: eeweb.poly.edu/iselesni/slantlet/index.html presto fornirò un feedback ...
hassan789

Non penso che la Trasformazione di inclinazione sia la stessa cosa della Trasformazione di inclinazione. Entrambi potrebbero essere utili però.
datageist

4

Le spline B del primo ordine sono triangoli e esistono algoritmi per rappresentare un segnale arbitrario come somma delle spline B. Come accennato, queste spline non formano un'ortobasi, ma questa non è necessariamente una cosa terribile.

Un buon punto di partenza è l'articolo di Unser su un'approssimazione efficiente della B-spline. http://bigwww.epfl.ch/publications/unser9301.pdf


1
questo è un buon inizio, e in realtà potrebbe essere migliore per me, specialmente se posso usare b-splines paraboliche invece di quelle cubiche .... leggerò / imparerò di più anche in questo
hassan789

2

Puoi fare una trasformazione che utilizza onde triangolari anziché sinusoidali, ma non è una buona scelta perché non sono ortogonali. L'ortogonalità è una proprietà importante dei vettori di trasformazione.

Proprietà delle trasformazioni ortogonali

Trasformazione ortogonale


hmmm ... non sono così avanzato quando si tratta di ortogonalità ... Onestamente, non capisco quale sia l'implicazione dell'ortogonalità. Significa in definitiva che ci vogliono più stili CPU per eseguire la trasformazione (kernel di trasformazione completa vs kernel di trasformazione sparsa)?
hassan789,

0

È possibile utilizzare l'aggiunta dell'operatore integratore (ad esempio cumsum) seguito da una trasformazione Fast Walsh-Hadamard.

ad es. 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 

Le sezioni di valori positivi costanti in H si integrano per causare pendenze nelle onde a dente di sega; i valori negativi diventano declino.

T non è unitario e ha ripercussioni sullo stretching dimensionale. Sul lato positivo, ha un inverso veloce: un altro seguito da un differenziatore.

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

Potresti spiegarlo un po 'di più? Non vedo come l'integrazione prima del WHT darà il risultato desiderato.
Dilip Sarwate
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.