主要内容

dsp。IIRFilter

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

描述

dsp。IIRFilter系统对象™使用指定的过滤器过滤输入的每个通道。您可以指定过滤器具有“我直接形式”'直接形式I ' transposed'“直接形成二世”,或'直接形式II转置'结构。

使用分子分母属性来指定过滤器的分子系数和分母系数。除了这些系数外,您还可以通过InitialConditions财产。

使用IIR滤波器对信号进行过滤:

  1. 创建dsp。IIRFilter对象,并设置其属性。

  2. 使用参数调用对象,就像调用函数一样。

要了解更多关于System对象如何工作的信息,请参见什么是系统对象?

创建

描述

例子

信息检索= dsp。IIRFilter创建无限脉冲响应(IIR)过滤器系统对象,该对象使用指定的IIR过滤器实现,随着时间的推移独立地过滤输入的每个通道。

例子

信息检索= dsp。IIRFilter (名称,值创建IIR筛选器对象,将每个指定的属性设置为指定的值。将每个属性名用单引号括起来。

例子:iir = dsp。IIRFilter ('Structure','Direct form I');

属性

全部展开

除非另有说明,属性是nontunable,这意味着您不能在调用对象之后更改它们的值。对象在调用时锁定,而释放函数打开它们。

如果一个属性是可调,您可以随时更改它的值。

有关更改属性值的更多信息,请参见在MATLAB中使用系统对象进行系统设计

IIR过滤器结构,指定为“我直接形式”'直接形式I ' transposed'“直接形成二世”,或'直接形式II转置'

分子系数,指定为行向量。

例子:0.0296 0.1775 0.4438 0.5918 0.4438 0.1775 0.0296]

可调:是的

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64
复数的支持:万博1manbetx是的

分母系数,指定为行向量。主分母系数必须相等1

例子:0.0000 -0.0000 0.7777 -0.0000 0.1142 -0.0000 0.0018]

可调:是的

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64
复数的支持:万博1manbetx是的

过滤器状态的初始条件,指定为下列条件之一:

  • 标量——对象将过滤器中的所有延迟元素初始化为标量值。

  • 向量——向量的长度等于滤波器中的延迟元素的数量。每个向量元素为相应的延迟元素指定一个唯一的初始条件。对象对输入信号的每个通道应用相同的向量。

  • matrix——矩阵中的行数必须等于滤波器中的延迟元素数。矩阵中的列数必须等于输入中的通道数。每个元素为相应信道中的相应延迟元素指定一个唯一的初始条件。

过滤器状态数等于max(N) - 1,其中N是极点数,和是0的个数。

可调:是的

依赖关系

此属性仅在设置结构财产“直接形成二世”'直接形式II转置'

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64
复数的支持:万博1manbetx是的

滤波器的初始条件在滤波器结构的零一侧,指定为如下之一:

  • 标量——对象将过滤器中0边的所有延迟元素初始化为标量值。

  • 向量——向量的长度等于滤波器中0边的延迟元素的数量。每个向量元素为0边对应的延迟元素指定一个唯一的初始条件。该对象对输入信号的每个通道应用相同的初始条件向量。

  • matrix——矩阵的行数必须等于滤波器中零边的延迟元素数。矩阵中的列数必须等于输入信号中的通道数。每个元素在对应的信道中为对应的零端延迟元素指定一个唯一的初始条件。

过滤器状态数等于max(N) - 1,其中N是极点数,和分别为0的个数。

可调:是的

依赖关系

此属性仅在设置结构财产“我直接形式”'直接形式I ' transposed'

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64
复数的支持:万博1manbetx是的

在带有极点的滤波器结构一侧的滤波器状态的初始条件,其中之一为:

  • 标量——该对象将过滤器中极点一侧的所有延迟元素初始化为标量值。

  • 向量——向量的长度等于滤波器中极点一侧的延迟元素的数量。每个向量元素为极点一侧的相应延迟元素指定一个唯一的初始条件。该对象对输入信号的每个通道应用相同的初始条件向量。

  • 矩阵——矩阵中的行数必须等于滤波器中极点侧的延迟元素数。矩阵中的列数必须等于输入信号中的通道数。每个元素为相应信道中极点侧的相应延迟元素指定一个唯一的初始条件。

过滤器状态数等于max(N) - 1,其中N是极点数,和分别为0的个数。

可调:是的

依赖关系

此属性仅在设置结构财产“我直接形式”'直接形式I ' transposed'

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64
复数的支持:万博1manbetx是的

定点属性

选择舍入模式为定点操作。

定点操作的溢出操作,指定为下列操作之一:

  • “包装”对象包装其定点操作的结果。

  • “饱和”——对象饱和其定点操作的结果。

有关溢出操作的详细信息,请参见溢出模式为定点操作。

状态数据类型,指定为以下类型之一:

  • 同样作为输入的——状态数据类型与输入数据类型相同。

  • “自定义”——状态输出数据类型是通过CustomStateDataType财产。

状态字和分数长度,指定为字长度为16、分数长度为15的自动签名数字类型。

依赖关系

此属性仅在设置时应用StateDataType“自定义”

分子系数的数据类型,指定为:

  • “与输入的字长相同”——分子系数的字长与输入的字长相同。选择分数长度是为了给出可能的最佳精度。

  • “自定义”——分子系数的数据类型为指定的自签名数字类型CustomNumeratorCoefficientsDataType财产。

分子系数的字长和分数长,指定为字长为16、分数长为15的自动签名数字类型。

依赖关系

此属性仅在设置时应用NumeratorCoefficientsDataType“自定义”

分母系数的数据类型,指定为:

  • “与输入的字长相同”——分母系数的字长与输入的字长相同。选择分数长度是为了给出可能的最佳精度。

  • “自定义”——分母系数的数据类型是由CustomDenominatorCoefficientsDataType财产。

分母系数的字长和分数长,指定为字长为16、分数长为15的自动签名数字类型。

依赖关系

此属性仅在设置时应用DenominatorCoefficientsDataType“自定义”

IIR滤波器的分子多项式乘积运算输出的数据类型,指定为以下其中之一:

  • “充分精确”——对象使用全精度规则计算分子乘积输出数据类型。这些规则提供了最精确的定点数值。没有发生量子化。根据需要添加位,以确保没有舍入或溢出发生。

  • 同样作为输入的——产品输出数据类型与输入数据类型相同。

  • “自定义”——产品输出数据类型是由CustomNumeratorProductDataType财产。方法指定舍入方法和溢出动作RoundingMethodOverflowAction属性。

分子积字和分数长度,指定为字长为32,分数长为30的自动签名数字类型。

依赖关系

此属性仅在设置时应用NumeratorProductDataType“自定义”

IIR滤波器的分母多项式乘积运算输出的数据类型,指定为以下其中之一:

  • “充分精确”——对象使用全精度规则计算分母产品输出数据类型。这些规则提供了最精确的定点数值。没有发生量子化。根据需要添加位,以确保没有舍入或溢出发生。

  • 同样作为输入的——产品输出数据类型与输入数据类型相同。

  • “自定义”属性指定的产品输出数据类型为自定义数值类型CustomDenominatorProductDataType财产。方法指定舍入方法和溢出动作RoundingMethodOverflowAction属性。

分母积单词和分数长度,指定为单词长度为32,分数长度为30的自动签名数字类型。

依赖关系

此属性仅在设置时应用DenominatorProductDataType“自定义”

IIR滤波器的分子多项式的累加运算输出的数据类型,指定为下列之一:

  • “充分精确”——对象使用全精度规则计算分子累加器数据类型。这些规则提供了最精确的定点数值。没有发生量子化。根据需要添加位,以确保没有舍入或溢出发生。

  • 同样作为输入的——累加器数据类型与输入数据类型相同。

  • “一样的产品”——累加器数据类型与产品输出数据类型相同。

  • “自定义”——累加器数据类型是由CustomNumeratorAccumulatorDataType财产。方法指定舍入方法和溢出动作RoundingMethodOverflowAction属性。

分子累加器单词和分数长度,指定为单词长度为32,分数长度为30的自动签名数字类型。

依赖关系

此属性仅在设置时应用NumeratorAccumulatorDataType“自定义”

IIR滤波器的分母多项式的累加运算输出的数据类型,指定为以下其中之一:

  • “充分精确”——对象使用全精度规则计算分母累加器数据类型。这些规则提供了最精确的定点数值。没有发生量子化。根据需要添加位,以确保没有舍入或溢出发生。

  • 同样作为输入的——累加器数据类型与输入数据类型相同。

  • “一样的产品”——累加器数据类型与产品输出数据类型相同。

  • “自定义”——累加器数据类型是由CustomDenominatorAccumulatorDataType财产。方法指定舍入方法和溢出动作RoundingMethodOverflowAction属性。

分母累加器单词和分数长度,指定为单词长度为32,分数长度为30的自签名数字类型。

依赖关系

此属性仅在设置时应用DenominatorAccumulatorDataType“自定义”

的输出的数据类型dsp。IIRFilter对象,指定为下列对象之一:

  • 同样作为输入的——输出数据类型与输入数据类型相同。

  • “充分精确”——对象使用全精度规则计算输出数据类型。这些规则提供了最精确的定点数值。没有发生量子化。根据需要添加位,以确保没有舍入或溢出发生。

  • “自定义”——输出数据类型是由CustomOutputDataType财产。方法指定舍入方法和溢出动作RoundingMethodOverflowAction属性。

输出字和分数长度,指定为字长度为16、分数长度为15的自动签名数字类型。

依赖关系

此属性仅在设置时应用OutputDataType“自定义”

Multiplicand数据类型,指定为以下类型之一:

  • 同样作为输入的——被乘数数据类型与输入数据类型相同。

  • “自定义”——multiplicand数据类型是由CustomMultiplicandDataType财产。

Multiplicand输出字和分数长度,指定为字长度为16,分数长度为15的自动签名数字类型。

依赖关系

此属性仅在设置时应用MultiplicandDataType“自定义”

使用

描述

例子

iirOut=信息检索(输入)使用指定的滤波器过滤输入信号以产生过滤后的输出。System对象随着时间的推移独立地过滤输入信号的每一列。

输入参数

全部展开

被过滤的数据输入,指定为向量或矩阵。

例子:randn(34岁24)

数据类型:||int8|int16|int32|int64|fi
复数的支持:万博1manbetx是的

输出参数

全部展开

过滤后的输出,作为向量或矩阵返回。输出的大小、数据类型和复杂性与输入的匹配。

数据类型:||int8|int16|int32|int64|fi
复数的支持:万博1manbetx是的

对象的功能

要使用对象函数,请指定System对象作为第一个输入参数。例如,释放名为system的对象的系统资源obj,使用下面的语法:

发行版(obj)

全部展开

freqz 离散时间滤波器的频率响应系统对象
fvtool 显示DSP滤波器的频率响应
impz 离散时间滤波器的脉冲响应系统对象
phasez 离散时间滤波器的相位响应系统对象(打开)
紧急求救信号 转换为二阶部分
一步 运行系统对象算法
释放 释放资源并允许更改系统对象属性值和输入特征
重置 使内部状态复位系统对象

要查看此对象支持的筛选器分析方法列表,请键入万博1manbetxdsp.IIRFilter.helpFilterAnalysis在MATLAB®命令提示符。相应的函数参考页面请参见过滤系统对象的分析方法

例子

全部折叠

用低通巴特沃斯IIR滤波器滤波带噪声的正弦信号。

请注意如果你正在使用R2016a或更早的版本,用等价的步骤语法替换每个对象调用。例如,obj (x)就变成了步骤(obj, x)

输入信号

输入信号有三种音调,1khz, 5khz和12khz。

Sine1 = dsp。SineWave (“频率”1 e3,...“SampleRate”44.1 e3);Sine2 = dsp。SineWave (“频率”5 e3,...“SampleRate”44.1 e3);Sine3 = dsp。SineWave (“频率”, 12 e3,...“SampleRate”44.1 e3);

滤波器的设计

使用黄油函数来设计一个10阶低通巴特沃斯滤波器。

N = 10;Fc = 0.4;[b] =黄油(N, Fc);

创建一个dsp。IIRFilter对象,并将设计的系数赋给分子分母属性。

iir = dsp。IIRFilter (“分子”b...“分母”,);

查看滤波器的幅值响应。截止频率为0.4 rad/sample,如果采样率为44.1 kHz,则转换为 0 4 × 44100 / 2 或8.82 kHz。

fvtool(信息检索,“Fs”Sine1.SampleRate)

图形过滤器可视化工具-幅度响应(dB)包含一个轴对象和其他类型的uitoolbar, uimenu对象。标题为“大小响应(dB)”的轴对象包含一个类型为line的对象。

图中可以查看输入输出信号的功率谱频谱分析仪

sa = dsp。简介(“SampleRate”...Sine1。SampleRate,...“NumInputPorts”2,...“PlotAsTwoSidedSpectrum”假的,...“OverlapPercent”, 80,...“PowerUnits”“瓦分贝”...“YLimits”-10年[-220]);

流媒体

在正弦波和中加入零均值高斯白噪声,标准差为0.01。使用IIR滤波器过滤信号。

音调在1千赫和5千赫是不受影响的,因为他们落在通频带。在12千赫的频率是衰减的,因为它落在滤波器的过渡带。

i = 1:1000 input = Sine1()+Sine2()+Sine3()+...0.01 * randn (Sine1.SamplesPerFrame, 1);输出= iir(输入);sa(输入、输出)结束

图频谱分析仪包含一个轴对象和其他类型的对象uiflowcontainer, uimenu, uitoolbar。轴对象包含两个类型为line的对象。这些对象表示通道1和通道2。

设计一个8陷波的陷波梳状滤波器,在3 dB水平下陷波带宽为0.02。

创建一个梳子过滤器设计规范对象使用fdesign.comb功能和说明这些设计参数。

combSpecs = fdesign.comb (“缺口”“N, BW”8, 0.02);

利用该方法设计了陷波梳状滤波器设计函数。得到的过滤器是dsp。IIRFilter系统对象™。有关如何在流数据上应用此过滤器的详细信息,请参阅dsp。IIRFilter

iirFilt =设计(combSpecs,“Systemobject”,真正的)
iirFilt = dsp。IIRFilterwith properties: Structure: 'Direct form II' Numerator: [0.8878 0 0 0 0 0 0 0 -0.8878] Denominator: [1 0 0 0 0 0 0 0 -0.7757] InitialConditions: 0 Show all properties

查看设计滤波器的大小响应使用fvtool

fvtool (iirFilt)

图形过滤器可视化工具-幅度响应(dB)包含一个轴对象和其他类型的uitoolbar, uimenu对象。标题为“大小响应(dB)”的轴对象包含2个类型为line的对象。

扩展功能

介绍了R2012b