wavelet matlab plotting error

조회 수: 2(최근 30일)
carlo mars
carlo mars 2016년 10월 10일
댓글: Walter Roberson 2016년 10월 15일
I have a simple signal x(t)=2*cos(2*pi*500*t); I use wavelet wavedec(x,9,'db4') ; when I plot "ap9 = [0- 9.76]Hz" I must found zero because my signal is 500 Hz ; but the first and last second dnot equal to zero; why?
clear all;clc;
t(1)=0; va(1)=0; vb(1)=0; vc(1)=0; x(1)=0;
for i=2:100000
t(i)=t(i-1)+1e-4; %fs=10000
x(i)=2*cos(2*pi*500*t(i));
end
%wavelet
fs=10000;
[c,l]=wavedec(x,9,'db4');
ap9=appcoef(c,l,'db4',9);
L=max(size(x));
sized=max(size(ap9));
Ts=1/10000;
timemax=Ts*L;
ta=linspace(0,timemax,sized);
figure(3)
plot(ta,abs(ap9))
  댓글 수: 4
Walter Roberson
Walter Roberson 2016년 10월 13일
I do not have enough experience with wavelets to know what you are encountering this problem.

댓글을 달려면 로그인하십시오.

답변(1개)

Rodney Tan
Rodney Tan 2016년 10월 12일
편집: Rodney Tan 2016년 10월 12일
The spike appeared at the start and end is the wavelet boundary effect of any given signal. It is cause by zero padding that taken into account at the start and end of the signal where wavelet decomposition computation took place. This is because wavelet is effective to pick up any abrupt changes for a given signal. You need to mirror your signal by using padarray command, then perform your wavelet decomposition, this eliminate the boundary effect.
padarray example
signal = 1:10
mirrorpadsignal = padarray(signal,[0 3],'symmetric','both')
Please be inform your padding size may need to be long [0 10] or more depend on the type of mother wavelet you use.
Hope I answer your question.
  댓글 수: 3
Walter Roberson
Walter Roberson 2016년 10월 15일
You could click on http://www.mathworks.com/matlabcentral/profile/contact/6664770-rodney-tan to send email to Rodney Tan to ask Rodney to return to the question.
I do not know nearly enough about wavelets to be able to answer the question. It would probably take me several days of studying, perhaps a couple of weeks of studying, to answer your question. That is not something I have the resources for.

댓글을 달려면 로그인하십시오.

Community Treasure Hunt

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

Start Hunting!

Translated by