フィルター係数の扱いはどうすればよいのでしょうか? - ページ 2

 

今日、禁止されている友人がSkypeで無料のMatlab analoguehttp://www.scilab.org/ へのリンクをシェアしてくれました。

どんなものか見てみないとわからない。

とにかく、インストール時にIntelのライブラリ(Intel MKL libraryはすでに1年間無料)を使用すると書いてあり、これは良いニュースです。

-----------

ソフトウェアのインストール手順で、インテル® MKL® を選択した場合

インテル® MKL ライブラリーで提供される FFTW3 ライブラリーのどちらか、または両方を使用することができます。

インテル® MKL ライブラリーのインストールと使用には、インテル® EULA [1] が適用されます。

その際、お客様は拘束されることに同意するものとします。

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

デジタルメソッドジェネレーター

一般的には、ウィンドウシンクフィルターは大賛成です。


インテルとラパックのパッケージのDLLを使用しています。ちなみに、コドバセに入れられるDLを見たのは、人生で2度目です結局のところ、MKは常にそのような安全でない可能性のあるステップに反対してきたのです。

もしかしたら、私も入れてもらえるかも?面白いものがたくさんありますね。

 
このオッズはいくつあるのでしょうか?すべて、つまりオプション1(テキスト式)が見られると良いですね。また、オプション2、5も参考になります
 

フィルター係数についてよくわからないのですが。フィルター係数は2次からカットオフ周波数に非線形に依存し、また平滑化周期に依存します。

特定の係数を与えるということは、ある特定の周波数(周期)に対してということでしょうか?正しく理解できていますか?

 
Alexey Volchanskiy:

今日、禁止されている友人がSkypeで無料のMatlab analoguehttp://www.scilab.org/ へのリンクをシェアしてくれました。

どんなものか見てみないとわからない。

とにかく、インストールするときに、Intelのライブラリを使っている(Intel MKLライブラリはすでに1年間フリーになっている)と書いてあるので、これはいいことだ。

MathLabのフリーのアナログと言える良いものです。MathLabのプログラムをSciLabに入れたり、逆にSciLabのプログラムをMathLabに入れたりと、ほとんど互換性があります。試していませんが、そう宣言しているのです。

Sanychに影響されてRを始めたのですが、全般的にあまり自分に合わないので、結局SciLabにたどり着きました。当初は無線工学の仕事で信号を処理するために作られたもので、少しは身近になったのですが)。また、SciLabの統計もかなり充実しています。

 
Yuriy Asaulenko:

フィルター係数についてよくわからないのですが。2次から始まるフィルター係数は、カットオフ周波数に非線形に依存し、お好みで平滑化周期に依存します。

特定の係数を与えるということは、ある特定の周波数(周期)に対してということでしょうか?正しく理解できていますか?


そうでもないんです。計算に実周波数をとり、帯域幅をHzで設定しても、0~1の正規化周波数に変換されます。そして、この正規化周波数は、サンプリングレートにも、Hzの実数値にも依存しなくなります。

実際の取引例では、サンプリングレートが4Hz、つまり250msの周期でタイマーが動作しています。ローパスフィルタLPF(ミュービングのアナログ)の帯域幅は0.04~0.4Hzです。すべての周波数をサンプリング周波数で割って正規化した周波数に変換すると、0.01~0.1の帯域幅が得られます。

係数は次のようになります。

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};

そして、周波数帯域の異なる3つのLFフィルターについて、それぞれ長さを変えた場合の例図です。

ファイアスリー

EURUSD, 15.03.2017, サンプルレート2Hz, サプレッション40dB

 
Yuriy Asaulenko:

特定の係数を与えるということは、ある特定の周波数(周期)に対してということでしょうか?正しく理解できていますか?

今、自分用にMatlabのプログラムを作って、係数の配列一式をdouble形式のファイルに書き込んでいます。配列のパラメータとその数量は、パラメータで設定することができる。

そして、必要なセットを読み取ることができるMQLクラスがある。

このような形で掲載させていただきます。それに、必要な係数のセットを選んで、バイナリやテキスト形式でディスクに書き込めるように、このクラスを完成させます。

 
Yuriy Asaulenko:

MatLabの無料アナログということで、良いことづくめです。MatLabのプログラムをSciLabに入れたり、逆にSciLabのプログラムをMatLabに入れたりと、ほとんど互換性があります。私は試していませんが、そう宣言されています。

Sanychに影響されてRを始めたのですが、全般的にあまり自分に合わないので、結局SciLabにたどり着きました。当初は無線工学の仕事で信号を処理するために作られたもので、少しは身近になったのですが......)。また、SciLabの統計もかなり充実しています。

必要性がなかったため、よくわからない。まあ、何も、早く勉強しますよ)。
 
Alexey Volchanskiy:

今、自分用にMatlabのプログラムを作っていて、係数の配列のセットをdouble形式のファイルに書き込んでいます。配列のパラメータとその数は、パラメータで設定することができます。

そして、必要なセットを読み取ることができるMQLクラスがある。

このような形で掲載させていただきます。さらに、必要な係数のセットを選択し、バイナリやテキスト形式でディスクに書き込めるように改良します。

係数の数で判断すると、FIRフィルターを使っているのですね。

私はBIHを使用しています。そこには多くの係数はありませんが、正規化されたフォームから、周波数を再計算するのはより困難です。そう簡単にはスケールアップしないのです。

 
Alexey Volchanskiy:
必要ないため、全く馴染みがない。大丈夫です、すぐに勉強しますから(笑)。
MathLabであれば問題ないです。少なくとも、両者に共通するライブラリでは。しかし、機能的に非常に近いからと言って、ケーキのピースを変えることに意味があるのかどうか......。