Как лучше поступить с коэффициентами фильтров? - страница 2

 

Сегодня один наш забаненный товарищ поделился в скайпе ссылкой на бесплатный аналог Матлаба http://www.scilab.org/

Надо будет посмотреть, что это такое

Во всяком случае, при установке написал, что использует интеловские библиотеки (Intel MKL library уже с год как бесплатна), что уже радует.

-----------

If during the software installation steps, you opt to select the Intel MKL 

library and/or the FFTW3 library provided in the Intel MKL library, the 

installation and use of the Intel MKL library is subject to the Intel EULA [1]

to which you then agree to be bound.

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

Генератор цифровых методов?

А вообще, я за оконный синк фильтр.


Там используются dll от интела и пакета lapack. Кстати, всего второй раз в жизни вижу, чтобы в кодобазу пускали длл! Ведь МК всегда были против таких потенциально небезопасных шагов.

Может, и меня пустят? А то много чего интересного наработано

 
Много эти коэффициентов? Хорошо бы видеть все, т.е. вариант 1 (текстовый). А так же не помешает варианты 2 и 5
 

На счет коэффициентов фильтров не совсем понял. Коэффициенты фильтров, начиная со 2-го порядка, нелинейно зависят от частоты среза, или, если хотите, периода сглаживания.

Если Вы даете конкретные коэффициенты, это означает, что для каких-то конкретных частот (периодов)? Правильно я понимаю?

 
Alexey Volchanskiy:

Сегодня один наш забаненный товарищ поделился в скайпе ссылкой на бесплатный аналог Матлаба http://www.scilab.org/

Надо будет посмотреть, что это такое

Во всяком случае, при установке написал, что использует интеловские библиотеки (Intel MKL library уже с год как бесплатна), что уже радует.

Это хорошая штука - бесплатный аналог МатЛаб. Даже, в основном, совместим, т.е. проги МатЛаб в SciLab идут, и наоборот. Не пробовал, но так декларируется.

Под влиянием Саныча начал с R, но мне он, в общем, плохо подходит, и, в итоге, пришел  к SciLab. Изначально он создавался для обработки сигналов под радиотехнические задачи, и мне это как-то ближе.) А статистики в SciLab тоже вполне хватает.

 
Yuriy Asaulenko:

На счет коэффициентов фильтров не совсем понял. Коэффициенты фильтров, начиная со 2-го порядка, нелинейно зависят от частоты среза, или, если хотите, периода сглаживания.

Если Вы даете конкретные коэффициенты, это означает, что для каких-то конкретных частот (периодов)? Правильно я понимаю?


Не совсем так. Если для расчетов брать реальные частоты, и задавать полосу частот в Гц, она все равно будет пересчитываться в нормализованную частоту от 0 до 1. И эта нормализованная частота уже не зависит ни от частоты дискретизации, ни от реальных значений в Гц.

Реальный пример для трейдинга - частота дискретизации 4 Гц, то есть таймер работает с периодом 250 мс. Полоса пропускания фильтра низких частот ФНЧ (аналог мувинга) 0.04-0,4 Гц. Переводим все в нормализованную частоту, просто делим все частоты на частоту дискретизации, получаем полосу пропускания 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};

И вот для примера картинка для трех фильтров НЧ с разными диапазонами частот, соответственно, разные длины.

 fir3

EURUSD, 15.03.2017, частота дискретизации 2 Гц, подавление 40 dB 

 
Yuriy Asaulenko:

Если Вы даете конкретные коэффициенты, это означает, что для каких-то конкретных частот (периодов)? Правильно я понимаю?

У меня сейчас для себя сделана прога на Матлабе, которая пишет в файл в формате double набор из массивов коэффициентов. Параметры массивов и их количество можно задавать в параметрах.

И есть класс на MQL, который может читать нужный набор. 

Я в таком виде и выложу. Плюс допилю класс, чтобы можно было выделить нужный набор коэффициентов и записать на диск в бинарном и текстовом виде.

 
Yuriy Asaulenko:

Это хорошая штука - бесплатный аналог МатЛаб. Даже, в основном, совместим, т.е. проги МатЛаб в SciLab идут, и наоборот. Не пробовал, но так декларируется.

Под влиянием Саныча начал с R, но мне он, в общем, плохо подходит, и, в итоге, пришел  к SciLab. Изначально он создавался для обработки сигналов под радиотехнические задачи, и мне это как-то ближе.) А статистики в SciLab тоже вполне хватает.

Я с ним совершено не знаком, т.к. не было нужды. Ну ничего, изучим по быстрому )
 
Alexey Volchanskiy:

У меня сейчас для себя сделана прога на Матлабе, которая пишет в файл в формате double набор из массивов коэффициентов. Параметры массивов и их количество можно задавать в параметрах.

И есть класс на MQL, который может читать нужный набор. 

Я в таком виде и выложу. Плюс допилю класс, чтобы можно было выделить нужный набор коэффициентов и записать на диск в бинарном и текстовом виде.

Я так понял, судя по кл-ву коэффициентов, вы КИХ-фильтры используете?

Я использую БИХ - там коэффициентов немного, но из нормализованного вида частота  сложнее пересчитывается. Они так просто не масштабируются.

 
Alexey Volchanskiy:
Я с ним совершено не знаком, т.к. не было нужды. Ну ничего, изучим по быстрому )
Если Вы в МатЛабе, то трудностей никаких. По крайней мере, с общими для обоих библиотеками. А вот имеет ли смысл менять шило на мыло, т.к. по функциональности они оч близки - эт не знаю.
Причина обращения: