Koefisien frekuensi waktu manakah yang ditransformasi oleh Wavelet?


26

The Fast Fourier Transform mengambil operasi, sedangkan Cepat Wavelet Transform mengambil O ( N ) . Tapi apa, khususnya, yang dihitung FWT?HAI(NlogN)O(N)

Meskipun mereka sering dibandingkan, sepertinya FFT dan FWT adalah apel dan jeruk. Seperti yang saya pahami, akan lebih tepat untuk membandingkan STFT (FFT potongan kecil dari waktu ke waktu) dengan Morlet WT kompleks , karena keduanya merupakan representasi frekuensi-waktu berdasarkan pada sinusoid kompleks (tolong perbaiki saya jika saya salah ). Ini sering ditunjukkan dengan diagram seperti ini:

Kisi menunjukkan bagaimana koefisien FFT dan WT sesuai dengan bidang frekuensi waktu

( Contoh lain )

Kiri menunjukkan bagaimana STFT adalah sekelompok FFT ditumpuk di atas satu sama lain seiring berjalannya waktu (representasi ini adalah asal dari spektrogram ), sementara kanan menunjukkan WT diad, yang memiliki resolusi waktu lebih baik pada frekuensi tinggi dan frekuensi lebih baik resolusi pada frekuensi rendah (representasi ini disebut skalogram ). Dalam contoh ini, untuk STFT adalah jumlah kolom vertikal (6), dan satu O ( N log N ) operasi FFT menghitung satu baris N koefisien dari N sampel. Totalnya adalah 8 FFT masing-masing 6 poin, atau 48 sampel dalam domain waktu.NO(NlogN)NN

Yang tidak saya mengerti:

  • Berapa banyak koefisien yang dihitung oleh satu operasi FWT, dan di mana mereka berada pada grafik frekuensi-waktu di atas? O(N)

  • Kotak mana yang bisa diisi dengan satu perhitungan?

  • Jika kita menghitung blok koefisien frekuensi waktu dengan area yang sama menggunakan keduanya, apakah kita mendapatkan jumlah data yang sama?

  • Apakah FWT masih lebih efisien daripada FFT?

Contoh konkret menggunakan PyWavelets :

In [2]: dwt([1, 0, 0, 0, 0, 0, 0, 0], 'haar')
Out[2]:
(array([ 0.70710678,  0.        ,  0.        ,  0.        ]),
 array([ 0.70710678,  0.        ,  0.        ,  0.        ]))

Ini menciptakan dua set 4 koefisien, jadi sama dengan jumlah sampel dalam sinyal asli. Tapi apa hubungan antara 8 koefisien ini dan ubin di diagram?

Memperbarui:

Sebenarnya, saya mungkin melakukan kesalahan ini, dan seharusnya menggunakan wavedec(), yang melakukan dekomposisi DWT multi-level:

In [4]: wavedec([1, 0, 0, 0, 0, 0, 0, 0], 'haar')
Out[4]: 
[array([ 0.35355339]),
 array([ 0.35355339]),
 array([ 0.5,  0. ]),
 array([ 0.70710678,  0.        ,  0.        ,  0.        ])]

2
Untuk memiliki pemahaman yang lebih baik tentang bagaimana dekomposisi wavelet ini bekerja, satu alat yang berguna adalah untuk dapat melakukannya pada sinyal kehidupan nyata: misalnya sinyal audio (saya punya pertanyaan dalam arah ini di sini dsp.stackexchange.com/ pertanyaan / 12694 / stft-and-dwt-wavelets )
Basj

@ endolith Apakah pertanyaan Anda masih diminta? Jika demikian, saya dapat menambahkan petunjuk lain
Laurent Duval

@LaurentDuval Ya, masih terbuka, dan saya masih tidak mengerti. Saya mungkin bingung karena CWT menggunakan hal-hal seperti Morlet dan DWT hanya menggunakan hal-hal seperti Haar atau Daubechies. Saya tidak yakin apakah FWT cepat hanya Haar atau dapat juga menggunakan jenis wavelet lainnya.
endolith

2
@ndolith Hanya sebuah komentar untuk yang ini: CWT kontinyu mengakui sejumlah besar bentuk wavelet potensial. Mereka dapat didiskritisasi persis hanya dengan pola pengambilan sampel (dalam waktu atau skala) yang menghormati beberapa ketimpangan "Heisenberg". Pola-pola ini tergantung pada wavelet. Dalam sebagian besar kasus, polanya membuat CWT diskrit yang berlebihan. Beberapa menginginkannya tidak berlebihan, dengan skala diad. Hanya sedikit gelombang yang memungkinkan. Jika Anda kemudian memaksakan dukungan wavelet menjadi terbatas, maka Haar adalah satu, hampir tidak mungkin diperoleh dengan "wavelet alami", itulah mengapa yang dibangun Daubechies
Laurent Duval

Jawaban:


13

Anda benar bahwa FWT lebih baik dianggap sebagai "sepupu" dari STFT, daripada FT. Faktanya, FWT hanyalah sampel diskrit dari CWT (transformasi wavelet kontinu), karena FFT / DFT adalah sampel diskrit dari transformasi Fourier. Ini mungkin tampak seperti titik halus, tetapi relevan ketika memilih bagaimana Anda mendiskreditkan transformasi.

CWT dan STFT keduanya merupakan analisis yang berlebihan dari suatu sinyal. Dengan kata lain, Anda memiliki lebih banyak "koefisien" (dalam kasus diskrit) daripada yang Anda perlukan untuk sepenuhnya mewakili sinyal. Namun, transformasi Fourier (atau katakanlah transformasi wavelet hanya menggunakan satu skala) mengintegrasikan sinyal dari-infinity ke + infinity. Ini tidak terlalu berguna pada sinyal dunia nyata, jadi kami memotong (yaitu jendela) transformasi ke panjang yang lebih pendek. Windowing sinyal mengubah transformasi - Anda dikalikan dengan jendela dalam waktu / ruang, sehingga dalam ruang transformasi Anda memiliki konvolusi transformasi jendela dengan transformasi sinyal.

Dalam kasus STFT, jendela (biasanya) memiliki panjang yang sama (tidak nol) sepanjang waktu, dan merupakan frekuensi agnostik (Anda memberi sinyal 10 Hz lebar sama dengan sinyal 10 kHz). Jadi Anda mendapatkan spektogram kotak persegi panjang seperti yang telah Anda gambar.

CWT memiliki windowing ini dibangun oleh fakta bahwa wavelet menjadi lebih pendek (dalam waktu atau ruang) ketika skalanya menurun (seperti frekuensi yang lebih tinggi). Jadi untuk frekuensi yang lebih tinggi, durasinya efektif lebih pendek durasinya, dan Anda berakhir dengan scaleogram yang terlihat seperti apa yang telah Anda gambar untuk FWT.

Bagaimana Anda mendiskritisasi CWT agak terserah Anda, meskipun saya pikir ada sampel minimum baik dalam pergeseran dan skala untuk sepenuhnya mewakili sinyal. Biasanya (setidaknya cara saya menggunakannya), untuk skala terendah (frekuensi tertinggi), Anda akan mencicipi di semua lokasi shift (waktu / ruang). Saat Anda mendapatkan skala yang lebih tinggi (frekuensi lebih rendah), Anda dapat mencicipi lebih jarang. Alasannya adalah bahwa frekuensi rendah tidak berubah dengan cepat (pikirkan crash cymbal vs gitar bass - crash cymbal memiliki transien yang sangat singkat, sedangkan gitar bass akan membutuhkan waktu lebih lama untuk berubah). Faktanya, pada skala terpendek (dengan asumsi Anda sampel di semua lokasi shift), Anda memiliki representasi penuh dari sinyal (Anda dapat merekonstruksinya hanya menggunakan koefisien pada skala ini). Saya tidak begitu yakin tentang alasan pengambilan sampel skala. SAYA' Saya telah melihat ini disarankan sebagai logaritmik, dengan (saya pikir) jarak yang lebih dekat antara skala yang lebih pendek. Saya pikir ini karena wavelet pada skala yang lebih panjang memiliki transformasi Fourier yang lebih luas (oleh karena itu mereka "mengambil" lebih banyak frekuensi).

Saya akui saya tidak sepenuhnya memahami FWT. Firasat saya adalah bahwa itu sebenarnya sampling minimum dalam shift / skala, dan bukan representasi yang berlebihan. Tapi kemudian saya pikir Anda kehilangan kemampuan untuk menganalisis (dan mengacaukan) sinyal dalam waktu singkat tanpa memperkenalkan artefak yang tidak diinginkan. Saya akan membaca lebih banyak tentang itu dan, jika saya belajar sesuatu yang bermanfaat, laporkan kembali. Semoga yang lain suka berkomentar.


1
"Ini sebenarnya pengambilan sampel minimum dalam shift / skala, dan bukan representasi yang berlebihan." Ah! Saya pikir Anda benar, dan ini akan menjelaskan mengapa selalu dibandingkan dengan FFT, yang juga merupakan representasi minimal.
endolith

3
FWT adalah contoh kritis dari CWT. Saya masih mencoba untuk memahaminya dengan lebih baik, tetapi saya telah belajar bahwa STFT dan CWT keduanya adalah Frames. Teori bingkai semakin melampaui saya, tetapi satu gagasan menarik adalah formula ketidakpastian, bahwa untuk STFT, dw * dt> C (dw adalah resolusi frekuensi, dan dt adalah resolusi waktu). Dengan kata lain, saat Anda mencoba menyelesaikan frekuensi dengan lebih baik, Anda kehilangan resolusi waktu. CWT tidak memiliki batasan ini. Saya akan terus membaca dan mencoba menjelaskan jawaban saya di atas begitu saya mengklarifikasi di kepala saya.

1
Dari apa yang saya mengerti, CWT memiliki batasan yang sama, tetapi menggunakan trade-off yang lebih baik.
endolith

1
"STFT sama-sama analisis sinyal yang berlebihan". Saya pikir itu tidak benar. Jika Anda memiliki sinyal 100 poin, bagilah menjadi 10 poin, kemudian lakukan 10 poin FFT pada masing-masingnya, Anda masih memiliki informasi yang sama yang disimpan dalam jumlah sampel yang sama.
endolith

11

Pertimbangkan kasus wavelet Haar. Fast Wavelet Transform secara rekursif membagi sinyal Anda dan menghitung jumlah dan perbedaan dari dua bagian setiap kali. Perbedaannya adalah besarnya transformasi untuk wavelet saat ini dan jumlah dikembalikan untuk pemanggil untuk menghitung besarnya transformasi untuk wavelet yang dilebarkan dengan setengah frekuensi. Dengan demikian, FWT mencakup bidang frekuensi waktu menggunakan pola yang dijelaskan dalam diagram yang Anda berikan.

Perhatikan bahwa diagram yang Anda berikan agak menyesatkan. Apa yang sebenarnya ingin mereka sampaikan kepada Anda adalah bahwa Anda mendapatkan satu sampel pada frekuensi terendah, dua sampel pada frekuensi dua kali lipat, empat sampel pada empat kali lipat frekuensi itu dan seterusnya. Properti frekuensi-waktu dari masing-masing wavelet tidak sedemikian rupa sehingga menutupi ubin mereka. Dalam praktiknya, setiap wavelet akan mencakup area yang tak terbatas karena mereka memiliki dukungan yang kompak dan, oleh karena itu, harus sepenuhnya didelokalisasi dalam hal frekuensi. Jadi Anda harus memikirkan pusat-pusat ubin itu.

Selain itu, FWT membutuhkan wavelet diskrit yang harus mematuhi kriteria penerimaan jauh lebih ketat daripada wavelet terus menerus untuk CWT. Akibatnya, sifat frekuensi waktu dari wavelet diskrit umumnya mengerikan (misalnya wavelet Daubechies penuh dengan fitur tajam atau memiliki frekuensi yang berubah) dan utilitas pesawat frekuensi-waktu sangat berkurang dalam konteks FWT. Namun, wavelet kontinu digunakan untuk menghitung representasi frekuensi waktu dari sinyal.


Ya, saya mengerti lokalisasi koefisien. Itu sama dengan FFT. Ketika Anda mengatakan "harus mematuhi", apa maksud Anda? Apakah ini hanya persyaratan jika Anda mencoba mendapatkan representasi sinyal yang minimal / tidak berlebihan? Bagaimana jika Anda hanya mencoba menganalisis / memvisualisasikannya? Saya akan menambahkan contoh yang lebih konkret untuk pertanyaan itu.
endolith

1
Mematuhi kriteria penerimaan dapat memastikan bahwa resolusi identitas ada, yaitu bahwa semua sinyal dapat dipulihkan dari transformasi wavelet mereka. Jika Anda tidak mematuhinya maka Anda tidak dapat memulihkan sinyal dari transformasinya, pada titik mana Anda harus mempertanyakan apa sebenarnya yang sedang Anda analisis (apakah itu bahkan mencerminkan informasi apa pun yang ada dalam sinyal ?!). Jika Anda tidak memerlukan representasi minimal / non-redundan maka Anda dapat menggunakan kriteria penerimaan yang lebih longgar dari CWT (yang memungkinkan Anda menentukan lebih banyak wavelet "ideal").

1
Saya pikir Anda akan menemukan tesis PhD saya sangat berguna. Saya akan menaruhnya online untuk Anda ...

Apakah Anda menaruhnya online? :)
endolith

2
Saya yakin melakukannya: flyingfrogblog.blogspot.com/2010/02/...

3

Referensi Anda memilikinya:

Urutan koefisien berdasarkan pada basis ortogonal dari gelombang terbatas kecil, atau wavelet.

Untuk lebih lanjut, Anda mungkin menyukai halaman DWT . Di sana ia memperkenalkan wavelet Haar, wavelet Daubechies dan lainnya. Ini menunjukkan caranya

  • Wavelet memiliki lokasi - wavelet (1,1, -1, -1) berhubungan dengan "sisi kiri" versus "sisi kanan", sedangkan dua wavelet terakhir memiliki dukungan di sisi kiri atau sisi kanan, dan satu merupakan terjemahan dari yang lain.
  • Gelombang sinusoid tidak memiliki lokasi - mereka menyebar ke seluruh ruang - tetapi memiliki fase - gelombang kedua dan ketiga adalah terjemahan satu sama lain, sesuai dengan 90 ° dari fase, seperti cosinus dan sinus, di mana ini adalah versi diskrit .

Jika, alih-alih wavelet diskrit, Anda ingin sekarang tentang wavelet kontinu atau wavelet kompleks, Anda mungkin mulai dengan seri wavelet .

Di luar wikipedia, sebuah buku teks dan kursus mungkin bisa membantu Anda.


Saya tidak mengerti jawaban ini. Apakah itu menjawab pertanyaan saya? Sisi kiri dan sisi kanan apa? Apa hubungannya ini dengan representasi frekuensi waktu?
endolith

Deskripsi "sisi kiri versus sisi kanan" adalah pratinjau kutipan dari halaman DWT, menunjukkan bahwa halaman itu termasuk contoh sederhana untuk menjelaskan manfaat relatif dari basis sinusoidal dan dasar wavelet Haar. Anda bertanya tentang sifat koefisien dalam transformasi wavelet. Kedengarannya seperti Anda mencari intuisi. Saya pikir Anda mungkin menemukan contoh itu (dalam konteks aslinya) berguna.

Ya, saya telah membaca artikel Wikipedia beberapa kali sebelum memposting pertanyaan ini. Saya tidak tahu apakah / apa jawaban Anda terkait dengan pertanyaan saya tentang representasi frekuensi waktu. Jika ya, bisakah Anda menghubungkan titik-titik? FFT dari n sampel akan menghasilkan n koefisien, yang membentuk satu kolom dari spektrogram STFT. Apakah ada hubungan yang sesuai antara koefisien yang dihasilkan oleh WT dan skalogram? Jika demikian, apakah itu? Manakah dari kotak di bagan kanan bawah yang diisi dengan sekali jalankan melalui FWT?
endolith

1
Hampir semua yang ada di halaman Wikipedia yang terkait dengan wavelet saat ini salah.

3

O(N2) (untuk data 1D). Satu lebih cocok untuk sinyal harmonik, satu untuk transien (lebih atau kurang).

O(N)O(Nlog(N))O() dapat mengubah kesepakatan. Dan hal-hal tidak begitu sederhana dalam dimensi yang lebih tinggi.

Mulai dari STFT berjendela umum (formulir berkelanjutan). Jika Anda mencolokkan jendela unit ketinggian tak terbatas, Anda memulihkan transformasi Fourier sebagai kasing khusus. Yang bisa Anda diskritkan (dan dapatkan DFT) dan buat cepat (dan dapatkan FFT).

Mulai dari CWT (formulir berkelanjutan). CWT kontinu mengakui jumlah luar biasa dari bentuk wavelet potensial. Mereka dapat didiskritisasi persis hanya dengan pola pengambilan sampel (dalam waktu atau skala) yang menghormati beberapa ketimpangan "Heisenberg": satu sampel per unit permukaan. Pola-pola ini tergantung pada wavelet. Pada sebagian besar kasus, polanya membuat CWT diskrit yang berlebihan, dan menghasilkan bingkai wavelet.

Beberapa menginginkannya tidak berlebihan, dengan skala diad (DWT). Hanya sangat sedikit wavelet (masih dalam jumlah tak terbatas, tetapi Anda tidak dapat menemukannya secara kebetulan) mengizinkannya. Di antara yang pertama adalah Haar, Franklin dan Meyer wavelet. Jika Anda kemudian memaksakan dukungan wavelet menjadi terbatas, maka Haar adalah satu-satunya untuk waktu yang lama. Hampir tidak mungkin untuk mendapatkan wavelet ortogonal dari "wavelet kontinu alami", itulah mengapa Daubechies 'dibangun, dan kemudian Symmlets dan Coiflets . Wavelet berbentuk aneh itu tidak memiliki formula yang bagus dan sederhana seperti wavelet Morlet.

O(N)

Faktanya, FWT hanyalah contoh diskrit dari CWT

DWT (atau FWT) tepat, seperti DFT / FFT. Kebanyakan CWT diskret lainnya (dengan wavelet apa saja) kira-kira begitu (tanpa banyak bahaya jika Anda memiliki redundansi yang cukup).

Begitu:

  • kkk804T2×424[ω/2,ω]42×22[ω/8,ω/4][1,1,2,4]
  • k
  • +×O(N)

Gambar-gambar berikut mengungkapkan bagaimana versi wavelet Haar yang berkelanjutan wavelet Haar terus menerus

dapat disampel menjadi wavelet diskrit orthogonal: diskrit Haar wavelet kritis

Perhatikan bahwa beberapa wavelet diskrit, terutama yang panjang (seperti splines), kadang-kadang dihitung menggunakan FFT :)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.