ilo 0 30 марта, 2015 Опубликовано 30 марта, 2015 · Жалоба Мне с недавних пор пришлось заняться реализацией БИХ-фильтров на м/к, либо DSP, либо ПЛИС. Собственно, для выбора конкретной платформы сейчас нужно оценить необходимую разрядность составляющих цифрового фильтра. В связи с этим мероприятием мне, конечно же, попался в руки fdatool, а именно его раздел "quantization parameters". Данные будут представляться в формате с фиксированной запятой, а вот влияние различных вариантов разрядостей на точность фильтра и нужно оценить. Так вот, в fdatool есть пункты State word length и соответственно State fraction length, назначение которых оказалось недоступно моему пониманию, а тем временем, цифры, вписанные в эти поля, кардинально меняют шум округления, вычисляемый тулом. Что же всё-таки означают эти загадочные пункты? Поделитесь информацией, кто сталкивался. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 10 30 марта, 2015 Опубликовано 30 марта, 2015 · Жалоба Цитата из КиТа: "Моделирование ЦФ с ФТ средствами GUI FDATool предполагает обязательное знакомство с моделированием ЦФ с ФТ программными средствами MATLAB [ссылка сюда: КОМПОНЕНТЫ И ТЕХНОЛОГИИ • № 3 '2009 стр. 114 и далее.]" fir_matlab5.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ilo 0 31 марта, 2015 Опубликовано 31 марта, 2015 (изменено) · Жалоба [ссылка сюда: КОМПОНЕНТЫ И ТЕХНОЛОГИИ • № 3 '2009 стр. 114 и далее.]" в этой статье во всех девяти частях ничего по нужному вопросу не нашлось, кроме "Подробную информацию о свойствах объектов dfilt с различными структурами можно получить с помощью справочной системы MATLAB в формате HTML, используя поиск по ключевой фразе ”Quantized Filters” и обращаясь к разделам, описывающим объекты dfilt с различными структурами." Это навело на мысль поискать описание dfilt в справке матлаба. Только там наконец нашлась схема с упоминанием "State". Оказалось, что State хранит предыдущее значения (z[-1]) для некоторых видов фильтров. Как именно оно влияет, пока правда непонятно... В общем, спасибо за наводку) Изменено 31 марта, 2015 пользователем ilo Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 10 31 марта, 2015 Опубликовано 31 марта, 2015 · Жалоба В общем, спасибо за наводку) Сам пытался разобраться с квантованием в fdatool - в итоге перешел на FPU одинарной точности. Хотелось бы четко, "на пальцах" получить объяснение что, да как, но увы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
litv 0 31 марта, 2015 Опубликовано 31 марта, 2015 · Жалоба Если надо разобраться как устроен в разрядах бих фильтр в Матлаб fdatool: 1)quantanization parameter - filter arithmetic - Fixed point в Filter precision можете выбрать разрядности коэффиенты входы выходы и внутреннюю разрядность apply 2)слева 4 сверху маленькая иконка Realize model нажимаем выбираем build model using basic elements и затем Realize model через некоторой время откроется окно Simulink Untitled c вашим фильтром в умножителях сумматорах и разрядностью в каждом элементе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ilo 0 1 апреля, 2015 Опубликовано 1 апреля, 2015 · Жалоба Если надо разобраться как устроен в разрядах бих фильтр в Матлаб fdatool: 1)quantanization parameter - filter arithmetic - Fixed point в Filter precision можете выбрать разрядности коэффиенты входы выходы и внутреннюю разрядность apply 2)слева 4 сверху маленькая иконка Realize model нажимаем выбираем build model using basic elements и затем Realize model через некоторой время откроется окно Simulink Untitled c вашим фильтром в умножителях сумматорах и разрядностью в каждом элементе. после Realize Model ошибка: FDATool Error Subscript out of bounds. Can grow a UDD vector only one element at a time. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
litv 0 1 апреля, 2015 Опубликовано 1 апреля, 2015 · Жалоба Тут как с парашютом, если один раз не получилось - может лучше не продолжать :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ilo 0 1 апреля, 2015 Опубликовано 1 апреля, 2015 · Жалоба Тут как с парашютом, если один раз не получилось - может лучше не продолжать :) да уж. и ручками-ручками и головой, по-старинке ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Skryppy 0 19 апреля, 2015 Опубликовано 19 апреля, 2015 · Жалоба С арифметикой с фиксированой точкой все на самом деле просто: пусть есть число 0.25 , чтобы его представить в двоичном виде надо зарезервировать 1 бит под знак, 0 бит под целую часть и столько бит, чтобы корректно представить число 25 , т.е. 5 бит. итого имеем: word length=1+0+5=6, fraction length=5. Обычно точности в 16 бит хватает для нормальной работы фильтров. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andyp 9 19 апреля, 2015 Опубликовано 19 апреля, 2015 · Жалоба С арифметикой с фиксированой точкой все на самом деле просто: пусть есть число 0.25 , чтобы его представить в двоичном виде надо зарезервировать 1 бит под знак, 0 бит под целую часть и столько бит, чтобы корректно представить число 25 , т.е. 5 бит. итого имеем: word length=1+0+5=6, fraction length=5. Обычно точности в 16 бит хватает для нормальной работы фильтров. Вообще-то для числа 0.25 в бинарном представлении достаточно 2 знаков после точки 0.25 = 1/2/2. Битам справа от точки соответствуют степени 2^(-L) L= 1...fraction_length, слева - степени 2^(M) M=0...word_length - fraction_length - 1. Отрицательные числа получаются как 2's complement от положительных (на это нужен старший разряд) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
qwa 0 19 апреля, 2015 Опубликовано 19 апреля, 2015 · Жалоба А.И.Солонина, С.М.Арбузов - "Цифровая обработка сигналов. Моделирование в Matlab" - тут все подробно написано. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться