Что такое системные объекты?

Система object™ является специализированным объектом MATLAB®. Много тулбоксов включают Системные объекты. Системные объекты специально разработаны для реализации и симуляции динамических систем с входными параметрами то изменение в зависимости от времени. Многие обработка сигналов, коммуникации и системы средств управления являются динамическими. В динамической системе значения выходных сигналов зависят и от мгновенных значений входных сигналов и на прошлом поведении системы. Системные объекты используют внутренние состояния, чтобы сохранить то прошлое поведение, которое используется на следующем вычислительном шаге. В результате Системные объекты оптимизированы для итеративных расчетов что процесс большие потоки данных в сегментах, таких как системы обработки аудиоданных и обработка видеоданных. Эта способность обработать данные о потоковой передаче обеспечивает преимущество не необходимости содержать большие объемы данных в памяти. Использование потоковой передачи данных также позволяет вам использовать упрощенные программы то использование циклы эффективно.

Например, вы могли использовать Системные объекты в системе, которая считывает данные из файла, фильтрует те данные и затем пишет отфильтрованный выход в другой файл. Как правило, заданный объем данных передается фильтру в каждой итерации цикла. Объект средства чтения файлов использует состояние, чтобы отследить где в файле, чтобы начать следующее чтение данных. Аналогично, средство записи файла возражают дорожкам, где это в последний раз записало данные к выходному файлу так, чтобы данные не были перезаписаны. Объект фильтра обеспечивает свои собственные внутренние состояния, чтобы гарантировать, что фильтрация выполняется правильно. Эта схема представляет один цикл системы.

Эти преимущества делают Системные объекты хорошо удовлетворенными для обработки потоковых данных.

Много поддержки Системных объектов:

  • Вычисления с фиксированной точкой (требует лицензии Fixed-Point Designer™),

  • Генерация кода C (требует MATLAB Coder™ или лицензии Simulink® Coder),

  • Генерация HDL-кода (требует лицензии HDL Coder™),

  • Исполняемые файлы или совместно использованная генерация библиотек (требует лицензии MATLAB Compiler™),

Примечание

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

Системные объекты используют минимум двух команд, чтобы обработать данные:

  • Создание объекта (такой как, fft256 = dsp.FFT)

  • Рабочие данные через объект (такой как, fft256(x))

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

В дополнение к Системным объектам, которым предоставляют Системные Тулбоксы, можно создать собственные Системные объекты. См. Создание системных объектов.

Выполнение системного объекта

Чтобы запустить Системный объект и выполнить операцию, заданную ее алгоритмом, вы вызываете объект, как будто это была функция. Например, чтобы создать объект FFT, который использует dsp.FFT Системный объект, задает длину 1 024 и называет ее dftИспользование:

dft = dsp.FFT('FFTLengthSource','Property','FFTLength',1024);
Запускать этот объект с входом xИспользование:
dft(x);
Если при запуске Системный объект без каких-либо входных параметров, необходимо включать пустые круглые скобки. Например, asysobj().

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

Примечание

Альтернативный способ запустить Системный объект состоит в том, чтобы использовать step функция. Например, для объекта, созданного с помощью dft = dsp.FFT, можно запустить его с помощью step(dft,x).

Функции системного объекта

После того, как вы создадите Системный объект, вы используете различные объектные функции, чтобы обработать данные или получить информацию из или об объекте. Синтаксисом для использования функций является <object function name>(<system object name>), плюс возможные дополнительные входные параметры. Например, для txfourier = dsp.FFT, где txfourier имя, которое вы присваиваете, вы вызываете reset функция с помощью reset(txfourier).

Общие Функции объекта

Все Системные объекты поддерживают следующие объектные функции. В случаях, где функция не применима к конкретному объекту, вызывая эту функцию, не оказывает влияния на объект.

ФункцияОписание
Запустите объектную функцию, или
step

Запускает объект обработать данные с помощью алгоритма, заданного тем объектом.

Пример: Для объекта dft = dsp.FFT;, запустите объект через:

  • y = dft(x)

  • y = step(dft,x)

Как часть этой обработки, объект инициализирует ресурсы, возвращает выходные параметры и обновляет объектные состояния по мере необходимости. Во время выполнения можно изменить только настраиваемые свойства. Оба способа запустить Системный объект возвращают регулярные переменные MATLAB.

release

Высвободите средства и позвольте изменения в значениях свойств Системного объекта и дополнительных характеристиках, которые ограничиваются, в то время как Системный объект используется.

resetСбрасывает Системный объект к начальным значениям для того объекта.
narginВозвращает количество входных параметров, принятых определением алгоритма Системного объекта. Если определение алгоритма включает varargin, nargin выход отрицателен.
nargoutВозвращает количество выходных параметров, принятых определением алгоритма Системного объекта. Если определение алгоритма включает varargout, nargout выход отрицателен.
cloneСоздает другой объект того же типа с теми же значениями свойств
isLockedВозвращает логическое значение, указывающее, был ли объект назван, и вы еще не вызвали release на объекте.
isDoneПрименяется только к исходным объектам, которые наследовались matlab.system.mixin.FiniteSource. Возвращает логическое значение, указывающее, был ли конец файла данных достигнут. Если конкретный объект не имеет возможности конца данных, это значение функции всегда возвращает false.

Смотрите также

Похожие темы