exponenta event banner

Создание сигналов для обработки на основе кадров

При обработке на основе кадров блокирует обработку данных по одному кадру за раз. Каждый кадр данных содержит последовательные выборки из независимого канала. Каждый канал представлен столбцом входного сигнала. Например, с точки зрения обработки на основе кадра следующая матрица 3 на 2 имеет два канала, каждый из которых содержит три выборки.

При конфигурировании блока для выполнения обработки на основе кадра блок интерпретирует вектор M-by-1 как одноканальный сигнал, содержащий M выборок на кадр. Аналогично, блок интерпретирует матрицу M-на-N как многоканальный сигнал с N независимыми каналами и M выборок на канал. Например, при обработке на основе кадра блоки интерпретируют следующую последовательность матриц 3 на 2 как двухканальный сигнал с размером кадра 3.

Использование обработки на основе кадров выгодно для многих приложений обработки сигналов, поскольку можно обрабатывать сразу несколько выборок. Буферизация данных в кадры и обработка многопрофильных кадров данных часто позволяет улучшить вычислительное время алгоритмов обработки сигналов. Для выполнения обработки кадров необходимо иметь лицензию DSP System Toolbox™.

Дополнительные сведения о последних изменениях обработки на основе фреймов см. в разделе Изменения обработки на основе фреймов в примечаниях к выпуску DSP System Toolbox.

На этой странице рассматривается создание сигналов для обработки на основе кадров с использованием блока синусоидальной волны и блока «Сигнал из рабочей области». Следует отметить, что блок, принимающий этот сигнал, реализует обработку на основе выборки или обработку на основе кадра сигнала на основе параметров, заданных в диалоговом окне блока.

Создание сигналов с помощью синусоидального блока

  1. Создайте новую модель Simulink ®.

  2. Из библиотеки «Источники» перетащите блок синусоидальной волны в модель.

  3. Из библиотеки «Операции с матрицей» (Matrix Operations) перетащите блок «Сумма матрицы» (Matrix Sum) в модель.

  4. Из библиотеки Simulink Sinks перетащите блок «В рабочее пространство» в модель.

  5. Соедините блоки в том порядке, в котором они были добавлены в модель.

  6. Дважды щелкните блок синусоидальной волны и задайте параметры блока следующим образом:

    • Амплитуда = [1 3 2]

    • Частота = [100 250 500]

    • Время выборки = 1/5000

    • Выборки на кадр = 64

    На основе этих параметров блок синусоиды выводит три синусоиды с амплитудами 1, 3, и 2 и частоты 100, 250, и 500 Гц соответственно. Период выборки, 1/5000, в 10 раз превышает максимальную частоту синусоиды, что удовлетворяет критерию Найквиста. Размер кадра составляет 64 для всех синусоид, и, следовательно, выход имеет 64 строки.

  7. Сохраните эти параметры и закройте диалоговое окно, нажав кнопку ОК.

    Вы успешно создали трехканальный сигнал с 64 отсчеты для каждого кадра с использованием блока синусоидальной волны. Остальная часть этой процедуры описывает, как добавить эти три синусоиды вместе.

  8. Дважды щелкните блок «Сумма матрицы». Задайте для параметра Sum over значение Specified dimensionи задайте для параметра Dimension значение 2. Нажмите кнопку ОК.

  9. На вкладке «Отладка» панели инструментов модели выберите «Информационные наложения» > «Размеры сигнала».

  10. Запустите модель.

    Теперь модель должна выглядеть так же, как на следующем рисунке. Можно также открыть модель, введя ex_usingsinwaveblkfb в командной строке MATLAB ®.

    Три сигнала суммируются поточечно блоком Matrix Sum. Затем они экспортируются в рабочую область MATLAB.

  11. В командной строке MATLAB введите plot(yout(1:100)).

    Ваш график должен выглядеть аналогично следующему рисунку.

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

Создание сигналов с помощью блока «Сигнал из рабочего пространства»

Обработка на основе кадров может значительно повысить производительность модели, уменьшив время, необходимое для выполнения моделирования. В этом разделе описывается, как создать двухканальный сигнал с периодом выборки 1 секунда, периодом кадра 4 секунды и размером кадра 4 выборки с помощью блока «Сигнал из рабочего пространства».

  1. Создайте новую модель Simulink.

  2. Из библиотеки «Источники» перетащите блок «Сигнал из рабочего пространства» в модель.

  3. Из библиотеки Simulink Sinks перетащите блок «В рабочее пространство» в модель.

  4. Соедините два блока.

  5. Дважды щелкните блок «Сигнал из рабочего пространства» и задайте параметры блока следующим образом.

    • Сигнал = [1:10; 1 1 0 0 1 1 0 0 1 1]'

    • Время выборки = 1

    • Выборки на кадр = 4

    • Вывод формы после конечного значения данных на = Setting to zero

    На основе этих параметров блок «Сигнал из рабочего пространства» выводит двухканальный сигнал с периодом выборки 1 секунда, периодом кадра 4 секунды и размером кадра четыре выборки. После вывода блоком сигнала все последующие выходы имеют нулевое значение. Два канала содержат следующие значения:

    • Канал 1:1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 0,...

    • Канал 2:1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0,...

  6. Сохраните эти параметры и закройте диалоговое окно, нажав кнопку ОК.

  7. На вкладке «Отладка» панели инструментов модели выберите «Информационные наложения» > «Размеры сигнала».

  8. Запустите модель.

    На следующем рисунке представлено графическое представление поведения модели во время моделирования. Можно также открыть модель, введя ex_usingsfwblkfb в командной строке MATLAB.

  9. В командной строке MATLAB введите yout.

    Ниже приведены выходные данные, отображаемые в командной строке MATLAB.

    yout =
    
         1     1
         2     1
         3     0
         4     0
         5     1
         6     1
         7     0
         8     0
         9     1
        10     1
         0     0
         0     0
    

Следует отметить, что нули были добавлены к концу каждого канала. Теперь двухканальный сигнал успешно создан и экспортирован в рабочую область MATLAB.

Связанные темы