主要内容

什么是系统对象?

系统对象™是一种专门的MATLAB®对象。许多工具箱包含System对象。系统对象专为实现和模拟输入随时间变化的动态系统而设计。许多信号处理、通信和控制系统都是动态的。在动态系统中,输出信号的值既依赖于输入信号的瞬时值,也依赖于系统的过去行为。系统对象使用内部状态来存储过去的行为,这将在下一步计算中使用。因此,System对象针对迭代计算进行了优化,这些迭代计算处理分段的大数据流,比如视频和音频处理系统。这种处理流数据的能力提供了不必在内存中保存大量数据的优势。使用流数据还允许您使用有效使用循环的简化程序。

例如,您可以在系统中使用System对象,该系统从文件中读取数据,过滤该数据,然后将过滤后的输出写入另一个文件。通常,在每次循环迭代中,将指定数量的数据传递给过滤器。文件读取器对象使用一个状态来跟踪文件中开始下一个数据读取的位置。同样,文件写入器对象跟踪它最后一次将数据写入输出文件的位置,这样数据就不会被覆盖。筛选器对象维护自己的内部状态,以确保正确执行筛选。此图表示系统的单个循环。

这些优点使System对象非常适合处理流数据。

许多系统对象支持:金宝app

  • 定点算法(需要定点设计器™许可)

  • C代码生成(需要一个MATLAB编码器™金宝app®编码器许可)

  • HDL代码生成(需要HDL Coder™许可)

  • 可执行文件或共享库的生成(需要MATLAB编译器™许可)

请注意

检查产品文档以确认定点、代码生成和MATLAB编译器金宝app支持您想要使用的特定系统对象。

系统对象至少使用两个命令来处理数据:

  • 对象的创建(例如,fft256 = dsp。FFT

  • 通过对象运行数据(例如,fft256 (x)

这种创建与执行的分离让您可以创建多个持久的、可重用的对象,每个对象都有不同的设置。使用这种方法避免了重复的输入验证和验证,允许在编程循环中轻松使用,并提高了整体性能。相比之下,MATLAB函数必须在每次调用函数时验证参数。

除了系统工具箱提供的系统对象之外,您还可以创建自己的系统对象。看到创建系统对象

运行系统对象

要运行System对象并执行其算法定义的操作,可以像调用函数一样调用该对象。例如,创建一个使用dsp。FFTSystem对象,指定长度为1024,并命名它dft使用:

dft = dsp。FFT (“FFTLengthSource”“属性”“FFTLength”, 1024);
使用输入运行此对象x使用:
dft (x);
如果运行不带任何输入参数的System对象,则必须包含空括号。例如,asysobj ()

当您运行一个System对象时,它还会执行其他与数据处理相关的重要任务,比如初始化和处理对象状态。

请注意

运行System对象的另一种方法是使用一步函数。例如,对于使用dft = dsp。FFT,您可以使用步骤(dft, x)

系统对象的功能

创建System对象之后,可以使用各种对象函数来处理数据或从该对象获取信息。使用函数的语法是<对象函数名>(系统对象名>),加上可能的额外输入参数。例如,对于txfourier = dsp。FFT,在那里txfourier你分配的名字,你叫重置函数使用重置(txfourier)

公共对象功能

所有系统对象支持以下对象函数。金宝app在函数不适用于特定对象的情况下,调用该函数对该对象没有影响。

函数 描述
运行对象函数,或
一步

运行对象以使用该对象定义的算法处理数据。

例子:用于对象dft = dsp.FFT;,通过以下方式运行该对象:

  • y = dft (x)

  • y =步骤(dft, x)

作为此处理的一部分,对象初始化资源,返回输出,并在必要时更新对象状态。在执行期间,您只能更改可调属性。两种运行System对象的方法都返回常规的MATLAB变量。

释放

释放资源并允许更改系统对象的属性值和在使用系统对象时受到限制的其他特征。

重置 将System对象重置为该对象的初始值。
输入参数个数 返回系统对象算法定义接受的输入数。如果算法定义包括变长度输入宗量,输入参数个数输出是负的。
nargout 返回系统对象算法定义接受的输出数。如果算法定义包括varargout,nargout输出是负的。
克隆 创建具有相同属性值的另一个相同类型的对象
isLocked 返回一个逻辑值,该值指示对象是否已被调用而您尚未调用释放在对象上。
结束 仅适用于继承的源对象matlab.system.mixin.FiniteSource.返回一个逻辑值,该值指示是否已到达数据文件的末尾。如果特定对象没有数据结束功能,则此函数值总是返回

另请参阅

相关的话题