Syntax:
wflt [ options ] [ ![]() ![]() |
---|
Options: | -m![]() ![]() |
: | Mittelwertfilter | ||||
---|---|---|---|---|---|---|---|
-l![]() ![]() |
: | Tiefpaßfilter | |||||
-f![]() ![]() |
: | Hochpaßfilter | |||||
-b![]() ![]() |
: | Bandpaßfilter | |||||
-w![]() ![]() |
: | Breite des Bandpasses (nur mit Opt. -b) | |||||
-g![]() ![]() |
: | Verstärkung | |||||
-a![]() ![]() |
: | Verschiebung des Nullpunktes | |||||
-c | : | Zentrieren der erzeugeten Datei | |||||
-n | : | Normalisieren der erzeugten Datei | |||||
-r | : | Datei verkehrt abspielen | |||||
-i | : | Datei invertieren | |||||
wflt ermöglicht eine breite Palette von beliebig kombinierbaren Transformationen, die in der oben angeführten Reihenfolge angewendet werden. Alle Frequenzangaben sowie die Angabe der Breite des Mittelwertfilters können direkt als Frequenz in Hz, als Periodendauer in s, oder als Anzahl der Sample-Werte, die einer Periode entsprechen (keine Einheit), angegeben werden. Für eine Datei mit einer Sample-Frequenz von 11025 Hz sind demnach die Frequenz-Parameter 2205Hz, 0.4531ms und 5 äquivalent.
In den folgenden Funktionsbeschreibungen stellt immer die
Datei vor, und
die Datei nach der jeweiligen Transformation dar.
Indizes beziehen sich auf die jeweilige Fileposition (
entspricht demnach dem
-ten Sample-Wert). Der
Differenz-Operator
sei definiert als
.
Weiters seien
bzw.
und
Sampling-Frequenz bzw. Kreisfrequenz und Tastperiode.
Mit Ausnahme des Mittelwertfilters sind alle implementierten
Frequenzfilter (Optionen -l, -f und -b) den
jeweiligen elektronischen Grundschaltungen (RC, RL und
RCL-Glied) nachempfunden und als Differenzengleichungen
mittels Rekursion implementiert. Um die Genauigkeit zu erhöhen
und um bei Filterfrequenzen größer als
ein
Überschwingen zu vermeiden, wird
als Schrittweite verwendet und zwischen zwei Sample-Werten
linear interpoliert. Nichtsdestoweniger bleiben
Filterfrequenzen größer als
sinnlos, da diese
nicht mehr darstellbar sind (Digitalisierungsrauschen).
In Tabelle 2.5.1 sind die mathematischen Definitionen der
einzelnen Filter sowie ihre Diskretisierungen angegeben.
steht dabei für die jeweilige Filterfrequenz. Im Falle des
Bandpasses ( -b) gibt
die Breite des
Bandpasses an; ist diese nicht mit der Option -w
angegeben so wird sie standardmäßig auf
gesetzt. Der Wert der Normierungskonstante
ist so gewählt, daß die
maximale Verstärkung einer Sinus-Schwingung genau 1 ergibt.
Anfangswerte (
) und undefinierte Randwerte (z.B.
)
sind auf 0 gesetzt.
Die folgenden Aufrufe wenden jeden der vier Filter auf die Datei Impuls.wav aus Abb. 4 an. Abb. 7 - 10 zeigen die Ausgaben der Aufrufe.
wflt -m1kHz -oMeanvalue.wav Impuls.wav
wflt -l200Hz -oLowpass.wav Impuls.wav
wflt -f200Hz -oHighpass.wav Impuls.wav
wflt -b200Hz -oBandpass.wav Impuls.wav
Wie anhand der Abbildungen leicht zu erkennen ist, verschiebt der Tiefpaß die Phase nach hinten, der Hochpaß nach vor während sie der Mittelwertfilter unverändert läßt.
Die Frequenzgänge, also die Verhältnisse zwischen Eingangs- und
Ausgangsamplituden einer angelegten Sinusschwingung der Kreisfrequenz
, von Tief-, Hoch- und Bandpaß sind in Tabelle
2.5.1 angegeben.
Für den Fall einer Filterfrequenz von 1000 Hz sind die Frequenzgänge in den Abb. 12 - 14 graphisch dargestellt.
Mittels der Optionen -g gain
und -a
bias
kann eine
einfache lineare Transformation der Form
durchgeführt werden. Wird die Option -c gewählt, so wird
bias
automatisch so gewählt, daß der
Durchschnittswert
. Die Option -y normiert die
erzeugte Datei sodaß
.
Werden die Optionen -c und -n gemeinsam verwendet,
so wird der Output bei maximaler Aussteuerung zentriert, also
.
Die Option -r vertauscht die Reihenfolge der , spielt
also die Datei verkehrt ab. Die Option -i negiert alle
Werte (
).