Преобразование параметрического аудио эквалайзера к фиксированной точке

В этом примере показано, как преобразовать систему с плавающей точкой в фиксированную точку с помощью 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, чтобы преобразовать подсистему эквалайзера в фиксированную точку

Чтобы открыть 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 смотрите Разработку Обработки сигналов Фиксированной точки.