Векторизация скалярного алгоритма с для каждой подсистемы

В этом примере показано, как использовать Для Каждой подсистемы. В этом примере операции выполняются на векторе для простоты.

Используйте кнопку Open Model, чтобы открыть модель sldemo_foreach_vectorized в качестве примера. Эта модель содержит Для Каждой подсистемы, которая обрабатывает входные сигналы один за другим.

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

Каждый сигнал является скаляром и должен быть обработан индивидуально. Следовательно, блок For Each, который управляет размерностью раздела, собирается разделить входной сигнал по измерению 1 путем разрезания через ширину раздела 1. Для каждого входного сигнала соответствующий набор коэффициентов должен также быть разделен с помощью тех же критериев. Усиление характерно для всех сигналов, таким образом, этот вход не разделен.

Поскольку размерность выходного сигнала, как ожидают, будет совпадать с размерностью входного сигнала, размерность конкатенации установлена равная размерности раздела. Если вы предпочитаете изменять размерность сигнала (транспонирование в этом случае), можно выбрать 2 в качестве размерности конкатенации.

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

Чтобы видеть невекторизованную реализацию для этой модели, дважды кликните на блоке в нижнем правом углу модели. Эта реализация не использует Для Каждой подсистемы, но подражает своей функциональности путем тиражирования подсистемы так же много раз по мере необходимости и также путем выбора и конкатенации сигналов соответственно. Этот процесс репликации подвержен ошибке и не масштабируем - изменение размера входного сигнала потребовало бы изменения модели соответственно.