Signalverarbeitende Systeme: Butterworth-Filter
| 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
| 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
| 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
| Filter | Hinderniserkennung | Abstandsregelung eines mobilen Roboters | langsame Präzisionsmessungen |
|---|---|---|---|
| Gleitender Mittelwert | |||
| Medianfilter | |||
| Tiefpass 1. Ordnung | |||
| Butterworth 2. Ordnung | |||
| Median → Butterworth-Tiefpass |
Vergleich der Filter
| Filter | Vorteil | Nachteil | Ranking |
|---|---|---|---|
| Gleitender Mittelwert | |||
| Medianfilter | |||
| Tiefpass 1. Ordnung | |||
| Butterworth 2. Ordnung | |||
| Median → Butterworth-Tiefpass |
Mathematische Beschreibung
Gleitender Mittelwert
Tiefpass 1. Ordnung
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.
- Der aktuelle Ausgang 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