wavelet decomposition of a signal

13 ビュー (過去 30 日間)
m
m 2013 年 8 月 18 日
コメント済み: Afiqah Abu Samah 2017 年 3 月 15 日
hi, i want to decompose a signal with wavelet in 5 subbands:
delta (0–4 Hz), theta (4–8 Hz), alpha (8–15 Hz), beta (15–30 Hz), and gamma (30–60 Hz) ,use db4"_
i found wavelet toolbox menu but cant use it,can you help me?
thanks.

回答 (2 件)

Jan
Jan 2013 年 8 月 18 日
Use wavedec() to calculate the wavelet decomposition and wenergy to extract the energie in the decomposition.
e.g.:
[C, L] = wavedec(signal, waveorder, wavekind);
[~, energies] = wenergy(C, L);
Note, that the wavelet deomposition in a specific decomposition level does not exactly represent an actual frequency band. This can be only done, using trigonometric functions for decomposition - however, in hat case you end up with the discrete Fourier transform.
However, you can calculate corresponding frequencies (i.e. pseudo frequencies) for a specific wavelet family and level of decomposition (look at centfrq() on that matter). If you carefully choose the wavelet family and wavelet order, you get a wavelet decomposition, that roughly corresponds to the desired bands.
For your use case, one would choose Daubechies order 3 Wavelets and six levels of decomposition. Then the decomposition levels 1 to 5 in reverse order should just about match the required bands:
L1: gamma, L2: beta, L3: alpha, L4: theta and L5: delta.
  1 件のコメント
Afiqah Abu Samah
Afiqah Abu Samah 2017 年 3 月 15 日
Hi, I want to ask how to calculate the energy of 2-D wavelet decomposition. I know that function wenergy2 can be use, but I want to know how it can be calculated since I want to use single level 'dwt2' function and decompose the images level-by-level instead of using this; [C,S] = wavedec2(X,2,'bior3.7'). (I have my own reason why I need to decompose it like that)
If 'dwt2' is used, I can't calculate the energy using 'wenergy2' since I didn't know how to get the 'C' array.
Please help me, give me some ideas how to solve this.

サインインしてコメントする。


m
m 2013 年 8 月 18 日
thanks jan for attention, i run your MATLAB command but i have a signal with 120hz and 23.6s and want to use db4 in 4 level , in your answer i cant understand who can i do it ?
(excuse me for my poor english!)
  3 件のコメント
m
m 2013 年 8 月 18 日
ok,thanks.
Jan
Jan 2013 年 8 月 18 日
I just sent you a mail to columbia_mgi@yahoo.com

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeDiscrete Multiresolution Analysis についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by