Wie kann man am besten mit den Filterkoeffizienten umgehen? - Seite 2

 

Heute teilte ein verbannter Freund von uns über Skype einen Link zu dem kostenlosen Matlab-Analog http://www.scilab.org/

Ich muss nachsehen, was es ist.

Wie auch immer, während der Installation heißt es, dass es Intel-Bibliotheken verwendet (die Intel MKL-Bibliothek ist bereits seit einem Jahr kostenlos), was eine gute Nachricht ist.

-----------

Wenn Sie sich während der Software-Installation für die Intel MKL

Bibliothek und/oder der FFTW3-Bibliothek, die in der Intel-MKL-Bibliothek enthalten ist, die

Die Installation und Verwendung der Intel MKL-Bibliothek unterliegt der Intel EULA [1].

mit denen Sie sich dann einverstanden erklären, gebunden zu sein.

Home - Scilab
Home - Scilab
  • Scilab Enterprises
  • www.scilab.org
Scilab Official Website
 
Timur Gatin:

Ein digitaler Methodengenerator?

Im Allgemeinen bin ich für einen Filter für das Fensterbecken.


Es verwendet Dlls von Intel und das Lapack-Paket. Übrigens habe ich erst zum zweiten Mal in meinem Leben gesehen, wie eine Turteltaube in die kodobase gelassen wurde! Schließlich haben sich die MKs schon immer gegen solche potenziell unsicheren Schritte ausgesprochen.

Vielleicht lassen sie mich auch rein? Es sind eine Menge interessanter Dinge in Arbeit.

 
Wie viele dieser Quoten gibt es? Es wäre gut, sie alle zu sehen, d.h. Option 1 (textlich). Auch die Optionen 2 und 5 wären hilfreich.
 

Ich verstehe das mit den Filterkoeffizienten nicht ganz. Die Filterkoeffizienten ab der 2. Ordnung sind nichtlinear von der Grenzfrequenz oder, wenn Sie so wollen, von der Glättungsperiode abhängig.

Wenn Sie bestimmte Koeffizienten angeben, gilt das dann für bestimmte Frequenzen (Perioden)? Verstehe ich das richtig?

 
Alexey Volchanskiy:

Heute teilte ein verbannter Freund von uns über Skype einen Link zu dem kostenlosen Matlab-Analog http://www.scilab.org/

Ich muss nachsehen, was es ist.

Wie auch immer, bei der Installation heißt es, dass es Intel-Bibliotheken verwendet (die Intel MKL-Bibliothek ist bereits seit einem Jahr kostenlos), was gut ist.

Das ist eine gute Sache - ein kostenloses Analogon zu MathLab. Es ist sogar größtenteils kompatibel, d.h. MathLab-Programme gehen in SciLab und umgekehrt. Ich habe es nicht ausprobiert, aber das ist es, was dort angegeben ist.

Beeinflusst von Sanych habe ich mit R angefangen, aber es liegt mir im Allgemeinen nicht sehr gut, so dass ich schließlich zu SciLab kam. Ursprünglich war es für die Verarbeitung von Signalen für funktechnische Aufgaben gedacht, und es ist ein bisschen näher an mir). Und die Statistiken in SciLab sind auch völlig ausreichend.

 
Yuriy Asaulenko:

Ich verstehe das mit den Filterkoeffizienten nicht ganz. Die Filterkoeffizienten ab der 2. Ordnung sind nichtlinear von der Grenzfrequenz oder, wenn Sie so wollen, von der Glättungsperiode abhängig.

Wenn Sie bestimmte Koeffizienten angeben, gilt das dann für bestimmte Frequenzen (Perioden)? Verstehe ich das richtig?


Nicht wirklich. Wenn Sie reelle Frequenzen für die Berechnungen verwenden und die Bandbreite in Hz angeben, wird diese trotzdem in eine normierte Frequenz von 0 bis 1 umgewandelt. Und diese normierte Frequenz ist weder von der Abtastrate noch von den reellen Werten in Hz abhängig.

Das reale Beispiel für den Handel ist eine Abtastrate von 4Hz, d.h. der Timer läuft mit einer Periode von 250ms. Die Bandbreite des Tiefpassfilters LPF (analog zu muving) beträgt 0,04-0,4 Hz. Wandeln Sie alles in eine normalisierte Frequenz um, teilen Sie einfach alle Frequenzen durch die Abtastfrequenz, und Sie erhalten eine Bandbreite von 0,01-0,1.

Die Koeffizienten sehen wie folgt aus

double coeff[77] = {
0.0020403288714222, 0.0009819655397928, 0.0011225519005867, 0.0011964370038970, 0.0011779675029415, 0.0010436596580495, 
0.0007732498419909, 0.0003535344421556, -0.0002219434905004, -0.0009469112562786, -0.0018062225251740, -0.0027691214309082, 
-0.0037944927090922, -0.0048248454791543, -0.0057936459361424, -0.0066213616961954, -0.0072249511520868, -0.0075155986002137, 
-0.0074086882831938, -0.0068221975313534, -0.0056865034528597, -0.0039448978330095, -0.0015624214733406, 0.0014713627928496, 
0.0051450870992394, 0.0094188377587497, 0.0142247666794483, 0.0194626330409670, 0.0250204215515161, 0.0307523534113099, 
0.0365038435854891, 0.0421106663853138, 0.0474013760205897, 0.0522124336902514, 0.0563870184354613, 0.0597902427400937, 
0.0623061126904552, 0.0638517409542778,
0.0643721286293195, // центр симметрии
 0.0638517409542778, 0.0623061126904552, 0.0597902427400937, 
0.0563870184354613, 0.0522124336902514, 0.0474013760205897, 0.0421106663853138, 0.0365038435854891, 0.0307523534113099, 
0.0250204215515161, 0.0194626330409670, 0.0142247666794483, 0.0094188377587497, 0.0051450870992394, 0.0014713627928496, 
-0.0015624214733406, -0.0039448978330095, -0.0056865034528597, -0.0068221975313534, -0.0074086882831938, -0.0075155986002137, 
-0.0072249511520868, -0.0066213616961954, -0.0057936459361424, -0.0048248454791543, -0.0037944927090922, -0.0027691214309082, 
-0.0018062225251740, -0.0009469112562786, -0.0002219434905004, 0.0003535344421556, 0.0007732498419909, 0.0010436596580495, 
0.0011779675029415, 0.0011964370038970, 0.0011225519005867, 0.0009819655397928, 0.0020403288714222};

Und hier ist ein Beispielbild für drei NF-Filter mit unterschiedlichen Bandbreiten bzw. unterschiedlichen Längen.

Tanne3

EURUSD, 15.03.2017, Abtastrate 2 Hz, Unterdrückung 40 dB

 
Yuriy Asaulenko:

Wenn Sie bestimmte Koeffizienten angeben, gilt das dann für bestimmte Frequenzen (Perioden)? Verstehe ich das richtig?

Ich habe jetzt ein Matlab-Programm für mich, das eine Reihe von Arrays von Koeffizienten im Doppelformat in eine Datei schreibt. Parameter von Arrays und ihre Anzahl können in Parametern festgelegt werden.

Und es gibt eine MQL-Klasse, die die erforderliche Menge lesen kann.

So werde ich es veröffentlichen. Außerdem werde ich die Klasse so vervollständigen, dass der erforderliche Satz von Koeffizienten ausgewählt und in binärer und Textform auf die Festplatte geschrieben werden kann.

 
Yuriy Asaulenko:

Das ist eine gute Sache - ein kostenloses Pendant zu MatLab. Es ist sogar größtenteils kompatibel, d.h. MatLab-Programme gehen in SciLab und umgekehrt. Ich habe es nicht ausprobiert, aber es wird so erklärt.

Beeinflusst von Sanych habe ich mit R angefangen, aber es liegt mir im Allgemeinen nicht so gut, so dass ich schließlich zu SciLab kam. Ursprünglich war es für die Verarbeitung von Signalen für funktechnische Aufgaben gedacht, und es ist ein bisschen näher an mir). Und die Statistiken in SciLab sind auch völlig ausreichend.

Ich kenne mich damit nicht aus, denn es bestand keine Notwendigkeit. Nun, nichts, wir werden es schnell studieren).
 
Alexey Volchanskiy:

Ich habe jetzt ein Matlab-Programm für mich, das eine Reihe von Koeffizienten-Arrays in eine Datei im Doppelformat schreibt. Die Parameter der Arrays und deren Anzahl können in den Parametern eingestellt werden.

Und es gibt eine MQL-Klasse, die die erforderliche Menge lesen kann.

So werde ich es veröffentlichen. Außerdem werde ich die Klasse so verbessern, dass sie in der Lage ist, den gewünschten Koeffizientensatz auszuwählen und ihn in binärer und Textform auf die Festplatte zu schreiben.

Nach der Anzahl der Koeffizienten zu urteilen, verwenden Sie also FIR-Filter?

Ich verwende BIH - dort gibt es nicht viele Koeffizienten, aber aus der normalisierten Form ist die Häufigkeit schwieriger neu zu berechnen. Sie lassen sich nicht so einfach skalieren.

 
Alexey Volchanskiy:
Ich kenne mich damit überhaupt nicht aus, weil ich es nicht gebraucht habe. Ist schon gut, wir werden es schnell lernen.)
Wenn Sie in MathLab sind, ist das kein Problem. Zumindest mit den Bibliotheken, die beiden gemeinsam sind. Aber ob es sinnvoll ist, ein Stück Kuchen gegen ein Stück Torte auszutauschen, weil sie in ihrer Funktionalität sehr nahe beieinander liegen - ich weiß es nicht.