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