exponenta event banner

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

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

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

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

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

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

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

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

  • Создание исполняемых файлов или общих библиотек (требуется лицензия MATLAB Compiler™)

Примечание

Проверьте документацию по продукту, чтобы подтвердить поддержку fixed-point, code generation и MATLAB Compiler для конкретных системных объектов, которые вы хотите использовать.

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

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

  • Выполнение данных через объект (например, fft256(x))

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

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

Запуск системного объекта

Для запуска объекта System и выполнения операции, определенной его алгоритмом, объект вызывается как функция. Например, чтобы создать объект FFT, который использует dsp.FFT Системный объект, указывает длину 1024 и называет ее dft, использовать:

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

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

Примечание

Альтернативным способом запуска объекта System является использование 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)

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

release

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

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

См. также

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