Discrete Filter.docx
- 文档编号:4752776
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:26
- 大小:512.64KB
Discrete Filter.docx
《Discrete Filter.docx》由会员分享,可在线阅读,更多相关《Discrete Filter.docx(26页珍藏版)》请在冰豆网上搜索。
DiscreteFilter
DiscreteFilter
无限脉冲响应(IIR)滤波器模型
库
离散的
描述
DiscreteFilter块独立地过滤与指定的数字IIR滤波器的各信道的输入信号。
您可以指定为一体的过滤器结构|DirectformI|DirectformItransposed|DirectformII|DirectformIItransposed.该模块实现静态过滤器与固定系数。
这些静态过滤器,您可以调整系数
随着时间的推移,此块独立的过滤的输入信号的各信道。
Inputprocessing参数允许你指定块将输入的每个元素。
您可以指定处理输入元素作为一个独立的信道(基于样品的处理),或处理每列的输入作为一个独立的信道(基于帧的处理)。
要执行基于帧的处理,你必须有一个DSP系统工具箱许可证。
输出维度等于的输入,除非你指定的矩阵滤波器分接头的Numeratorcoefficients参数.。
当你这样做时,输出维度取决于您指定的不同数量的滤波器分接头。
使用Numeratorcoefficients参数指定的离散滤波器分子多项式的系数。
使用Denominatorcoefficients参数指定的函数的分母多项式的系数。
Denominatorcoefficients参数必须是一个系数的向量。
指定的分子和分母多项式的系数,升幂z-1.DiscreteFilter块可以使用z-1的多项式(延迟运算符)来表示一个独立的系统。
此方法通常是一个信号处理工程师使用。
相反,DiscreteTransferFcn块,您可以使用在z的多项式来表示一个独立的系统。
这个方法通常是一个控制工程师使用的。
当分子和分母多项式具有相同的长度,这两种方法是相同的。
系数来源
数字滤波器模块可以工作在三种不同的模式。
选择模式中的Coefficientsource组框。
∙Dialogparameters输入信息过滤器的结构和系数块中的掩码。
∙Inputport(s)输入过滤器的结构中的块掩码,在通过一个或多个块端口的系数来滤波。
这种模式在指定随时间变化的过滤器是很有用的。
∙Discrete-timefilterobject(DFILT)指定过滤器使用dfilt对象
支持的滤波器结构
当您选择Discrete-timefilterobject(DFILT),下面dfilt支持结构:
∙dfilt.df1
∙dfilt.df1t
∙dfilt.df2
∙dfilt.df2t
下面的表中示出的滤波器系数的矢量,则必须提供为每个滤波器结构。
欲了解更多有关如何指定各种滤波器结构的滤波器系数的信息,见SpecifyStaticFilters和SpecifyTime-VaryingFilters.
过滤器的结构和滤波器系数
支持的滤波器结构
滤波器系数规格
DirectformI
DirectformItransposed
DirectformII
DirectformIItransposed
∙分母系数向量[b0,b1,b2,...,bn]
∙•分母系数向量[a0,a1,a2,...,am]
见SpecialConsiderationfortheLeadingDenominatorCoefficient.
注意:
在上表中列出的每个结构支持的定点和浮点信号。
主导分母系数的特别注意事项
在某些情况下,数字滤波器块需要的主导的分母系数(a0)是1。
此要求适用于在下列条件下:
∙数字滤波器模块运行于一个固定点的模式。
该块工作在一个定点模式,当至少有一个下面的语句是true:
o有一个固定点或整数数据类型的数字滤波器模块的输入。
o在定点工具的Fixed-pointinstrumentationmode参数设置Minimums,maximumsandoverflows.
∙Coefficientsource有一个设置Dialog或Inputport(s).
注:
在前面的bullet定点建模的情况下,需要额外的设置,如果Coefficientsource被设置为Inputport(s).您必须选择Firstdenominatorcoefficient=1还可以选择removea0terminthestructure
如果你使用这样的配置和主导分母系数(a0)不等于1,数字滤波器模块产生一个错误。
若要解决此错误,请将您的主导分母系数为1,缩放所有的分子和分母系数a0的因子。
指定初始状态
在Dialogparameters和Inputport(s)模式时,模块初始化内部过滤器的状态,到零,默认情况下,这是相当于过去的输入和输出均为零。
您可以选择使用Initialstates参数来指定过滤器的非零延迟的初始状态
要确定初始状态值,你必须指定的数量,以及如何指定,请参阅下表有效的初始状态,NumberofDelayElements(FilterStates).Initialstates参数可以采用四种形式之一,如于下面的表中描述。
有效的初始状态
初始状态
实例
描述
标量
5
为每个信道的每个延迟元件被设置为5。
该块初始化所有的延迟元件,在过滤器中的标量值。
向量
(用于施加相同的延迟元件给每个信道)
如果在与两个延迟元件的过滤器:
[d1d2]
可用于所有信道的延迟元件是d1和d2。
每个向量元素指定一个唯一的相应的延迟元件的初始条件。
该块适用的初始条件相同的向量给每个信道的输入信号。
在过滤器中(在表中指定的延迟元件数目NumberofDelayElements(FilterStates))向量长度必须相等.
向量或矩阵
(用于施加不同的延迟元件给每个信道)
对于一个3通道的输入信号,并与两个延迟元件的过滤器:
[d1d2D1D2d1d2]或
用于信道1的延迟元件是d1和d2.
用于信道2的延迟元件D1和D2.
∙用于信道3的延迟元件d1和d2.
∙在每个向量或矩阵的元素指定了一个唯一的初始条件下,一个相应的信道为一个相应的延迟元件:
向量长度的输入通道的数目必须等于在过滤器中的延迟元件的数目(在表中指定的产品:
NumberofDelayElements(FilterStates)).
矩阵在过滤器中的延迟元件的数目必须具有相同的行数(在表中指定NumberofDelayElements(FilterStates)),并且必须具有为每个信道的一列的输入信号。
空矩阵
[]
每个延迟元件每个信道的被设置为0。
空矩阵,[],是Initialconditions参数设置为数值0。
每个输入通道的延迟元件数量(滤波器状态)取决于在过滤器上的结构,如在下面的表中所示的。
延迟元件(过滤器的状态)
滤波器结构
每通道的延迟元件数目
DirectformI
DirectformItransposed
零点个数-1
极点数量-1
DirectformII
DirectformIItransposed
最大(零点个数,极数)-1
下表描述了有效的初始状态,不同大小的输入和不同数目的通道。
这些表提供了此信息,根据是否基于帧的,或基于样本的设置Inputprocessing参数。
基于帧的处理
输入
通道数量
有效的初始状态(对话框)
有效的初始状态(输入端口)
列向量(K-by-1)
无定向矢量(K)
1
∙标量
列向量(M-by-1)
∙行向量(1-by-M)
∙标量
列向量(M-by-1)
行向量(1-by-N)
矩阵(K-by-N)
N
∙标量
列向量(M-by-1)
∙行向量(1-by-M)
∙矩阵(M-by-N)
∙标量
∙矩阵(M-by-N)
基于样本的处理
输入
通道数量
有效的初始状态(对话框)
有效的初始状态(输入端口)
∙标量
1
∙标量
∙列向量(M-by-1)
∙行向量(1-by-M)
∙标量
∙列向量(M-by-1)
∙行向量(1-by-M)
∙行向量(1-by-N)
∙列向量(N-by–1)
∙无定向矢量(N)
N
∙标量
∙列向量(M-by-1)
∙行向量(1-by-M)
∙矩阵(M-by-N)
标量
∙Matrix(K-by-N)
K×N
标量
∙列向量(M-by-1)
∙行向量(1-by-M)
∙矩阵(M-by-(K×N))
∙标量
当Initialstates是一个标量,块初始化所有的过滤器的状态是相同的标量值。
输入0,零初始化所有状态。
当Initialstates是矢量或矩阵,每个矢量或矩阵元素指定一个唯一的初始状态。
这种独特的状态对应于一个相应的通道中的一个延迟元件:
∙矢量长度必须等于在过滤器中的延迟元件数目,M=max(numberofzeros,numberofpoles).
∙矩阵必须具有相同的行数,在过滤器中的延迟元件的数目,M=max(numberofzeros,numberofpoles).该矩阵的一列也必须为每个信道的输入信号。
以下示例显示了初始过滤器输出与初始输入和状态之间的关系。
给定一个初始输入u1,第一输出y1是有关初始状态与最初的输入方式:
要了解如何设置的初始条件的向量的一个例子:
∙单击模型上的ex_discretefilter_nonzero_icex_discretefilter_nonzero_ic,或MATLAB命令提示符处键入。
∙双击DiscreteFilter模块,并设置参数。
下面显示了如何设置DiscreteFilter块的初始条件[12]
∙模拟模型,通过鼠标左键点击绿色的仿真图标。
∙双击scope。
你可以看到,由DiscreteFilter块滤波的信号,并且信号从滤波器的构造块之间的差异,是零
这表明,你可以输入初始条件的DiscreteFilter块作为一个矢量[12]。
您还可以设置第一个单位延迟时间为1,第二个单位延迟到2的初始条件。
将得到的输出是相同的。
数据类型支持
DiscreteFilter块接受任何signed的Simulink的数值数据类型,支持输出实数和复数的信号。
该块支持的相同类型的分子和分母系数。
分子和分母系数必须具有相同的复数。
它们可以有不同的字长和分数长度
下图显示了滤波器的结构和定点信号在DiscreteFilterr块使用的数据类型。
块忽略了虚线的分隔,当你选择Optimizebyskippingdividebyleadingdenominatorcoefficient(a0)参数
参数和对话框
DiscreteFilter块对话框中Main窗格显示如下。
Numerator
所述离散滤波器的分子系数。
要指定系数,设置Source为Dialog.然后,在Value输入系数为z的降幂。
使用一个行向量指定为一个单一的分子多项式的系数。
Denominator
离散滤波器的分母系数。
要指定系数,设置Source为Dialog.,在Value输入系数为z的降幂。
使用一个行向量指定为一个单一的分母多项式的系数
Initialstates
如果Source是Dialog,那么,在Value,指定滤波器的初始状态。
见SpecifyingInitialStates.
如果Source是Inputport,那么你就不需要指定Value.
Externalreset
使用指定的触发事件复位状态的初始条件。
复位模式
表现
None
不复位。
Rising
沿上升复位。
Falling
沿下降复位。
Either
沿上升或下降的复位。
Level
在这两种情况下复位:
当有一个非零在当前时间步骤
当前时间步长的时间步从非零的值发生变化,在以前的时间步长为零。
Levelhold
复位时,在当前时间步骤中返回非零值。
复位信号必须是标量。
Inputprocessing
指定块是否执行采样或基于帧的处理
∙Elementsaschannels(samplebased)—处理每个元素的输入作为一个独立的信道。
∙Columnsaschannels(framebased)—处理输入的每一列作为一个独立的信道
注:
基于帧的处理需要一个DSP系统工具箱许可证。
见Sample-andFrame-BasedConcepts
Optimizebyskippingdividebyleadingdenominatorcoefficient(a0)
选择时,主导的分母系数,a0,等于1。
此参数优化你的代码。
当您选择此复选框时,该块不执行divide-by-a0,无论是在模拟或在生成的代码。
发生错误时,如果a0是不等于1。
当您清除此复选框,在模拟过程中,该块是完全可调的。
它执行一个divide-by-A0仿真和代码生成。
Sampletime
指定样本之间的时间间隔。
要继承采样时间,此参数设置为-1。
看SpecifySampleTime.
DiscreteFilter块对话框中DataTypes窗格显示如下。
.
State
状态指定的数据类型。
您可以将此参数设置为:
∙继承规则的数据类型,例如,Inherit:
Sameasinput
∙内置的整数,例如,int8
∙数据类型的对象,例如,Simulink.NumericType对象
∙一个表达式,其值的数据类型,例如,fixdt(1,16,0)
点击Showdatatypeassistant按钮
显示DataTypeAssistant,它可以帮助您设置State参数
见SpecifyDataTypesUsingDataTypeAssistant
Numeratorcoefficients
分子系数指定的数据类型。
您可以将此参数设置为
∙继承规则的数据类型,例如Inherit:
Inheritviainternalrule
∙内置的整数,例如,int8
∙数据类型的对象,例如,Simulink.NumericType对象
∙一个表达式,其值的数据类型,例如,fixdt(1,16,0)
点击Showdatatypeassistant按钮
显示DataTypeAssistant,它可以帮助您设置Numeratorcoefficients参数.
见SpecifyDataTypesUsingDataTypeAssistant
Numeratorcoefficientminimum
指定的最小的值,该值可以有分子系数。
默认值是[](未指定)。
Simulink软件使用这个值来执行:
∙参数范围检查(见CheckParameterValues)
∙自动缩放的定点数据类型
Numeratorcoefficientmaximum
指定分子系数的最大值。
默认值是[](未指定)。
Simulink软件使用这个值来执行:
∙参数范围检查(见CheckParameterValues)
∙自动缩放的定点数据类型
Numeratorproductoutput
指定产品的输出的分子系数的数据类型。
您可以将此参数设置为:
∙继承规则的数据类型,例如,Inherit:
Inheritviainternalrule
∙内置的数据类型,例如,int8
∙数据类型的对象,例如,Simulink.NumericType对象
∙一个表达式,其值的数据类型,例如,fixdt(1,16,0)
点击Showdatatypeassistant按钮
显示DataTypeAssistant,它可以帮助您设置Numeratorproductoutput参数.
见SpecifyDataTypesUsingDataTypeAssistant
Numeratoraccumulator
指定累加器的分子系数的数据类型。
您可以将此参数设置为:
∙继承规则的数据类型,例如,Inherit:
Inheritviainternalrule
∙内置的数据类型,例如,int8
∙数据类型的对象,例如,Simulink.NumericType对象
∙一个表达式,其值的数据类型,例如,fixdt(1,16,0)
点击Showdatatypeassistant按钮
显示DataTypeAssistant,它可以帮助您设置Numeratoraccumulator参数.
见SpecifyDataTypesUsingDataTypeAssistant
Denominatorcoefficients
指定分母系数的数据类型。
您可以将此参数设置为:
∙继承规则的数据类型,例如,Inherit:
Inheritviainternalrule
∙内置的整数,例如,int8
∙数据类型的对象,例如,Simulink.NumericType对象
∙一个表达式,其值的数据类型,例如,fixdt(1,16,0)
点击Showdatatypeassistant按钮
显示DataTypeAssistant,它可以帮助您设置Denominatorcoefficients参数.
见SpecifyDataTypesUsingDataTypeAssistant
Denominatorcoefficientminimum
Specifytheminimumvaluethatadenominatorcoefficientcanhave.默认值是[](未指定)。
Simulink软件使用这个值来执行:
∙参数范围检查(见CheckParameterValues)
∙自动缩放的定点数据类型
Denominatorcoefficientmaximum
指定分母系数的最大值。
默认值是[](未指定)。
Simulink软件使用这个值来执行:
∙参数范围检查(见CheckParameterValues)
∙自动缩放的定点数据类型
Denominatorproductoutput
指定产品的输出为分母系数的数据类型。
您可以将此参数设置为:
∙继承规则的数据类型,例如,Inherit:
Inheritviainternalrule
∙内置的数据类型,例如,int8
∙数据类型的对象,例如,Simulink.NumericType对象
∙一个表达式,其值的数据类型,例如,fixdt(1,16,0)
点击Showdatatypeassistant按钮
显示DataTypeAssistant,它可以帮助您设置Denominatorproductoutput参数.
见SpecifyDataTypesUsingDataTypeAssistant
Denominatoraccumulator
指定累加器的分母系数的数据类型。
您可以将此参数设置为:
∙继承规则的数据类型,例如,Inherit:
Inheritviainternalrule
∙内置的数据类型,例如,int8
∙数据类型的对象,例如,Simulink.NumericType对象
∙一个表达式,其值的数据类型,例如,fixdt(1,16,0)
点击Showdatatypeassistant按钮
显示DataTypeAssistant,它可以帮助您设置Denominatoraccumulator参数.
见SpecifyDataTypesUsingDataTypeAssistant
Output
指定输出的数据类型。
您可以将此参数设置为:
∙继承规则的数据类型,例如,Inherit:
Inheritviainternalrule
∙内置的数据类型,例如,int8
∙数据类型的对象,例如,Simulink.NumericType对象
∙一个表达式,其值的数据类型,例如,fixdt(1,16,0)
点击Showdatatypeassistant按钮
显示DataTypeAssistant,它可以帮助您设置Output参数.
见SpecifyBlockOutputDataTypes
Outputminimum
指定块可以输出的最小值。
默认值是[](未指定)。
Simulink软件使用这个值来执行:
∙模拟范围检查(见SignalRanges)
∙自动缩放的定点数据类型
Outputmaximum
指定块可以输出的最大值。
默认值是[](未指定)。
Simulink软件使用这个值来执行:
∙模拟范围检查(见SignalRanges)
∙自动缩放的定点数据类型
Lockdatatypesettingsagainstchangesbythefixed-pointtools
选择锁定所有对这个块的数据类型设置的定点工具和定点顾问。
参见LockingtheOutputDataTypeSetting
Integerroundingmode
指定定点运算的舍入模式。
参见Rounding
Saturateonintegeroverflow
作用
采取此项操作的原因
溢出会发生什么事
例子
选中此复选框。
你的模型有可能溢出,并在生成的代码,你要显式的饱和保护。
溢出饱和到任何的数据类型可以表示的最小或最大值。
有符号的8位整数溢出饱和为-128或127。
请不要选择此复选框。
你想生成的代码,以优化效率。
你要避免过度指定块如何处理范围的信号。
有关详细信息,请参阅CheckingforSignalRangeErrors.
溢出换到数据类型表示的适当的值。
数130不适合在有符号的8位整数,换到-126。
当您选择此复选框,饱和度适用于每一个块的内部运作,而不仅仅是输出或结果。
一般情况下,代码生成过程中可以检测到溢出是不可能的。
在这种情况下,代码生成器不产生饱和的代码。
DiscreteFilter块对话框中StateAttributes窗格显示如下。
Statename
使用此参数可以指定一个唯一的名称为block状态。
默认值是''。
当该字段为空,没有名字的分配。
使用此参数时,请记住以下注意事项:
∙一个有效的标识符开始以字母或下划线,其次是字母,数字或下划线字符。
∙状态名称仅适用于选定的块。
使用此参数可StatenamemustresolvetoSimulinksignalobject当你点击Apply.
见States
StatenamemustresolvetoSimulinksignalobject
选中此复选框要求状态名称解析为一个Simulink信号对象。
默认情况下,此复选框被清除。
Statename启用此参数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Discrete Filter