Вопрос по входным параметрам фильтра Баттерворта - страница 2

 
Mathemat >>:
Да, Серж, я, конечно, лоханулся, заявив, что с индюкаторами типа (2) ничего не сделаешь. Сделаешь, и еще как, если такой вот гладкий фильтр без ФЗ подать на выход нервосетки.
Vinsent_Vega >>:

ничего не лоханулся... пргонозирующий индюк (3) и заглядывающий в будущее (2) - разные вещи... с индюками типа (2) действительно ничего не сделаешь...

На самом деле нейросети не умеют "подглядывать" в будущее. Математически можно доказать, что сеть делает расчет некоего так называемого "справедливого" значения индикатора или осциллятора на несколько баров вперед. А потом, когда это самое вычисленное значение станет текущим, сравнивает его с реальным показанием осцилла или индюка и в зависимости от того, каким реальное значение окажется, т.е. больше или меньше расчетного, принимается классификационное решение - торговый сигнал.


Сие означает, что никаких прогнозов нейронные сети делать не умеют и реальные значения объектов на которых обучены наперед не вычисляют. Они занимаются классификацией на основе разницы между реальным (классифицируемым объектом) и разделительной плоскостью (вычисленным объектом).

 

      Выкладываю индюк, сделанный по первому посту из темы (рисунок от grasn). Работает как-то странно. В индикаторе присутствуют все параметры+ параметр F, который задаёт частоту косинуса. 

      to grasn:

      -частоту нужно задавать в герцах или ?

Файлы:
batteruot.rar  2 kb
 
CrazyMAN >>:

Выкладываю индюк, сделанный по первому посту из темы (рисунок от grasn). Работает как-то странно. В индикаторе присутствуют все параметры+ параметр F, который задаёт частоту косинуса.

to grasn:

-частоту нужно задавать в герцах или ?

А я вот так сразу и не помню, какое нормирование использовал. Но это можно уточнить, материал брал вот тут: http://www.prodav.narod.ru/

Этот фильтр там где то описан, его легко найти.

 
Дело в том, что хотелось бы сразу получить материалы для расчёта фильтра, т е готовые формулы + функция для построения передаточной функции и фазового сдвига. Если у кого-то есть последние 2 пункта - буду очень признателен. Без разницы, в MathCAD или Mql4
 
CrazyMAN >>:
Дело в том, что хотелось бы сразу получить материалы для расчёта фильтра, т е готовые формулы + функция для построения передаточной функции и фазового сдвига. Если у кого-то есть последние 2 пункта - буду очень признателен. Без разницы, в MathCAD или Mql4

рад был бы помочь, но сейчас просто не могу (нахожусь относительно далеко от своей лаборатории). Что касается входных данных, то на картинке они видны (данные передаются в функцию GrateDesignFilter в строгой последовательности, можно сравнить с самой функцией и без труда их найти).

 

Таки реализовал этого баттерворта. Файл прикрепляю. Надеюсь кому-то поможет. В нём частота берётся не в герцах, а в том ТФ, на котором открыт индюк. Вопрос по поводу функции для фазовой задержки остаётся открытым.

Файлы:
batteruot.mq4  3 kb
 
CrazyMAN >>:
   Дело в том, что хотелось бы сразу получить материалы для расчёта фильтра, т е готовые формулы + функция для построения передаточной функции и фазового сдвига. Если у кого-то есть последние 2 пункта - буду очень признателен. Без разницы, в MathCAD или Mql4


Сушествует два наиболее часто используемых метода: 

1. Берёте передаточную функцию во временной области (Z домейн). заменяете z = exp(j*2*pi*f/Fs). Для каждой частоты f, где интересует значение частотной характеристики получаете комплексное число, т.е. вектор. Модуль его амплитуды-значение частотной характеристики на этой частоте, угол-фазовый сдвиг. 

Более подробно- http://groups.google.com/group/comp.dsp/browse_frm/thread/8c0fa8d396aeb444/

2. Берете преобразование Фурье от импульсной характеристики фильтра. Очень просто считается в случае нерекурсивных фильтров (КИХ). В случае рекурсивного фильтра - например ваш Баттерворт (кстати, не пойму, чем он вам всем нравится, в дискретном виде можно делать значительно более интересные вещи), импульсная характеристика бесконечна и для расчётов её длину придётся ограничить. В качестве критерия можно использовать допустимую точность расчетов. Пример расчета АЧХ, ФЧХ и ГВЗ для КИХ фильтра - в коде ->'Тестер для КИХ фильтров-опять о фильтровке базара'


Проблемы, с которыми Вы наверняка столкнетесь:Phase Unwrapping. Т.е. с АЧХ всё ясно. А вот с фазой - арктангенс считается в пределах

 -pi/2<у<pi/2. Если Вас интересует реальный фазовый сдвиг-придется придумывать, как с этим бороться. Универсальных алгоритмов, работающих во всех случаях не существует. Я могу привести ссылки на 20-30 разных методов. Мне понравился вот этот- http://www.cyut.edu.tw/~ijase/2005/IJASE%20%203-2-7.pdf  но я где то ошибся и он не заработал. Поэтому в расчётах использовал довольно примитивный способ. Кстати, пакеты цифровой обработки в Матлабе и Маткаде в некоторых случаях считают фазу не корректно. Кому интересно-могу привести примеры. Но это обычный парадокс применения математических пакетов-если не знаете что вы должны получить (хотябы приблизительно)-не получите корректного результата. Правда в случае Баттерворта-вроде правильно.

 

Спасибо за информацию. Есть ещё такой вопрос по полосовому фильтру: можно просто пройтись сначала высокочастотным, а затем низкочастотным. При этом сдвиг фаз суммируется? Будет ли при этом сдвиг фаз больше, чем если использовать просто полосовой?)

И ещё интересует фазовый корректор для фильтра.

Вообще моя цель выделить конкретную полосу частот из спектра. Это можно сделать как-то проще с  использованием других рекурсивных фильтров?

 

 
CrazyMAN >>:

Спасибо за информацию. Есть ещё такой вопрос по полосовому фильтру: можно просто пройтись сначала высокочастотным, а затем низкочастотным. При этом сдвиг фаз суммируется? Будет ли при этом сдвиг фаз больше, чем если использовать просто полосовой?)

Да, фаза сложится если включать последовательно. А как вы собираетесь синтезировать "просто полосовой"?  

В случае КИХ фильтров нет проблем сделать ПФ с такой же задержкой как и ФНЧ. Хотя если решать в лоб и включать последовательно, то задержка удвоится. 

В случае БИХ фильтров (рекурсивных) полином должен получаться удвоенного порядка. Соответственно задержка должна увеличиваться. Можно ли это обойти-не уверен. Хотя может быть и существуют некоторые частные случаи.

И ещё интересует фазовый корректор для фильтра.

Фазовый корректор-а для чего? Он сам по себе внесёт задержку, хотя и может улучшить линейность ФЧХ. 

Не проще ли сразу синтезировать фильтр с линейной фазой? Благо такая возможность есть при дискретной обработке сигнала (в отличие от аналоговой, где это не реализуемо).

Вообще моя цель выделить конкретную полосу частот из спектра. Это можно сделать как-то проще с  использованием других рекурсивных фильтров?

Почему именно с рекурсивными? Выделить конкретную полосу частот из спектра-это всё?  Или есть ещё требования?  

Чесно говоря не понял что значит "сделать как-то проще". В чем сложность?

 
Сразу сделать полосовой можно, но только с использованием мнимой еденицы. Прикрепляю документ. В нём подробно описано как. Взят с сайта http://prodav.exponenta.ru/
Причина обращения: