При обработке на основе фреймов блоки обрабатывают данные по одной системе координат за раз. Каждая система координат данных содержит последовательные выборки из независимого канала. Каждый канал представлен столбцом входного сигнала. Для примера с точки зрения обработки на основе фрейма следующая матрица 3 на 2 имеет два канала, каждый из которых содержит три выборки.
Когда вы конфигурируете блок для выполнения кадровой обработки, блок интерпретирует вектор M-на-1 как одноканальный сигнал, содержащий M выборок на систему координат. Точно так же блок интерпретирует M -by - N матрицу как многоканальный сигнал с N независимыми каналами и M выборками на канал. Для примера при кадровой обработке блоки интерпретируют следующую последовательность матриц 3 на 2 как двухканальный сигнал с форматом кадра 3.
Использование кадровой обработки выгодно для многих приложений обработки сигналов, потому что вы можете обрабатывать несколько выборок сразу. Буферизуя свои данные в системы координат и обрабатывая мультисамповые системы координат данных, вы часто можете улучшить вычислительное время алгоритмов обработки сигналов. Для выполнения обработки на основе фрейма необходимо иметь лицензию DSP System Toolbox™.
Для получения дополнительной информации о последних изменениях в обработке на основе фреймов смотрите раздел «Изменения обработки на основе фреймовв Информациях о релизах DSP System Toolbox.
На этой странице обсуждается создание сигналов для основанной на кадрах обработки с использованием блока Sine Wave и блока Signal From Workspace. Обратите внимание, что блок, принимающий этот сигнал, реализует основанную на выборке обработку или основанную на кадре обработку на сигнале на основе параметров, установленных в диалоговом окне блока.
Создайте новый Simulink® модель.
Из библиотеки Sources щелкните и перетащите блок Sine Wave в модель.
Из библиотеки Матричные операции щелкните - и перетащите блок Matrix Sum в модель.
Из библиотеки Simulink Sinks щелкните и перетащите блок To Workspace в модель.
Соедините блоки в том порядке, в котором вы добавили их к своей модели.
Дважды кликните блок Sine Wave и установите параметры блоков следующим образом:
Amplitude = [1 3 2]
Frequency = [100 250 500]
Sample time = 1/5000
Samples per frame = 64
На основе этих параметров блок Sine Wave выводит три синусоиды с амплитудами 1
, 3
, и 2
и частоты 100
, 250
, и 500
Гц, соответственно. Период дискретизации, 1/5000, в 10 раз выше самой высокой синусоидной частоты, что удовлетворяет критерию Найквиста. Формат кадра 64 для всех синусоидов, и, следовательно, выход имеет 64 строки.
Сохраните эти параметры и закройте диалоговое окно нажатием кнопки OK.
Теперь вы успешно создали трехканальный сигнал с 64
выборки по каждой системе координат, используя блок Sine Wave. Остальная часть этой процедуры описывает, как добавить эти три синусоиды вместе.
Дважды кликните блок Matrix Sum. Установите параметр Sum over равным Specified dimension
, и установите параметр Dimension равным 2
. Нажмите OK.
На вкладке Debug панели инструментов модели выберите Information Overlays > Signal Dimensions.
Запустите модель.
Теперь ваша модель должна выглядеть аналогично следующему рисунку. Можно также открыть модель, набрав ex_usingsinwaveblkfb
в MATLAB® командная строка.
Три сигнала суммируются по точкам блоком Matrix Sum. Затем они экспортируются в рабочее пространство MATLAB.
В командной строке MATLAB введите plot(yout(1:100))
.
Ваш график должен выглядеть аналогично следующему рисунку.
Этот рисунок представляет фрагменту суммы трех синусоидов. Теперь вы добавили каналы трехканального сигнала вместе и отобразили результаты в окне рисунка.
Основанная на кадрах обработка может значительно улучшить эффективность вашей модели, уменьшая количество времени, необходимое для выполнения симуляции. Эта тема описывает, как создать двухканальный сигнал с периодом дискретизации 1 секунду, периодом системы координат 4 секунды и форматом кадра 4 выборки, используя блок Signal From Workspace.
Создайте новую модель Simulink.
Из библиотеки Sources щелкните-и-перетащите Signal From Workspace блок в модель.
Из библиотеки Simulink Sinks щелкните и перетащите блок To Workspace в модель.
Соедините два блока.
Дважды кликните Signal From Workspace блок и установите параметры блоков следующим образом.
Signal = [1:10; 1 1 0 0 1 1 0 0 1 1]'
Sample time = 1
Samples per frame = 4
Form output after final data value by = Setting to zero
На основе этих параметров блок Signal From Workspace выводит двухканальный сигнал с периодом дискретизации 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, 0,...
Сохраните эти параметры и закройте диалоговое окно нажатием кнопки OK.
На вкладке Debug панели инструментов модели выберите Information Overlays > Signal Dimensions.
Запустите модель.
Следующий рисунок является графическим представлением поведения модели во время симуляции. Можно также открыть модель, набрав ex_usingsfwblkfb
в командной строке MATLAB.
В командной строке 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.