В этом примере показано, как преобразовать систему с плавающей точкой в фиксированную точку с помощью Fixed-Point Tool от Fixed-Point Designer™.
Требуемые продукты MathWorks™:
MATLAB®
Signal Processing Toolbox™
DSP System Toolbox™
Simulink®
MATLAB® Coder™
Simulink® Coder™
Embedded Coder™
Fixed-Point Designer™
Этот пример спроектирован, чтобы показать вам некоторые возможности Fixed-Point Tool и предоставить вам понимание шагов, которые необходимы, чтобы преобразовать систему с плавающей точкой в фиксированную точку. Fixed-Point Tool автоматизирует большинство задач, которые необходимы, чтобы преобразовать модель с плавающей точкой в фиксированную точку. В первом шаге рабочего процесса Fixed-Point Tool предлагает соответствующие настройки фиксированной точки для вашей системы.
Этот пример использует ту же модель с плавающей точкой, которая обсуждена в dspparameqcodegen примере. Обсуждение и поток операций, описанный в том примере также, применяются здесь.
В этом примере вы используете Fixed-Point Tool, чтобы преобразовать подсистему Эквалайзера dspparameqflt2fix
модель от плавающей точки до фиксированной точки. После использования этих инструментов, чтобы сделать это преобразование, вы сможете сгенерировать и исследовать код С фиксированной точки, произведенный подсистемой Эквалайзера.
Подсистема Эквалайзера состоит из трех биквадратных фильтров второго порядка, коэффициенты которых могут быть настроены, чтобы достигнуть желаемой частотной характеристики.
Следующий пользовательский интерфейс (UI) может использоваться в симуляции, чтобы динамически настроить коэффициенты фильтра.
Фильтры реализуются с помощью нескольких блоков Фильтра DSP System Toolbox™ Biquad. По умолчанию параметры фиксированной точки на этих блоках наследовали свое слово и дробные длины от входа блока. Вы видите эти настройки на диалоговом окне блока. Чтобы позволить Fixed-Point Tool настраивать слово и дробные длины параметров фиксированной точки, необходимо установить их на 'Масштабирование двоичной точки'. Когда вы делаете так, блок устанавливает слово и дробные длины к начальным значениям, которые можно изменить в любое время. Fixed-Point Tool может затем рекомендовать новые дробные настройки длины, которые улучшают точность и предотвращают переполнение, на основе минимальных и максимальных значений, регистрируемых в процессе моделирования.
Этот пример предоставляет скрипт, который изменяет параметры фиксированной точки трех блоков Biquad к 'Масштабированию двоичной точки'. Скрипт также устанавливает размер слова аккумулятора этих блоков к 40 битам, длина, которая используется в некоторых аппаратных процессорах DSP.
Откройте модель и запустите скрипт путем нажатия на следующую гиперссылку: Подготовьте параметры фиксированной точки Biquad. Чтобы просмотреть скрипт, нажмите Examine скрипт.
Если у вас нет скрипта, чтобы изменить установки параметров фиксированной точки в модели, необходимо сделать так вручную. Для этого откройте диалоговое окно блока, кликните по 'вкладке 'Data types '' и выберите соответствующую установку параметра фиксированной точки. В качестве альтернативы можно записать собственный скрипт и использовать функцию set_param, чтобы изменить установки параметров фиксированной точки.)
Прежде, чем преобразовать модель в фиксированную точку, это - лучшая практика настроить логгирование сигнала и задать ваш целевой компьютер. Логгирование сигналов позволяет вам сравнивать поведение модели с плавающей точкой с поведением модели фиксированной точки после преобразования.
Fixed-Point Tool использует указанную информацию целевого компьютера при предложении типов данных для модели. В панели Аппаратной реализации диалогового окна Параметров конфигурации, набор поставщик Устройства, к Texas Instruments
. Установите тип устройства к C6000
. Этот процессор имеет тип данных 40 битов длиной.
Чтобы открыть Fixed-Point Tool, в меню модели, выбирают Analysis> Data Type Design> Fixed-Point Tool. В разделе Prepare System панели инструментов, набор Система В соответствии с Проектом к подсистеме Эквалайзера.
1. В *раздел Collect Ranges панели инструментов, набор метод сбора области значений для Областей значений Симуляции, и затем нажимают Prepare. Fixed-Point Tool проверяет систему в соответствии с проектом для совместимости с процессом преобразования и сообщает о любых проблемах, найденных в модели. Когда возможно, Fixed-Point Tool автоматически изменяет настройки, которые не совместимы. В случаях, где инструмент не может автоматически изменить настройки, инструмент уведомляет вас относительно изменений, что необходимо сделать вручную, чтобы помочь процессу преобразования быть успешными.
2. Щелкните *, Собирают Области значений, чтобы запуститься, симуляция и иметь Fixed-Point Tool регистрируют минимальные и максимальные значения, которые происходят во время симуляции. Вы видите в Визуализации Данных моделирования что текущие типы данных на результате модели в нескольких переполнении в процессе моделирования.
3. Щелкните *кнопка Propose Data Types. Fixed-Point Tool использует области значений, собранные на предыдущем шаге, чтобы предложить типы данных, которые избегают переполнения при поддержании как можно большей точности.
Предложенные дробные изменения длины показывают в столбце таблицы 'ProposeDT'. Поля доступны для редактирования, таким образом, можно изменить любое предложенное значение. Флажки слева от каждого предложенного типа данных будут установлены. Снимите флажок с любым, чтобы отказаться от предложенного изменения. По окончании, нажимаете кнопку типов данных Apply.
4. Чтобы сравнить поведение после преобразования в поведение перед использованием Fixed-Point Tool, щелкните *, Симулируют со Встроенными Типами. Можно использовать Инспектора Данных моделирования, чтобы сравнить поведение сигналов, что вы регистрировали до и после преобразования. Открытому Инспектору Данных моделирования нажмите Compare Signals.
Подсистема Эквалайзера была теперь преобразована в фиксированную точку. Установите 'Время остановки' на 'inf' и запустите модель. Необходимо видеть частотную характеристику фиксированной точки, которая визуально идентична частотной характеристике с плавающей точкой. Эти два ответа показывают здесь для сравнения.
Чтобы сгенерировать код С, кликните по блоку 'Generate Code for Equalizer Subsystem'. Можно также сгенерировать код путем нажатия на следующую гиперссылку: Сгенерируйте Код для Подсистемы Эквалайзера. Модель сконфигурирована, чтобы сгенерировать отчет HTML, который может использоваться, чтобы переместиться по сгенерированному исходному коду и заголовочным файлам.
Более детальное обсуждение других опций генерации кода может быть найдено в dspparameqcodegen.
Для получения дополнительной информации об использовании Fixed-Point Tool от Fixed-Point Designer смотрите Советника Фиксированной точки.
Для получения дополнительной информации о работе с данными фиксированной точки в DSP System Toolbox смотрите Разработку Обработки сигналов Фиксированной точки.