Hallo zusammen, ich versuche in Matlab gerade einen Bandpass zu realisieren mit dem fdatool. Hier hat man die Möglichkeit verschiedenste IIR und FIR Filter zu dimensionieren. Heute mittag bin ich aber auf folgendes Beisiel getroffen http://www.mathworks.com/matlabcentral/fileexchange/25017-fft-filter-clean-your-signals-and-display-results- Das Beispiel führt zuerst eine FFT, danach werden alle nicht gewünschten Frequenzanteile entfernt und schließlich eine inverse FFT durchgeführt. Was bleibt ist ein "perfekt" gefiltertes Zeitsignal. Das Ergebnis ist super. Ich suche aktuell noch nach dem Haken und ich frage mich ob diese Methode irgendwelche Nachteile gegenüber den IIR und FIR Filtern besitzt? Ich erinnere mich, dass es bei der FFT zu beachten gibt, welche Anzahl an Abtastpunkten N man nimmt. Diese sollte nur ganzzahlige Vielfache der Periodendauer betragen. Die Anzahl der Abtastpunkte N für die FFT im Beispiel setzt sich aus der Länge des übergebenen Signalarrays zusammen. Wenn ich dem Programm also ein Signal mit 10 Sinusschwingungen übergebe dann sollte das ja unproblematisch sein, richtig? Gruß
Wie wendest du denn einen FIR/IIR-Filter normalerweise an? Ich mache das genau so, FFT, Multiplikation, IFFT. Ich dachte auch dass das die übliche Methode ist. Bin aber kein Experte ... Natürlich kannst du die Faltung auch anders ausrechnen, aber das ist halt i.d.R. langsamer.
Moin, Bartholomäus schrieb: > Wenn ich dem Programm also > ein Signal mit 10 Sinusschwingungen übergebe dann sollte das ja > unproblematisch sein, richtig? Ja klar. Aber fuer solche Signale braucht man auch kein Filter. Diese Methode mit erst FFT, dann am Spektrum rumbiegen, wie man's gerne haette und dann Ruecktransformation ist halt ein Riesen-Rechenaufriss. Das kann man natuerlich machen, wenn eh' schon irgendwer die Kohle fuer die Matlablizenz abgedrueckt hat und sonst alles wurscht ist. Wenn man aber irgendein verkaufbares Produkt entwickeln muss, wo auf guenstiger Hardware moeglichst schnell und energiesparend gefiltert werden muss, kann ich mir so eine Loesung einfach nicht vorstellen. Nochdazu haben diese Filter ebene FFT bedingte Dreckeffekte, die z.b. dann rauskommen, wenn eben nicht 10 Sinuesse ge-FFT-t werden, sondern mal nur 9.5. Oder 9.2 oder 3.3 oder...oder... Gruss WK
Ok, danke für die Antworten. Das mit dem Leak-Effekt und mit dem Rechenaufwand habe ich soweit verstanden. Aber nur zum Verständnis: Beim Einsatz eines FIR-Filters kann es doch genauso zu diesem Effekt kommen? Matlab bietet mir bei diesen Filtern ja sogar die Möglichkeit einer Fensterung an.
Die FFT ist doch nichts anderes, als eine Summe überlagerte Sinusfunktionen als Multiplikator. Das sind die Frequenzen, die Du haben willst. Und das Ganze ist ein FIR-Filter.
Moin, Bartholomäus schrieb: > Aber nur zum Verständnis: Beim Einsatz eines FIR-Filters kann es doch > genauso zu diesem Effekt kommen? Matlab bietet mir bei diesen Filtern ja > sogar die Möglichkeit einer Fensterung an. Naja, das Gibbssche Phaenomen lugt bei der Signalverarbeitung um jede Ecke. Wenn man ein FIR Filter stumpf mittels sinc-Funktion designt, dann kann man natuerlich gucken, ob man's mit irgendeinem grad modernen Fenster schoener hinkriegt. Wenn man das Filter aber z.b. per firls() oder remez() designt, braucht's keine extra Fensterfunktion mehr. Gruss WK
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.