Автоматический аудиоэквалайзер, использующий цифровой анализ сигнала
Введение
Разработанный проект – автоматический аудиоэквалайзер, использующий цифровой анализ сигнала, – это эквалайзер, позволяющий дешевым колонкам проигрывать звук высокого качества, подобно звуку из дорогих динамиков. Потребители могут скопировать характеристики динамиков с желаемым качеством звука и применить эти характеристики к собственным дешевым, низкокачественным динамикам. Структура и способ применения нашего проекта просты, и это позволяет пользователям дешевых динамиков добиться лучшего качества звука.
Созданный проект – это экономичное устройство, которое также может быть применено к аппаратуре более высокого уровня, чтобы добиться лучшего качества без модернизации существующей системы.
Описание функционала аудиоэквалайзера
Эквалайзер имеет три главные функции:
– Измерение и сохранение выхода системы динамиков.
– Анализ и сравнение сохраненного желаемого выхода с динамиков с выходом текущей системы, обработка входного сигнала и настройка характеристик выхода текущей системы динамиков, для того, чтобы подражать выходу исходной системы.
– Измерение выхода текущей системы и оценка производительности и качества.
Для того, чтобы реализовать озвученные функции, создан проект из четырех частей:
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, НТУУ «КПИ», каф. КЭВА.
Источник: Конкурс Альтера