主要内容

dsp。IIRFilter

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

描述

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

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

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

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

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

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

创造

描述

例子

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

例子

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

例子:iir=dsp.IIRFilter('Structure','directformi');

性质

全部展开

除非另有说明,否则属性为不能,这意味着您不能在调用对象后更改其值。对象在调用时锁定,并且释放函数打开它们。

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

有关更改属性值的更多信息,请参见在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
复数的支持:金宝app

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

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

可调:

数据类型:|双重的|int8|int16|int32|int64|uint8|uint16|uint32|uint64
复数的支持:金宝app

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

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

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

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

过滤器状态数等于max(N)–1,其中N是极点数,和是零的数目。

可调:

依赖关系

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

数据类型:|双重的|int8|int16|int32|int64|uint8|uint16|uint32|uint64
复数的支持:金宝app

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

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

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

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

过滤器状态数等于max(N)–1,其中N是极点数,和分别是零的数目。

可调:

依赖关系

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

数据类型:|双重的|int8|int16|int32|int64|uint8|uint16|uint32|uint64
复数的支持:金宝app

过滤器的初始条件位于过滤器结构的侧面,带有极点,具体如下:

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

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

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

过滤器状态数等于max(N)–1,其中N是极点数,和分别是零的数目。

可调:

依赖关系

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

数据类型:|双重的|int8|int16|int32|int64|uint8|uint16|uint32|uint64
复数的支持:金宝app

定点属性

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

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

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

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

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

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

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

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

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

依赖关系

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

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

  • “与输入的字长相同”–分子系数的字长与输入字长相同。选择分数长度是为了提供尽可能高的精度。

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

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

依赖关系

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

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

  • “与输入的字长相同”–分母系数的字长与输入字长相同。选择分数长度是为了提供尽可能高的精度。

  • “自定义”–分母系数的数据类型为CustomDenominatorCoefficientsDataType财产。

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

依赖关系

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

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

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

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

  • “自定义”–产品输出数据类型是用户指定的自定义数字类型CustomNumeratorProductDataType财产。方法指定舍入方法和溢出动作RoundingMethod溢流作用属性。

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

依赖关系

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

IIR滤波器分母多项式中产品操作输出的数据类型,指定为以下之一:

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

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

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

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

依赖关系

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

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

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

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

  • “与产品相同”–蓄能器数据类型与产品输出数据类型相同。

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

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

依赖关系

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

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

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

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

  • “与产品相同”–蓄能器数据类型与产品输出数据类型相同。

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

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

依赖关系

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

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

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

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

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

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

依赖关系

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

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

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

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

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

依赖关系

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

使用

描述

例子

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

输入参数

全部展开

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

例子:兰登(34,24)

数据类型:|双重的|int8|int16|int32|int64|fi
复数的支持:金宝app

输出参数

全部展开

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

数据类型:|双重的|int8|int16|int32|int64|fi
复数的支持:金宝app

对象的功能

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

发行版(obj)

全部展开

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

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

例子

全部折叠

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

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

输入信号

输入信号有三个音调,1 kHz、5 kHz和12 kHz。

Sine1 = dsp。SineWave (“频率”,1e3,“采样器”44.1 e3);Sine2 = dsp。SineWave (“频率”5 e3,“采样器”44.1 e3);Sine3 = dsp。SineWave (“频率”,12e3,“采样器”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(信息检索,“财政司司长”,Sine1.采样器)

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

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

sa = dsp。简介(“采样器”,Sine1.SampleRate,“NumInputPorts”2....“绘制双侧面光谱”假的,...“OverlapPercent”, 80,“PowerUnits”“瓦分贝”...“YLimits”,[-220 -10]);

流媒体

将标准偏差为0.01的零均值高斯白噪声与正弦波之和相加。使用IIR滤波器对信号进行滤波。

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

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

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

设计了一个具有8个陷波的陷波梳状滤波器,陷波带宽为0.02,参考-3 dB电平。

创建一个梳子过滤器设计规范对象使用fdesign.comb函数并指定这些设计参数。

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

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

iirFilt=设计(组合规格,“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)”的轴包含两个类型为line的对象。

扩展能力

介绍了R2012b