Engee 文档

离散滤波器

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

类型: DiscreteFilter

图书馆中的路径:

/Basic/Discrete/Discrete Filter

说明

离散滤波器 设备使用指定的数字近红外滤波器对输入信号的每个通道进行独立滤波。 您可以指定滤波器结构为 直接形式 I, 直接形式 I 转置, 直接形式 II`或 `直接形式 II 转置.

该模块实现了一个具有固定系数的静态滤波器。输入信号的每个通道在时间上都是独立滤波的。

通过参数 输入处理 ,可以指定程序块如何处理每个输入元素。您可以指定是将输入元素作为一个独立通道 (作为通道的元素(基于样本)) 或将每个输入列作为一个独立通道进行处理 (列作为通道(基于帧)). 在基于帧的模式下,输出尺寸等于输入尺寸,除非您指定一个矩阵作为参数 分母系数 。在基于采样的模式下,core-modeling/vectorization-broadcast-modeling.adoc#broadcast

分母系数 参数指定滤波器分子多项式的系数。参数 分母系数 指定函数分母多项式的系数。

分子多项式和分母多项式的系数按度数升序设置 离散滤波器 块允许使用 (延迟算子)中的多项式来表示离散系统。这种方法通常用于数字信号处理 (DSP)。相反,离散传输 Fcn 块允许使用 中的多项式来表示离散系统。这种方法在控制系统中更为常见。当分子和分母多项式的长度相同时,这两种方法是等价的。

初始状态

  • 如果初始值是标量,则每个延迟的每个通道都使用该初始值。

  • 如果初始值是数组,则使用维数展开。

    请看一个例子。假设初始值为"[s1, s2, s3]"。在这种情况下,它是一个列向量,因此为了清晰起见,可以写成下面这样:

    [
    s1,
    s2,
    s3,
    ]

    假设我们有一个通道。那么 s1 是第一个延迟的初始条件,s2 是第二个延迟的初始条件,等等。如果有多个通道,那么所有这些对每个单独的通道都是正确的。

    第二个例子是 [s1 s2 s3]。这是一个行矩阵。如果滤波器有三个延迟,那么在扩大维数后,初始条件为

    [
    s1 s2 s3;
    s1 s2 s3;
    s1 s2 s3;
    ]

    在这种情况下,第一通道延迟的初始条件为"[s1, s1, s1]",第二通道延迟的初始条件为"[s2, s2, s2]",以此类推。

    维数有可能更大。一般规则是:第一个维度对应不同延迟的初始条件,后面的维度对应不同的通道。通道不仅可以是矢量的元素,也可以是矩阵和更高维数组的元素。

延迟数的确定如上所述。对于 `直接形式 I`и `直接形式 I 转置`的延迟数等于分子长度减 1,分母的延迟数等于分母长度减 1。对于 `直接形式 II`и `直接形式 II 转置`为分母和分子长度的最大值减 1。

参数 初始状态 设置滤波器延迟的初始状态。

下表介绍了如何确定初始状态值的数量以及具体的设置方法。该表给出了允许的初始状态和延迟元素(滤波状态)的数量。如下表所示,参数 初始状态 可以有四种形式。

初始状态 示例 说明

标量

5

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

该模块初始化滤波器中的所有延迟元素,标量值为

矢量或矩阵 (对每个通道应用不同的延迟元素)。

对于一个三通道输入信号和一个有两个延迟元素的滤波器来说

]]。

通道 1 的延迟元素为 и

通道 2 的延迟元素为 и

通道 3 的延迟元素为 и

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

  • 矢量的长度必须等于输入通道数与滤波器延迟元件数的乘积。

  • 矩阵的行数必须与滤波器中延迟元素的行数相同,并且每个输入通道必须有一列。

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

延迟元件数(滤波器状态)
滤波器结构 每个通道的延迟元件数

直接形式 I

直接形式 I 转置

  • 零的个数 - 1

  • 极点数 - 1

直接形式 II

直接形式 II 转置

最大(零点数,极点数)- 1

下表描述了不同输入数据大小和不同通道数下允许的初始状态,具体取决于参数值 输入处理 - 基于帧的处理 列作为通道(基于帧)`或基于采样的处理 `作为通道的元素(基于样本).

基于帧的处理
输入 通道数 允许的初始状态(对话框) 允许的初始状态(输入端口)

矢量列 ( by 1)

无向向量 ( )

1

标量

列向量 ( 至 1)

矢量行 ( 1 位于 )

标量

矢量列 ( 至 1)

矢量字符串 ( 1 在 )

矩阵 ( )

N

标量

矢量列 ( at 1)

矢量字符串 ( 1 at )

矩阵 ( )

标量

矩阵 ( at )

根据样本进行处理
输入 通道数 允许的初始状态(对话框) 允许的初始状态(输入端口)

标量

1

标量

矢量列 ( by 1)

矢量字符串 ( 1 at )

标量

矢量列 ( 至 1)

矢量字符串 ( 1 在 )

矢量行 ( 1 在 )

矢量列 ( 至 1)

无向向量 ( )

N

标量

列向量 ( by 1)

矢量字符串 ( 1 at )

矩阵 ( )

标量

矩阵 ( at )

标量

矢量列 ( at 1)

矢量字符串 ( 1 at )

矩阵 ( )

标量

港口

输出

# OUT_1 — 滤波信号
标量数组 | 向量数组 | 矩阵数组 | 多维数组

Details

过滤输出信号。

数据类型

Float64`。

复数支持

输入

# u — 输入信号
标量"|"向量"|"矩阵"|"多维数组

Details

以标量、矢量、矩阵或任意维数数组形式指定的输入信号。

数据类型

Float64`。

复数支持

# 外部复位 — 设备的外部复位信号
标量

Details

外部信号,用于将程序块状态重置为初始状态。

依赖关系

要使用该端口,请将 外部复位 参数设置为除 .

数据类型

Float64`以外的任何值。

复数支持

# 书房 — 分母系数
标量 | 向量 | 矩阵

Details

离散滤波器分母系数递减度 。使用列向量指定单分母多项式的系数。

依赖关系

要使用此端口,请将 分母源 参数设置为 输入端口.

如果从 Den 输入端口指定分母系数,则必须选择 通过跳过除以前导分母系数进行优化 (a0) 复选框 。选中该复选框后,程序块将忽略前导分母系数 ,并用 1 代替。

数据类型

Float64`。

复数支持

# 编号 — 分子系数
标量 | 向量 | 矩阵

Details

离散滤波器数值系数的递减度 。使用列向量指定单个分子多项式的系数。

依赖关系

要使用此端口,请将 分母源 参数设置为 输入端口.

数据类型

Float64`。

复数支持

# x0 — 滤波器的初始状态
标量 | 向量 | 矩阵

Details

以标量、向量或矩阵形式表示的滤波器初始状态。

依赖关系

要使用此端口,请将 过滤器结构 设置为 直接形式 II`或 `直接形式 II 转置,并将 初始状态源 设置为 输入端口.

数据类型

Float64`。

复数支持

参数

参数

# 过滤器结构 — 过滤器结构
直接形式 I | 直接形式 I 转置 | 直接形式 II | 直接形式 II 转置

Details

设置 IIR 滤波器的离散结构。

Direct form I | Direct form I transposed | Direct form II | Direct form II transposed

默认值

Direct form II

程序使用名称

FilterStructure

可调谐

可计算

# 分母源 — 分母系数源
对话框 | 输入端口

Details

指明分母系数的来源:

  • 对话框- 分母系数在参数 分母系数 中指定;

  • 输入端口- 分母系数将发送到 Num 端口。

Dialog | Input port

默认值

Dialog

程序使用名称

NumeratorSource

可调谐

可计算

# 分母系数 — 分子系数
Scalar / array of real numbers

Details

离散滤波器数值系数的递减度 。使用列向量指定单个分子多项式的系数。

依赖关系

要使用此选项,请将 分母源 参数设置为 对话框.

默认值

[1.0]

程序使用名称

Numerator

可调谐

可计算

# 分母源 — 分母系数来源
对话框 | 输入端口

Details

说明分母系数的来源:

  • 对话框- 分母系数在参数 分母系数 中指定;

  • 输入端口- 分母系数将发送到 Den 端口。

如果从 Den 输入端口指定分母系数,则必须选择 通过跳过除以前导分母系数进行优化 (a0) 复选框。

Dialog | Input port

默认值

Dialog

程序使用名称

DenominatorSource

可调谐

可计算

# 分母系数 — 分母系数
Scalar / array of real numbers

Details

离散滤波器分母系数递减度 。使用列向量指定单分母多项式的系数。

如果选中 通过跳过除以前导分母系数进行优化 (a0) ,则在 分母系数 指定分母系数和 .

依赖关系

要使用该参数,请将 分母源 参数设置为 对话框.

默认值

[1.0, 0.5]

程序使用名称

Denominator

可调谐

可计算

# 初始状态源 — 初始状态源
对话 | 输入端口

Details

指定初始状态的来源:

  • 对话- 初始状态在参数 初始状态 中指定;

  • 输入端口- 初始状态通过端口 *x0*接收。

依赖关系

要使用该参数,请将 过滤器结构 设置为 直接形式 II`或 `直接形式 II 转置.

Dialog | Input port

默认值

Dialog

程序使用名称

InitialStatesSource

可调谐

可计算

# 初始状态 — 滤波器的初始状态
Scalar / array of real numbers

Details

以标量、向量或矩阵形式表示的滤波器初始状态。

依赖关系

要使用该参数,请将 过滤器结构 设置为 直接形式 II`或 `直接形式 II 转置,并将 初始状态源 设置为 对话.

默认值

0.0

程序使用名称

InitialStates

可调谐

可计算

# 分子侧的初始状态 — 分子的初始状态
Scalar / array of real numbers

Details

以标量、向量或矩阵形式指定滤波器分子的初始状态。

依赖关系

要使用该参数,请将 过滤器结构 参数设置为 直接形式 I`或 `直接形式 I 转置.

默认值

0.0

程序使用名称

InitialStatesNumSide

可调谐

可计算

# 分母侧的初始状态 — 分母的初始状态
Scalar / array of real numbers

Details

滤波器分母的标量、向量或矩阵初始状态。

依赖关系

要使用该参数,请将 过滤器结构 设置为 直接形式 I`或 `直接形式 I 转置.

默认值

0.0

程序使用名称

InitialDenominatorStates

可调谐

可计算

# 外部复位 — 外部状态复位
| 上升 | 下落 | 要么 | 级别 | 电平保持

Details

指定用于将状态重置回初始状态的触发事件。可选项

  • - 无重置。

  • 上升- 上升沿复位。

  • 下落- 下降沿复位。

  • 要么- 上升沿或下降沿复位。

  • 级别- 在任何一种情况下都可复位:

    • 当当前时间步长的复位信号与零不同时。

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

  • 电平保持- 当复位信号在当前时间步长内与零值不同时复位。

None | Rising | Falling | Either | Level | Level hold

默认值

None

程序使用名称

ExternalReset

可调谐

可计算

# 输入处理 — 基于样本或基于帧的处理
列作为通道(基于帧) | 作为通道的元素(基于样本)

Details

指定区块执行基于采样还是基于帧的处理:

  • 作为通道的元素(基于样本)- 将输入信号的每个元素作为独立通道进行处理。

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

Columns as channels (frame based) | Elements as channels (sample based)

默认值

Elements as channels (sample based)

程序使用名称

InputProcessing

可调谐

可计算

# 通过跳过除以前导分母系数进行优化 (a0) — 跳过除法 a0
Logical

Details

如果选中,程序块在模拟时将不会除以 。该参数可优化代码。如果在程序块参数中指定了分母系数,而值为 ,则会出现错误。

如果从 Den 输入端口指定分母系数,则必须选择 通过跳过除以前导分母系数进行优化 (a0) 复选框。选中该复选框后,程序块将忽略前导分母系数 并用 1 代替。

如果取消选中该复选框,程序块将在模拟过程中完全自定义。在模拟过程中,它将除以

默认值

false (关掉)

程序使用名称

a0EqualsOne

可调谐

可计算

# 采样时间 — 计算间隔
SampleTime (real number / vector of two real numbers)

Details

以非负数指定计算步骤之间的间隔。要继承一个计算步骤,请将此参数设置为 -1

默认值

-1

程序使用名称

SampleTime

可调谐

可计算