Engee 文档

EngeeDSP.NotchPeakFilter

可配置陷波和窄带二阶IIR滤波器。

库::`工程师` 座:: 凹槽-峰值过滤器

资料描述

要实现二阶陷波或窄带IIR滤波器,请按照以下步骤操作:

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

  2. 用参数调用对象,就好像它是一个函数一样。

若要了解有关如何使用系统对象的详细信息,请参阅 AnyMath系统对象.

语法

创造

  • npFilter=EngeeDSP。NotchPeakFilter() 返回二阶陷波和窄带IIR滤波器,该滤波器使用给定的中心频率和带宽在时间上独立地对输入信号的每个通道进行滤波。 3 分贝。

  • npFilter=EngeeDSP。NotchPeakFilter(规格="品质因数和中心频率") 陷波或窄带滤波器的品质因数(Q-factor)表示而不是带宽 3 分贝。

  • npFilter=EngeeDSP。NotchPeakFilter(规范="系数") 表示直接影响带宽和中心频率的系数值,而不是以Hz为单位的设计参数。 这消除了在设置特征时三角计算的需要。

  • npFilter=EngeeDSP。NotchPeakFilter(名称=值) 返回具有指定属性的陷波或窄带IIR滤波器 姓名,设置为指定值 价值. 您可以以任何顺序将其他参数指定为名称-值对(名称1=价值1,…​,纳门=瓦伦). 未指定的属性具有默认值。

    例子::

    npFilter = EngeeDSP.NotchPeakFilter(CenterFrequency=5000,Bandwidth=500)

使用

  • Yn=npFilter(x) 过滤输入信号的每个通道(列) x,创建陷波滤波器的输出信号 鹿Yn.

  • Yn,Yp=npFilter(x) 过滤输入信号的每个通道(列) x,创建陷波滤波器的输出信号 鹿Yn 和窄带滤波器的输出信号 Yp.

争论

输入参数

x — 输入信号

+ 向量资料 | 矩阵

Details

输入信号被指定为矢量或矩阵。

数据类型

漂浮物32, 漂浮64</无翻译> 支持复数::是

输出参数

Yn 是 陷波滤波器的输出信号

+ 向量资料 | 矩阵

Details

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

数据类型

漂浮物32, 漂浮64</无翻译> 支持复数::是

Yp 是 窄带滤波器的输出信号

+ 向量资料 | 矩阵

Details

窄带滤波器的输出信号,作为矢量或矩阵返回。

数据类型

漂浮物32, 漂浮64</无翻译> 支持复数::是

特征

# 规格 — 滤波器特性

+ "带宽和中心频率" (默认情况下)| "品质因数及中心频率" | "系数"

Details

指定块用于设计筛选器的属性。:

# 带宽 — 带宽 3 dB,单位为Hz

+ 2205 (默认情况下)| 正标量

Details

带宽 3 滤波器的dB,以Hz为单位设置为正标量。

依赖关系

要使用此属性,请设置*Specification*值 "带宽和中心频率",而对于属性*NormalizedFrequency*的值 错误.

# NormalizedBandwidth — 带宽 3 dB,以归一化单位

+ 0.1 (默认情况下)| 正标量小于1.0

Details

带宽 3 滤波器的dB,设置为正标量,小于 1.0 以归一化单位。

如果在创建对象时,*NormalizedFrequency*属性设置为 真的 如果未设置带宽,则对象将使用默认采样率以标准化频率单位自动设置默认带宽。 44100 赫兹。

npFilter = EngeeDSP.NotchPeakFilter(NormalizedFrequency = true)
NotchPeakFilter:
    Specification=Bandwidth and center frequency
    NormalizedBandwidth=0.1
    NormalizedCenterFrequency=0.5
    SampleRate=44100
    NormalizedFrequency=true
    FilterOutput=NotchAndPeak

如果属性*NormalizedFrequency*设置为 真的 创建对象后,在运行对象算法之前,必须以标准化单位指定带宽。

npFilter = EngeeDSP.NotchPeakFilter()
NotchPeakFilter:
    Specification=Bandwidth and center frequency
    Bandwidth=2205
    CenterFrequency=11025
    SampleRate=44100
    NormalizedFrequency=false
    FilterOutput=NotchAndPeak

要指定规范化频率值,请将*NormalizedFrequency*属性设置为 真的 并使用以Hz为单位的输入信号的采样频率的一半手动将以Hz为单位的频率值转换为归一化值。 例如,如果输入采样率为 作曲 44100 Hz,则归一化单位对应的带宽值为 .

npFilter.NormalizedFrequency = true
npFilter.NormalizedBandwidth = 2205/(44100/2)
npFilter
NotchPeakFilter:
    Specification=Bandwidth and center frequency
    NormalizedBandwidth=0.1
    NormalizedCenterFrequency=0.5
    SampleRate=44100
    NormalizedFrequency=true
    FilterOutput=NotchAndPeak

依赖关系

要使用此属性,请设置*Specification*值 "带宽和中心频率",而对于属性*NormalizedFrequency*的值 真的.

# 中心频率 — 陷波或窄带滤波器的中心频率,单位为Hz

+ 11025 (默认情况下)| 正标量

Details

滤波器的中心频率,以Hz为单位设置为正标量。

依赖关系

要使用此属性,请设置*Specification*值 "带宽和中心频率",而对于属性*NormalizedFrequency*的值 错误.

# 正常中心频率 — 陷波或窄带滤波器的中心频率,单位为标准化

+ 0.5 (默认情况下)| 正标量小于1.0

Details

陷波或窄带滤波器的中心频率,设置为正标量,小于 1.0 以归一化单位。

如果在创建对象时,*NormalizedFrequency*属性设置为 真的 如果未设置中心频率,则对象将使用默认采样率以标准化频率单位自动设置默认中心频率。 44100 赫兹。

npFilter = EngeeDSP.NotchPeakFilter(NormalizedFrequency = true)
NotchPeakFilter:
    Specification=Bandwidth and center frequency
    NormalizedBandwidth=0.1
    NormalizedCenterFrequency=0.5
    SampleRate=44100
    NormalizedFrequency=true
    FilterOutput=NotchAndPeak

如果属性*NormalizedFrequency*设置为 真的 创建对象后,有必要在运行对象算法之前以标准化单位指定中心频率。

npFilter = EngeeDSP.NotchPeakFilter()
NotchPeakFilter:
    Specification=Bandwidth and center frequency
    Bandwidth=2205
    CenterFrequency=11025
    SampleRate=44100
    NormalizedFrequency=false
    FilterOutput=NotchAndPeak

要指定规范化频率值,请将*NormalizedFrequency*属性设置为 真的 并使用以Hz为单位的输入信号的采样频率的一半手动将以Hz为单位的频率值转换为归一化值。 例如,如果输入采样率为 作曲 44100 Hz,则中心频率以归一化单位的对应值为 .

npFilter.NormalizedFrequency = true
npFilter.NormalizedCenterFrequency = 11025/(44100/2)
npFilter
NotchPeakFilter:
    Specification=Bandwidth and center frequency
    NormalizedBandwidth=0.1
    NormalizedCenterFrequency=0.5
    SampleRate=44100
    NormalizedFrequency=true
    FilterOutput=NotchAndPeak

依赖关系

若要使用此属性,请设置*Specification*值 "带宽和中心频率""品质因数及中心频率",而对于属性*NormalizedFrequency*的值 真的.

# 质量因子 — 陷波或窄带滤波器的质量

+ 5 (默认情况下)| 正标量

Details

陷波或窄带滤波器的Q因子,指定为实数正标量。 Q因子定义为中心频率与带宽之比。 Q因子越高,抑制或传输频带越窄。

依赖关系

若要使用此属性,请设置*Specification*值 "品质因数及中心频率".

# 采样 是 输入信号的采样频率,单位为Hz

+ 44100 (默认情况下)| 正标量

Details

输入信号的采样频率,以Hz为单位设置为标量。

依赖关系

若要使用此属性,请设置*Specification*值 "带宽和中心频率""品质因数及中心频率",而对于属性*NormalizedFrequency*的值 错误.

# 带宽效率 — 带宽系数

+ 0.726554 (默认情况下)| [-1,1]范围内的真正标量

Details

确定带宽的系数 3 dB,设置为从范围内的标量 −1 以前 1:

  • −1 对应于最大带宽 3 dB(输入信号采样率的四分之一);

  • 1 对应于最小带宽(0 Hz,即频率无关滤波器)。

依赖关系

若要使用此属性,请设置*Specification*值 "系数".

# 中心频率有效 — 带宽系数

+ 0.0 (默认情况下)| [-1,1]范围内的真正标量

Details

确定滤波器中心频率的系数,在从 −1 以前 1:

  • −1 对应于最小中心频率(0 赫兹);

  • 1 对应于最大中心频率(输入信号采样频率的一半)。

依赖关系

要使用此属性,请设置*Specification*值 "系数".

# 正常频率 — 以标准化单位设置频率的选项

+ 错误 (默认情况下)| 真的

Details

以标准化单位设置频率的选项:

  • 错误 -带宽和中心频率的值以Hz为单位,必须小于值的一半*SampleRate*;

  • 真的 -带宽和中心频率值以标准化频率单位指定。 这些值必须是小于 1.0.

依赖关系

若要使用此属性,请设置*Specification*值 "带宽和中心频率""品质因数及中心频率".

# 过滤输出 — 为数据输出选择过滤器

+ "NotchAndPeak" (默认情况下)| "缺口" | "山顶"

Details

选择输出数据:

  • "NotchAndPeak" -通过陷波和窄带滤波器后的输出信号;

  • "缺口" -通过陷波滤波器后输出信号;

  • "山顶" -通过窄带滤波器后的输出信号。

方法

所有系统对象通用

步!::运行系统对象运算算法 释放!::允许更改系统对象属性的值 重置!::重置系统对象的内部状态

算法

窄带滤波器设计公式如下:

陷波滤波器设计的公式如下:

在这些方程中

哪里

  • -以Hz为单位的中心频率;

  • -以Hz为单位的采样率;

  • -带宽 3 以Hz为单位的dB。

请注意,这两个过滤器相互补充。:

它们可以重写为

哪里 -频率无关的二阶滤波器:

过滤器实现如下:

notch peak filter 1

在图片:

请注意 仅取决于中心频率,并且 -仅从带宽 3 分贝。

文学作品

  1. Orfanidis,Sophocles J.Introduction To Signal Processing. Upper Saddle River,NJ:Prentice-Hall,1996。