Система 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 | Запускает объект обработать данные с помощью алгоритма, заданного тем объектом. Пример: Для объекта
Как часть этой обработки, объект инициализирует ресурсы, возвращает выходные параметры и обновляет объектные состояния по мере необходимости. Во время выполнения можно изменить только настраиваемые свойства. Оба способа запустить Системный объект возвращают регулярные переменные MATLAB. |
release | Высвободите средства и позвольте изменения в значениях свойств Системного объекта и дополнительных характеристиках, которые ограничиваются, в то время как Системный объект используется. |
reset | Сбрасывает Системный объект к начальным значениям для того объекта. |
nargin | Возвращает количество входных параметров, принятых определением алгоритма Системного объекта. Если определение алгоритма включает varargin , nargin выход отрицателен. |
nargout | Возвращает количество выходных параметров, принятых определением алгоритма Системного объекта. Если определение алгоритма включает varargout , nargout выход отрицателен. |
clone | Создает другой объект того же типа с теми же значениями свойств |
isLocked | Возвращает логическое значение, указывающее, был ли объект назван, и вы еще не вызвали release на объекте. |
isDone | Применяется только к исходным объектам, которые наследовались matlab.system.mixin.FiniteSource . Возвращает логическое значение, указывающее, был ли конец файла данных достигнут. Если конкретный объект не имеет возможности конца данных, это значение функции всегда возвращает false . |