Ulrik Smed wrote:
> Jeg roder lidt med spektrumanalyse og filtre på en ARM processor. Jeg skal
> have downsamplet en buffer, og skal derfor lavpasfiltrere den først, for at
> undgå at høje frekvenser spejler ned i det område jeg vil spektrumanalyserer
> på.
>
> Hvis jeg laver et FIR filter med sinc (sin(x)/x) funktionen med en god lang
> række coefficienter får jeg et nærmest ideelt lavpasfilter. Det er ikke
> nødvendigt med så perfekt afskæring, så jeg vil reducere stejlheden. Det har
> jeg forsøgt at gøre ved at klippe det midterste stykke af sinc rækken ud, og
> envelop'e det med en cosinus, så jeg ikke har de lange, svage ind- og
> udsvingninger med på hver side af peaken i midten. Det virker faktisk godt,
> de giver en mindre stejl afskæring, og kræver betydelig færre beregninger.
> Men det har den sideeffekt at de allerdybeste frekvenser også dæmpes, så
> spekteret ser sådan her ud:
>
> ____
> / \
> \
> \______
>
> Kan man undgå det på et smart måde?
Hej Ulrik
De supereffektive Wavelet-filtre, ved lavpas vil jeg kalde det
skaleringsfunktion-filtre, kan også lave tilnærmelsesvis lavpas og
højpas filtrering med et minimum af filterkoefficienter. De to filtre
tilsammen kaldes en wavelet-filterbank og er et QMF (Quadrature Mirror
Filter). Der findes FIR og IIR wavelet filterbanker. FIR filterbanker
kategoriseres typisk i ortogonale og biortogonale filterbanker:
Classical low-pass filter and real-time wavelet-based denoising ...:
http://www.greyc.ensicaen.fr/~jfadili/Pub/epjap2001.pdf.gz
Citat: "...The denoising approach is an elegant and extremely fast
alternative to the classical linear filters class..."
Du skal ikke anvende selve Wavelet koefficenterne (rød), men derimod
skaleringskoefficienterne (blå på figurer med funktioner), se også på
frekvensrumskurven nedenunder:
http://en.wikipedia.org/wiki/Daubechies_wavelet
Du kan f.eks. starte med at anvende skaleringsfunktionen fra denne
adresse. CDF 9/7 er navnet på den biortogonale filterbank - som der i
princippet findes uendeligt mange af:
CDF 9/7 Wavelet Transform:
http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=6449&objectType=FILE
The Discreet Wavelet Transform - du skal dog kun lave en
filter-fitrering - ikke en hel Wavelet-afbildning:
http://www.programmersheaven.com/2/Discreet-Wavelet-Transform
Wavelets Based Denoising
http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=6391&objectType=file
Wavelet and Filter Bank Design Toolkit Evaluation (Evaluation Software
for Windows-Based PCs):
http://www.eg3.com/WebID/dsp/filters/blank/free-stuff/1-a-f.htm
http://en.wikipedia.org/wiki/Discrete_wavelet_transform
-
FWT (med FIR filtre) er en O(n) beregningskompleksitet.
Der findes en FWT er en faktor hurtigere (*2 f.eks.):
OPTIMAL QUANTIZED LIFTING COEFFICIENTS FOR THE 9/7 WAVELET
http://www.ecpe.vt.edu/fac_support/DSPCL/docs/ICASSP04_Lift.pdf
Lifting Functions:
http://www.mathworks.com/access/helpdesk/help/toolbox/wavelet/ch06_a28.html
liftwave:
http://www.mathworks.com/access/helpdesk/help/toolbox/wavelet/liftwave.html
Reconfigurable DWT Unit Based on Lifting
http://ce.et.tudelft.nl/publicationfiles/648_9_Reconfigurable_DWT_Unit_Based_on_Lifting.pdf
mvh/Glenn