Vad är en Wavelet?
en wavelet är en vågform med effektivt begränsad varaktighet som har ett medelvärde på noll och icke-noll norm.
många signaler och bilder av intresse uppvisar bitvis smidigt beteende som punkteras av transienter. Talsignaler kännetecknas av korta skurar som kodar konsonanter följt av steady-state svängningar som indikerar vokaler. Naturliga bilder har kanter. Finansiella tidsserier uppvisar övergående beteende, som karakteriserar snabba uppgångar och nedgångar i ekonomiska förhållanden. Till skillnad från Fourier-basen är wavelet-baser skickliga på att sparsamt representera bitvis regelbundna signaler och bilder, som inkluderar övergående beteende.
jämför wavelets med sinusvågor, som ligger till grund för Fourieranalys. Sinusoider har inte begränsad varaktighet-de sträcker sig från minus till plus oändlighet. Medan sinusoider är släta och förutsägbara tenderar wavelets att vara oregelbundna och asymmetriska.
Fourieranalys består av att bryta upp en signal i sinusvågor med olika frekvenser. På samma sätt är wavelet-analys att bryta upp en signal i skiftade och skalade versioner av originalet (eller modern) wavelet.
bara titta på bilder av wavelets och sinusvågor, du kan se intuitivt att signaler med skarpa förändringar kan analyseras bättre med en oregelbunden wavelet än med en slät sinusoid.
det är också vettigt att lokala funktioner kan beskrivas bättre med wavelets som har lokal omfattning. Följande exempel illustrerar detta för en enkel signal som består av en sinusvåg med diskontinuitet.
lokalisera diskontinuitet i sinusvåg
detta exempel visar wavelet-analys kan lokalisera en diskontinuitet i en sinusvåg.
skapa en 1 Hz sinusvåg samplad vid 100 Hz. Sinusvågens varaktighet är en sekund. Sinusvågen har en diskontinuitet vid t=0,5 sekunder.
t = linspace(0,1,100)';x = sin(2*pi*t);x1 = x-0.15;y = zeros(size(x));y(1:length(y)/2) = x(1:length(y)/2);y(length(y)/2+1:end) = x1(length(y)/2+1:end);stem(t,y,'markerfacecolor',); xlabel('Seconds'); ylabel('Amplitude');
skaffa den nondecimated diskreta wavelet-transformationen av sinusvågen med hjälp av 'sym2'
wavelet och plotta wavelet (detalj) koefficienterna tillsammans med den ursprungliga signalen.
= swt(y,1,'sym2');subplot(211)stem(t,y,'markerfacecolor',); title('Original Signal');subplot(212)stem(t,swd,'markerfacecolor',);title('Level 1 Wavelet Coefficients');
jämför fourierkoefficientstorlekarna för 1 Hz sinusvåg med och utan diskontinuiteten.
dftsig = fft();dftsig = dftsig(1:length(y)/2+1,:);df = 100/length(y);freq = 0:df:50;stem(freq,abs(dftsig));xlabel('Hz'); ylabel('Magnitude');legend('sine wave','sine wave with discontinuity');
det finns minimal skillnad i storleken på Fourierkoefficienterna. Eftersom de diskreta Fourierbasvektorerna har stöd över hela tidsintervallet, detekterar den diskreta Fouriertransformen inte diskontinuiteten lika effektivt som wavelet-transformen.
jämför nivå 1 wavelet-koefficienterna för sinusvågen med och utan diskontinuiteten.
= swt(x,1,'sym2');subplot(211)stem(t,swd); title('Sine Wave with Discontinuity (Wavelet Coefficients)');subplot(212)stem(t,swdx); title('Sine Wave (Wavelet Coefficients)');
wavelet-koefficienterna för de två signalerna visar en signifikant skillnad. Wavelet-analys kan ofta avslöja egenskaper hos en signal eller bild som andra analystekniker saknar, som trender, nedbrytningspunkter, diskontinuiteter i högre derivat och självlikhet. Dessutom, eftersom wavelets ger en annan bild av data än de som presenteras av Fourier-tekniker, kan wavelet-analys ofta komprimera eller denoise en signal utan märkbar nedbrytning.