Discrete Filter
无限脉冲响应(IIR)滤波器模型。
类型: DiscreteFilter
图书馆中的路径:
|
说明
Discrete Filter 设备使用指定的数字近红外滤波器对输入信号的每个通道进行独立滤波。
您可以指定滤波器结构为 Direct form I
, Direct form I transposed
, Direct form II`或 `Direct form II transposed
.
该模块实现了一个具有固定系数的静态滤波器。输入信号的每个通道在时间上都是独立滤波的。
通过参数 Input processing ,可以指定程序块如何处理每个输入元素。您可以指定是将输入元素作为一个独立通道 (Elements as channels (sample based)
) 或将每个输入列作为一个独立通道进行处理 (Columns as channels (frame based)
).
在基于帧的模式下,输出尺寸等于输入尺寸,除非您指定一个矩阵作为参数 Numerator coefficients 。在基于采样的模式下,core-modeling/vectorization-broadcast-modeling.adoc#broadcast 。
Numerator coefficients 参数指定滤波器分子多项式的系数。参数 Denominator coefficients 指定函数分母多项式的系数。
分子多项式和分母多项式的系数按度数升序设置 。 Discrete Filter 块允许使用 (延迟算子)中的多项式来表示离散系统。这种方法通常用于数字信号处理 (DSP)。相反,Discrete Transfer 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]",以此类推。
维数有可能更大。一般规则是:第一个维度对应不同延迟的初始条件,后面的维度对应不同的通道。通道不仅可以是矢量的元素,也可以是矩阵和更高维数组的元素。
延迟数的确定如上所述。对于 `Direct form I`和 `Direct form I transposed`的延迟数等于分子长度减 1,分母的延迟数等于分母长度减 1。对于 `Direct form II`和 `Direct form II transposed`为分母和分子长度的最大值减 1。
参数 Initial states 设置滤波器延迟的初始状态。
下表介绍了如何确定初始状态值的数量以及具体的设置方法。该表给出了允许的初始状态和延迟元素(滤波状态)的数量。如下表所示,参数 Initial states 可以有四种形式。
初始状态 | 示例 | 说明 |
---|---|---|
标量 |
5 每个通道的每个延迟元素都设置为 5。 |
该模块初始化滤波器中的所有延迟元素,标量值为 |
矢量或矩阵 (对每个通道应用不同的延迟元素)。 |
对于一个三通道输入信号和一个有两个延迟元素的滤波器来说 或 ]]。 通道 1 的延迟元素为 。 通道 2 的延迟元素为 。 通道 3 的延迟元素为 。 |
矢量或矩阵的每个元素都指定了相应通道中相应延迟元素的唯一初始条件:
|
每个输入通道的延迟元素(滤波器状态)数量取决于滤波器结构,如下表所示。
滤波器结构 | 每个通道的延迟元件数 |
---|---|
|
|
|
最大(零点数,极点数)- 1 |
下表描述了不同输入数据大小和不同通道数下允许的初始状态,具体取决于参数值 Input processing - 基于帧的处理 Columns as channels (frame based)`或基于采样的处理 `Elements as channels (sample based)
.
输入 | 通道数 | 允许的初始状态(对话框) | 允许的初始状态(输入端口) |
---|---|---|---|
矢量列 ( 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
外部信号,用于将程序块状态重置为初始状态。
依赖关系
要使用该端口,请将 External reset 参数设置为除 None
.
数据类型 |
Float64`以外的任何值。 |
复数支持 |
无 |
#
书房
—
分母系数
标量 | 向量 | 矩阵
Details
离散滤波器分母系数递减度 。使用列向量指定单分母多项式的系数。
依赖关系
要使用此端口,请将 Denominator source 参数设置为 Input port
.
如果从 Den 输入端口指定分母系数,则必须选择 Optimize by skipping divide by leading denominator coefficient (a0) 复选框 。选中该复选框后,程序块将忽略前导分母系数 ,并用 1
代替。
数据类型 |
Float64`。 |
复数支持 |
无 |
#
编号
—
分子系数
标量 | 向量 | 矩阵
Details
离散滤波器数值系数的递减度 。使用列向量指定单个分子多项式的系数。
依赖关系
要使用此端口,请将 Numerator source 参数设置为 Input port
.
数据类型 |
Float64`。 |
复数支持 |
无 |
#
x0
—
滤波器的初始状态
标量 | 向量 | 矩阵
Details
以标量、向量或矩阵形式表示的滤波器初始状态。
依赖关系
要使用此端口,请将 Filter Structure 设置为 Direct form II`或 `Direct form II transposed
,并将 Initial states source 设置为 Input port
.
数据类型 |
Float64`。 |
复数支持 |
无 |
参数
参数
#
Filter Structure —
过滤器结构
Direct form I
| Direct form I transposed
| Direct form II
| Direct form II transposed
Details
指定iir滤波器的离散结构。
值 |
|
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
无 |
#
Numerator source —
分子系数的来源
Dialog
| Input port
Details
指定分子系数的来源:
-
Dialog
-分子的系数在参数中设置 Numerator coefficients ; -
Input port
-分子系数被发送到*Num*端口。
值 |
|
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
无 |
#
Numerator coefficients —
分子系数
Scalar / array of real numbers
Details
作为递减幂的离散滤波器分子的系数 . 使用列向量设置单个分子多项式的系数。
依赖关系
若要使用此参数,请为参数设置 Numerator source 意义 Dialog
.
默认值 |
|
程序使用名称 |
|
可调谐 |
是 |
可计算 |
是 |
#
Denominator source —
分母系数的来源
Dialog
| Input port
Details
指定分母系数的来源:
-
Dialog
-分母的系数在参数中设置 Denominator coefficients ; -
Input port
-分母系数被发送到*Den*端口。
如果从输入端口*Den*指定分母系数,则选中该框 Optimize by skipping divide by leading denominator coefficient (a0) .
值 |
|
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
无 |
#
Denominator coefficients —
分母系数
Scalar / array of real numbers
Details
离散滤波器的分母系数作为递减幂 . 使用列向量设置单分母多项式的系数。
如果选中该复选框 Optimize by skipping divide by leading denominator coefficient (a0) ,如果在参数中出现错误 Denominator coefficients 分母的系数表示,并且 .
依赖关系
若要使用此参数,请为参数设置 Denominator source 意义 Dialog
.
默认值 |
|
程序使用名称 |
|
可调谐 |
是 |
可计算 |
是 |
#
Initial states source —
初始状态的来源
Dialog
| Input port
Details
指定初始状态的来源:
-
Dialog
-初始状态在参数中设置 Initial states ; -
Input port
-初始状态发送到端口*x0*。
依赖关系
若要使用此参数,请为参数设置 Filter Structure 意义 Direct form II
或 Direct form II transposed
.
值 |
|
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
无 |
#
Initial states —
初始过滤器状态
Scalar / array of real numbers
Details
滤波器的初始状态采用标量、矢量或矩阵的形式。
依赖关系
若要使用此参数,请为参数设置 Filter Structure 意义 Direct form II
或 Direct form II transposed
,而对于参数 Initial states source 意义 Dialog
.
默认值 |
|
程序使用名称 |
|
可调谐 |
是 |
可计算 |
是 |
#
Initial states on numerator side —
分子的初始状态
Scalar / array of real numbers
Details
以标量、矢量或矩阵的形式指定滤波器分子的初始状态。
依赖关系
若要使用此参数,请为参数设置 Filter Structure 意义 Direct form I
或 Direct form I transposed
.
默认值 |
|
程序使用名称 |
|
可调谐 |
是 |
可计算 |
是 |
#
Initial states on denominator side —
分母的初始状态
Scalar / array of real numbers
Details
以标量、矢量或矩阵形式的滤波器分母的初始状态。
依赖关系
若要使用此参数,请为参数设置 Filter Structure 意义 Direct form I
或 Direct form I transposed
.
默认值 |
|
程序使用名称 |
|
可调谐 |
是 |
可计算 |
是 |
#
External reset —
重置外部状态
None
| Rising
| Falling
| Either
| Level
| Level hold
Details
指定将用于将状态返回到初始条件的触发器事件。 可供选择的选项:
-
None
-没有重置。 -
Rising
-在上升的正面复位。 -
Falling
-复位下降沿。 -
Either
-在上升沿或下降沿复位。 -
Level
-在任何这些情况下重置:-
时,所述复位信号在当前时间步长非零。
-
时,所述复位信号值从前一时间步中的非零变为当前时间步中的零。
-
-
Level hold
-当复位信号在当前时间步长中不同于零时复位。
值 |
|
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
无 |
#
Input processing —
基于样本或基于帧的处理
Columns as channels (frame based)
| Elements as channels (sample based)
Details
指定块是执行基于样本还是基于帧的处理。:
-
Elements as channels (sample based)
-将输入信号的每个元素作为独立通道进行处理。 -
Columns as channels (frame based)
-将输入信号的每一列作为独立通道处理。
有关详细信息,请参阅 按帧和计数进行信号处理.
值 |
|
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
无 |
#
Optimize by skipping divide by leading denominator coefficient (a0) —
跳过a0
Logical
Details
如果选中此框,则块不会被划分为 在模拟中。 此参数优化代码。 如果在块参数中指定分母的系数,并且值 ,则会发生错误。
如果从输入端口*Den*指定分母系数,则选中该框 Optimize by skipping divide by leading denominator coefficient (a0) . 当选择此选项时,块忽略分母的前导系数。 并将其替换为`1'。
如果取消选中此框,则该块将在模拟期间完全可配置。 它将除以 在模拟过程中。
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
无 |
#
Sample time —
计算步骤之间的间隔
SampleTime (real number / vector of two real numbers)
Details
将计算步骤之间的间隔指定为非负数。 要继承计算步骤,请将此参数设置为-1。
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
是 |