Арифметика с фиксированной точкой: форматы данных и реализация операций
Выбор работы каждого из квантователей в режиме с фиксированной или плавающей точкой задаётся значениями параметров колонки Mode, расположенной на странице Set Quan-tization Parameters. Для реализации арифметики с фиксированной точкой необходимо выбрать значение fixed. Двоичные числа с фиксированной точкой определяются в битах длиной слова w и длиной дробной части числа f. При этом длина дробной части может быть задана в диапазоне от 0 до w - 1 бит. Общее представление числа в формате с фиксированной точкой показано на рис. 9. Пользователь может задавать длину слова до 64-х бит включительно, однако побитовое соответствие результатов моделирования с помощью fdatool и реальной работы целевого компьютера обеспечивается, если длина слова определена в пределах 53 бит. Если же выбранная длина слова находится в диапазоне 54 £ w £ 64, то происходит потеря значимости, то есть в младшие биты записываются нули. В пакете MATLAB и, в частности, в функциях библиотеки Filter Design, формат для чисел с фиксированной точкой задаётся в виде [w, f] в колонке format.
Числа с фиксированной точкой могут быть беззнаковыми или со знаком. В первом случае старший бит, как и остальные, используется для представления величины числа, тогда как во втором - для его знака (0 соответствует знаку " плюс", 1 - знаку " минус" ). Динамический диапазон для беззнаковых чисел равен [0, 2w–f–2-f ], а для чисел со знаком - [–2w–f-1, 2w–f-1–2-f]. В обоих случаях точность, то есть разность двух ближайших чисел в данном формате, равна В связи с тем, что результатом квантования является замена квантуемой величины числом из конечного, предопределённого набора чисел, называемых уровнями квантования, необходимо ввести информацию о том, каким образом эту замену выполнять (значения и число уровней квантования определяются используемым форматом). Для этого в программе fdatool имеется поле Round mode, где для каждого квантователя можно выбрать способ округления. Пользователь имеет возможность выбрать один из следующих режимов:
если квантуемая положительная величина лежит ровно посередине между уровнями квантования, результатом является значение ближайшего уровня квантования в сторону плюс бесконечности;
Когда квантованию подвергается величина, значение которой находится за пределами динамического диапазона квантователя, возникает явление переполнения. Способ обработки таких величин задаётся в поле Overflow Mode (режим переполнения) для каждого квантователя. Пользователь может выбрать режим saturate или wrap. Режим saturate означает разрешение работы с насыщением: квантуемая величина, лежащая вне динамического диапазона, полагается равной ближайшему предельно допустимому числу. В случае выбора режима wrap, старшие биты квантуемой величины, лежащей вне динамического диапазона, будут отброшены, и результат квантования будет представлен младшими w-битами, при этом для чисел со знаком старший бит b w–1 интерпретируется как знаковый (рис. 9).
Рассмотрим следующий пример. Пусть имеются два квантователя - q1 и q2, для которых задан формат fixed [3 2], и пусть первый из них работает в режиме saturate, а второй — в режиме wrap. В этом случае шаг квантования для обоих квантователей 0, 75 для квантователя q1; Аналогично, если квантуемая величина равна -1, 25, результатами квантования будут следующие значения: -1 для квантователя q1; На рис. рис. 10 а-г показано, как формируются значения на выходе каждого из квантователей для рассмотренных четырёх случаев.
Функции библиотеки Filter Designer позволяют использовать два типа квантователей: quantizer и unitquantizer. Они работают практически одинаково, за исключением того, что на выходе квантователя unitquantizer будет единица, если на его вход поступает величина из диапазона [1–
Воспользуйтесь поиском по сайту: ![]() ©2015 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|