Этот пример показывает, как формировать лучи сигналов, принимаемых матрицей микрофонов, для извлечения требуемого речевого сигнала в шумной среде. Он использует домен потока данных в Simulink ®, чтобы разделить управляемые данными части системы на несколько потоков и тем самым повысить производительность моделирования, выполнив его на нескольких ядрах рабочего стола.
Модель моделирует прием трех аудиосигналов с разных направлений на 10-элементной однородно линейной микрофонной матрице (ULA). После добавления теплового шума в приемнике применяется формирование луча и результат воспроизводится на звуковом устройстве.

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

Существует три блока Frost Beamformer, которые выполняют формирование луча на матрице, проходящей через входной порт X вдоль направления, заданного входным портом Ang. Каждый из трех формирователей луча направляет свой луч к одному из трех источников. Выходной сигнал формирователя луча воспроизводится в блоке записи аудиоустройств. С помощью блока «Выбор источника» можно выбрать различные источники.

В этом примере можно использовать домен потока данных в Simulink, чтобы автоматически разделить управляемые данными части системы на несколько потоков и тем самым повысить производительность моделирования, выполнив его на нескольких ядрах рабочего стола. Дополнительные сведения о потоке данных и о том, как запускать модели Simulink с использованием нескольких потоков, см. в разделе Многоядерное выполнение с использованием домена потока данных.
В Simulink в качестве области выполнения для подсистемы можно указать поток данных, установив для параметра Domain значение Dataflow с помощью инспектора свойств. Домены потока данных автоматически секционируют модель и моделируют систему с использованием нескольких потоков для повышения производительности моделирования. Установив для параметра Domain значение Dataflow, можно использовать Data aflow Simulation Assistant для анализа модели с целью повышения производительности. Можно открыть ассистент моделирования потока данных, нажав кнопку «Ассистент потока данных» под параметром автоматического расчета размера кадра в Инспекторе свойств.


Помощник по моделированию потока данных предлагает изменить параметры модели для обеспечения оптимальной производительности моделирования. Чтобы принять предложенные параметры модели, рядом с пунктом Предлагаемые параметры модели для производительности моделирования щелкните Принять все (Accept all). Можно также развернуть раздел, чтобы изменить настройки по отдельности. В этом примере настройки модели уже оптимальны. В ассистенте моделирования потока данных нажмите кнопку «Анализ», чтобы начать анализ области потока данных для обеспечения производительности моделирования. По завершении анализа ассистент моделирования потока данных показывает, сколько потоков подсистема потока данных будет использовать во время моделирования.

Для этой модели ассистент показывает три потока, поскольку три блока Frost Beamformer являются вычислительно интенсивными и могут работать параллельно. Однако три блока Frost Beamformer зависят от блоков Microphone Array и Receiver для завершения перед началом выполнения. Параллелизм можно увеличить для этой модели, используя задержки конвейера между блоками формирователя луча и блоками моделирования источника. Ассистент моделирования потока данных показывает рекомендуемое количество задержек конвейера как предполагаемую задержку. Для этой модели предполагаемая задержка равна единице. Нажмите кнопку «Принять» рядом с пунктом «Рекомендуемая задержка» в ассистенте моделирования потока данных, чтобы использовать рекомендуемую задержку для подсистемы потока данных.
Для измерения повышения производительности с помощью потока данных сравните время выполнения модели с потоком данных и без него. Модуль записи аудиоустройств работает в реальном времени и ограничивает скорость моделирования модели до реального времени. Комментируйте блок записи аудиоустройств при измерении времени выполнения. На настольном компьютере под управлением ОС Windows с процессором Intel ® Xeon ® W-2133 @ 3,6 ГГц 6 Ядра 12 Потоки процессора эта модель с доменом потока данных выполняется в 1,8 раза быстрее по сравнению с исходной моделью.
Этот пример показал, как формировать лучи сигналов, принимаемых матрицей микрофонов, для извлечения желаемого речевого сигнала в шумной среде. В нем также показано, как использовать домен потока данных для автоматического разбиения управляемой данными части модели на параллельные потоки выполнения и запуска модели с использованием нескольких потоков.