System对象™是一种专门的MATLAB®对象。许多工具箱包括System对象。系统对象是专门为实现和模拟输入随时间变化的动态系统而设计的。许多信号处理、通信和控制系统都是动态的。在动态系统中,输出信号的值既取决于输入信号的瞬时值,也取决于系统过去的行为。系统对象使用内部状态来存储过去的行为,这将在下一个计算步骤中使用。因此,对系统对象进行了优化,以便对分段处理的大数据流进行迭代计算,如视频和音频处理系统。这种处理流数据的能力提供了不必在内存中保存大量数据的优势。流数据的使用还允许您使用简化的程序,有效地使用循环。
例如,可以在系统中使用System对象,从文件中读取数据,过滤数据,然后将过滤后的输出写入另一个文件。通常,在每个循环迭代中都将指定数量的数据传递给过滤器。文件读取器对象使用状态来跟踪文件中的何处开始下一次数据读取。同样,文件写入器对象跟踪它最后一次将数据写入输出文件的位置,这样数据就不会被覆盖。筛选器对象维护自己的内部状态,以确保正确执行筛选。这个图表示系统的一个单回路。
许多系统对象支持:万博1manbetx
定点算法(需要定点设计器™许可证)
C代码生成(需要MATLAB编码器™或万博1manbetx®编码器许可)
HDL代码生成(需要一个HDL Coder™许可证)
可执行文件或共享库生成(需要MATLAB编译器™许可)
检查产品文档以确认定点、代码生成和MATLAB编译器万博1manbetx支持您希望使用的特定System对象。
系统对象使用至少两个命令来处理数据:
对象的创建(例如,fft256 = dsp。FFT
)
通过对象运行数据(例如,fft256 (x)
)
这种创建与执行的分离允许您创建多个持久的、可重用的对象,每个对象都有不同的设置。使用这种方法可以避免重复的输入验证和验证,便于在编程循环中使用,并提高整体性能。相反,MATLAB函数在每次调用函数时都必须验证参数。
除了系统工具箱提供的系统对象外,您还可以创建自己的系统对象。看到创建系统对象.
要运行System对象并执行其算法定义的操作,您可以像调用函数一样调用该对象。例如,要创建一个FFT对象使用dsp。FFT
系统对象,长度为1024,并命名dft
使用:
dft = dsp。FFT (“FFTLengthSource”,“属性”,“FFTLength”, 1024);
x
使用:dft (x);
asysobj ()
.
当您运行System对象时,它还执行与数据处理相关的其他重要任务,例如初始化和处理对象状态。
运行System对象的另一种方法是使用一步
函数。例如,对于使用dft = dsp。FFT
,您可以使用步骤(dft, x)
.
在创建System对象之后,可以使用各种对象函数来处理数据或从对象或关于对象的信息。使用函数的语法如下<对象函数名称>(<系统对象名称>)
,加上可能的额外输入参数。例如,对于txfourier = dsp。FFT
,在那里txfourier
是你指定的名字,你叫重置
函数使用重置(txfourier)
.
所有System对象都支持以下对象功能万博1manbetx。在函数不适用于特定对象的情况下,调用该函数对对象没有影响。
函数 | 描述 |
---|---|
运行对象函数,或一步 |
运行对象以使用该对象定义的算法处理数据。 例子:对象
作为此处理的一部分,对象初始化资源、返回输出并根据需要更新对象状态。在执行期间,您只能更改可调属性。运行System对象的两种方式都返回常规的MATLAB变量。 |
释放 |
释放资源,并允许更改在使用System对象时受到限制的System对象属性值和附加特征。 |
重置 |
将System对象重置为该对象的初始值。 |
输入参数个数 |
返回System对象算法定义接受的输入数量。如果算法定义包含变长度输入宗量 ,输入参数个数 输出是负的。 |
nargout |
返回System对象算法定义接受的输出数量。如果算法定义包含varargout ,nargout 输出是负的。 |
克隆 |
创建具有相同属性值的另一个相同类型的对象 |
isLocked |
返回一个逻辑值,该值指示对象是否已被调用而您尚未调用释放 在对象上。 |
结束 |
仅应用于继承自的源对象matlab.system.mixin.FiniteSource .返回一个逻辑值,该值指示是否已到达数据文件的末尾。如果特定对象没有结束数据功能,则此函数值总是返回假 . |