Springen naar inhoud

Signaalfilter programmeren


  • Log in om te kunnen reageren

#1

venra

    venra


  • >100 berichten
  • 156 berichten
  • Ervaren gebruiker

Geplaatst op 02 november 2011 - 21:10

Ik heb een periodisch signaal waar behoorlijk wat ruis op zit.
Nu wil ik van het gefilterd signaal:
A) Periode
B) Amplitude
C) Moment van nuldoorgang
bepalen.


Nu wil ik dit graag zelf proberen te programmeren.
Dus geen voorgebouwde functies e.d.

Nu kan ik reeds de periode bepalen door een zwevend gemiddelde te nemen, en daarvan de nuldoorgangen.
Dit werkt perfect, enkel vermoed ik wel dat dit problemen indien de ruis nog groter wordt.

Voor de nuldoorgangen neem ik momenteel de eerste nuldoorgang 'rond het tijdstip dat deze verwacht wordt' (dmv de periode)
Hier begin ik dus al een beetje te sukkelen.

Hoe ik de ruis dan kan filteren voor bepalen van de amplitude, zou ik helemaal niet weten.



Heeft iemand een idee?
Kan het eenvoudiger?
Ik hoor het graag! Dank.

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

CoenCo

    CoenCo


  • >100 berichten
  • 128 berichten
  • Ervaren gebruiker

Geplaatst op 02 november 2011 - 22:42

Als je de Periode nauwkeurig weet, dan kan je voor het bepalen van de amplitude het gemiddelde nemen van meerdere periodes. Aangezien Ruis per definitie random is, zal het zich bij een middeling opheffen.

Voor het bepalen van de periode zou je de tijd tussen het bronsignaal en een kopie van het bronsignaal (het vergelijkingssignaal) net zolang kunnen verschuiven, totdat de signalen weer zoveel mogelijk met elkaar overeenkomen.

#3

venra

    venra


  • >100 berichten
  • 156 berichten
  • Ervaren gebruiker

Geplaatst op 04 november 2011 - 18:12

Als je de Periode nauwkeurig weet, dan kan je voor het bepalen van de amplitude het gemiddelde nemen van meerdere periodes. Aangezien Ruis per definitie random is, zal het zich bij een middeling opheffen.

Periode lukt om exact te bepalen.
Maar hoe weet ik op welk punt ik dit dien te bepalen, als het signaal niet periodisch is?

#4

Xenion

    Xenion


  • >1k berichten
  • 2606 berichten
  • Moderator

Geplaatst op 04 november 2011 - 18:20

Als je een periodisch signaal hebt waarvan je de periode kent, dan kan je de metingen splitsen in de verschillende periodes en als je die dan uitmiddelt dan zou de ruis weg moeten zijn.

Voor een niet-periodisch signaal kan je niet zomaar uitmiddelen. Je kan wel eens proberen met een low-pass filter.

#5

venra

    venra


  • >100 berichten
  • 156 berichten
  • Ervaren gebruiker

Geplaatst op 04 november 2011 - 18:39

Als je een periodisch signaal hebt waarvan je de periode kent, dan kan je de metingen splitsen in de verschillende periodes en als je die dan uitmiddelt dan zou de ruis weg moeten zijn.

Is een goed idee! Dank

Je kan wel eens proberen met een low-pass filter.

Als je een idee hebt hoe ik dit kan programmeren, laat maar horen ;)

#6

Xenion

    Xenion


  • >1k berichten
  • 2606 berichten
  • Moderator

Geplaatst op 04 november 2011 - 19:26

Omdat je het woord filter gebruikte, dacht ik dat je bekend was met FIR filters en convolutie ;)

De code die hier gegeven wordt lijkt me wel bruikbaar.

Ik zou de manier met convolutie nemen, je moet dan juist nog ergens goeie filter coŽfficiŽnten vinden. Er zijn verschillende filters, je moet maar eens experimenteren met de dingen die je vind op internet tot je een goeie vindt.

#7

venra

    venra


  • >100 berichten
  • 156 berichten
  • Ervaren gebruiker

Geplaatst op 05 november 2011 - 17:41

Ik was hier nog niet mee bekend, maar dit is inderdaad wat ik nodig heb.
Nogmaals bedankt!





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures