Параметр и преобразования сигнала

Введение

Чтобы полностью понять результаты, сгенерированные фиксированной точкой блоки Simulink®, необходимо знать об этих проблемах:

  • То, когда числовые параметры блоков преобразованы от, удваивается до типов данных с фиксированной точкой

  • Когда входные сигналы преобразованы от одного типа данных с фиксированной точкой до другого (если вообще)

  • Когда арифметические операции на входных сигналах и параметрах выполняются

Например, предположите, что блок Simulink фиксированной точки выполняет арифметическую операцию на своем входном сигнале и параметре, и затем генерирует вывод, имеющий характеристики, которые заданы блоком. Следующая схема иллюстрирует, как эти проблемы связаны.

Разделы, которые следуют, описывают параметр и преобразования сигнала. Правила для Арифметических операций обсуждают арифметические операции.

Преобразования параметра

Параметры блоков фиксированной точки, которые принимают численные значения, всегда преобразовываются от double до типа данных с фиксированной точкой. Параметры могут быть преобразованы в тип входных данных, тип выходных данных, или в тип данных, явным образом заданный блоком. Например, блок Discrete FIR Filter преобразовывает свой параметр Initial states в тип входных данных и преобразовывает его параметр Numerator coefficient в тип данных, который вы явным образом задаете через диалоговое окно блока.

Параметры всегда преобразовываются, прежде чем любые арифметические операции выполняются. Кроме того, параметры всегда преобразовываются оффлайн с помощью раунда-к-самому-близкому и насыщения. Оффлайновые преобразования обсуждены ниже.

Примечание

Поскольку параметры блоков фиксированной точки начинаются как double, они никогда не точны больше чем к 53 битам. Поэтому, если вывод вашего блока фиксированной точки более длителен, чем 53 бита, ваш результат может быть менее точным, чем вы ожидали.

Оффлайновые преобразования

Оффлайновое преобразование является преобразованием, выполняемым вашей платформой разработки (например, процессор на вашем PC), а не процессором фиксированной точки, для которого вы предназначаетесь. Например, предположите, что вы используете PC, чтобы разработать программу, чтобы работать на процессоре фиксированной точки, и вам нужен процессор фиксированной точки, чтобы вычислить

y=(abc)u=Cu

много раз. Если a, b и c являются постоянными параметрами, это неэффективно для процессора фиксированной точки, чтобы вычислить ab/c каждый раз. Вместо этого процессор PC должен вычислить ab/c оффлайн одно время, и процессор фиксированной точки вычисляет только C · u. Это устраняет две дорогостоящих операции вычислений с фиксированной точкой.

Преобразования сигнала

Рассмотрите преобразование реального значения от одного типа данных с фиксированной точкой до другого. Идеально, значения до и после преобразования равны.

Va=Vb,

где Vb является входным значением, и Va является выходным значением. Чтобы видеть, как преобразование реализовано, два идеальных значения заменяются генералом [Наклонное Смещение] схема кодирования, описанная в Масштабировании:

Vi=Fi2EiQi+Bi.

Решая для сохраненного целочисленного значения типа выходных данных, обеспечение качества получено:

Qa=FbFa2EbEaQb+BbBaFa2Ea=Fs2EbEaQb+Bnet,

где Fs является настроенным дробным наклоном, и Bnet является сетевым смещением. Оффлайновые преобразования и онлайновые преобразования и операции обсуждены ниже.

Оффлайновые преобразования

И Fs и Bnet вычисляются оффлайн с помощью раунда-к-самому-близкому и насыщения. Bnet затем хранится с помощью типа выходных данных, и Fs хранится с помощью автоматически выбранного типа данных.

Онлайновые преобразования и операции

Остающиеся преобразования и операции выполняются онлайн процессором фиксированной точки и зависят от наклонов и смещений для типов входных и выходных данных. Преобразования и операции даны этими шагами:

  1. Начальное значение для Qa дано сетевым смещением, Bnet:

    Qa=Bnet.

  2. Входное целочисленное значение, Qb, умножается на настроенный наклон, Fs:

    QRawProduct=FsQb.

  3. Результат шага 2 преобразован в измененный тип выходных данных, где наклон один, и смещение является нулем:

    QTemp=convert(QRawProduct).

    Это преобразование включает любую необходимую битную перемену, округление или обработку переполнения.

  4. Операция суммирования выполняется:

    Qa=QTemp+Qa.

    Это суммирование включает любую необходимую обработку переполнения.

Оптимизация симуляций и сгенерированного кода

Обратите внимание на то, что максимальное количество преобразований и операций выполняется, когда наклоны и смещения входного сигнала и выходного сигнала отличаются (не соответствуются). Если масштабирование этих сигналов идентично (соответствующий), количество операций сокращено от худшего (самого неэффективного) случая. Например, когда вход имеет тот же дробный наклон и смещение как вывод, только шаг 3 требуется:

Qa=convert(Qb).

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