Forum: Digitale Signalverarbeitung / DSP / Machine Learning Filter in Matlab mit harmonischer Impulsantwort


von SignalFan (Gast)


Lesenswert?

Hallo zusammen,

ich beschäftige mich hobbymäßig mit DSP und hatte vor einiger Zeit mal 
mit Matlab und dem Kommando "filter" einen Filter erstellt, der auf 
einen Impuls mit einer abklingengenden harmonischen Schwingung 
geantwortet hat. Fand ich ganz lustig, weil ich mir das Signal dann auch 
anhören konnte und so schön "ping" machte.

Kann mir jemand sagen, wie ich die Filterkoeffizienten wählen muss, 
damit ich dieses Verhalten erreiche. Ich möchte in Matlab das filter 
Kommando nutzen. Die Syntax ist y = filter(b,a,X).

Besten Dank,

SignalFan

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

http://www.mathworks.de/de/help/matlab/ref/filter.html

"y = filter(b,a,X) filters the data in vector X with the filter 
described by numerator coefficient vector b and denominator coefficient 
vector a. If a(1) is not equal to 1, filter normalizes the filter 
coefficients by a(1). If a(1) equals 0, filter returns an error."

Das ist ja ein sehr allgemeines Digitalfilter, noch ohne Berechnung der 
Koeffizienten.
"Nachklingeln" machen vor allem vielstufige Filter hoher Güte mit üblem 
Phasengang. Gutmütige Filter wie Bessel oder Gauss-Charakter sollten das 
weniger tun.

von Jan K. (jan_k)


Lesenswert?

"filter(b,a,X)" erstellt kein Filter, sondern filtert (über eine 
diskrete Faltung) den Vektor X mit der aus Nenner (b) und Zähler (a) 
bestehenden Übertragungsfunktion!

Hast du damals die Impulsantwort selbst vorgegeben, oder hat sich das 
"so ergeben"?

Schöne Grüße,
Jan

von SignalFan (Gast)


Lesenswert?

Hallo Jan,

danke für Deine Antwort.

Ich muss ehrlich sagen, ich weiß nicht mehr wie ich dazu gekommen bin.
Ich glaube, es war so, das verschiedene Filter (wohl definiert durch die 
Koeffezienten in der Übertragungsfunktion) charakterisiert habe durch 
die Antwort auf den Dirac-Impuls. Das heißt doch Impulsantwort oder?

Ich fand's ziemlich erstaunlich, dass diese paar a/b Koeffizienten in 
einer Differenzengleichung das Verhalten von - sagen wir - einem selbst 
schwingendem System simulieren kann.

Wie gesagt, ich hatte ein bisschen rumprobiert mit den a/b koeffzienten 
und einen Impuls reingegeben und es gab als output (wenn über die 
entsprechend audio-play-funktion von matlab) einen richten schönen 
piiiing - ungefährt so wie von einder Fahrradklingel.

Vielleicht gibt es ja eine Möglichkeit, das Eigenschwing-Verhalten von 
IIR oder FIR-FIltern zu bestimmen. Sollte man das nicht an der 
Übertragungsfunktion ablesen können?

Beste Grüße

SignalFan

von K. L. (Gast)


Lesenswert?

SignalFan schrieb:

> Ich fand's ziemlich erstaunlich, dass diese paar a/b Koeffizienten in
> einer Differenzengleichung das Verhalten von - sagen wir - einem selbst
> schwingendem System simulieren kann.

Das ist eigentlich garnicht erstaunlich, weil so ein selbstschwingendes 
System eigentlich etwas ziemlich simples ist: Eine Rückkopplung der 
Position auf die Beschleunigung. Durch den Integralverlauf der 
Geschwidigkeit und später der Position entsteht die Verzögerung, die das 
System in die entgegensetzte Richtung zwingt. Am Ende gibt es soviele 
normierte Parameter, wie es Endwerte gibt: Amplitude, Phase und 
Frequenz. Mehr baucht es nicht. Verzichtet man auf die Phase, sind es 2 
Parameter.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.