AnyMath 文档

n.长度,长度

冲响应的持续时间。

库::`工程师`

语法

函数调用

* [参数:len]=impzlength([参数:b],[参数:a]) -返回指定数字滤波器的脉冲响应的持续时间。 用多项式给出的有理系统函数指定因果离散滤波器 在分子中 [参数:b] 和分母 [参数:a]. 用于稳定的IIR过滤器 -脉冲响应序列的有效长度。 项之后的IIR滤波器脉冲响应的项 ,几乎为零。

* [参数:len]=impzlength([参数:BA],"ctf") -返回数字滤波器脉冲响应的有效持续时间,表示为 级联传递函数(CTF)与分子系数 B 和分母的系数 a.

* len=impzlength((B,A,g),"ctf") -以CTF格式返回数字滤波器的有效脉冲响应持续时间。 指定具有分子系数的滤波器 B,分母的系数 A 和比例值 [参数:g] 通过过滤部分。

* [参数:len]=impzlength([参数:sos]) -返回iir滤波器脉冲响应的持续时间,由二阶段矩阵指定 [参数:sos]. 论点 [参数:sos] —这是一个大小矩阵 ,节数在哪里 必须大于或等于 2. 如果节数较少 2,功能 *长度* 将输入数据处理为数值器的向量 [参数:b]. 每行 [参数:sos] 对应于二阶(biquadrate)滤波器的系数; -我是一根绳子 [参数:sos] 回应 繝ウ繝舌シ縺ォ縺、縺縺ヲ縺ッ縺薙■繧峨r縺碑ヲァ縺上□縺辅>缧.

* <参数:len>=impzlength(___,[参数:tol]) -设置用于估计IIR滤波器的有效脉冲响应持续时间的容差。 参数的默认值为 [参数:tol] 同样 5e-5. 增加价值 [参数:tol] 允许估计iir滤波器的较短有效脉冲响应持续时间。 降低价值 [参数:tol] 这导致IIR滤波器的脉冲响应的有效持续时间的增加。

争论

输入参数

# *b* — 分子系数

+ 向量资料 | 标量,标量

Details

分子的系数,设置为矢量或标量(具有一个极点的"理想"滤波器)。

数据类型

漂浮物32, 漂浮64</无翻译> 支持复数::是

# *一个* — 分母的系数

+ 向量资料 | 标量,标量

Details

分母系数指定为矢量或标量(FIR滤波器)。

数据类型

漂浮物32, 漂浮64</无翻译> 支持复数::是

# *B,A*是 级联传递函数的系数

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

Details

级联传递函数的系数,指定为标量、矢量或矩阵。 在矩阵中 BA 分别列出了级联传递函数的分子和分母的系数。

矩阵 B 必须有一个大小 ,和矩阵 A ,在哪里

* -过滤器部分的数量; * -过滤器的分子的顺序; * -过滤器分母的顺序。

有关级联传递函数格式和系数矩阵的详细信息,请参阅以CTF格式设置数字滤波器

如果矩阵的任何元素 A[:,1] 不等于 1,则函数 *长度* 通过归一化滤波器系数 A[:,1]. 在这种情况下 A[:,1] 必须是非零。
数据类型

漂浮物32, 漂浮64</无翻译> 支持复数::是

# *g* — 比例值

+ 标量,标量 | 向量资料

Details

标度值指定为实标量或矢量,实值包含 其中的元素 -级联传递函数的节数。 比例值表示滤波器增益在级联滤波器表示的各部分之间的分布。

功能 *长度* 使用函数将增益应用于滤波器部分 *标量筛选器* 取决于参数的设置方式 g:

* 标量,标量 -该功能在滤波器的所有部分均匀分布增益;

* 向量资料 -该功能应用第一个 将增益值应用于相应的滤波器部分,并将最后一个增益值均匀分布在所有滤波器部分。

数据类型

漂浮64, 漂浮物32</无翻译>

# *sos* — 二阶段的矩阵

+ 矩阵

Details

二阶段的矩阵,定义为大小矩阵 . 系统功能 Th biquadrate滤波器具有合理的Z变换

系数在 -矩阵的第一行 sos 排序如下:

滤波器的频率响应是使用公式在单位圆上计算的系统函数

名称-值输入参数

将可选参数对指定为 名称=值,在哪里 姓名 -参数的名称,以及 价值 -适当的值。

# *托尔*是 IIR滤波器的有效脉冲响应持续时间的容差

+ 5e-5 (默认情况下)| 标量,标量

Details

IIR滤波器的有效脉冲响应持续时间的容差,设置为正标量。 容差定义绝对求和序列的项,之后后续项被视为相等。 0. 默认容差值为 5e-5. 增加容差导致脉冲响应序列的有效持续时间的减少。 容差的减小导致脉冲响应序列的有效持续时间的增加。

输出参数

# *莱恩* — 脉冲响应的持续时间

+ 一个正整数

Details

脉冲响应的持续时间,作为正整数返回。 对于具有绝对求和脉冲特性的稳定IIR滤波器,函数 *长度* 返回脉冲响应的有效持续时间,超过该持续时间,系数几乎为零。 您可以通过设置可选的输入参数来控制此截止点。 [参数:tol].

例子:

IIR滤波器的有效脉冲响应持续时间-系数

Details

让我们创建一个"理想"(带一个极点)IIR低通滤波器,频率上有一个极点 0.9. 计算脉冲响应的有效持续时间。 我们得到了脉冲响应。 让我们绘制结果图。

import EngeeDSP.Functions: impzlength

b = [1]
a = [1 -0.9]
len = impzlength(b, a)
93
import EngeeDSP.Functions: impz

h, t = impz(b, a)

plot(t, h,
     seriestype = :stem, marker = :circle,
     legend = false)

impzlength 1

h[len]
6.170365191715192e-5

此外

级联传递函数

Details

将数字IIR滤波器拆分为级联部分可提高其数值稳定性并降低其对系数量化误差的敏感性。 传递函数的级联形式 传递函数 ,具有形式

butter cn

以CTF格式设置数字滤波器

Details

数字滤波器可以设计成CTF格式来分析、可视化和过滤信号. 滤波器通过枚举其系数来设置 BA. 您还可以通过设置标量或矢量值来按部分指定过滤器的缩放因子。 [参数:g].

过滤器的影响

形式设置系数时 -小写矩阵

假设滤波器被设置为 级联传递函数,使得滤波器的完整传递函数具有形

哪里 -过滤器分子的顺序,以及 -分母的顺序。

*如果 定义为向量,假设基本系统为单节IIR滤波器( ),在哪里 表示传递函数的分子,并且 -它的分母。

*如果 -标量,假设滤波器是具有极点的IIR滤波器的级联,并且每个级联的系统的总增益等于 .

*如果 -标量,假设滤波器是FIR滤波器的级联,每个级联的系统总增益等于 .

*要将二阶截面矩阵转换为级联传递函数,请使用该函数 *sos2ctf*. *要将具有零、极点和增益的滤波器表示转换为级联传递函数,请使用该函数 *zp2ctf*.

效应和放大

如果有一个共同的尺度增益或几个尺度增益因子在滤波器系数的值之外,则可以将系数和增益指定为元组。 (B,A,g). 在使用定点算术时,缩放滤波器部分尤其重要,以确保每个滤波器部分的输出信号具有相似的幅度水平,这有助于避免由于计算精度有限而导致滤波器频率响应的不准确性。

增益可以是标量总增益或区段增益系数的向量。

*如果增益是标量的,则其值均匀地应用于级联滤波器的所有部分。

*如果增益是一个矢量,它必须包含一个元素比滤波器部分的数量多。 在级联中。 每个第一 比例值应用于相应的滤波器部分,最后一个值平均应用于级联滤波器的所有部分。

如果将滤波器系数矩阵和增益系数向量指定为

假设滤波器系统的传递函数具有形式

算法

为了计算FIR滤波器的脉冲响应,函数 *长度* 使用参数的长度 [参数:b].

对于IIR滤波器,函数首先使用函数找到传递函数的极点 *根*.

*如果滤波器不稳定,长度会增加,直到最大极点引起的项达到的点为止 -其初始值的倍数增加。

*如果滤波器是稳定的,则长度增加到由于具有最大振幅的极点引起的项的点,在 [参数:tol] 它超过其初始幅度数倍。

*如果滤波器是振荡的,并且仅在单位圆上具有极点,则函数 *长度* 计算波动最慢的五个周期。

*如果滤波器同时具有振荡项和衰减项,则长度增加到以下值中的较大值:

**波动最慢的五个时期;

**由于最大极的术语在的时刻 [参数:tol] 倍的初始振幅。

文学作品

  1. 里昂,理查德G._Understanding数字信号处理._上鞍河,NJ:普伦蒂斯霍尔,2004.