Signalverarbeitende Systeme: Butterworth-Filter

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Dozent: Prof. Dr.-Ing. Schneider
Lehrveranstaltung: Signalverarbeitende Systeme
Modul Signalverarbeitende Systeme und Systems Design Engineering
Modulbezeichnung: BSE-M-2-1.06
Modulverantwortung: Prof. Ulrich Schneider


Aufgabenstellung

Ein mobiler Roboter verwendet einen Ultraschallsensor (z. B. HC-SR04) zur Abstandsmessung. Aufgrund von Messrauschen, Mehrwegeausbreitung und Ausreißern sind die Rohdaten stark gestört.

Ziel ist die Entwicklung einer Mess- und Filterkette auf Basis eines Arduino sowie der Vergleich verschiedener digitaler Filterverfahren hinsichtlich Genauigkeit, Dynamik und Rechenaufwand.

Tutorial

Gegeben

  • Arduino Uno
  • Ultraschallsensor HC-SR04
  • Messbereich: 20 cm bis 200 cm
  • Abtastrate: 20 Hz
  • Messdauer: 60 s
  • mindestens 1200 Messwerte

Zu untersuchende Filter

  • Gleitender Mittelwert
  • Medianfilter
  • Tiefpass 1. Ordnung
  • Butterworth-Tiefpass 2. Ordnung

Teil 1: Datenerfassung

  • Aufbau des Messsystems mit Arduino
  • Echtzeit Datenerfassung mit MATLAB
  • Speicherung der Rohdaten (*.mat)
  • Echtzeit-Visualisierung der Messwerte

Teil 2: Filterimplementierung

  • Laden Sie die Messung aus Teil 1.
  • Implementieren Sie alle vier Filterverfahren in MATLAB.
  • Wenden Sie die Filter rekursiv auf die Messdaten an.

Teil 3: Analyse

Vergleichen Sie die Filter anhand folgender Kriterien:

  • Rauschunterdrückung
  • Reaktionsgeschwindigkeit
  • Phasenverschiebung / Verzögerung
  • Rechenaufwand
  • Speicherbedarf
  • Verhalten bei Ausreißern
Analyse der Filtersignale
Filter Rauschunterdrückung Reaktionsgeschwindigkeit Verzögerung Rechenaufwand Speicherbedarf Verhalten bei Ausreißern
Gleitender Mittelwert
Medianfilter
Tiefpass 1. Ordnung
Butterworth 2. Ordnung
Median → Butterworth-Tiefpass

Teil 4: Dynamischer Test

Führen Sie einen Sprungversuch durch:

  • Abstandsprung von 5 cm auf 29 cm
  • Analyse der Sprungantwort

Zu bestimmen:

  • Einschwingzeit
  • Überschwingen
  • Verzögerung
Analyse der Sprungantwort
Filter Einschwingzeit Überschwingen Verzögerung
Gleitender Mittelwert
Medianfilter
Tiefpass 1. Ordnung
Butterworth 2. Ordnung
Median → Butterworth-Tiefpass
  • Verzögerung: Wie lange ein Signal braucht, bis es überhaupt sichtbar reagiert.
  • Einschwingzeit: Wie lange ein System braucht, bis es nach einer Änderung stabil beim neuen Wert angekommen ist.

Teil 5: Bewertung

Diskutieren Sie die Eignung der Filter für:

  • Hinderniserkennung
  • Abstandsregelung eines mobilen Roboters
  • langsame Präzisionsmessungen
Filterbewertung
Filter Hinderniserkennung Abstandsregelung eines mobilen Roboters langsame Präzisionsmessungen
Gleitender Mittelwert
Medianfilter
Tiefpass 1. Ordnung
Butterworth 2. Ordnung
Median → Butterworth-Tiefpass

Vergleich der Filter

Filtervergleich
Filter Vorteil Nachteil Ranking
Gleitender Mittelwert
Medianfilter
Tiefpass 1. Ordnung
Butterworth 2. Ordnung
Median → Butterworth-Tiefpass

Mathematische Beschreibung

Gleitender Mittelwert

x¯(k)=x¯(k1)+x(k)x(nk)n

Tiefpass 1. Ordnung

x¯(k)=αx¯(k1)+(1α)x(k)

Butterworth (2. Ordnung)

Der Butterworth-Filter ist ein digitaler oder analoger Filter, der für seinen maximal flachen Frequenzgang im Durchlassbereich bekannt ist. Das bedeutet, dass er im gewünschten Frequenzbereich keine Welligkeit aufweist und Signale dort möglichst unverfälscht durchlässt.

Typischerweise wird er als Tiefpass, Hochpass oder Bandpass eingesetzt, wobei der Tiefpass besonders häufig in der Signalverarbeitung verwendet wird, um hochfrequentes Rauschen zu unterdrücken und langsam veränderliche Signalanteile zu erhalten.

In der digitalen Signalverarbeitung wird der Butterworth-Filter oft als IIR-Filter (Infinite Impulse Response) realisiert. Dadurch erreicht er eine gute Filterwirkung bei vergleichsweise geringer Filterordnung, allerdings mit einer gewissen Phasenverzerrung, die in vielen Messanwendungen akzeptabel ist.

Aufgrund seines guten Kompromisses aus Glättung, Stabilität und geringer Komplexität ist der Butterworth-Filter ein Standardverfahren in der Messtechnik, Robotik und Sensordatenverarbeitung.

x¯(k)=b0x(k)+b1x(k1)+b2x(k2)a1x¯(k1)a1x¯(k2)

  • Der aktuelle Ausgang x¯(k) entsteht aus einer Mischung aus aktuellen und vergangenen Eingangswerten sowie vergangenen Ausgangswerten.
  • Der Signalanteil berücksichtig die aktuellen und 2 vorherige Messwerte.
  • Die Rückkopplung beschreibt das Gedächtnis des Filters (2 vorherige Filterwerte).


Bestimmen Sie die Parameter mit MATLAB®.

%% Butterworth-Filter-Designer
fs = 10;      % Abtastrate in Hz
fc = 2;       % Grenzfrequenz in Hz
n  = 2;       % Ordnung

Wn = fc/(fs/2);   % normierte Frequenz (Nyquist!)

[b, a] = butter(n, Wn, 'low');

% Parameterzuordnung
% a1 = a(2) 
% a2 = a(3)

%% Filtergleichung Butterworth 2. Ordnung
y = filter(b, a, x);

Fazit (Erwartete Erkenntnis)


→ zurück zum Hauptartikel: BSE Signalverarbeitende Systeme