主要内容

什么是系统对象?

系统对象™ 是一个专业的MATLAB®目的。许多工具箱包括系统对象。系统对象专门用于实现和模拟具有随时间变化的输入的动态系统。许多信号处理,通信和控制系统是动态的。在动态系统中,输出信号的值取决于输入信号的瞬时值和系统的过去行为。系统对象使用内部状态存储在下一个计算步骤中使用的过去行为。结果,系统对象针对处理段中的大量数据流的迭代计算进行了优化,例如视频和音频处理系统。这种处理流数据的能力提供了不必在内存中保持大量数据的优势。使用流数据还允许您使用有效使用循环的简化程序。

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

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

许多系统对象支持:万博1manbetx

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

  • C代码生成(需要MATLAB编码器™或者万博1manbetx®编码器许可证)

  • HDL代码生成(需要HDL编码器™ 许可证)

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

笔记

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

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

  • 创建对象(例如,fft256 = dsp.fft.)

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

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

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

运行系统对象

要运行系统对象并执行由其算法定义的操作,请将对象称为函数。例如,要创建使用的FFT对象dsp.fft.系统对象,指定1024的长度,并命名密度泛函,使用:

dft = dsp.fft(“FFTLengthSource”,“财产”,“FFTLength”,1024);
使用输入运行此对象x,使用:
dft(x);
如果在没有任何输入参数的情况下运行系统对象,则必须包含空括号。例如,asysobj().

运行系统对象时,它还执行与数据处理相关的其他重要任务,例如初始化和处理对象状态。

笔记

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

系统对象功能

创建系统对象后,使用各种对象函数来处理数据或从对象中获取信息。使用功能的语法是,加上可能的额外输入参数。例如txfourier=dsp.FFT哪里txfourier是您指定的名称,您可以调用重置函数使用重置(txfourier).

公共对象函数

所有系统对象都支持以下对象函数。在函数万博1manbetx不适用于特定对象的情况下,调用该函数对该对象没有影响。

功能 描述
运行对象函数,或

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

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

  • y=dft(x)

  • y=步长(dft,x)

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

释放

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

重置 将系统对象重置为该对象的初始值。
函数输入变量数 返回系统对象算法定义接受的输入数。如果算法定义包括瓦拉金这个函数输入变量数输出是否定的。
露狼 返回系统对象算法定义接受的输出数。如果算法定义包括varargout.这个露狼输出是否定的。
克隆 创建具有相同属性值的相同类型的另一个对象
孤岛 返回一个逻辑值,该值指示对象是否已被调用而您尚未调用释放在物体上。
伊斯通 仅适用于从继承的源对象matlab.system.mixin.FiniteSource。返回一个逻辑值,指示是否已到达数据文件的结尾。如果特定对象没有数据结尾功能,则此函数值始终返回错误的.

另见

相关话题