Discrete Filter.docx

上传人:b****4 文档编号:4752776 上传时间:2022-12-08 格式:DOCX 页数:26 大小:512.64KB
下载 相关 举报
Discrete Filter.docx_第1页
第1页 / 共26页
Discrete Filter.docx_第2页
第2页 / 共26页
Discrete Filter.docx_第3页
第3页 / 共26页
Discrete Filter.docx_第4页
第4页 / 共26页
Discrete Filter.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

Discrete Filter.docx

《Discrete Filter.docx》由会员分享,可在线阅读,更多相关《Discrete Filter.docx(26页珍藏版)》请在冰豆网上搜索。

Discrete Filter.docx

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启用此参数

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1