LabVIEWForum.de - Übertragungsfunktion eines FIR-Filters

LabVIEWForum.de

Normale Version: Übertragungsfunktion eines FIR-Filters
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Leute!

Für mein aktuelles LabVIEW-Projekt benötige ich einen FIR-Filter, der ein Eingangssignal mit Frequenzen bis zu f=1600 Hz (Daraus folgt f_sample=3200 Hz) filtert. Das Programm nimmt Messwerte mit einer Samplefrequenz von 3200 Hz auf und wertet diese sekundenweise kontinuierlich aus. Über den Parks&McClellan-Algorithmus habe ich die benötigten Filterkoeffizienten h bestimmt. Ich möchte nun überprüfen, ob mein Filter wirklich tut was, er soll, bevor ich ihn verwende.

Hierzu habe ich mir ein extra VI geschrieben (siehe Anhang). Wenn ich den mit den Filterkoeffizienten h erstellten FIR-Filter auf ein weißes Rauschen anwende und danach die Übertragungsfunktion berechne, erhalte ich allerdings nur ungefähr den gewünschten Verlauf, da teilweise Peaks und Verzerrungen vom Idelverlauf entstehen. Dies ist in Signalverlaufsgraph 1 ersichtlich. Aus einem anderen VI von LabVIEW hab ich mir abgeguckt, wie man aus den Filterkoeffizienten h den theoretischen Verlauf der Übertragungsfunktion errechnet. Dieser ist in Signalverlaufsgraph 2 ersichtlich und entspricht genau der Übertragungsfunktion, die ich für meine Software brauche.

Meine Frage lautet nun:
Kann ich sicher sein, dass mein FIR-Filter nach Signalverlaufsgraph 2 filtert? Oder ist es so wie in Signalverlaufsgraph 1, dass wenn ich bei einer Samplefrequenz von 3200 eine Sampleanzahl von 3200 auswerte, dass es starke Abweichungen vom Sollverlauf der Übertragungsfunktion gibt? Vor allem ist mir aufgefallen, dass wenn ich die Sampleanzahl (nicht Frequenz!) immer weiter erhöhe, dann erhalte ich im Signalverlauf 1 eine immer "bessere" Kurve. Wieso ist das denn so? Blink

Vielen Dank!
Ich mache das einfach so:
[attachment=55558]
[attachment=55559]
Referenz-URLs