Многожильная симуляция акустического Beamforming Используя массив микрофона

Этот пример показывает как сигналам beamform, полученным массивом микрофонов, чтобы извлечь желаемый речевой сигнал в шумной среде. Это использует область потока данных в Simulink®, чтобы разделить управляемые данными фрагменты системы в несколько потоков и таким образом улучшания производительности симуляции путем выполнения его на нескольких ядрах рабочего стола.

Введение

Модель моделирует получение трех звуковых сигналов от различных направлений на однородно линейном массиве микрофона с 10 элементами (ULA). После сложения тепловых помех в получателе beamforming применяется и результат, проигрываемый на звуковом устройстве.

Полученная аудио симуляция

Подсистема Источников аудиосигналов читает из звуковых файлов и задает направление для каждого источника аудиосигналов. Блок Wideband Rx Array моделирует звуковые сигналы получения в ULA. Первый вход к блоку Wideband Rx Array 1000x3 матрица, где три столбца входа соответствуют этим трем источникам аудиосигналов. Второй вход (Угол) задает инцидентное направление сигналов. Первая строка Энга задает угол азимута в градусах для каждого сигнала, и вторая строка задает угол повышения в градусах для каждого сигнала. Вывод этого блока 1000x10 матрица. Каждый столбец вывода соответствует аудио, зарегистрированному в каждом элементе массива микрофона. Настройка массива микрофона задана во вкладке Sensor Array диалоговой панели блока. Блок Receiver Preamp добавляет белый шум в полученные сигналы.

Beamforming

Существует три блока Формирователя луча Мороза, которые выполняют beamforming на матрице, переданной через входной порт X вдоль направления, заданного входным портом Энг. Каждый из этих трех формирователей луча регулирует их луч к одному из этих трех источников. Вывод формирователя луча проигрывается в блоке Audio Device Writer. Другие источники могут быть выбраны с помощью Избранного Исходного блока.

Улучшайте производительность симуляции Используя многопоточность

Этот пример может использовать область потока данных в Simulink, чтобы автоматически разделить управляемые данными фрагменты системы в несколько потоков и таким образом улучшания производительности симуляции путем выполнения его на нескольких ядрах рабочего стола. Чтобы узнать больше о потоке данных и как запустить модели Simulink с помощью нескольких потоков, смотрите, что Многожильное Выполнение использует Область Потока данных (DSP System Toolbox).

Подготовка Подсистемы Потока данных

В Simulink вы задаете поток данных как область выполнения для подсистемы путем установки Доменного параметра на Поток данных с помощью Property Inspector. Области потока данных автоматически делят вашу модель и моделируют систему с помощью нескольких потоков для лучшей производительности симуляции. Если вы устанавливаете Доменный параметр на Поток данных, можно использовать Ассистент Симуляции Потока данных, чтобы анализировать модель, чтобы получить лучшую производительность. Можно открыть Ассистент Симуляции Потока данных путем нажатия на ассистент Потока данных кнопка ниже Автоматического параметра вычисления формата кадра в Property Inspector.

Анализ параллелизма в подсистеме потока данных

В Ассистенте Симуляции Потока данных нажмите кнопку Analyze, чтобы запустить анализ области потока данных для производительности симуляции. Если анализ закончен, Ассистент Симуляции Потока данных показывает, сколько потоков подсистема потока данных будет использовать во время симуляции.

Для этой модели ассистент показывает три потока, потому что три блока Формирователя луча Мороза в вычислительном отношении интенсивны, и они могут запуститься параллельно. Однако три блока Формирователя луча Мороза зависят от блоков Массива и Получателя Микрофона, чтобы закончиться, прежде чем они запустят выполнение. Параллелизм может быть увеличен для этой модели при помощи конвейерных задержек между блоками формирователя луча и исходными блоками симуляции. Ассистент Симуляции потока данных показывает рекомендуемое количество конвейерных задержек как Предложенная Задержка. Для этой модели предложенная задержка является той. Нажмите кнопку Accept рядом с Предложенной Задержкой в Ассистенте Симуляции Потока данных, чтобы использовать рекомендуемую задержку для Подсистемы Потока данных.

Многожильная производительность симуляции

Чтобы измерить повышение производительности, полученное при помощи потока данных, сравните время выполнения модели с и без потока данных. Средство записи Аудио устройства запускается в режиме реального времени и ограничивает скорость симуляции модели к реальному времени. Прокомментируйте блок Audio Device Writer при измерении времени выполнения. На рабочем компьютере Windows с Intel® Xeon® CPU E5-1650 v3 3.5 процессора GHz 6 Cores 12 Threads эта модель с помощью области потока данных выполняется 1.7x времена быстрее по сравнению с исходной моделью.

Сводные данные

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