/ Forside / Karriere / Uddannelse / Højere uddannelser / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Højere uddannelser
#NavnPoint
Nordsted1 1588
erling_l 1224
ans 1150
dova 895
gert_h 800
molokyle 661
berpox 610
creamygirl 610
3773 570
10  jomfruane 570
FIR lavpasfilter
Fra : Ulrik Smed


Dato : 11-06-06 11:26

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?

--
Ulrik Smed
Aarhus, Denmark



 
 
Glenn Møller-Holst (11-06-2006)
Kommentar
Fra : Glenn Møller-Holst


Dato : 11-06-06 11:58

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

Glenn Møller-Holst (11-06-2006)
Kommentar
Fra : Glenn Møller-Holst


Dato : 11-06-06 12:24

Ulrik Smed wrote:
> Hvis jeg laver et FIR filter med sinc (sin(x)/x) funktionen med en god lang

Hej Ulrik

Ved anvendelse af "konventionelle" filtre baseret på koefficienter
baseret på Shannon-diskretisering - egentlig kontinuert
sinc-funktionsfoldning - eller ækivalent passende kontinuert
lavpas-filtrering efterfulgt af foldning med delta-funktioner, normalt
implementeret med et sample and hold kredsløb - er i sin oprindelige
form ikke så smart, da sinc funktionen kun falder med 1/x fra centeret,
til gengæld er sinc-funktionen kompakt støttet i frekvensrummet.

Skaleringsfunktionsdiskretisering - eller Wavelet-diskretisering bliver
ligesom Shannon-diskretisering implementeret ved kontinuert
skaleringsfuktionsfoldning - eller ækivalent passende kontinuert
lavpas-filtrering med frekvensgang som skaleringsfunktionen som er
efterfulgt af foldning med delta-funktioner, normalt implementeret med
et sample and hold kredsløb - er smart, da IIR skaleringsfunktioner
falder eksponentielt fra centeret og FIR skaleringsfunktioner er kompakt
støttede- og har begge eksponentiel fald/konvergens i frekvensrummet!

Skaleringsfunktioner som er kompakt støttede, vil diskretiseret via sin
egen funktion, være et FIR filter.

Det skal bemærkes at wavelet og skaleringsfunktionskoefficienter ikke
har samme værdi som den tilsvarende kontinuerte wavelet og
skaleringsfunktionsbasisfunktioner til samme tid. Det har man for
Shannon/sinc-basisfunktioners kontinuerte form og diskretiserede værdier
for samme tid.

mvh/Glenn


Ulrik Smed (13-06-2006)
Kommentar
Fra : Ulrik Smed


Dato : 13-06-06 23:20

"Glenn Møller-Holst" <none@xx.dk> skrev i en meddelelse
news:e6guh1$j7k$1@news.net.uni-c.dk
> Ulrik Smed wrote:
>> Hvis jeg laver et FIR filter med sinc (sin(x)/x)
>> funktionen med en god lang
>
> Hej Ulrik
>
> Ved anvendelse af "konventionelle" filtre baseret på
> koefficienter baseret på Shannon-diskretisering -
> egentlig kontinuert sinc-funktionsfoldning - eller
> ækivalent passende kontinuert lavpas-filtrering
> efterfulgt af foldning med delta-funktioner, normalt
> implementeret med et sample and hold kredsløb - er i sin
> oprindelige form ikke så smart, da sinc funktionen kun
> falder med 1/x fra centeret, til gengæld er
> sinc-funktionen kompakt støttet i frekvensrummet.

Hej Glenn

Tak for de mange links, jeg er dog ikke så stiv i matematik og alle de
anvendte udtryk, men jeg lærte da lidt her og der. Men jeg fandt en løsning
på problemet som var ret simpel. Jeg havde lige 'glemt' at sinc talrækkens
gennemsnit er nul, der er altså ingen DC-komponent til stede i den, så sinc
filteret fjerner en evt. DC-komponent i signalet. Så jeg skulle blot lægge
en passende DC-kompenent til sinc funktionen før jeg envelop'ede med min
cosinus, så slipper DC og dybe frekvenser med igennem, udæmpet.

--
Ulrik Smed
Aarhus, Denmark



es335 (11-06-2006)
Kommentar
Fra : es335


Dato : 11-06-06 15:39

Du kan da ikke lave spektrumanalyser på et signal der er digitalt
filtreret. Det skal være en analog filtrering for at det giver mening.
Det mener jeg helt bestemt, medmindre jeg har en anden opfattelse af
spektrumanalyser end dig.


Ulrik Smed skrev:

> 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å.
>


Ulrik Smed (12-06-2006)
Kommentar
Fra : Ulrik Smed


Dato : 12-06-06 00:44

"es335" <allettidersigen@hotmail.com> skrev i en meddelelse
news:1150036737.610636.191130@u72g2000cwu.googlegroups.com
> Du kan da ikke lave spektrumanalyser på et signal der er
> digitalt filtreret. Det skal være en analog filtrering
> for at det giver mening. Det mener jeg helt bestemt,
> medmindre jeg har en anden opfattelse af spektrumanalyser
> end dig.

Ja, du har ret i at jeg ikke kan filtrerer spejle (fra samplingen) væk med
digital filtrering. Jeg har analogfilter på også, men problemet er at jeg
ikke har en ret stor inputbuffer. Så jeg kan ikke se de dybe frekvenser. Min
plan var så at downsample bufferen i realtime mens samplingen sker. Altså
konverterer f.eks. 8 samples til 1. Denne 8 gange downsamplede buffer vil
jeg så bruge til at se de dybe frekvenser i. Og så bruge den 'rå' til at se
de høje frekvenser i.

--
Ulrik Smed
Aarhus, Denmark



Glenn Møller-Holst (11-06-2006)
Kommentar
Fra : Glenn Møller-Holst


Dato : 11-06-06 16:35

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å.

Hej Ulrik

Kig på - den er med kode!:

Upsampling and Downsampling
Laboratory #5 Solutions
René Vidal
http://robotics.eecs.berkeley.edu/~rvidal/engr451/renelab5.doc

filter and downsample:
http://www.dsprelated.com/groups/matlab/show/2018.php

mvh/Glenn


Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste