Ввод фиксированной точки DSP

я новичок в работе с dsps и фиксированной точкой, и мне действительно нужно знать: 1. это dsp с фиксированной точкой, который преобразует число с плавающей запятой в формат Q, или устройство делает это перед подачей Dsp? 2. Кто определяет используемый формат Q. Каждый DSP поставляется с определенным Q_format или программист делает это в своих кодах. 3. Могу ли я понять, как выполнить простое, скажем, умножение матрицы 4 на 4 с фиксированной точкой в ​​С++?

Спасибо в ожидании


person FrancFine    schedule 04.09.2013    source источник


Ответы (1)


Формат обычно фиксирован для данного DSP, например. Семейство Motorola DSP 56k использует расширение 24 bit signed fractional format (Q23).

Фиксированная точка на самом деле такая же, как обычное целое число, но есть неявный коэффициент масштабирования. Для большинства операций это не имеет значения, т.е. загрузка/хранение/сложение/вычитание работают одинаково, независимо от того, являются ли данные целыми числами или с фиксированной точкой.
Однако когда дело доходит до умножения или деления, необходимо учитывать неявный коэффициент масштабирования — обычно сдвиг после операции, чтобы исправить это. Инструкции DSP позаботятся об этом автоматически, тогда как обычные процессоры должны делать это явно.

Когда вы делаете, например. умножая матрицу 4x4, вы просто используете собственные арифметические инструкции DSP с фиксированной точкой, и масштабирование выполняется автоматически.

person Paul R    schedule 04.09.2013