主要内容

dsp。IIRFilter

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

描述

dsp。IIRFilter系统对象™使用指定的筛选器筛选输入的每个通道。可以指定要具有的筛选器“我直接形式”'直接形式我调换了'“直接形成二世”,或者一个'直接形式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滤波器结构,指定为“我直接形式”'直接形式我调换了'“直接形成二世”,或'直接形式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

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

可调:是的

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

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

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

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

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

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

可调:是的

依赖关系

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

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

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

  • scalar——该对象将筛选器中所有零边的延迟元素初始化为标量值。

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

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

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

可调:是的

依赖关系

此属性仅在设置结构财产“我直接形式”'直接形式我调换了'

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

滤波器的初始条件状态在带有极点的滤波器结构的一侧,指定为以下之一:

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

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

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

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

可调:是的

依赖关系

此属性仅在设置结构财产“我直接形式”'直接形式我调换了'

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

定点属性

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

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

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

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

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

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

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

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

声明字和分数长度,指定为自签名数字类型,字长度为16,分数长度为15。

依赖关系

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

分子系数的数据类型,指定为以下之一:

  • '与输入字长度相同'——分子系数的字长与输入的字长相同。分数长度的选择是为了获得最好的精度。

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

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

依赖关系

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

分母系数的数据类型,指定为以下之一:

  • '与输入字长度相同'——分母系数的字长与输入的字长相同。分数长度的选择是为了获得最好的精度。

  • “自定义”参数指定的自签名数字类型CustomDenominatorCoefficientsDataType财产。

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

依赖关系

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

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

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

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

  • “自定义”类指定的自定义数字类型CustomNumeratorProductDataType财产。方法指定舍入方法和溢出动作RoundingMethod而且OverflowAction属性。

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

依赖关系

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

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

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

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

  • “自定义”类指定的自定义数字类型CustomDenominatorProductDataType财产。方法指定舍入方法和溢出动作RoundingMethod而且OverflowAction属性。

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

依赖关系

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

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

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

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

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

  • “自定义”参数指定的自定义数值类型CustomNumeratorAccumulatorDataType财产。方法指定舍入方法和溢出动作RoundingMethod而且OverflowAction属性。

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

依赖关系

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

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

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

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

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

  • “自定义”参数指定的自定义数值类型CustomDenominatorAccumulatorDataType财产。方法指定舍入方法和溢出动作RoundingMethod而且OverflowAction属性。

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

依赖关系

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

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

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

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

  • “自定义”类指定的自定义数字类型CustomOutputDataType财产。方法指定舍入方法和溢出动作RoundingMethod而且OverflowAction属性。

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

依赖关系

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

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

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

  • “自定义”类指定的自签名数字类型CustomMultiplicandDataType财产。

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

依赖关系

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

使用

描述

例子

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

输入参数

全部展开

经过筛选的数据输入,指定为向量或矩阵。

例子:randn(34岁24)

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

输出参数

全部展开

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

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

对象的功能

要使用对象函数,请将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);

滤波器的设计

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

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)

图1:量级响应(dB)包含一个坐标轴对象。标题为幅度响应(dB)的axis对象包含一个类型为line.

查看输入和输出信号的功率谱频谱分析仪

sa =简介(“SampleRate”, Sine1。SampleRate,...“方法”“韦尔奇”...“PlotAsTwoSidedSpectrum”假的,...“OverlapPercent”, 80,...“SpectrumUnits”“瓦分贝”...“YLimits”-10年[-220]);

流媒体

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

1千赫和5千赫的音调不受影响,因为它们落在通带内。在12 kHz处的频率由于处于滤波器的过渡带而被衰减。

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

设计一个有8个缺口的缺口梳状滤波器,缺口带宽为0.02参照-3 dB电平。

创建一个梳子的过滤器设计规范对象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)

图1:量级响应(dB)包含一个坐标轴对象。标题为幅度响应(dB)的axis对象包含两个类型为line.

更多关于

全部展开

扩展功能

版本历史

介绍了R2012b