Многожильная симуляция акустического 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.

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

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

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

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

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

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

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