Transformasi mirip DFT menggunakan gelombang segitiga alih-alih gelombang dosa

9

Kita tahu bahwa DFT (discrete Fourier transform) memecah sinyal menjadi beberapa frekuensi gelombang sinus. Apakah ada transformasi yang melakukan hal yang sama, tetapi untuk gelombang segitiga?

Untuk keperluan saya, saya hanya berbicara tentang sinyal 1-d (seperti voltase, dll). Saya sedang mempelajari data pasar saham historis, dan saya hanya ingin melihat pembalikan pada saham tertentu. Dengan kata lain, saya ingin melakukan "low-pass" pada harga saham menggunakan transformasi ini.

Sunting: Jika ya, bagaimana saya bisa melakukannya?

hassan789
sumber
Untuk sinyal apa pun , saya kira tidak, tetapi akan senang melihat bukti mengapa tidak. Jika Anda tahu sinyal terdiri dari gelombang segitiga maka mungkin untuk mencari tahu frekuensi, fase dan amplitudo masing-masing.
geometrikal
2
Alasan sederhana mengatakan bahwa itu mungkin untuk sinyal apa pun. Karena segitiga itu sendiri dapat diwakili oleh sinyal sinus dari frekuensi yang berbeda dan dapat diskalakan. Pertanyaan sebenarnya adalah apa yang akan Anda simpulkan darinya dan apakah kesimpulan seperti itu praktis berguna?
Naresh
Yah, saya sedang mempelajari data pasar saham historis, dan saya hanya ingin melihat pembalikan pada saham tertentu. Dengan kata lain, saya ingin melakukan "low-pass" pada harga saham menggunakan transformasi ini
hassan789

Jawaban:

8

Transformasi orthogonal terdekat yang saya tahu mungkin memenuhi kebutuhan Anda adalah Transformasi Miring . Ini didasarkan pada gelombang gigi gergaji (ish), tetapi beberapa fungsi dasar memang menyerupai gelombang segitiga:

Fungsi Basis Miring

(sumber: Transformasi Fourier Terapan )

Itu dikembangkan untuk pengkodean gambar / kompresi, tetapi sepertinya pendekatan pertama yang masuk akal untuk analisis tren linear jangka panjang / pembalikan dalam data keuangan. Tampaknya tidak banyak makalah utama yang menjelaskan transformasi tersedia secara gratis, tetapi makalah berikut mungkin memiliki detail yang cukup untuk mengimplementasikan sesuatu:

Metode Pemotongan untuk Mengkonversi Transformasi Miring dengan Aplikasi ke Pemrosesan Gambar. MM Anguh, RR Martin. IEEE Trans. Komunikasi 43 (6), 2103-2110, 1995. ( tautan penulis ) ( tautan pdf )

Secara khusus, lihat Bagian III yang memberikan hubungan rekursi yang digunakan untuk membangun matriks transformasi.

datageist
sumber
terlihat menjanjikan!
hassan789
menggunakan kode Matlab ini: eeweb.poly.edu/iselesni/slantlet/index.html Saya akan segera memberikan umpan balik ...
hassan789
Saya tidak berpikir Slantlet Transform adalah hal yang sama dengan Slant Transform. Keduanya mungkin berguna.
datageist
4

B-splines urutan pertama adalah segitiga, dan ada algoritma untuk mewakili sinyal arbitrer sebagai jumlah B-splines. Seperti yang disebutkan, splines ini tidak membentuk ortobasis, tetapi ini tidak selalu merupakan hal yang mengerikan.

Tempat yang baik untuk memulai adalah karya Unser pada pendekatan B-spline yang efisien. http://bigwww.epfl.ch/publications/unser9301.pdf

lp251
sumber
1
ini adalah awal yang baik, dan sebenarnya mungkin lebih baik bagi saya, terutama jika saya dapat menggunakan parabola b-splines daripada yang kubik .... akan membaca / mempelajari lebih lanjut tentang ini juga
hassan789
2

Anda dapat melakukan transformasi yang menggunakan gelombang segitiga alih-alih gelombang sinus, tetapi itu bukan pilihan yang baik karena mereka tidak ortogonal. Orthogonality adalah properti penting dari vektor transformasi.

Properti Transformasi Orthogonal

Transformasi Orthogonal

Jim Clay
sumber
hmmm ... saya tidak semaju ortogonalitas ... Jujur, saya tidak mengerti apa implikasi dari ortogonalitas itu. Apakah ini berarti bahwa dibutuhkan lebih banyak CPU cyles untuk melakukan transformasi (kernel transformasi penuh vs kernel transformasi jarang)?
hassan789
0

Anda bisa menggunakan adjoint dari operator integrator (yaitu cumsum) diikuti oleh transformasi Walsh-Hadamard Cepat.

misalnya dalam 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 

Bagian-bagian dari nilai positif konstan dalam H berintegrasi untuk menyebabkan kemiringan pada gelombang gigi gergaji; nilai-nilai negatif menjadi menurun.

T bukan kesatuan yang memiliki dampak peregangan dimensi. Sisi baiknya, ia memiliki invers yang cepat: fwht lain diikuti oleh pembeda.

D = inv(S');  % difference matrix with an extra row at bottom for full rank
Tinv = D*H;   % inverse of T
Mark Borgerding
sumber
Bisakah Anda menjelaskan ini lebih banyak? Saya tidak melihat bagaimana integrasi sebelum WHT akan memberikan hasil yang diinginkan.
Dilip Sarwate