Бросьте от, удваивается до фиксированной точки

Об этом примере

Цель этого примера состоит в том, чтобы показать вам, как моделировать непрерывное реальное, удваивает сигнал с помощью обобщенного типа данных с фиксированной точкой. Несмотря на то, что простой в проекте, модель дает вам возможность исследовать многие важные функции программного обеспечения Fixed-Point Designer™, включая

  • Типы данных

  • Масштабирование

  • Округление

  • Журналирование минимальных и максимальных значений симуляции к рабочей области

  • Обработка переполнения

Этот пример использует модель fxpdemo_dbl2fix. Откройте модель:

fxpdemo_dbl2fix

Разделы, которые следуют, описывают модель и ее результаты симуляции.

Блокируйте описания

В этом примере вы конфигурируете блок Signal Generator, чтобы вывести синусоидальный сигнал с амплитудой, заданной на интервале [-5 5]. Блок Signal Generator всегда выходные параметры числа с двойной точностью.

Преобразование типа данных (Dbl-to-FixPt) блок преобразовывает числа с двойной точностью от блока Signal Generator в один из типов данных Fixed-Point Designer. Для простоты размер выходного сигнала составляет 5 битов в этом примере.

Блок Data Type Conversion (FixPt-Dbl) преобразовывает один из типов данных Fixed-Point Designer в тип данных Simulink®. В этом примере это выводит числа с двойной точностью.

Симуляции

Следующие разделы описывают, как моделировать модель с помощью единственного двоичной точкой масштабирования и [Наклонное Смещение] масштабирование.

Единственное двоичной точкой масштабирование

При использовании единственного двоичной точкой масштабирования ваша цель состоит в том, чтобы найти оптимальную экспоненту степени двойки E, как задано в Масштабировании. Для этого режима масштабирования дробный наклон F равняется 1 и нет никакого смещения.

Запускать симуляцию:

  1. Сконфигурируйте блок Signal Generator, чтобы вывести синусоидальный сигнал с амплитудой, заданной на интервале [-5 5].

    1. Дважды кликните блок Signal Generator, чтобы открыть диалоговое окно Block Parameters.

    2. Установите параметр Wave form на sine.

    3. Установите параметр Amplitude на 5.

    4. Нажмите OK.

  2. Сконфигурируйте Преобразование типа данных (Dbl-to-FixPt) блок.

    1. Дважды кликните блок Dbl-to-FixPt, чтобы открыть диалоговое окно Block Parameters.

    2. Проверьте, что параметром Output data type является fixdt(1,5,2). fixdt(1,5,2) задает 5-битный, номер фиксированной точки со знаком с масштабированием 2^-2, который помещает двоичную точку два места слева от самого правого бита. Следовательно максимальное значение 011.11 = 3.75, минимальное значение 100,00 =-4.00, и точность (1/2) 2 = 0.25.

    3. Проверьте, что параметром Integer rounding mode является Floor. Floor округляет результат фиксированной точки к отрицательной бесконечности.

    4. Установите флажок Saturate on integer overflow, чтобы препятствовать тому, чтобы блок перенесся на переполнении.

    5. Нажмите OK.

  3. Выберите Simulation> Run в вашем окне модели Simulink.

Осциллограф отображает результаты симуляции реальной и фиксированной точки.

Симуляция показывает эффекты квантования вычислений с фиксированной точкой. Используя 5-битное слово с точностью (1/2) 2 = 0.25 производит дискретизированный вывод, который не охватывает полный спектр входного сигнала.

Если вы хотите породить полную линейную оболочку столбцов входного сигнала с 5 битами с помощью единственного двоичной точкой масштабирования, то единственная опция должна пожертвовать точностью. Следовательно, выходным масштабированием является 2^-1, который помещает двоичную точку одно место слева от самого правого бита. Это масштабирование дает максимальное значение 0 111,1 = 7.5, минимальное значение 1 000,0 =-8.0, и точность (1/2) 1 = 0.5.

Чтобы моделировать использование точности 0,5, установите параметр Output data type Преобразования типа данных (Dbl-to-FixPt) блок к fixdt(1,5,1) и повторно выполните симуляцию.

[Наклонное смещение] масштабирование

При использовании [Наклонное Смещение] масштабирование, ваша цель состоит в том, чтобы найти оптимальный дробный наклон F и зафиксированную экспоненту степени двойки E, как задано в Масштабировании. Нет никакого смещения для этого примера, потому что синусоида находится на интервале [-5 5].

Чтобы достигнуть значения для наклона, вы начинаете путем принятия фиксированной экспоненты степени двойки-2. Чтобы найти дробный наклон, вы делите максимальное значение синусоиды максимальным значением масштабированного 5-битного номера. Результатом является 5.00/3.75 = 1.3333. Наклон (и точность) 1.3333. (0.25) = 0.3333. Вы задаете [Наклонное Смещение] масштабирующийся как [0.3333 0] путем ввода выражения fixdt(1,5,0.3333,0) как значение параметра Output data type.

Вы могли также задать фиксированную экспоненту степени двойки-1 и соответствующий дробный наклон 0,6667. Получившийся наклон является тем же самым, поскольку E уменьшается на 1 бит, но F увеличен на 1 бит. Программное обеспечение Fixed-Point Designer автоматически сохранило бы F как 1,3332 и E как-2 из-за условия нормализации 1 ≤ F <2.

Запускать симуляцию:

  1. Сконфигурируйте блок Signal Generator, чтобы вывести синусоидальный сигнал с амплитудой, заданной на интервале [-5 5].

    1. Дважды кликните блок Signal Generator, чтобы открыть диалоговое окно Block Parameters.

    2. Установите параметр Wave form на sine.

    3. Установите параметр Amplitude на 5.

    4. Нажмите OK.

  2. Сконфигурируйте Преобразование типа данных (Dbl-to-FixPt) блок.

    1. Дважды кликните блок Dbl-to-FixPt, чтобы открыть диалоговое окно Параметров блоков.

    2. Установите параметр Output data type на fixdt(1,5,0.3333,0), чтобы задать [Наклонное Смещение] масштабирующийся как [0.3333 0].

    3. Проверьте, что параметром Integer rounding mode является Floor. Floor округляет результат фиксированной точки к отрицательной бесконечности.

    4. Установите флажок Saturate on integer overflow, чтобы препятствовать тому, чтобы блок перенесся на переполнении.

    5. Нажмите OK.

  3. Выберите Simulation> Run в вашем окне модели Simulink.

Осциллограф отображает результаты симуляции реальной и фиксированной точки.

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

(max_valuemin_value)2ws1,

где

  • max_value является максимальным значением, которое будет моделироваться.

  • min_value является минимальным значением, которое будет моделироваться.

  • ws является размером слова в битах.

  • 2ws - 1 самое большое значение слова с размером ws.

В данном примере формула производит наклон 0,32258.

Похожие темы