В этом примере показано, как использовать подсистему For Each. В этом примере операции выполняются над вектором для простоты.
Используйте кнопку Открыть модель (Open Model), чтобы открыть пример модели. sldemo_foreach_vectorized. Эта модель содержит подсистему For Each, которая обрабатывает входные сигналы поочередно.
Входами в подсистему For Each являются сигналы для обработки, коэффициенты КИХ-фильтра для использования с каждым из этих сигналов и общее усиление.
Каждый сигнал является скалярным и должен обрабатываться индивидуально. Следовательно, блок Для каждого (For Each), который управляет размером разбиения, устанавливается для разбиения входного сигнала вдоль размера 1 путем разрезания через ширину разбиения, равную 1. Для каждого входного сигнала соответствующий набор коэффициентов также должен быть разделен с использованием одних и тех же критериев. Коэффициент усиления является общим для всех сигналов, поэтому этот вход не разделен.
Поскольку размер выходного сигнала должен соответствовать размеру входного сигнала, размер конкатенации устанавливается равным размеру секционирования. Если требуется изменить размер сигнала (в данном случае - транспонирование), можно выбрать 2 в качестве размера конкатенации.
Для подсистемы «Для каждого» необходимо задать размер и ширину секции, но не размер входного сигнала. Затем проверка гарантирует, что этот размер кратен ширине секции. Если ошибка не обнаружена, подсистема вычисляет количество независимых выполнений, которые будет выполнять включенная подсистема. Эти исполнения независимы, так как состояние, связанное с данным блоком, содержащимся в подсистеме, имеет уникальное значение в каждом из соответствующих исполнений.
Чтобы увидеть не векторизированную реализацию для этой модели, дважды щелкните блок в правом нижнем углу модели. Эта реализация не использует подсистему For Each, но имитирует ее функциональность, реплицируя подсистему столько раз, сколько необходимо, а также выбирая и объединяя сигналы соответствующим образом. Этот процесс репликации подвержен ошибкам и не масштабируется - изменение размера входного сигнала потребует соответствующего изменения модели.
