Guten Morgen.
Ich bin gerade dabei das erste Mal einen Filter für einen µC zu
entwerfen und frage mich, welche Eingangsfunktion ich am Besten benutzte
um die Filtercharakteristik zu überprüfen?
Eine Impuls- oder Sprungfunktion und hilft mir da ja nur wenig weiter
und würde eher aus Stabilität testen?
Das schöne an Digitalfiltern ist ja, dass die Filtercharakteristik
vollständig durch die Filter-Koeffizienten beschrieben ist.
Oder möchtest du testen ob deine Implementierung des Filters korrekt
ist?
Kalg schrieb:> welche Eingangsfunktion ich am Besten benutzte> um die Filtercharakteristik zu überprüfen?
Naja, klar einen Dirac. Dann die Antwort deines zu testenden Filters in
ein geeignetes Tool (Matlab,Octave, irgendwas_mit_Python,...) und
gucken...
Vielleicht kriegst du evtl. numerische Ueberlaeufe eher mit einer
Sprungfunktion oder vielleicht auch der umgedrehten Filterantwort. Aber
das wird wahrscheinlich schon wieder stark von deiner Programmierung
abhaengen.
Gruss
WK
pumuggl schrieb:> Das letzte Mal war es ein Sinus aus dem Funktionsgenerator.>> Den auf Dirac zu schalten waere mir zu gefaehrlich.
Du kannst Digitalfilter ja auch digital testen. Da ist die Gefahr nicht
so groß ;)
Zum analogen Test der Gesamtstrecke mit ADC und DAC ist Sinus
durchwobbeln ok
> Oder möchtest du testen ob deine Implementierung des Filters korrekt ist?
Genau das habe ich gemeint :o)
Da bleibt mir wohl nur die Wahl des Diracs.
Danke!
El Ef schrieb:> Das schöne an Digitalfiltern ist ja, dass die Filtercharakteristik> vollständig durch die Filter-Koeffizienten beschrieben ist.
Richtig, allerdings ist die Wirkung immer vom konkreten Eingangsspektum
abhängig und damit gibt es Optimierungsansätze. Ließe sich zwar auch
alles irgendwie simulieren, aber nicht alles ist perfekt zu modellieren.
Du kannst ja einen Sweep am Eingang anlegen (das geht auch digital in
einer Simulation) und dann guckst du auf die Amplitude vom Ausgang. Wenn
du das analog mit Oszi und Generator machst ist es schick wenn du eine
schöne Triggerquelle hast. Z. B. einen Puls der immer beim Start eines
Sweeps ausgegeben wird.
> Du kannst ja einen Sweep am Eingang anlegen (das geht auch digital in> einer Simulation) und dann guckst du auf die Amplitude vom Ausgang.
Und wenn man dann an seinem Oszi die variable Persistenz hochdreht
dann bekommt man ein megatolles Bild der Uebertragungsfunktion...
Olaf
Kalg schrieb:> Eine Impuls- oder Sprungfunktion und hilft mir da ja nur wenig weiter> und würde eher aus Stabilität testen?
Das ist ein Beispiel, das ein Narr mit einem Werkzeug, imer noch ein
Narr bleibt. Wenn der Narr studiert hätte, wüsste er das sich aus der
Sprungantwort eines Systems die Übertragungsfunktion ergibt.
Falls das dem TO zu akademisch ist, kann er sich ja der klassischen
pragmatischem Variante - Benutzung eines Wobbelgenerators- bedienen.
Aber ich befürchte, auch Wobbelgenerator ist hier ein böhmisches Dorf.
https://de.wikipedia.org/wiki/Impulsantworthttps://de.wikipedia.org/wiki/Sprungantworthttps://de.wikipedia.org/wiki/Wobbelgenerator
Wobei das gesagt nur gilt, wenn der TO Filter im hier gebräuchlichen
Sinne meint, also Systeme, die Frequanz, Amplitude und Phase verändern.
Der Threadstarter ist wahrscheinlich schon lange weg. Für die
diejenigen, die in 10 Jahren über den Thread stolpern:
Wenn es um ein real aufgebautes Filter geht, dann lohnt es sich zum
Testen mal das erwartete Nutzsignal anzulegen. Echt jetzt, keine Spaß.
Zu Anfang einfach mal schauen ob das was durchkommen soll durch kommt.
Je nach Situation darf es von der Originalquelle, wie einem Sensor,
kommen oder man hat es, als vorausschauend arbeitender Ingenieur, im
ARB-Generator nachgebaut. Wenn es geht in mehreren exemplarischen
Varianten.
Dann legt man mal Signale mit Störungen an die das Filter wegfiltern
soll. Also die Art von Störungen aus dem realen Betrieb, wegen denen man
das Filter überhaupt gebaut hat. Wenn man schon mal dabei ist auch mal
verschiedene Pegel von Rauschen zusammen mit dem Nutzsignal drauf legen
um zu sehen wann in der Realität Schluss mit Lustig ist.
Man kann sich auch ansehen, wie das bei großen (Übersteuerung) und
kleinen Signalpegeln am Eingang aussieht.
Warum das alles? Weil es ungemein hilft zu wissen dass das Filter im
Prinzip für den geplanten Einsatzzweck funktioniert.
Dann kann man Frequenz- und Phasengang messen (Bodediagramm), die
Sprungantwort näherungsweise bestimmen und die Ergebnisse irgendwo in
der Dokumentation verschwinden lasse, wo sie sich kaum jemand jemals
ansehen wird.
Dergute W. schrieb:> Naja, klar einen Dirac. Dann die Antwort deines zu testenden Filters in> ein geeignetes Tool (Matlab,Octave, irgendwas_mit_Python,...) und> gucken...
Da halte ich für sehr blauäugig. Wenn jemand sich ein Filter berechnet
und dann genau das zum Überprüfen seiner Charakteristik benützt, dann
ist das so, als ob man seinen Zollstock mit eben demselben Zollstock
überprüft. Denk- und Programmierfehler verdoppeln sich entweder oder
heben sich heraus oder werden garnicht bemerkt.
Nein, wenn man's tatsächlich überprüfen will, dann erzeugt man sich
passende Daten unterschiedlicher Frequenz in der gewünschten
Samplefrequenz mit einem anderen Programm und füttert damit seinen
Filter. Dessen Output kann man dann in aller Ruhe auswerten. Und wie man
mit einem simplen DDS-Algorithmus in double saubere Testdaten erzeugt,
sollte jeder selber wissen.
Merke: das Verifizieren von egal was hat grundsätzlich mit einer anderen
Methode/Equipment zu erfolgen als derjenigen, die für dessen Erzeugung
verwendet wurde.
W.S.
@FalkS: Herzlichen Glückwunsch, Menschen wie du sind der Grund wieso ich
mittlerweile für eine Ausweispflicht im Internet bin. Du brauchst also
nicht jammern wenn du das Internet in D in wenigen Jahren nur noch mit
Klarname betreten darfst, denn du bist ein Teil des Problems das man mit
dieser Maßnahme in den Griff zu bekommen glaubt.
Eine eigene Frage?
Dieser Thread ist über 6 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.