программа цифровой обработки звуковых сигналов в режиме реального времени

 

С. Б. Воинов

«МАТИ» - Российский Государственный Технологический Университет

им. К. Э. Циолковского, Россия.

 

          Программа цифровой обработки звуковых сигналов в режиме реального времени демонстрирует возможность обработки звуковых сигналов синхронно с процессом оцифровки. Для обработки звуковых сигналов используются различные цифровые фильтры и звуковые эффекты, реализованные программно. Звуковой сигнал представлен отдельными выборками, хранящимися в файле или поступающими от устройства оцифровки аналогового сигнала. В качестве устройства оцифровки и воспроизведения используется звуковая карта IBM PC совместимого компьютера.

          Для управления оцифровкой и воспроизведением звуковых сигналов в программе используются как стандартные средства семейства ОС Microsoft Windows, так и средства компонента DirectSound библиотеки Microsoft DirectX. Выбор конкретного средства осуществляется пользователем.

          Программа обеспечивает обработку звуковых сигналов по нескольким каналам одновременно. При этом может использоваться либо несколько звуковых карт, либо одна многоканальная звуковая карта, поддерживающая стандарт Full Duplex.

          Обработка звукового сигнала в программе может осуществляться последовательно несколькими фильтрами и звуковыми эффектами. Для каждого фильтра и эффекта имеется возможность динамического изменения характеристик в процессе обработки сигнала.

Основной проблемой, возникающей в процессе обработки звуковых сигналов, является плохая асимптотическая оценка временной сложности алгоритма свертки сигналов. Для улучшения этой оценки в программе используется один из алгоритмов быстрого преобразования Фурье (БПФ). Использование БПФ позволяет привести асимптотическую оценку временной сложности алгоритма свертки сигналов к виду O(NlogN). В программе используется алгоритм БПФ с основанием 2 и прореживанием по времени.

Все алгоритмы цифровой обработки сигналов программы имеют линейную или логарифмическую сложность. Этого удалось добиться использованием в программе алгоритма БПФ. Объем занимаемой программой дисковой памяти составляет 1,28 Мб, объем занимаемой программой оперативной памяти при обработке звука CD качества не превышает 5 Мб.

Программа состоит из следующих основных частей:

·      Библиотека виртуальных устройств. Библиотека виртуальных устройств позволяет унифицировать доступ программы к звуковому оборудованию и файлам в формате WAVE.

·      Библиотека фильтров. Библиотека фильтров представляет собой совокупность C++ классов, объекты которых позволяют производить обработку оцифрованного звукового сигнала.

·      Графический интерфейс пользователя.

 

Выбор подобной структуры программы обусловлен следующими соображениями:

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

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

·      Требуется некоторый набор функций, выполняющих обработку и фильтрацию звукового сигнала.

 

В программе используются как стандартные средства Windows, так и средства компонента DirectSound, что позволяет сделать программу более универсальной по отношению к интерфейсам работы со звуковым оборудованием.

Для выбора внутреннего формата представления отсчетов был проведен эксперимент по определению скорости выполнения арифметических операций над блоком из 1000000 чисел. Лучшие результаты были получены для формата float, который используется алгоритмами БПФ и другими алгоритмами программы.

          Программа применяется в качестве пособия для проведения лабораторных работ по курсам «Цифровая обработка сигналов в интеллектуальных системах» и «Основы информации и кодирования» кафедры «Вычислительные системы и сети» МГИЭМ. Программа также может применяться в задачах, связанных со спектральным анализом звуковых сигналов, так как звуковой сигнал в программе отображается в виде гистограммы частот и звуковой спектрограммы. Применение программы не ограничено перечисленными областями. Программа может применяться везде, где требуется обеспечить возможность обработки и фильтрации звуковых сигналов в режиме реального времени. Для решения этой задачи предоставляется удобный пользовательский интерфейс и совместимость с современными операционными системами.

          Программа написана в среде Borland C++Builder 6.0 и предназнчена для функционирования в операционных системах Windows 95/98/Me/2000/XP.