|
|
Algorithmik Filter Design Toolbox |
|
Dr.Nick |
Forum-Anfänger
|
|
Beiträge: 34
|
|
|
|
Anmeldedatum: 04.05.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 07.02.2011, 22:43
Titel: Algorithmik Filter Design Toolbox
|
|
|
|
|
Hallo zusammen,
ich habe mit der Matlab Filter Design Toolbox einige Filter erstellt. Diese liegen als dfilt.df2sos vor. Mit dem Befehl filter() können sie in Matlab verwendet werden. Leider möchte ich die Filter nicht in Matlab, sondern in C# benutzen. Deshalb möchte ich versuchen, den filter()-Befehl in C# nachzubauen.
In der Matlab-Hilfe habe ich für den Filterbefehl einen Abschnitt "Algorithm" gefunden, der beschreibt, wie der Befehl arbeitet:
y(n) = b(1)*x(n) + b(2)*x(n-1) + ... + b(nb+1)*x(n-nb) - a(2)*y(n-1) - ... - a(na+1)*y(n-na)
Leider gilt dies nur für einen Aufruf nach dem Muster y = filter(b,a,X). Für ein Aufruf mit einem dfilt.df2sos-Objekt kann ich so etwas nicht finden.
Meine Vermutung war zunächst, dass ich die durch das dfilt.df2sos-Objekt gegebenen Werte irgendwie in diese Formel einsetzen kann. Allerdings habe ich pro Filter nur eine [4x6] Matrix mit Filterkoeffizienten (sosMatrix), nicht zwei (also a und b). Dafür gibt es eine Matrix mit scaleValues. Ich habe keine Ahnung, wie ich damit Werte filtern kann...
Kennt sich jemand damit aus und kann mir sagen, wie ich die Koeffizienten in welche Formel einsetzen muss, um zu filtern?
Vielen Dank schonmal
Nick
|
|
|
|
|
Dr.Nick |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 34
|
|
|
|
Anmeldedatum: 04.05.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 08.02.2011, 13:54
Titel:
|
|
Okay, nachdem ich mich noch etwas weiter mit dem Problem beschäftigt habe, habe ich eine Funktion gefunden, mit der es möglich ist, a und b ("quantized filter") in eine sos-Matrix ("Second-order section form") umzuwandeln: sos.
Die Funktion macht also genau das Gegenteil von dem, was ich machen möchte... Gibt es eine Funktion, die die second-order section form in quantized filter umwandelt?
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|