主要内容

定义复合系统对象

这个示例展示了如何定义包含其他System对象的System对象。从单独的高通和低通滤波器系统对象中定义一个带通滤波器系统对象™。

在属性中存储系统对象

要从其他System对象定义System对象,请将那些其他对象作为属性存储在类定义文件中。在本例中,高通过滤器和低通过滤器是在它们自己的类定义文件中定义的单独的System对象。

属性(Access = private)%保存筛选器系统对象的属性pLowpass pHighpass结束

完整的带通滤波器复合系统对象类定义文件

classdefBandpassFIRFilter < matlab。系统%使用八阶低通级联实现带通滤波器%和八阶高通FIR滤波器。属性(访问=私人)%保存筛选器系统对象的属性pLowpass pHighpass结束方法(访问=保护)函数setupImpl (obj)从组成对象中安装组合对象obj。pLowpass = LowpassFIRFilter;obj。pHighpass = HighpassFIRFilter;结束函数yHigh = stepImpl(obj,u) yLow = obj. plowpass (u);yHigh = obj.pHighpass (yLow);结束函数resetImpl (obj)重置(obj.pLowpass);重置(obj.pHighpass);结束结束结束

带通滤波器低通FIR元件类定义文件

classdefLowpassFIRFilter < matlab。系统%实现8阶低通FIR滤波器,截止值为0.6pi属性(Nontunable)%滤波器系数分子= (0.006,-0.0133,-0.05,0.26,0.6,0.26,-0.05,-0.0133,0.006);结束属性(DiscreteState)状态结束方法(访问=保护)函数setupImpl (obj) obj。状态= 0(长度(obj.Numerator) 1,1);结束函数y = stepImpl(obj,u) [y,obj.]州]=过滤器(obj.Numerator 1 u, obj.State);结束函数resetImpl (obj) obj。状态= 0(长度(obj.Numerator) 1,1);结束结束结束

带通滤波器高通FIR元件类定义文件

classdefHighpassFIRFilter < matlab。系统%实现8阶高通FIR滤波器,截止为0.4pi属性(Nontunable)%滤波器系数分子= (0.006,0.0133,-0.05,-0.26,0.6,-0.26,-0.05,0.0133,0.006);结束属性(DiscreteState)状态结束方法(访问=保护)函数setupImpl (obj) obj。状态= 0(长度(obj.Numerator) 1,1);结束函数y = stepImpl(obj,u) [y,obj.]州]=过滤器(obj.Numerator 1 u, obj.State);结束函数resetImpl (obj) obj。状态= 0(长度(obj.Numerator) 1,1);结束结束结束

另请参阅