Аудиоэквалайзер на ПЛИС: улучшаем звучание дешевых колонок

Статьи по теме

  1. Аппаратная реализация приемопередатчика пакетов Ethernet
  2. Генератор точечных стереограмм на ПЛИС
  3. Генератор Видеосигнала на NIOS II
  4. Система управления шаговыми двигателями вибромашины
  5. Разработка графического сенсорного интерфейса
equalizer

Автоматический аудиоэквалайзер, использующий цифровой анализ сигнала

 Введение

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

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

Описание функционала аудиоэквалайзера

Эквалайзер имеет три главные функции:

- Измерение и сохранение выхода системы динамиков.

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

- Измерение выхода текущей системы и оценка производительности и качества.

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

1) Реализован функционал блока быстрого преобразования Фурье (БПФ, Fast Fourier Transform, FFT) / обратного БПФ (ОБПФ, inverse FFT, IFFT) используя функции библиотеки MegaCore.

2) Аппаратное обеспечение для БПФ/ОБПФ настроено как эквалайзер путем хранения коэффициентов для каждого интервала частот в регистрах процессора Nios II.

3) Используя SOPC Builder в проект были добавлены следующие компоненты: контроллер SDRAM, контроллер флэш–памяти, FIFO буфер, пользовательская логика и интерфейс аудиокодека. Для системы с процессором Nios II портирована операционная система µClinux для управления процессорным ядром.

4) Создано программное обеспечение для мониторинга на базе ПК (персонального компьютера) с графическим интерфейсом пользователя (GUI), которое отображает и сохраняет выход системы и измеренный выход. Выход также может быть загружен в устройство Cyclone на учебной плате (DE1). Соединение между устройством и ПК происходит с помощью интерфейса RS-232 платы DE1.

Была выбрана µClinux в качестве ОС (операционной системы) для разрабатываемой системы, потому что многие программисты знакомы со средой Linux, что дает возможность уменьшить период разработки, а также из-за наличия большого количества ресурсов для разработчиков ориентированных на Linux. К тому же, µClinux существенно снижает потребность в низкоуровневом программировании, таком как обработка прерываний без перегрузки процессора.

Параметры производительности эквалайзера

Эквалайзер применяет уже измеренный отклик (выход) с другого динамика, к системе с текущим динамиком, а затем измеряет отклик действующей системы во второй раз. Пользователи могут отслеживать на сколько близки отклики между собой в GUI интерфейсе на компьютере.

Архитектура системы на базе НИОС

На рисунке 1 показана блок-схема системы. Блок обработки цифрового сигнала (DSP) выполняет часть обработки сигнала. Процессор Nios II реализует мониторинг и управление модулями. Существует также возможность расширить список задач, выполняемых процессором Nios II с помощью компилятора с С-to-Hardware (C2H) акселерацией или дополнительными пользовательскими инструкциями.

 

Рисунок 1. Диаграмма составных блоков системы

В проект был интегрирован цифровой анализатор сигналов (DSA) для измерения отклика динамика. Микрофон не зависит от выхода, поэтому, как только частотные характеристики достигнуты, другие частотные характеристики не являются критическими. На рисунке 2 показана блок-схема разработанного ПО (программного обеспечения).

Рисунок 2. Блок-схема ПО

Система выполняет три основные функции в соответствии с указаниями пользователя:

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

- Сохранение выхода динамиков. Система может хранить измеренный выход динамиков на флэш-памяти; система может изменить выход других динамиков на основе этой информации.

- Настройка выхода динамиков. Если пользователь выбирает выход динамиков, которые в данный момент подключены к системе и желаемый выход динамиков, система может изменить выход текущего динамика с помощью DSP.

Эквалайзеры, представленные в настоящее время на рынке, могут осуществлять аналогичные функции, но пользователь должен вручную настроить каждую переменную. В будущем можно добавить функцию, которая импортирует рассчитанные значения переменных (как и те, которые используются в коммерческих эквалайзерах) в компьютер. Эта функция позволит пользователям использовать Winamp или Windows Media Player без использования дорогой коммерческой системы.

Описание разработки

Самая трудная часть проектирования аппаратной части системы – это пошаговая отладка и мониторинг работы системы. Новы блоки добавлялись в систему только после того, как предыдущая часть системы была полностью проверена. Также выполнена проверка корректности работы модулей, защищенных правом интеллектуальной собственности (ИС, IP-модули) с помощью симуляции. Этот процесс помог избежать повторной проверки существующих частей системы в процессе отладки и увеличил эффективность разработки.

Программное обеспечение Altera ® Quartus ® II, SOPC Builder и интегрированная среда разработки (IDE) Nios II позволили нам использовать уже проверенные функции ИС и методологии разработки, которые значительно снижают сложность отладки. Например:

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

- Был реализован процессор Nios II, контроллер памяти, интерфейс FIFO и интерфейс аудиокодека путем использования SOPC Builder. Эти блоки являются основными функциями SOPC Builder-а, поэтому процесс разработки и испытания прошивки с использованием IDE Nios II не составили трудности.

- Сообщество ресрса JotSpot Wiki (nioswiki) предоставило хорошее описание того, как портировать µClinux. Требуется всего лишь следовать инструкциям, чтобы реализовать все IP блоки в SOPC Builder.

- Использовалось программирование в Windows для разработки мониторинговой программы для ПК. После того, как была разработана мониторинговая программа, была выполнена симуляция контролируемых сигналов с использованием программы на МАТЛАБ, а также использованы другие утилиты, которые облегчили работу с данными. Затем скомпилированный код был портирован на плату DE1 и выполенно его тестирование в аппаратуре.

Особенности разработки эквалайзера

Разработанный проект устройства эквалайзера имеет следующие особенности:

- Креативный. Используя ЦОС, разработанный эквалайзер позволяет заставить дешевые динамики звучать как дорогие.

- Недорогой. Все функции, кроме аудиокодека и микрофона, реализованы на Altera FPGA. На производительность не влияет использование дешевого микрофона, еще более уменьшая общую стоимость системы.

- Легкая и быстрая разработка. Процессор Nios II и определяемая пользователем логика (буфер, блок БПФ/ОБПФ, регистры и аудиокодек) подсоединены напрямую к шине Avalon, которая ими управляет. Таким образом, нет необходимости в использовании управления, использующего ввод-вывод общего назначения (general purpose IO, GPIO). В будущем, нет необходимости в разработке блока ЦОС отдельно, вместо этого, достаточно реализовать его с помощью процессора Nios II, используя стандартные инструкции, определяемые пользователем.

Выводы

С помощью ПЛИС Cyclone FPGA на плате DE1 реализован 2048-сэмпловый блок быстрого и обратного быстрого преобразования Фурье процессор Nios II и другие функции ИС (IP) для обработки звука в формате 16-бит и частотой 44-kHz. К сожалению, разработанный проект может обрабатывать только магнитуду выхода динамиков, игнорируя задержки фазы и другие помехи, которые ограничивают производительность системы. В будущем, улучшение обработки сигналов еще более улучшит производительность системы.

Использование платы DE2 очень облегчило разработку проекта, в основном за счет быстрого прототипирования, так как решения с использованием FPGA фирмы Altera позволяют использовать проверенные инструменты и блоки ИС из Megawizard Plugin Manager Quartus II, что значительно ускоряет разработку цифровых систем.

Адаптация материалов: Орлов Д.А, ДК-21, НТУУ «КПИ», каф. КЭВА.

Источник: Конкурс Альтера

 

Дополнительная информация по теме: