主要内容

离散滤波器

模型无限脉冲响应(IIR)滤波器

  • 库:
  • 金宝appSimulink / Discrete

  • 过滤块

描述

离散滤波器块用指定的数字IIR滤波器独立地滤波输入信号的每个通道。可以将筛选器结构指定为直接形式I直接形式I的转置直接形式二,或直接形式II的转置.该块实现了具有固定系数的静态过滤器。您可以调整这些静态滤波器的系数。

这个块在一段时间内独立地过滤输入信号的每个通道。的输入处理参数允许您指定块如何处理输入的每个元素。您可以指定将输入元素作为独立通道(基于样本的处理),或者将输入的每一列作为独立通道(基于帧的处理)。要执行基于帧的处理,您必须拥有DSP系统工具箱许可证。

类的过滤抽头矩阵除外,输出尺寸与输入尺寸相等分子系数参数。这样做时,输出维度取决于您指定的不同过滤器抽头集的数量。

使用分子系数参数指定离散滤波器分子多项式的系数。使用分母系数参数指定函数的分母多项式的系数。的分母系数参数必须是一个系数向量。

指定分子多项式和分母多项式的升幂系数z-1.的离散滤波器Block允许你使用多项式z-1(延迟算子)来表示离散系统。信号处理工程师通常使用这种方法。相反,离散传输FcnBlock允许你使用多项式z表示一个离散系统。控制工程师通常使用这种方法。当分子和分母多项式长度相等时,两种方法是相同的。

指定初始状态

对话框参数而且输入端口(年代)模式下,块默认将内部过滤器状态初始化为零,这相当于假设过去的输入和输出为零。可以选择使用初始状态参数指定筛选器延迟的非零初始状态。

若要确定必须指定的初始状态值的数量,以及如何指定它们,请参阅有关有效初始状态和的下表延迟元件数(滤波状态).的初始状态参数可以采用下表中描述的四种形式之一。

有效初始状态

初始状态 例子 描述

标量

5

每个通道的每个延迟元素都设置为5

该块将筛选器中的所有延迟元素初始化为标量值。

向量
(用于将相同的延迟元素应用于每个通道)

对于具有两个延迟元素的过滤器:[d1d2

所有通道的延迟元素为d1和d2。

每个向量元素为相应的延迟元素指定一个唯一的初始条件。该块对输入信号的每个通道应用相同的初始条件向量。向量长度必须等于过滤器中延迟元素的数量(在表中指定)延迟元件数(滤波状态)).

向量或矩阵
(用于在每个通道上应用不同的延迟元素)

对于三通道输入信号和带有两个延迟元件的滤波器:

d1d2D1D2d1d2]或

d 1 D 1 d 1 d 2 D 2 d 2

  • 通道1的延迟元素为d1而且d2

  • 通道2的延迟元素为D1而且D2

  • 通道3的延迟元素为d1而且d2

每个向量或矩阵元素都为相应通道中的相应延迟元素指定了唯一的初始条件:

  • 向量长度必须等于输入通道数和滤波器中延迟元素数的乘积(在表中指定)延迟元件数(滤波状态)).

  • 矩阵的行数必须与过滤器中的延迟元素的行数相同(在表中指定)延迟元件数(滤波状态)),并且输入信号的每个通道必须有一列。

空矩阵

[]
每个通道的每个延迟元素都设置为0

空矩阵,[],相当于设置初始条件参数设置为标量值0

每个输入通道的延迟元素(滤波器状态)的数量取决于滤波器结构,如下表所示。

延迟元件数(滤波状态)

滤波器结构 每个通道的延迟元素数

直接形式I
直接形式I的转置

  • 0的个数- 1

  • 极数- 1

直接形式二
直接形式II的转置

Max(零的个数,极点的个数)-1

下表描述了不同输入大小和不同通道数量的有效初始状态,具体取决于是否设置输入处理参数基于帧或基于样本。

框架处理

输入 通道数 有效初始状态(对话框) 有效初始状态(输入端口)
  • 列向量(K1)

  • 无向向量(K

1
  • 标量

  • 列向量(1)

  • 行向量(1 ×

  • 标量

  • 列向量(1)

  • 行向量(1 ×N

  • 矩阵(K——- - - - - -N

N
  • 标量

  • 列向量(1)

  • 行向量(1 ×

  • 矩阵(——- - - - - -N

  • 标量

  • 矩阵(——- - - - - -N

纸浆包处理

输入 通道数 有效初始状态(对话框) 有效初始状态(输入端口)
  • 标量

1
  • 标量

  • 列向量(1)

  • 行向量(1 ×

  • 标量

  • 列向量(1)

  • 行向量(1 ×

  • 行向量(1 ×N

  • 列向量(N1)

  • 无向向量(N

N
  • 标量

  • 列向量(1)

  • 行向量(1 ×

  • 矩阵(——- - - - - -N

  • 标量

  • 矩阵(K——- - - - - -N

K×N
  • 标量

  • 列向量(1)

  • 行向量(1 ×

  • 矩阵(————(K×N))

  • 标量

初始状态为标量,则块将所有筛选器状态初始化为相同的标量值。输入0将所有状态初始化为零。当初始状态是一个向量或矩阵,每个向量或矩阵元素指定一个唯一的初始状态。这种唯一状态对应于相应通道中的延迟元素:

  • 向量长度必须等于滤波器中延迟元素的数量,M = max(零的个数,极点的个数)

  • 矩阵的行数必须与过滤器中延迟元素的行数相同,M = max(零的个数,极点的个数).矩阵还必须为输入信号的每个通道设置一列。

初始滤波器输出之间的关系y1,初始输入u1,初始状态[x1x2]由下面的方程给出。

y 1 b 1 u 1 一个 2 x 1 一个 3. x 2 一个 1 + b 2 x 1 + b 3. x 2

在那里,

  • b1b2,b3.是离散滤波器的分子系数。

  • 一个1一个2,一个3.是离散滤波器的分母系数。

有关显示这种关系的示例,请参见为离散过滤器块指定初始条件向量

港口

输入

全部展开

要滤波的输入信号,指定为标量、向量或矩阵。

依赖关系

端口的名称取决于为分子系数、分母系数和初始状态指定的源。当你设置分子分母,初始状态对话框时,只有一个输入端口,且该端口是无标签的。当你设置分子分母,或初始状态输入端口,该端口有标签u

数据类型:||int8|int16|int32|不动点

的降幂表示的离散滤波器的分子系数z.使用行向量来指定单个分子多项式的系数。

依赖关系

若要启用此端口,请设置分子输入端口

数据类型:||int8|int16|int32|不动点

指定离散滤波器的分母系数为的降幂z.使用行向量指定单分母多项式的系数。

依赖关系

若要启用此端口,请设置分母输入端口

数据类型:||int8|int16|int32|不动点

初始状态,指定为标量、向量或矩阵。有关指定状态的详细信息,请参见指定初始状态

依赖关系

若要启用此端口,请设置滤波器结构直接形式二直接形式II的转置,并设置初始状态输入端口

数据类型:||int8|int16|int32|不动点

输出

全部展开

滤波输出信号。类的过滤抽头矩阵除外,输出尺寸与输入尺寸相等分子系数参数。这样做时,输出维度取决于您指定的不同过滤器抽头集的数量。

数据类型:||int8|int16|int32|不动点

参数

全部展开

主要

指定离散IIR滤波器结构。

依赖关系

使用任何过滤器结构以外的直接形式二,您必须有可用的DSP系统工具箱许可证。

编程使用

块参数:FilterStructure
类型:特征向量
价值观:直接形式II' | '直接形式I转置' | '直接形式I' | '直接形式II转置'
默认值:“直接形式II”

指定分子系数的来源为对话框输入端口

编程使用

块参数:NumeratorSource
类型:特征向量
价值观:对话框|输入端口
默认值:“对话框”

指定离散滤波器的分子系数为的降幂z.使用行向量来指定单个分子多项式的系数。

依赖关系

若要启用此参数,请设置分子来源对话框

编程使用

块参数:分子
类型:特征向量
价值观:标量|向量|矩阵
默认值:“[1]”

指定分母系数的来源为对话框输入端口

编程使用

块参数:DenominatorSource
类型:特征向量
价值观:对话框|输入端口
默认值:“对话框”

指定离散滤波器的分母系数为的降幂z.使用行向量指定单分母多项式的系数。

依赖关系

若要启用此参数,请设置分母源对话框

编程使用

块参数:分母
类型:特征向量
价值观:标量|向量
默认值:“0.5[1]”

指定初始状态的源为对话框输入端口

编程使用

块参数:InitialStatesSource
类型:特征向量
价值观:对话框|输入端口
默认值:“对话框”

将初始筛选器状态指定为标量、向量或矩阵。要了解如何指定初始状态,请参见指定初始状态

依赖关系

若要启用此参数,请设置滤波器结构直接形式二直接形式II的转置,并设置初始状态对话框

编程使用

块参数:InitialStates
类型:特征向量
价值观:标量|向量|矩阵
默认值:' 0 '

将初始分子过滤器状态指定为标量、向量或矩阵。要了解如何指定初始状态,请参见指定初始状态

依赖关系

若要启用此端口,请设置滤波器结构直接形式I直接形式I的转置

编程使用

块参数:InitialStates
类型:特征向量
价值观:标量|向量|矩阵
默认值:' 0 '

将初始分母筛选器状态指定为标量、向量或矩阵。要了解如何指定初始状态,请参见指定初始状态

依赖关系

若要启用此端口,请设置滤波器结构直接形式I直接形式I的转置

编程使用

块参数:InitialDenominatorStates
类型:特征向量
价值观:标量|向量|矩阵
默认值:' 0 '

指定用于将状态重置为初始条件的触发器事件。

复位模式 行为
没有一个 没有复位
不断上升的 重置在上升边缘
下降 重置在下降的边缘
要么 在上升或下降边缘重置
水平

在以下任何一种情况下重置:

  • 当复位信号在当前时间步长非零时

  • 复位信号值由上一时间步的非零变为当前时间步的零

保持水平 复位时,复位信号在当前时间步长非零

编程使用

块参数ExternalReset
类型:字符向量
“没有”|“上升”|“下降”|“不是”|“水平”|“持有水平”
默认的“没有”

指定块执行基于样本的处理还是基于帧的处理。

  • 作为通道的元素(基于示例)-处理输入的每个元素作为一个独立的通道。

  • 列作为通道(基于帧)—将输入的每一列作为一个独立的通道处理。

依赖关系

基于帧的处理需要DSP系统工具箱许可证。

有关更多信息,请参见基于样本和框架的概念(DSP系统工具箱)

编程使用

块参数:InputProcessing
类型:特征向量
价值观:'作为通道的列(基于帧)' | '作为通道的元素(基于示例)'
默认值:“元素作为通道(基于样本)”

选择当主分母系数,一个0等于1。此参数优化代码。

选中此复选框时,块不执行除-操作一个0无论是在模拟或在生成的代码。如果出现以下情况,则会发生错误一个0不等于1。

当您清除此复选框时,该块在模拟期间是完全可调的。它执行一个除-一个0在模拟和代码生成。

编程使用

块参数:a0EqualsOne
类型:特征向量
价值观:'off' | 'on'
默认值:“关闭”

指定采样时间间隔。如果要继承采样时间,则设置为-1.有关更多信息,请参见指定采样时间

编程使用

块参数:SampleTime
类型:特征向量
价值观:标量|向量
默认值:' 1 '

数据类型

指定状态数据类型。可以设置为:

  • 继承数据类型的规则,例如,Inherit:与input相同

  • 例如,一个内置整数,int8

  • 数据类型对象,例如A金宝app仿真软件。全国矿工工会ericType对象

  • 求值为数据类型的表达式,例如,fixdt (1 16 0)

单击显示数据类型助手按钮显示数据类型助手,它可以帮助您设置数据类型属性。有关更多信息,请参见使用数据类型助手指定数据类型

编程使用

块参数:StateDataTypeStr
类型:特征向量
价值观:继承:与输入' | 'int8' | 'int16' | 'int32' | 'int64' | 'fixdt(1,16,0)' | '<数据类型表达式>'
默认值:“继承:与输入相同”

指定分子系数数据类型。可以设置为:

  • 继承数据类型的规则,例如,继承:通过内部规则继承

  • 一个内置的有符号整数,例如,int8

  • 数据类型对象,例如A金宝app仿真软件。全国矿工工会ericType对象

  • 求值为数据类型的表达式,例如,fixdt (1 16 0)

单击显示数据类型助手按钮显示数据类型助手,它可以帮助您设置数据类型属性。有关更多信息,请参见使用数据类型助手指定数据类型

编程使用

块参数:NumCoeffDataTypeStr
类型:特征向量
价值观:'继承:通过内部规则继承' | 'int8' | 'int16' | 'int32' | 'int64' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | '<数据类型表达式>'
默认值:“继承:通过内部规则继承”

指定分子系数所能具有的最小值。默认值为[](不明)。金宝app动态仿真模块®软件使用这个值执行:

编程使用

块参数:NumCoeffMin
类型:特征向量
价值观:标量
默认值:“[]”

指定分子系数的最大值。默认值为[](不明)。金宝appSimulink软件使用这个值执行:

编程使用

块参数:NumCoeffMax
类型:特征向量
价值观:标量
默认值:“[]”

指定分子系数的乘积输出数据类型。可以设置为:

  • 继承数据类型的规则,例如,继承:通过内部规则继承

  • 内置数据类型,例如,int8

  • 数据类型对象,例如A金宝app仿真软件。全国矿工工会ericType对象

  • 求值为数据类型的表达式,例如,fixdt (1 16 0)

单击显示数据类型助手按钮显示数据类型助手,它可以帮助您设置数据类型属性。有关更多信息,请参见使用数据类型助手指定数据类型

编程使用

块参数:NumProductDataTypeStr
类型:特征向量
价值观:继承:与输入' | '相同int8' | 'int16' | 'int32' | 'int64' | 'fixdt(1,16,0)' | '<数据类型表达式>'
默认值:“继承:通过内部规则继承”

为分子系数指定累加器数据类型。可以设置为:

  • 继承数据类型的规则,例如,继承:通过内部规则继承

  • 内置数据类型,例如,int8

  • 数据类型对象,例如A金宝app仿真软件。全国矿工工会ericType对象

  • 求值为数据类型的表达式,例如,fixdt (1 16 0)

单击显示数据类型助手按钮显示数据类型助手,它可以帮助您设置数据类型属性。有关更多信息,请参见使用数据类型助手指定数据类型

编程使用

块参数:NumAccumDataTypeStr
类型:特征向量
价值观:'继承:通过内部规则' | '继承:与输入' | '继承:与产品输出' | 'int8' | 'int16' | 'int32' | 'int64' | 'fixdt(1,16,0)' | '<数据类型表达式>'
默认值:“继承:通过内部规则继承”

指定分母系数数据类型。可以设置为:

  • 继承数据类型的规则,例如,继承:通过内部规则继承

  • 例如,一个内置整数,int8

  • 数据类型对象,例如A金宝app仿真软件。全国矿工工会ericType对象

  • 求值为数据类型的表达式,例如,fixdt (1 16 0)

单击显示数据类型助手按钮显示数据类型助手,它可以帮助您设置数据类型属性。有关更多信息,请参见使用数据类型助手指定数据类型

编程使用

块参数:DenCoeffDataTypeStr
类型:特征向量
价值观:'继承:通过内部规则继承' | 'int8' | 'int16' | 'int32' | 'int64' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | '<数据类型表达式>'
默认值:“继承:通过内部规则继承”

指定分母系数的最小值。默认值为[](不明)。金宝appSimulink软件使用这个值执行:

编程使用

块参数:DenCoeffMin
类型:特征向量
价值观:标量
默认值:“[]”

指定分母系数的最大值。默认值为[](不明)。金宝appSimulink软件使用这个值执行:

编程使用

块参数:DenCoeffMax
类型:特征向量
价值观:标量
默认值:“[]”

为分母系数指定乘积输出数据类型。可以设置为:

  • 继承数据类型的规则,例如,继承:通过内部规则继承

  • 内置数据类型,例如,int8

  • 数据类型对象,例如A金宝app仿真软件。全国矿工工会ericType对象

  • 求值为数据类型的表达式,例如,fixdt (1 16 0)

单击显示数据类型助手按钮显示数据类型助手,它可以帮助您设置数据类型属性。有关更多信息,请参见使用数据类型助手指定数据类型

编程使用

块参数:DenProductDataTypeStr
类型:特征向量
价值观:继承:与输入' | '相同int8' | 'int16' | 'int32' | 'int64' | 'fixdt(1,16,0)' | '<数据类型表达式>'
默认值:“继承:通过内部规则继承”

为分母系数指定累加器数据类型。可以设置为:

  • 继承数据类型的规则,例如,继承:通过内部规则继承

  • 内置数据类型,例如,int8

  • 数据类型对象,例如A金宝app仿真软件。全国矿工工会ericType对象

  • 求值为数据类型的表达式,例如,fixdt (1 16 0)

单击显示数据类型助手按钮显示数据类型助手,它可以帮助您设置数据类型属性。有关更多信息,请参见使用数据类型助手指定数据类型

编程使用

块参数:DenAccumDataTypeStr
类型:特征向量
价值观:'继承:通过内部规则' | '继承:与输入' | '继承:与产品输出' | 'int8' | 'int16' | 'int32' | 'int64' | 'fixdt(1,16,0)' | '<数据类型表达式>'
默认值:“继承:通过内部规则继承”

指定输出数据类型。可以设置为:

  • 继承数据类型的规则,例如,继承:通过内部规则继承

  • 内置数据类型,例如,int8

  • 数据类型对象,例如A金宝app仿真软件。全国矿工工会ericType对象

  • 求值为数据类型的表达式,例如,fixdt (1 16 0)

单击显示数据类型助手按钮显示数据类型助手,它可以帮助您设置数据类型属性。有关更多信息,请参见使用数据类型助手指定数据类型

编程使用

块参数:OutDataTypeStr
类型:特征向量
价值观:'继承:通过内部规则继承' | 'int8' | 'int16' | 'int32' | 'int64' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | '<数据类型表达式>'
默认值:“继承:通过内部规则继承”

指定块可以输出的最小值。默认值为[](不明)。金宝appSimulink软件使用这个值执行:

编程使用

块参数:OutMin
类型:特征向量
价值观:标量
默认值:“[]”

指定块可以输出的最大值。默认值为[](不明)。金宝appSimulink软件使用这个值执行:

编程使用

块参数:OutMax
类型:特征向量
价值观:标量
默认值:“[]”

指定乘数数据类型。可以设置为:

  • 继承数据类型的规则,例如,Inherit:与input相同

  • 内置数据类型,例如,int8

  • 数据类型对象,例如A金宝app仿真软件。全国矿工工会ericType对象

  • 求值为数据类型的表达式,例如,fixdt (1 16 0)

单击显示数据类型助手按钮显示数据类型助手,它可以帮助您设置数据类型属性。有关更多信息,请参见使用数据类型助手指定数据类型

依赖关系

若要启用此参数,请设置滤波器结构直接形式I的转置

编程使用

块参数:MultiplicandDataTypeStr
类型:特征向量
价值观:继承:与输入' | 'int8' | 'int16' | 'int32' | 'int64' | 'fixdt(1,16,0)' | '<数据类型表达式>'
默认值:“继承:与输入相同”

选择此选项可锁定此块的数据类型设置,防止由定点工具和定点顾问进行更改。有关更多信息,请参见锁定输出数据类型设置(定点设计师)

编程使用

块参数:LockScale
价值观:'off' | 'on'
默认值:“关闭”

为定点操作指定舍入模式。有关更多信息,请参见舍入(定点设计师)

编程使用

块参数:RndMeth
类型:特征向量
价值观:“天花板”|“收敛”|“地板”|“最近”|“圆”|“最简单”|“零”
默认值:“地板”

指定溢出是饱和还是包裹。

行动 基本原理 对溢出的影响 例子

选中此复选框().

您的模型可能有溢出,并且您希望在生成的代码中显式地进行饱和保护。

溢出饱和到数据类型可以表示的最小值或最大值。

的最大值int8(有符号,8位整数)的数据类型可以表示为127。任何大于该最大值的块操作结果都会导致8位整数溢出。选中复选框后,块输出的饱和值为127。类似地,块输出在最小输出值-128处饱和。

不要选中此复选框().

您希望优化生成代码的效率。

您希望避免过度指定块如何处理超出范围的信号。有关更多信息,请参见排除信号范围错误

溢出包装为由数据类型表示的适当值。

的最大值int8(有符号,8位整数)的数据类型可以表示为127。任何大于该最大值的块操作结果都会导致8位整数溢出。清除复选框后,软件将导致溢出的值解释为int8,这可能会产生意想不到的结果。例如,130(二进制1000 0010)的块结果表示为int8,为-126。

选中此复选框后,饱和将应用于块上的每个内部操作,而不仅仅是输出或结果。通常,代码生成过程可以检测何时不可能出现溢出。在这种情况下,代码生成器不会产生饱和代码。

编程使用

块参数:SaturateOnIntegerOverflow
类型:特征向量
价值观:'off' | 'on'
默认值:“关闭”

状态属性

为每个州分配一个唯一的名称。如果此字段为空(' '),则不会发生名称赋值。

  • 要为单个州分配名称,请在引号之间输入名称,例如,“位置”

  • 要为多个州分配名称,请输入一个用括号括起来的逗号分隔的列表,例如,{'a', 'b', 'c'}.每个名称必须唯一。

  • 用MATLAB中的变量指定状态名®工作区,输入不带引号的变量。变量可以是字符向量、单元格数组或结构。

限制

  • 状态名仅应用于所选块。

  • 州的数目必须在州名的数目中平均分配。

  • 可以指定比状态少的名称,但不能指定比状态多的名称。

    例如,您可以在具有四个状态的系统中指定两个名称。第一个名字适用于前两个状态,第二个名字适用于后两个状态。

依赖关系

若要启用该参数,请设置滤波器结构直接形式二

编程使用

块参数:StateName
类型:特征向量
价值观:' '|用户定义
默认值:' '

选中此复选框以要求状态名称解析为Simulink信号对象。金宝app

依赖关系

若要启用该参数,请设置滤波器结构直接形式二并为指定值国家的名字.仅当您设置模型配置参数时,此参数才会出现信号的分辨率到一个值以外没有一个

编程使用

块参数:StateMustResolveToSignalObject
类型:特征向量
价值观:'off' | 'on'
默认值:“关闭”

块特征

数据类型

|不动点一个|整数一个|

直接引线

没有

多维信号

没有

适应信号

没有

讨论二阶导数过零检测

没有

一个此块仅支持带符号的定点数据类型。金宝app

扩展功能

C/ c++代码生成
使用Simulink®Coder™生成C和c++代码。金宝app

PLC代码生成
使用Simulink®PLC Coder™生成结构化文本代码。金宝app

版本历史

R2006a之前介绍

另请参阅

|(DSP系统工具箱)|(DSP系统工具箱)|(DSP系统工具箱)|(DSP系统工具箱)|(DSP系统工具箱)|(DSP系统工具箱)|(信号处理工具箱)

主题