主要内容

dsp。NotchPeakFilter

二阶可调谐陷波和峰值IIR滤波器

描述

NotchPeakFilter对象使用IIR过滤器实现对输入的每个通道进行过滤。

过滤输入的每个通道:

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

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

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

创建

描述

npFilter= dsp。NotchPeakFilter返回一个二阶陷波和峰值IIR滤波器,它使用指定的中心频率和3db带宽,在一段时间内独立地滤除输入的每个通道。

npFilter = dsp。NotchPeakFilter(“规范”,“质量因子和中心频率”)指定陷波器或峰值滤波器的质量因子(Q因子),而不是3.dB带宽。

npFilter = dsp.NotchPeakFilter(“规范”、“系数”)指定直接影响带宽和中心频率的系数值,而不是以Hz指定设计参数。这消除了属性调优时涉及的三角计算。

例子

npFilter = dsp。NotchPeakFilter(名称,值返回一个陷波筛选器,其中每个指定的属性名设置为指定的值。未指定的属性具有默认值。

属性

全部展开

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

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

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

将规范设置为“带宽和中心频率”“质量因子和中心频率”,或“系数”

指定过滤器的3.dB带宽作为一个有限的正数值标量(Hz)。该值必须是介于0和一半采样率之间的标量。

可调:是的

依赖关系

此属性仅适用于以下情况规范“带宽和中心频率”

数据类型:|

指定滤波器的中心频率(对于陷波和峰值)为Hz的有限正数值标量。该值必须是介于0和一半采样率之间的标量。

可调:是的

依赖关系

此属性仅适用于以下情况规范被设置为“带宽和中心频率”“质量因子和中心频率”

数据类型:|

为陷波器和峰值滤波器指定质量因子(Q因子)。Q因子被定义为中心频率除以带宽。较高的Q系数对应较窄的缺口或峰值。Q因子应该是大于0的标量值。

可调:是的

依赖关系

此属性仅适用于以下情况规范被设置为“质量因子和中心频率”

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|fi

将输入的采样率(Hz)指定为有限数值标量。

数据类型:|

指定确定筛选器的值3.dB带宽作为一个有限数值标量在范围内[1].的值-1对应于最大值3.dB带宽(SampleRate/ 4)1对应于最小值3.dB带宽(0hz,全通滤波器)。

可调:是的

依赖关系

此属性仅适用于以下情况规范被设置为“系数”

数据类型:|

将确定滤波器中心频率的系数指定为范围内的有限数值标量[1].的值-1对应最小中心频率(0hz), 1对应最大中心频率(SampleRate / 2赫兹)。默认值是0,对应于SampleRate / 4赫兹。

可调:是的

依赖关系

此属性仅适用于以下情况规范被设置为“系数”

数据类型:|

使用

描述

Y= npFilter (x对输入信号的每个通道(列)进行滤波,x,产生陷波滤波器输出,Y

(YnYp) = npFilter (x过滤输入信号的每个通道,x,产生陷波滤波器输出,Yn,和峰值滤波器输出,Yp

输入参数

全部展开

输入信号,指定为向量或矩阵。

数据类型:|
复数的支持:万博1manbetx是的

输出参数

全部展开

陷波滤波器输出,作为矢量或矩阵返回。

数据类型:|
复数的支持:万博1manbetx是的

峰值滤波器输出,作为向量或矩阵返回。

数据类型:|
复数的支持:万博1manbetx是的

对象的功能

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

发行版(obj)

全部展开

getBandwidth 获得3db带宽
getCenterFrequency 使中心频率
getOctaveBandwidth 以八度音阶数表示的带宽
getQualityFactor 得到品质因数
特遣部队 传递函数
一步 运行系统对象算法
释放 释放资源并允许更改系统对象属性值和输入特征
重置 使内部状态复位系统对象

例子

全部折叠

这个例子展示了如何使用dsp。NotchPeakFilter一个年代一个切口filter with center frequency of 5000 Hz and a 3 dB bandwidth of 500 Hz.

请注意:此示例仅在R2016b或更高版本中运行。如果您正在使用较早的版本,请将对该函数的每个调用替换为等价的一步语法。例如,myObject(x)变成step(myObject,x)。

npFilter = dsp。NotchPeakFilter(“CenterFrequency”, 5000,“带宽”, 500);sa = dsp。简介(“SampleRate”, 44100,...“PlotAsTwoSidedSpectrum”假的,“SpectralAverages”, 50);i= 1:20 00 y = npFilter(randn(1024,1));sa (y);如果(i = = 2500)%调整中心频率至10000npFilter。CenterFrequency = 10000;结束结束发布(npFilter)发布(sa)

创建一个dsp。NotchPeakFilter对象的规范属性设置为“质量因子和中心频率”.默认质量因数是5,中心频率是多少足球俱乐部是11025赫兹。

np = dsp。NotchPeakFilter (“规范”“质量因子和中心频率”
np = dsp。NotchPeakFilter与属性:规格:'质量因子和中心频率'质量因子:5 CenterFrequency: 11025 SampleRate: 44100

计算3 dB带宽的陷波峰滤波器使用getBandwidth函数。带宽计算为中心频率与质量因子的比值, 足球俱乐部

getBandwidth (np)
ans = 2205

使用fvtool

fvtool (np)

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

创建一个dsp。NotchPeakFilter对象的规范属性设置为“系数”

np = dsp。NotchPeakFilter (“规范”“系数”
np = dsp。NotchPeakFilter的属性:规格:“系数”带宽系数:0.7265 CenterFrequencyCoefficient: 0采样率:44100

确定陷波峰滤波器的中心频率使用getCenterFrequency函数。当规范被设置为“系数”,中心频率由CenterFrequencyCoefficient值和抽样率。

getCenterFrequency (np)
ans = 11025

使用fvtool

fvtool (np)

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

创建一个dsp。NotchPeakFilter对象的默认配置。

np = dsp。NotchPeakFilter
np = dsp。NotchPeakFilter的属性:规格:“带宽和中心频率”带宽:2205 CenterFrequency: 11025 SampleRate: 44100

确定滤波器的倍频带宽使用getOctaveBandwidth函数。

getOctaveBandwidth (np)
ans = 0.2881

使用fvtool

fvtool (np)

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

创建一个dsp。NotchPeakFilter对象,其中规范属性设置为“带宽和中心频率”

np = dsp。NotchPeakFilter
np = dsp。NotchPeakFilter的属性:规格:“带宽和中心频率”带宽:2205 CenterFrequency: 11025 SampleRate: 44100

确定过滤器的质量因子使用getQualityFactor函数。质量因子由中心频率与带宽的比值给出。

getQualityFactor (np)
ans = 5

使用fvtool

fvtool (np)

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

创建一个dsp。NotchPeakFilter系统对象™。得到对应于陷波器和峰值滤波器的传递函数的系数。

notchpeak = dsp.NotchPeakFilter;[Bnotch Anotch Bpeak,垂直]=特遣部队(notchpeak)
Bnotch =1×30.8633 -0.0000 0.8633
Anotch =1×31.0000 -0.0000 0.7265
Bpeak =1×30.1367 0 -0.1367
垂直=1×31.0000 -0.0000 0.7265

BnotchAnotch为陷波滤波器对应的等效传递函数的分子系数和分母系数的向量。Bpeak垂直为峰值滤波器对应的等效传递函数的分子系数和分母系数的向量。

算法

峰值滤波器的设计方程为:

H z 1 b 1 z 2 1 2 b 因为 w 0 z 1 + 2 b 1 z 2

陷波滤波器的设计方程为:

H z b 1 2 因为 w 0 z 1 + z 2 1 2 b 因为 w 0 z 1 + 2 b 1 z 2

b 1 1 + 棕褐色 Δ w / 2

在哪里ω0= 2πf0/f年代为中心频率,单位为弧度/样本(f0中心频率是Hz和吗f年代为采样频率(Hz)。Δω= 2πΔf/f年代3 dB带宽是弧度/样本(Δf为3db带宽(Hz)。注意这两个过滤器是互补的:

H 切口 z + H z 1 它们可以写成: H z 1 2 ( 1 一个 z H 切口 z 1 2 ( 1 + 一个 z 在哪里 一个 (z) 2 nd 订单allpass过滤器 一个 z 一个 2 + 一个 1 z 1 + z 2 1 + 一个 1 z 1 + 一个 2 z 2 一个 1 2 b 因为 ω 0 一个 2 2 b 1

过滤器的实现如下:

在哪里

G 3 db 一个 2 2 b 1 G cf 一个 1 一个 1 一个 2 1 一个 2 2 因为 w 0

请注意,Gcf只取决于中心频率,而且G3 db仅依赖于3db带宽。

参考文献

索福克勒斯·奥法尼迪斯信号处理概论.上鞍河,新泽西州:Prentice-Hall, 1996。

介绍了R2014a