Hallo Leute,
ich brauche eure Hilfe Habt Ihr schon mal mit Profilab expert eine Medianfilterung gebastelt Ich möchte analoge Spannungen, die ich über ein Labjack u12 einlese medianfiltern Wer kann mir weiterhelfen
Ich danke euch vielmals im voraus
Medianfilter programmieren
-
- Beiträge: 1
- Registriert: Dienstag 22. März 2011, 11:22
Re: Medianfilter programmieren
Hallo Otto,
Ein Medianfilter benötigt einen Puffer mit Messwerten (Samples) einer gewissen Tiefe, bpl. 64 samples [1..64]. Diese werden in einen neuen Puffer einsortiert, mit aufsteigenden Messwertgrössen = Rangordnung. Das Medianfilter schaut nun in die Mitte des Puffers und greift sich den sortierten Messwert am Pufferindex 32 heraus. Dieser wird als Filterwert in die weitere Verarbeitung mitgenommen.
Da die Messung wohl kontinuierlich läuft, und Du einen mediangefilterten Datenstrom derselben Abtastrate herstellen willst, wird obiger Sortier- und Filterprozess zwischen jedem Sample der Messung "fällig", d.h. seine Verarbeitung muss sehr schnell sein. Es ist auch ersichtlich, dass die 64 Samples zuerst in den Puffer eingelesen werden müssen, und damit das Resultat 32 Samples Verzögerung erfährt.
Typische Anwendung eines DSP, wenn in Echtzeit.
Ich persönlich würde von einer Implementierung in ProfilLab absehen, ausser Du hättest das Flair und Lust, dies in einer DLL zu tun. Auch dann ist die Sache nicht ohne, Du müsstest den DLL-Aufruf mit der Erfassungsrate synchronisieren und bei jedem DLL-Aufruf den Messwertepuffer um einen neuen Sample ergänzen, und den ältesten rauskippen, in Form eines Ringspeichers.
Dies ist meine Meinung.
Viele Grüsse von Thomas
Ein Medianfilter benötigt einen Puffer mit Messwerten (Samples) einer gewissen Tiefe, bpl. 64 samples [1..64]. Diese werden in einen neuen Puffer einsortiert, mit aufsteigenden Messwertgrössen = Rangordnung. Das Medianfilter schaut nun in die Mitte des Puffers und greift sich den sortierten Messwert am Pufferindex 32 heraus. Dieser wird als Filterwert in die weitere Verarbeitung mitgenommen.
Da die Messung wohl kontinuierlich läuft, und Du einen mediangefilterten Datenstrom derselben Abtastrate herstellen willst, wird obiger Sortier- und Filterprozess zwischen jedem Sample der Messung "fällig", d.h. seine Verarbeitung muss sehr schnell sein. Es ist auch ersichtlich, dass die 64 Samples zuerst in den Puffer eingelesen werden müssen, und damit das Resultat 32 Samples Verzögerung erfährt.
Typische Anwendung eines DSP, wenn in Echtzeit.
Ich persönlich würde von einer Implementierung in ProfilLab absehen, ausser Du hättest das Flair und Lust, dies in einer DLL zu tun. Auch dann ist die Sache nicht ohne, Du müsstest den DLL-Aufruf mit der Erfassungsrate synchronisieren und bei jedem DLL-Aufruf den Messwertepuffer um einen neuen Sample ergänzen, und den ältesten rauskippen, in Form eines Ringspeichers.
Dies ist meine Meinung.
Viele Grüsse von Thomas
Curiousity makes us progress !