AnyMath 文档

工程师。Sos过滤器

基于二阶段的IIR滤波器结构的实现。

库::`工程师`

资料描述

要使用二阶段(sos)实现IIR滤波器结构,请执行以下步骤:

  1. 创建*EngeeDSP。Sosfilter*对象并设置其属性。

  2. 用参数调用对象,就好像它是一个函数一样。

若要了解有关如何使用系统对象的详细信息,请参阅 AnyMath系统对象.

语法

创作

  • sos=EngeeDSP。Sos过滤器() -返回biquadrate iir筛选器对象 sos,其独立地按时间过滤输入信号的每个通道(列),使用给定的biquadrate结构。

  • sos=EngeeDSP。SOSFilter(名称=值) -返回biquadrate iir筛选器对象 sos 将指定的属性作为一对 名称=值,在哪里 姓名 -物业的名称,以及 价值 -适当的值。 您可以指定多个对 «名称-值» 对的顺序并不重要。 未指定的属性保留其默认值。

使用

  • y=sos(x) -过滤输入信号 x 并输出滤波后的值 y. 过滤器对象 sos 通过对算法的连续调用独立过滤输入信号的每个通道(列)。

    只有当属性*[Property:CoordicientSource]*设置了值时,才能使用此语法 "财产".

  • y=sos(x,num,den) -过滤输入信号 x 使用参数的值 num 作为分子的系数,以及 书房 -作为滤波器分母的系数。

    只有当属性*[Property:CoordicientSource]*设置了值时,才能使用此语法 "输入端口",并为属性*HasScaleValues*值 错误.

  • y=sos(x,num,den,g) -也使用缩放因子 g 为二阶段滤波器。

    只有当属性*[Property:CoordicientSource]*设置了值时,才能使用此语法 "输入端口",并为属性*HasScaleValues*值 真的.

争论

输入参数

x — 输入信号

+ 标量,标量 | 向量资料 | 矩阵

Details

指定为标量、矢量或矩阵的输入信号。

该对象还接受可变大小的输入信号。 运行系统对象算法后,可以更改每个输入通道的大小,但不能更改通道数。

输入信号可以用格式表示 固定点。 如果未指定小数部分的长度,则对象根据输入数据确定它,以确保尽可能高的精度。

所有输入参数的数据类型必须相同。

数据类型

漂浮物32, 漂浮64, Int8, Int16, Int32, Int64, 固定</无翻译> 支持复数::是

num — 分子的系数

+ P×3矩阵

Details

分子的系数,作为矩阵给出 ,在哪里 -biquadrate过滤器的部分数。 每一行对应于相应滤波器部分的分子的系数。

运行算法后,无法更改此输入参数的大小。 但是,分子系数的值可以更改,因为输入是可配置的。

该*num*信号可以在格式表示 固定点。 如果未指定小数部分的长度,则对象根据输入数据确定它,以确保尽可能高的精度。

所有输入参数的数据类型必须相同。

输入参数*num*和*den*的大小和复杂度必须相同。

依赖关系

若要使用此参数,请将属性设置为*[Property:Coefficient Source]*value "输入端口".

数据类型

漂浮物32, 漂浮64, Int8, Int16, Int32, Int64, 固定</无翻译> 支持复数::是

书房 — 分母系数

+ P×3矩阵

Details

滤波器分母的系数,作为矩阵给出 ,在哪里 -biquadrate过滤器的部分数。 每一行对应于相应滤波器部分的分母的系数。

分母的前导系数始终假定为相等 1. 如果在第一列中指定了任何其他值,则对象将忽略此值并将其视为 1.

运行算法后,无法更改此输入参数的大小。 然而,分母系数的值可以改变,因为输入是可配置的。 *Den*信号可以用格式表示 固定点。 如果未指定小数部分的长度,则对象根据输入数据确定它,以确保尽可能高的精度。

所有输入参数的数据类型必须相同。

输入参数*num*和*den*的大小和复杂度必须相同。

依赖关系

若要使用此参数,请将属性设置为*[Property:Coefficient Source]*value "输入端口".

数据类型

漂浮物32, 漂浮64, Int8, Int16, Int32, Int64, 固定</无翻译> 支持复数::是

g — 每个二阶双二阶段的缩放因子

+ 矢量1×(P+1)

Details

双二阶滤波器的缩放系数,设置为向量 ,在哪里 -biquadrate过滤器的部分数。

该*g*信号可以在格式表示 固定点。 如果未指定小数部分的长度,则对象根据输入数据确定它,以确保尽可能高的精度。

所有输入参数的数据类型必须相同。

依赖关系

若要使用此参数,请将属性设置为*[Property:Coefficient Source]*value "输入端口",并为属性*HasScaleValues*值 真的.

数据类型

漂浮物32, 漂浮64, Int8, Int16, Int32, Int64, 固定</无翻译>

输出参数

y — 滤波后的输出信号

+ 标量,标量 | 向量资料 | 矩阵

Details

滤波后的输出信号作为标量、矢量或矩阵返回。 输出信号的大小和复杂度与输入信号的大小和复杂度相同。

如果输入信号以定点格式表示,则根据*OutputDataType*的值确定输出信号的数据类型。 如果对于属性*OutputDataType*值集 "全精度" 输出数据的类型是根据<定点转换>>一节中给出的信号流图计算的。 如果为属性*OutputDataType*设置了自定义值,则输出数据将转换为指定的数字类型。

如果输入信号以浮点格式表示,则输出数据类型与输入数据类型相同,因为浮点继承优先于定点设置。

数据类型

漂浮物32, 漂浮64, Int8, Int16, Int32, Int64, 固定</无翻译> 支持复数::是

特征

# 结构 — 过滤器结构

+ "直接形式II换位" (默认情况下)| "直接表格I" | "直接形式我换位" | "直接表格II"

Details

过滤器结构,定义为 "直接表格I", "直接形式我换位", "直接表格II""直接形式II换位" (默认情况下)。

# 系数来源 — 滤波器系数的来源

+ "财产" (默认情况下)| "输入端口"

Details

滤波器系数的来源指定为以下之一:

  • "财产" (默认情况下)—滤波器系数通过属性设置*Numerator*,Denominator*和ScaleValues*。

  • "输入端口" -分子、分母和比例系数的系数在执行算法时被指定为对象的输入参数。

# 分子 — 滤波器分子的系数

+ [0.0975 0.195 0.0975] (默认情况下)| P×3矩阵

Details

滤波器的分子的系数,设为矩阵 ,在哪里 -biquadrate过滤器的部分数。 每一行对应于相应滤波器部分的分子的系数。

依赖关系

要使用此属性,请设置*[Property:Coefficient Source]*值 "财产".

# 分母 — 滤波器分母的系数

+ [1 -0.9428 0.3333] (默认情况下)| P×3矩阵

Details

滤波器分母的系数,作为矩阵给出 ,在哪里 -biquadrate过滤器的部分数。 每一行对应于相应滤波器部分的分母的系数。

分母的前导系数始终假定为相等 1. 如果在第一列中指定了任何其他值,则对象将忽略此值并将其视为 1.

执行算法后,无法更改此属性的大小。 但是,分母值可以更改,因为属性是可配置的。

依赖关系

要使用此属性,请设置*[Property:Coefficient Source]*值 "财产".

# HasScaleValues — 指定筛选器是否具有每个部分的比例因子

+ 错误 (默认情况下)| 真的

Details

指定筛选器是否具有每个部分的比例因子。 如果值设置为 真的,使用*ScaleValues*您可以设置将在biquadrate过滤器的每个部分之前和之后应用的缩放因子。

# 标量 — 二阶双二阶滤波器的每个部分的缩放系数

+ [1 1] (默认情况下)| 向量资料

Details

在biquadrate滤波器的每个部分之前和之后应用的缩放因子,设置为矢量。 *ScaleValues*向量的长度必须为 ,在哪里 -biquadrate过滤器的部分数。 如果为此属性设置标量值,则仅在过滤器的第一部分之前将其用作增益因子。 其余增益值设置为 1. 如果您从以下位置为此属性设置向量 值,每个值将用于单独的过滤器部分。

依赖关系

要使用此属性,请设置*[Property:Coefficient Source]*值 "财产",并为属性*HasScaleValues*值 真的.

# RoundingMethod — 四舍五入法

+ "地板" (默认情况下)| "天花板" | "收敛" | "最近" | "圆" | "最简单" | "零"

Details

整数类型和定点数运算的舍入方法,指定为以下之一:

  • "地板" (默认情况下);

  • "天花板";

  • "收敛";

  • "最近";

  • "圆";

  • "最简单";

  • "零".

# 过度流动 — 溢出动作的选择

+ "包装" (默认情况下)| "饱和"

Details

使用整数类型和定点数时使用的溢出操作的选择,设置为以下之一:

  • "包装" (默认)-对象用固定点包装其操作的结果。

  • "饱和" -对象用固定点使其操作的结果饱和。

# *SectionInputDataType*是 筛选器部分输入端的数据类型

+ "与输入相同" (默认情况下)

Details

处理整数类型和定点数时使用的筛选器部分输入端的数据类型。

依赖关系

若要使用此属性,请设置*HasScaleValues*值 真的.

# *SectionOutputDataType*是 筛选器部分输出端的数据类型

+ "与部分输入相同" (默认情况下)

Details

处理整数类型和定点数时使用的筛选器部分输出端的数据类型。

依赖关系

若要使用此属性,请设置*HasScaleValues*值 真的.

# *NumeratorDataType*是 分子系数的数据类型

+ "与输入相同的字长" (默认情况下)

Details

处理整数类型和定点数时使用的分子系数的数据类型。

依赖关系

要使用此属性,请设置*[Property:Coefficient Source]*值 "财产".

# *DenominatorDataType*是 分母系数的数据类型

+ "与输入相同的字长" (默认情况下)

Details

使用整数类型和定点数时使用的分母系数的数据类型。

依赖关系

要使用此属性,请设置*[Property:Coefficient Source]*值 "财产".

# ScaleValuesDataType — 缩放系数的数据类型

+ "与输入相同的字长" (默认情况下)

Details

使用整数类型和定点数时使用的缩放因子的数据类型。

依赖关系

要使用此属性,请设置*[Property:Coefficient Source]*值 "财产",并为属性*HasScaleValues*值 真的.

# *MultiplicandDataType*是 内部中间乘法器的数据类型

+ "与输出相同" (默认情况下)

Details

处理整数类型和定点数时使用的内部中间乘法器的数据类型。

依赖关系

若要使用此属性,请将*Structure*属性设置为 "直接形式我换位".

# *StateDataType*是 内部状态的数据类型

+ "全精度" (默认情况下)

Details

处理整数类型和定点数时使用的内部状态数据类型。

依赖关系

若要使用此属性,请将*Structure*属性设置为 "直接表格II".

# 分母,分母 — 累加器数据类型

+ "与输入相同的字长" (默认情况下)

Details

过滤器中所有累加器的数据类型,在处理整数类型和定点数时使用。

依赖关系

要使用此属性,请设置*[Property:Coefficient Source]*值 "财产".

# *OutputDataType*是 输出信号的数据类型

+ "全精度" (默认情况下)

Details

整型和定点数时使用的输出信号的数据类型。

方法

所有系统对象通用

步!::运行系统对象运算算法 释放!::允许更改系统对象属性的值 重置!::重置系统对象的内部状态

此外

过滤结构

Details

下图显示了二阶截面过滤器支持的过滤器结构。

I的直接形式_

该图显示了过滤器中每个部分的图,如果选择了过滤器结构。 直接表格I.

sosfilter 1

该图示出了滤波器结构与 指定比例因子时的部分 .

sosfilter 3

下图显示了未指定缩放因子时的滤波器结构。

sosfilter 5

I的直接形式被转置

该图显示了过滤器中每个部分的图,如果选择了过滤器结构。 直接形式我转置.

sosfilter 7

该图示出了滤波器结构与 指定比例因子时的部分 .

sosfilter 3

下图显示了未指定缩放因子时的滤波器结构。

sosfilter 5

直接表格II_

该图显示了过滤器中每个部分的图,如果选择了过滤器结构。 直接表格II.

sosfilter 9

该图示出了滤波器结构与 指定比例因子时的部分 .

sosfilter 3

下图显示了未指定缩放因子时的滤波器结构。

sosfilter 5

直接形式II转置_

该图显示了过滤器中每个部分的图,如果选择了过滤器结构。 直接形式II转置.

sosfilter 11

该图示出了滤波器结构与 指定比例因子时的部分 .

sosfilter 3 下图显示了未指定缩放因子时的滤波器结构。

sosfilter 5

定点滤波器结构

Details

下图显示了将定点数据输入到输入时,基于二阶段的滤波器中使用的数据类型。 对于过滤器支持的每个结构,可以通过适当的设置来设置图表中显示的数据类型。

I的直接形式_

该图显示了过滤器中每个部分的图,如果选择了过滤器结构。 直接表格I. 下图显示了应用定点信号时的数据类型。 加固作业 , , , 它们以完全准确的方式执行。

sosfilter 2

这些图显示了筛选器部分之间的定点数据类型。

*数据未优化时。

+ sosfilter 4

*当比例因子设置为 1.

+ sosfilter 6

I的直接形式被转置

该图显示了过滤器中每个部分的图,如果选择了过滤器结构。 直接形式我转置. 此图显示了输入定点信号时的数据类型。 If for a property*HasScaleValues*值集 错误,没有虚线铸造。 加固作业 , , , 它们以完全准确的方式执行。

sosfilter 8

这些图显示了筛选器部分之间的定点数据类型。

*数据未优化时。

+ sosfilter 4

*当比例因子设置为 1.

+ sosfilter 6

直接表格II

该图显示了过滤器中每个部分的图,如果选择了过滤器结构。 直接表格II. 此图显示了输入定点信号时的数据类型。 If for a property*HasScaleValues*值集 错误,则操作 演员阵容 缺席。 加固作业 , , , 它们以完全准确的方式执行。

sosfilter 10

这些图显示了筛选器部分之间的定点数据类型。

*数据未优化时。

+ sosfilter 4

*当比例因子设置为 1.

+ sosfilter 6

直接形式II转置_

该图显示了过滤器中每个部分的图,如果选择了过滤器结构。 直接形式II转置. 下图显示了输入定点信号时的数据类型。 加固作业 , , , 它们以完全准确的方式执行。 If for a property*HasScaleValues*值集 错误,section输出处的数据类型由对象的算法自动确定,并且不依赖于*SectionOutputDataType*的值。

sosfilter 12

这些图显示了筛选器部分之间的定点数据类型。

*数据未优化时。

+ sosfilter 4

*当比例因子设置为 1.

+ sosfilter 6