Автор: “Кулибин”
Город: Холмск, Сахалинская область
Программа цифровой обработки сигнала “DSP”
Хорошая, и постоянно развивающаяся программа для цифровой обработки сигналов на компьютере
С уверенностью можно сказать, что в настоящее время цифровая обработка сигнала (ЦОС) занимает не последнее место в развитии цифровых технологий. Практически все современные аудиоустройства и средства связи используют алгоритмы ЦОС. Существует множество программ, адаптированных под определенные задачи, например: проигрыватели, аудио-редакторы, программы-осциллографы, спектрографы – все они используют похожие алгоритмы обработки сигнала.
Рассматриваемая в данном обзоре программа, в общих чертах, предназначена для захвата аудио сигнала, обработки его в реальном времени с помощью алгоритмов ЦОС и воспроизведения. Основная особенность программы в том, что пользователь может создавать произвольные схемы обработки сигнала, сложность схем ограничивается фантазией пользователя и производительностью компьютера, на котором будет использоваться программа.
Выделим некоторые задачи, которые позволяет решить программа:
1. Отображение графика сигнала с помощью сциллографа;
2. Генерация сигнала;
3. Анализ спектра сигнала;
4. Определение частоты сигнала;
5. Частотная фильтрация сигнала.
Итак, приступим к рассмотрению программы.
Основные элементы главного окна.
Так выглядит главное окно программы при первом запуске:
Сверху находится главное меню, содержащее все команды, доступные пользователю, и панели инструментов, содержащие наиболее часто используемые команды. Справа находятся панели: “Обработчики сигнала”, “Структура проекта” и “Свойства объекта”.
Панель “Обработчики сигнала” содержит список всех компонентов-обработчиков, которые пользователь может использовать для создания схем цифровой обработки.
Панель “Структура проекта” отображает в виде дерева иерархическую вложенность текущего проекта, также позволяет выполнять переход по уровням вложенности.
Панель “Свойства объекта” используется для редактирования параметров обработчиков.
В нижней части главного окна находятся индикаторы частоты дискретизации, размера аудио- буфера, используемых каналов звуковой карты и загрузки (условный индикатор, показывающий степень нагрузки на систему при обработке сигнала).
Настройка устройств ввода/вывода.
Перед началом создания схем обработки следует настроить параметры сигнала и устройства ввода/вывода. Для этого в главном меню выбираем пункт “Параметры”, после чего на экране появится форма настройки параметров.
Основные параметры сигнала и устройств ввода/вывода находятся на вкладке “Сигнал”.
Увеличивая частоту дискретизации и уменьшая размер буфера можно улучшить качество сигнала и уменьшить задержки, но изменять эти параметры нужно с осторожностью. На данном этапе частоту дискретизации и размер буфера можно оставить без изменения .
В поле “интерфейс ввода/вывода” выбираем: “WDM” (т.е. для захвата и воспроизведения сигнала программа будет использовать драйвер, поддерживаемый большинством звуковых карт).
В поле “Устройство записи” необходимо указать устройство, со входа которого программа будет захватывать сигнал. В поле “Количество каналов” выбираем “2” (т.е. стерео). В поле “Разрядность” выбираем “16”. Аналогично заполняются параметры устройства воспроизведения.
Нажимаем кнопку “Подтвердить”, настройка устройств выполнена.
Отображение графика сигнала с помощью цифрового осциллографа.
Прежде всего, для решения этой задачи, создадим новый проект. Для этого в главном меню выбираем пункт “Файл \ Создать новый” (Ctrl+N). В главной форме появляется вкладка проекта с заголовком “Новый проект”. Проект создан, но пока он пустой.
В центре вкладки проекта находится редактор схемы, который используется для просмотра и редактирования схемы обработки сигнала.
Для создания осциллографа понадобятся обработчики: канал записи и осциллограф. Добавим их в редактор схемы. Для этого необходимо найти их на панели “Обработчики сигнала” и, удерживая левую кнопку мыши, переместить в редактор схемы. В итоге должно получиться, как показано на рисунке.
В нашем случае канал записи будет выполнять захват сигнала со входа звуковой карты и передавать сигнал в схему обработки, а осциллограф будет отображать форму сигнала. Пиктограммы с изображением треугольной стрелки, находящиеся слева или справа от обработчика – это порты, с помощью портов происходит передача сигнала в схеме от одного обработчика к другому. Пиктограмма со стрелкой, направленной в сторону обработчика – это принимающий порт, если стрелка направлена в противоположную сторону, то такой порт – отправляющий.
Чтобы канал записи передавал сигнал осциллографу необходимо соединить отправляющий порт канала записи с принимающим портом осциллографа. Для этого кликнем левой кнопкой мыши сначала по одному порту, затем по другому (порядок не важен). Должно получиться, как показано на рисунке.
Далее каналу записи необходимо назначить канал звуковой карты, с которого будет захватываться сигнал. Для этого необходимо кликнуть левой кнопкой мыши по каналу записи, после чего в панели “свойства объекта” появятся его параметры. В параметрах в поле “Канал” выбираем канал звуковой карты (1 – левый канал, 2 – правый канал).
Выбираем пункт меню “Обработка / Запустить” (F4) и наблюдаем, как осциллограф отображает форму сигнала.
Для остановки обработки выбираем пункт меню “Обработка / Остановить” (F4).
Следует отметить что показания осциллографа условные и не дают информацию о точном напряжении на входе звуковой карты. В данном случае когда показание на графике достигает значения 100, то на вход звуковой карты подано максимальное напряжение, если -100, то минимальное.
Для реализации двухканального осциллографа нужно добавить на схему еще один канал записи, установить в настройках осциллографа параметр “Количество каналов” равным 2 и соединить соответствующие порты, как показано на следующем рисунке.
Для завершения работы с проектом останавливаем обработку и закрываем вкладку проекта. Чтобы не выполнять настройку проекта в следующий раз, проект можно сохранить в файл, выбрав пункт меню “Файл / Сохранить” (Ctrl+S).
Генерация сигнала.
Создадим схему генератора сигнала и выведем сигнал на динамики. Для этого, по аналогии с предыдущим примером, создаем новый проект и добавляем на схему обработчики: канал воспроизведения и генератор тона, соединим порты, как показано на рисунке.
Генератор готов. После запуска обработки на выходе будет формироваться синусоидальный сигнал. Также, как и канал записи, канал воспроизведения можно настроить на левый либо правый канал звуковой карты. В параметрах генератора тона можно изменить частоту сигнала, амплитуду и фазу.
Используя различные сочетания обработчиков, можно создать генератор более сложных форм сигнала, как, например, на рисунке ниже.
Следует отметить, что канал воспроизведения (как и канал записи) рассчитан на сигнал со значением амплитуды от -100 до 100, если амплитуда сигнала выходит за указанный диапазон, на выходе будет сигнал с урезанной амплитудой, и это вызовет значительные искажения в звучании.
Анализ спектра сигнала.
Для создания анализатора спектра сигнала добавим на схему обработчики: канал записи и анализатор спектра, назначим канал звуковой карты каналу записи и соединяем порты, как показано на рисунке. Описанные действия можно производить во время обработки сигнала.
Для создания анализатора спектра сразу 2-х каналов звуковой карты добавим дополнительные обработчики на схему: канал записи и сумматор, соединяем порты, как показано на рисунке.
В этой схеме сигал с обоих каналов звуковой карты суммируется в обработчике “сумматор” и передается анализатору спектра, а анализатор спектра показывает спектр суммарного сигнала.
Определение частоты сигнала.
Для оценки частоты входящего сигнала, создадим несложную схему, состоящую их 3-х обработчиков: канал записи, частота сигнала и осциллограф. Добавим обработчики на схему и соединим порты, как на рисунке.
В этой схеме сигнал поступает в обработчик “Частота сигнала”, который определяет частоту и передает значение частоты в осциллограф, осциллограф, в свою очередь, отображает динамику изменения частоты сигнала по времени. Если анализируется сложный сигнал, то определяется частота гармоники с максимальной амплитудой.
Частотная фильтрация сигнала.
Немаловажной особенностью программы является возможность обрабатывать сигнал с помощью частотных фильтров. Для этой цели есть следующие разработчики: фильтр НЧ (пропускает частоты ниже частоты среза), фильтр ВЧ (подавляет частоты ниже частоты среза), полосовой фильтр (пропускает частоты в полосе пропускания) и режекторный фильтр (подавляет частоты в некоторой полосе).
На рисунке ниже показан простейший способ фильтрации сигнала. Для обработки использованы: канал записи, канал воспроизведения и фильтр НЧ.
На этой схеме сигнал со входа звуковой карты поступает в фильтр НЧ, который пропускает спектр, ниже установленной частоты, и отправляет на выход звуковой карты.
Другой пример использования фильтров: разделение спектра сигнала на низкие и высокие составляющие.
Здесь сигнал, поступает со входа на разветвитель, который перенаправляет его на фильтр НЧ и фильтр ВЧ, далее сигнал поступает на выходы звуковой карты. Таким образом в левый канал поступает низкие составляющие спектра входящего сигнала, а в правый – высокие.
Заключение.
Функционал программы “D.S.P. (Цифровая обработка сигнала)” намного шире рассмотренных примеров, он включает ряд полезных функций, таких, как: усиление сигнала, амплитудная модуляция, задержка по времени, определение коэффициента корреляции 2-х сигналов и т.д., но эти возможности остаются за рамок данного обзора.
Актуальную версию программы можно найти по адресу: http://vk.com/dsp_project_community
Здесь вы можете скачать программу “DSP (цифровая обработка сигнала)”:
"DSP - программа цифровой обработки сигнала (56.6 MiB, 3,026 hits)
Обновленная версия:
vk.com/doc211940399_241866970?hash=78b6dcc8efd1279041&dl=d39d2d90cf2428b67e
Добавлены компоненты обработки, оптимизированы алгоритмы ЦОС, исправлены выявленные ошибки.