Цель этого примера состоит в том, чтобы показать вам, как моделировать непрерывное реальное, удваивает сигнал с помощью обобщенного типа данных с фиксированной точкой. Несмотря на то, что простой в проекте, модель дает вам возможность исследовать многие важные функции программного обеспечения 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 и нет никакого смещения.
Запускать симуляцию:
Сконфигурируйте блок Signal Generator, чтобы вывести синусоидальный сигнал с амплитудой, заданной на интервале [-5 5]
.
Дважды кликните блок Signal Generator, чтобы открыть диалоговое окно Block Parameters
.
Установите параметр Wave form на sine
.
Установите параметр Amplitude на 5
.
Нажмите OK.
Сконфигурируйте Преобразование типа данных (Dbl-to-FixPt) блок.
Дважды кликните блок Dbl-to-FixPt, чтобы открыть диалоговое окно Block Parameters
.
Проверьте, что параметром 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.
Проверьте, что параметром Integer rounding mode является Floor
. Floor
округляет результат фиксированной точки к отрицательной бесконечности.
Установите флажок Saturate on integer overflow, чтобы препятствовать тому, чтобы блок перенесся на переполнении.
Нажмите OK.
Выберите 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.
Запускать симуляцию:
Сконфигурируйте блок Signal Generator, чтобы вывести синусоидальный сигнал с амплитудой, заданной на интервале [-5 5]
.
Дважды кликните блок Signal Generator, чтобы открыть диалоговое окно Block Parameters
.
Установите параметр Wave form на sine
.
Установите параметр Amplitude на 5
.
Нажмите OK.
Сконфигурируйте Преобразование типа данных (Dbl-to-FixPt) блок.
Дважды кликните блок Dbl-to-FixPt, чтобы открыть диалоговое окно Параметров блоков.
Установите параметр Output data type на fixdt(1,5,0.3333,0)
, чтобы задать [Наклонное Смещение] масштабирующийся как [0.3333 0].
Проверьте, что параметром Integer rounding mode является Floor
. Floor
округляет результат фиксированной точки к отрицательной бесконечности.
Установите флажок Saturate on integer overflow, чтобы препятствовать тому, чтобы блок перенесся на переполнении.
Нажмите OK.
Выберите Simulation> Run в вашем окне модели Simulink.
Осциллограф отображает результаты симуляции реальной и фиксированной точки.
Вы не должны находить наклон с помощью этого метода. Вам нужна только область значений данных, которые вы моделируете и размер слова фиксированной точки, используемого в симуляции. Можно достигнуть разумных результатов симуляции путем выбора масштабирования на основе формулы
где
max_value является максимальным значением, которое будет моделироваться.
min_value является минимальным значением, которое будет моделироваться.
ws является размером слова в битах.
2ws - 1 самое большое значение слова с размером ws.
В данном примере формула производит наклон 0,32258.