无限脉冲响应(IIR)滤波器
的dsp。IIRFilter
系统对象™使用指定的过滤器过滤输入的每个通道。您可以指定过滤器具有“我直接形式”
,'直接形式I ' transposed'
,“直接形成二世”
,或'直接形式II转置'
结构。
使用分子和分母属性来指定过滤器的分子系数和分母系数。除了这些系数外,您还可以通过InitialConditions财产。
使用IIR滤波器对信号进行过滤:
创建dsp。IIRFilter
对象,并设置其属性。
使用参数调用对象,就像调用函数一样。
要了解更多关于System对象如何工作的信息,请参见什么是系统对象?
除非另有说明,属性是nontunable,这意味着您不能在调用对象之后更改它们的值。对象在调用时锁定,而释放
函数打开它们。
如果一个属性是可调,您可以随时更改它的值。
有关更改属性值的更多信息,请参见在MATLAB中使用系统对象进行系统设计.
结构
- - - - - -IIR滤波器结构'直接形式II转置'
(默认)|“我直接形式”
|'直接形式I ' transposed'
|“直接形成二世”
IIR过滤器结构,指定为“我直接形式”
,'直接形式I ' transposed'
,“直接形成二世”
,或'直接形式II转置'
.
分子
- - - - - -分子系数[1]
(默认)|行向量分子系数,指定为行向量。
例子:[0.0296 0.1775 0.4438 0.5918 0.4438 0.1775 0.0296
]
可调:是的
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
复数的支持:万博1manbetx是的
分母
- - - - - -分母系数0.1 [1]
(默认)|行向量分母系数,指定为行向量。主分母系数必须相等1
.
例子:[0.0000 -0.0000 0.7777 -0.0000 0.1142 -0.0000 0.0018
]
可调:是的
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
复数的支持:万博1manbetx是的
InitialConditions
- - - - - -初始条件0
(默认)|标量|向量|矩阵过滤器状态的初始条件,指定为下列条件之一:
标量——对象将过滤器中的所有延迟元素初始化为标量值。
向量——向量的长度等于滤波器中的延迟元素的数量。每个向量元素为相应的延迟元素指定一个唯一的初始条件。对象对输入信号的每个通道应用相同的向量。
matrix——矩阵中的行数必须等于滤波器中的延迟元素数。矩阵中的列数必须等于输入中的通道数。每个元素为相应信道中的相应延迟元素指定一个唯一的初始条件。
过滤器状态数等于max(N,米) - 1,其中N是极点数,和米是0的个数。
可调:是的
此属性仅在设置结构财产“直接形成二世”
或'直接形式II转置'
.
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
复数的支持:万博1manbetx是的
NumeratorInitialConditions
- - - - - -0边的初始条件0
(默认)|标量|向量|矩阵滤波器的初始条件在滤波器结构的零一侧,指定为如下之一:
标量——对象将过滤器中0边的所有延迟元素初始化为标量值。
向量——向量的长度等于滤波器中0边的延迟元素的数量。每个向量元素为0边对应的延迟元素指定一个唯一的初始条件。该对象对输入信号的每个通道应用相同的初始条件向量。
matrix——矩阵的行数必须等于滤波器中零边的延迟元素数。矩阵中的列数必须等于输入信号中的通道数。每个元素在对应的信道中为对应的零端延迟元素指定一个唯一的初始条件。
过滤器状态数等于max(N,米) - 1,其中N是极点数,和米分别为0的个数。
可调:是的
此属性仅在设置结构财产“我直接形式”
或'直接形式I ' transposed'
.
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
复数的支持:万博1manbetx是的
DenominatorInitialConditions
- - - - - -在极侧的初始条件0
(默认)|标量|向量|矩阵在带有极点的滤波器结构一侧的滤波器状态的初始条件,其中之一为:
标量——该对象将过滤器中极点一侧的所有延迟元素初始化为标量值。
向量——向量的长度等于滤波器中极点一侧的延迟元素的数量。每个向量元素为极点一侧的相应延迟元素指定一个唯一的初始条件。该对象对输入信号的每个通道应用相同的初始条件向量。
矩阵——矩阵中的行数必须等于滤波器中极点侧的延迟元素数。矩阵中的列数必须等于输入信号中的通道数。每个元素为相应信道中极点侧的相应延迟元素指定一个唯一的初始条件。
过滤器状态数等于max(N,米) - 1,其中N是极点数,和米分别为0的个数。
可调:是的
此属性仅在设置结构财产“我直接形式”
或'直接形式I ' transposed'
.
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
复数的支持:万博1manbetx是的
RoundingMethod
- - - - - -舍入方法“地板”
(默认)|“天花板”
|“收敛”
|“最近的”
|“圆”
|“简单”
|“零”
选择舍入模式为定点操作。
OverflowAction
- - - - - -溢出的行动“包装”
(默认)|“饱和”
StateDataType
- - - - - -状态数据类型同样作为输入的
(默认)|“自定义”
状态数据类型,指定为以下类型之一:
同样作为输入的
——状态数据类型与输入数据类型相同。
“自定义”
——状态输出数据类型是通过CustomStateDataType财产。
CustomStateDataType
- - - - - -状态字和分数长度numerictype([], 16岁,15)
(默认)NumeratorCoefficientsDataType
- - - - - -分子系数的数据类型“与输入的字长相同”
(默认)|“自定义”
分子系数的数据类型,指定为:
“与输入的字长相同”
——分子系数的字长与输入的字长相同。选择分数长度是为了给出可能的最佳精度。
“自定义”
——分子系数的数据类型为指定的自签名数字类型CustomNumeratorCoefficientsDataType财产。
CustomNumeratorCoefficientsDataType
- - - - - -分子系数的字长和分数长numerictype([], 16岁,15)
(默认)DenominatorCoefficientsDataType
- - - - - -分母系数的数据类型“与输入的字长相同”
(默认)|“自定义”
分母系数的数据类型,指定为:
“与输入的字长相同”
——分母系数的字长与输入的字长相同。选择分数长度是为了给出可能的最佳精度。
“自定义”
——分母系数的数据类型是由CustomDenominatorCoefficientsDataType财产。
CustomDenominatorCoefficientsDataType
- - - - - -分母系数的字长度和分数长度numerictype([], 16岁,15)
(默认)NumeratorProductDataType
- - - - - -分子积数据类型“充分精确”
(默认)|同样作为输入的
|“自定义”
IIR滤波器的分子多项式乘积运算输出的数据类型,指定为以下其中之一:
“充分精确”
——对象使用全精度规则计算分子乘积输出数据类型。这些规则提供了最精确的定点数值。没有发生量子化。根据需要添加位,以确保没有舍入或溢出发生。
同样作为输入的
——产品输出数据类型与输入数据类型相同。
“自定义”
——产品输出数据类型是由CustomNumeratorProductDataType财产。方法指定舍入方法和溢出动作RoundingMethod和OverflowAction属性。
CustomNumeratorProductDataType
- - - - - -分子积单词和分数长度numerictype([], 32岁,30)
(默认)DenominatorProductDataType
- - - - - -分母乘积数据类型“充分精确”
(默认)|同样作为输入的
|“自定义”
IIR滤波器的分母多项式乘积运算输出的数据类型,指定为以下其中之一:
“充分精确”
——对象使用全精度规则计算分母产品输出数据类型。这些规则提供了最精确的定点数值。没有发生量子化。根据需要添加位,以确保没有舍入或溢出发生。
同样作为输入的
——产品输出数据类型与输入数据类型相同。
“自定义”
属性指定的产品输出数据类型为自定义数值类型CustomDenominatorProductDataType财产。方法指定舍入方法和溢出动作RoundingMethod和OverflowAction属性。
CustomDenominatorProductDataType
- - - - - -分母积单词和分数长度numerictype([], 32岁,30)
(默认)NumeratorAccumulatorDataType
- - - - - -分子累加器数据类型“充分精确”
(默认)|同样作为输入的
|“一样的产品”
|“自定义”
IIR滤波器的分子多项式的累加运算输出的数据类型,指定为下列之一:
“充分精确”
——对象使用全精度规则计算分子累加器数据类型。这些规则提供了最精确的定点数值。没有发生量子化。根据需要添加位,以确保没有舍入或溢出发生。
同样作为输入的
——累加器数据类型与输入数据类型相同。
“一样的产品”
——累加器数据类型与产品输出数据类型相同。
“自定义”
——累加器数据类型是由CustomNumeratorAccumulatorDataType财产。方法指定舍入方法和溢出动作RoundingMethod和OverflowAction属性。
CustomNumeratorAccumulatorDataType
- - - - - -分子累加器字和分数长度numerictype([], 32岁,30)
(默认)DenominatorAccumulatorDataType
- - - - - -分母累加器数据类型“充分精确”
(默认)|同样作为输入的
|“一样的产品”
|“自定义”
IIR滤波器的分母多项式的累加运算输出的数据类型,指定为以下其中之一:
“充分精确”
——对象使用全精度规则计算分母累加器数据类型。这些规则提供了最精确的定点数值。没有发生量子化。根据需要添加位,以确保没有舍入或溢出发生。
同样作为输入的
——累加器数据类型与输入数据类型相同。
“一样的产品”
——累加器数据类型与产品输出数据类型相同。
“自定义”
——累加器数据类型是由CustomDenominatorAccumulatorDataType财产。方法指定舍入方法和溢出动作RoundingMethod和OverflowAction属性。
CustomDenominatorAccumulatorDataType
- - - - - -分母累加器单词和分数长度numerictype([], 32岁,30)
(默认)OutputDataType
- - - - - -输出数据类型同样作为输入的
(默认)|“充分精确”
|“自定义”
的输出的数据类型dsp。IIRFilter
对象,指定为下列对象之一:
同样作为输入的
——输出数据类型与输入数据类型相同。
“充分精确”
——对象使用全精度规则计算输出数据类型。这些规则提供了最精确的定点数值。没有发生量子化。根据需要添加位,以确保没有舍入或溢出发生。
“自定义”
——输出数据类型是由CustomOutputDataType财产。方法指定舍入方法和溢出动作RoundingMethod和OverflowAction属性。
CustomOutputDataType
- - - - - -输出字和分数长度numerictype([], 16岁,15)
(默认)MultiplicandDataType
- - - - - -被乘数数据类型同样作为输入的
(默认)|“自定义”
Multiplicand数据类型,指定为以下类型之一:
同样作为输入的
——被乘数数据类型与输入数据类型相同。
“自定义”
——multiplicand数据类型是由CustomMultiplicandDataType财产。
CustomMultiplicandDataType
- - - - - -被乘数输出字和分数长度numerictype([], 16岁,15)
(默认)输入
- - - - - -数据输入被过滤的数据输入,指定为向量或矩阵。
例子:randn(34岁24)
数据类型:单
|双
|int8
|int16
|int32
|int64
|fi
复数的支持:万博1manbetx是的
iirOut
——过滤输出过滤后的输出,作为向量或矩阵返回。输出的大小、数据类型和复杂性与输入的匹配。
数据类型:单
|双
|int8
|int16
|int32
|int64
|fi
复数的支持:万博1manbetx是的
要使用对象函数,请指定System对象作为第一个输入参数。例如,释放名为system的对象的系统资源obj
,使用下面的语法:
发行版(obj)
要查看此对象支持的筛选器分析方法列表,请键入万博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,则转换为 或8.82 kHz。
fvtool(信息检索,“Fs”Sine1.SampleRate)
图中可以查看输入输出信号的功率谱频谱分析仪
.
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(输入、输出)结束
设计一个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)
使用注意事项及限制:
只有分子
和分母
属性可用于代码生成。
看到系统对象在MATLAB代码生成(MATLAB编码器).
的dsp。IIRFilter
系统对象支持以下过滤器结构。万博1manbetx每个部分中的图表显示了定点信号的过滤器结构中使用的数据类型。可以使用对象的定点属性设置数据类型。
下面的约束适用于结构
属性设置为“我直接形式”
:
输入可以是真实的,也可以是复杂的。
分子和分母的系数可以是实数也可以是复数。
分子系数和分母系数必须具有相同的复杂性特征。当分子系数和分母系数具有不同的复杂性时,对象处理过滤器,就像提供了两组复系数一样。实值系数集被视为具有零值虚部的复向量。
不能为该结构指定状态数据类型。这样做是不可能的,因为输入和输出状态具有与输入和输出缓冲区相同的数据类型。
下面的约束适用于结构
属性设置为'直接形式I ' transposed'
:
输入可以是真实的,也可以是复杂的。
分子和分母的系数可以是实数也可以是复数。
分子系数和分母系数必须具有相同的复杂性特征。当分子系数和分母系数具有不同的复杂性时,对象处理过滤器,就像提供了两组复系数一样。实值系数集被视为具有零值虚部的复向量。
当输入或系数都是复数时,状态是复数的。
下面的约束适用于结构
属性设置为“直接形成二世”
:
输入可以是真实的,也可以是复杂的。
分子和分母的系数可以是实数也可以是复数。
分子系数和分母系数必须具有相同的复杂性特征。当分子系数和分母系数具有不同的复杂性时,对象处理过滤器,就像提供了两组复系数一样。实值系数集被视为具有零值虚部的复向量。
当输入或系数是复杂的时,状态是复杂的。
下面的约束适用于结构
属性设置为'直接形式II转置'
:
输入可以是真实的,也可以是复杂的。
分子和分母的系数可以是实数也可以是复数。
分子系数和分母系数必须具有相同的复杂性特征。当分子系数和分母系数具有不同的复杂性时,对象处理过滤器,就像提供了两组复系数一样。实值系数集被视为具有零值虚部的复向量。
当输入或系数是复杂的时,状态是复杂的。
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。万博1manbetx
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。