Чтобы полностью изучить результаты, сгенерированные фиксированной точкой блоки Simulink®, необходимо знать об этих проблемах:
То, когда числовые параметры блоков преобразованы от, удваивается до типов данных с фиксированной точкой
Когда входные сигналы преобразованы от одного типа данных с фиксированной точкой до другого (если вообще)
Когда арифметические операции на входных сигналах и параметрах выполняются
Например, предположите, что блок Simulink фиксированной точки выполняет арифметическую операцию на своем входном сигнале и параметре, и затем генерирует выход, имеющий характеристики, которые заданы блоком. Следующая схема иллюстрирует, как эти проблемы связаны.
Разделы, которые следуют, описывают параметр и преобразования сигнала. Правила для Арифметических операций обсуждают арифметические операции.
Параметры блоков фиксированной точки, которые принимают численные значения, всегда преобразуются от double
к типу данных с фиксированной точкой. Параметры могут быть преобразованы в тип входных данных, тип выходных данных, или в тип данных, явным образом заданный блоком. Например, блок Discrete FIR Filter преобразует свой параметр Initial states в тип входных данных и преобразует его параметр Numerator coefficient в тип данных, который вы явным образом задаете через диалоговое окно блока.
Параметры всегда преобразуются, прежде чем любые арифметические операции выполняются. Кроме того, параметры всегда преобразуются оффлайн с помощью раунда-к-самому-близкому и насыщения. Оффлайновые преобразования обсуждены ниже.
Примечание
Поскольку параметры блоков фиксированной точки начинаются как double
, они никогда не точны больше чем к 53 битам. Поэтому, если выход вашего блока фиксированной точки более длителен, чем 53 бита, ваш результат может быть менее точным, чем вы ожидали.
Оффлайновое преобразование является преобразованием, выполняемым вашей платформой разработки (например, процессор на вашем PC), а не процессором фиксированной точки, для которого вы предназначаетесь. Например, предположите, что вы используете PC, чтобы разработать программу, чтобы работать на процессоре фиксированной точки, и вам нужен процессор фиксированной точки, чтобы вычислить
много раз. Если a, b и c являются постоянными параметрами, это неэффективно для процессора фиксированной точки, чтобы вычислить ab/c каждый раз. Вместо этого процессор PC должен вычислить ab/c оффлайн одно время, и процессор фиксированной точки вычисляет только C · u. Это устраняет две дорогостоящих операции вычислений с фиксированной точкой.
Рассмотрите преобразование реального значения от одного типа данных с фиксированной точкой до другого. Идеально, значения до и после преобразования равны.
где Vb является входным значением, и Va является выходным значением. Чтобы видеть, как преобразование реализовано, два идеальных значения заменяются генералом [Наклонное Смещение] схема кодирования, описанная в Масштабировании:
Решая для сохраненного целочисленного значения типа выходных данных, обеспечение качества получено:
где Fs является настроенным дробным наклоном, и Bnet является сетевым смещением. Оффлайновые преобразования и онлайновые преобразования и операции обсуждены ниже.
И Fs и Bnet вычисляются оффлайн с помощью раунда-к-самому-близкому и насыщения. Bnet затем хранится с помощью типа выходных данных, и Fs хранится с помощью автоматически выбранного типа данных.
Остающиеся преобразования и операции выполняются онлайн процессором фиксированной точки и зависят от наклонов и смещений для типов входных и выходных данных. Преобразования и операции даны этими шагами:
Начальное значение для Qa дано сетевым смещением, Bnet:
Входное целочисленное значение, Qb, умножается на настроенный наклон, Fs:
Результат шага 2 преобразован в модифицированный тип выходных данных, где наклон один, и смещение является нулем:
Это преобразование включает любую необходимую битную перемену, округление или обработку переполнения.
Операция суммирования выполняется:
Это суммирование включает любую необходимую обработку переполнения.
Обратите внимание на то, что максимальное количество преобразований и операций выполняется, когда наклоны и смещения входного сигнала и выходного сигнала отличаются (не соответствуются). Если масштабирование этих сигналов идентично (соответствующий), количество операций сокращено от худшего (самого неэффективного) случая. Например, когда вход имеет тот же дробный наклон и смещение как выход, только шаг 3 требуется:
Исключительное использование единственного двоичной точкой масштабирования и для входных сигналов и для выходных сигналов является распространенным способом устранить наклоны, которым не соответствуют, и смещения и результаты в самых эффективных симуляциях и сгенерированном коде.