|
|
  |
fdatool | quantization parameters, что такое State word/fraction length ? |
|
|
|
Mar 30 2015, 14:20
|

Группа: Участник
Сообщений: 14
Регистрация: 30-03-15
Из: Москва
Пользователь №: 85 964

|
Мне с недавних пор пришлось заняться реализацией БИХ-фильтров на м/к, либо DSP, либо ПЛИС. Собственно, для выбора конкретной платформы сейчас нужно оценить необходимую разрядность составляющих цифрового фильтра. В связи с этим мероприятием мне, конечно же, попался в руки fdatool, а именно его раздел "quantization parameters". Данные будут представляться в формате с фиксированной запятой, а вот влияние различных вариантов разрядостей на точность фильтра и нужно оценить. Так вот, в fdatool есть пункты State word length и соответственно State fraction length, назначение которых оказалось недоступно моему пониманию, а тем временем, цифры, вписанные в эти поля, кардинально меняют шум округления, вычисляемый тулом. Что же всё-таки означают эти загадочные пункты? Поделитесь информацией, кто сталкивался.
|
|
|
|
|
Mar 31 2015, 10:37
|

Группа: Участник
Сообщений: 14
Регистрация: 30-03-15
Из: Москва
Пользователь №: 85 964

|
Цитата(adnega @ Mar 30 2015, 19:13)  [ссылка сюда: КОМПОНЕНТЫ И ТЕХНОЛОГИИ • № 3 '2009 стр. 114 и далее.]" в этой статье во всех девяти частях ничего по нужному вопросу не нашлось, кроме "Подробную информацию о свойствах объектов dfilt с различными структурами можно получить с помощью справочной системы MATLAB в формате HTML, используя поиск по ключевой фразе ”Quantized Filters” и обращаясь к разделам, описывающим объекты dfilt с различными структурами." Это навело на мысль поискать описание dfilt в справке матлаба. Только там наконец нашлась схема с упоминанием "State". Оказалось, что State хранит предыдущее значения (z[-1]) для некоторых видов фильтров. Как именно оно влияет, пока правда непонятно... В общем, спасибо за наводку)
Сообщение отредактировал ilo - Mar 31 2015, 10:37
|
|
|
|
|
Apr 1 2015, 07:10
|

Группа: Участник
Сообщений: 14
Регистрация: 30-03-15
Из: Москва
Пользователь №: 85 964

|
Цитата(litv @ Mar 31 2015, 17:40)  Если надо разобраться как устроен в разрядах бих фильтр в Матлаб 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.
|
|
|
|
|
Apr 1 2015, 09:10
|

Группа: Участник
Сообщений: 14
Регистрация: 30-03-15
Из: Москва
Пользователь №: 85 964

|
Цитата(litv @ Apr 1 2015, 12:06)  Тут как с парашютом, если один раз не получилось - может лучше не продолжать  да уж. и ручками-ручками и головой, по-старинке )
|
|
|
|
|
Apr 19 2015, 17:23
|
Участник

Группа: Участник
Сообщений: 65
Регистрация: 14-02-11
Пользователь №: 62 975

|
С арифметикой с фиксированой точкой все на самом деле просто: пусть есть число 0.25 , чтобы его представить в двоичном виде надо зарезервировать 1 бит под знак, 0 бит под целую часть и столько бит, чтобы корректно представить число 25 , т.е. 5 бит. итого имеем: word length=1+0+5=6, fraction length=5. Обычно точности в 16 бит хватает для нормальной работы фильтров.
|
|
|
|
|
Apr 19 2015, 17:36
|
Местный
  
Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163

|
Цитата(Skryppy @ Apr 19 2015, 20:23)  С арифметикой с фиксированой точкой все на самом деле просто: пусть есть число 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 от положительных (на это нужен старший разряд)
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|