wavelet decomposition of a signal

조회 수: 10 (최근 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 CenterFile Exchange에서 Discrete Multiresolution Analysis에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by