主要内容

dsp。HighpassFilter

FIR或IIR高通滤波器

描述

dsp。HighpassFilter系统对象™使用给定的设计规范随时间独立地过滤输入的每个通道。您可以设置FilterType的属性dsp。HighpassFilter“杉”“信息检索”将对象实现为FIR或IIR高通滤波器。

要过滤输入的每个通道:

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

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

有关系统对象如何工作的详细信息,请参见什么是系统对象?

创建

描述

高通滤波器= dsp。HighpassFilter返回一个最小阶FIR高通滤波器,高通滤波器,使用默认筛选器设置。使用默认属性设置调用对象将过滤输入数据,其阻带频率为8的通频带频率12千赫时,阻带衰减为80的通带纹波0.1dB。

例子

高通滤波器= dsp。HighpassFilter (名称,值返回一个高通过滤器,带有一个或多个指定的附加属性名称,值对参数。的名字属性名称和价值对应的值。的名字必须出现在单引号(' ')内。您可以以任意顺序指定多个名称-值对参数Name1, Value1,…,的家

属性

全部展开

除非另有说明,属性为nontunable,这意味着在调用对象后不能更改它们的值。对象在调用时锁定,而释放功能解锁它们。

如果属性为可调,您可以随时更改其值。

有关更改属性值的详细信息,请参见使用系统对象的MATLAB系统设计

输入采样率(以Hz为单位),由逗号分隔的对组成“SampleRate”和一个正的实标量。

数据类型:|

过滤器类型,指定为以下选项之一:

  • “杉”-目标设计一个FIR高通滤波器。

  • “信息检索”—该对象设计一个IIR高通(双向)滤波器。

最小阶滤波器设计,指定为由逗号分隔的对组成“DesignForMinimumOrder”和一个逻辑值。如果此属性为真正的,然后dsp。HighpassFilter设计满足通带频率、阻带频率、通带纹波和阻带衰减规格的最小阶数滤波器。使用相应的属性设置这些规范。如果此属性为对象中指定的顺序设计筛选器FilterOrder财产。此滤波器设计满足使用各自属性设置的通带频率、通带纹波和阻带衰减规范。

FIR或IIR滤波器的顺序,指定为由逗号分隔的对组成“FilterOrder”一个正整数标量。

依赖关系

的值时,指定筛选器顺序才有效“DesignForMinimumOrder”

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

滤波器阻带边频,以Hz为单位,由逗号分隔的对组成“StopbandFrequency”这是一个正标量。阻带边频率(以Hz为单位)必须小于通带频率。

依赖关系

只能在以下情况下指定阻带边频率“DesignForMinimumOrder”真正的

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

滤波器通带边频,以Hz为单位,由逗号分隔的对组成“PassbandFrequency”这是一个正标量。通带边频的值(以Hz为单位)必须小于一半SampleRate并且大于StopbandFrequency

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

阻带中的最小衰减,以dB为单位,由逗号分隔的对组成“StopbandAttenuation”这是一个正标量。最小衰减在阻带默认为80dB。

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

通带中滤波器响应的最大纹波,以dB为单位,指定为逗号分隔的对,由“PassbandRipple”这是一个正标量。过滤器响应的最大纹波默认为0.1dB。

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

定点属性

用于输出定点操作的舍入方法,指定为字符向量。有关舍入模式的详细信息,请参见精度和范围

系数的字和分数长度,指定为anumerictype对象。默认的,numerictype (16)对应于具有16位系数和基于系数值确定的分数长度的有符号数字类型对象,以提供尽可能高的精度。

此属性不可调。

输出的单词长度与输入的单词长度相同。计算输出的部分长度,以便输出的整个动态范围可以表示而不溢出。有关如何计算输出的分数长度的详细信息,请参见FIR滤波器中避免溢出的定点精度规则

使用

语法

描述

例子

y=高通滤波器(x高通对输入信号进行滤波,xy是高通滤波版的x

输入参数

全部展开

有噪声的数据输入,指定为向量或矩阵。如果输入信号是一个矩阵,矩阵的每一列都被视为一个独立的通道。输入信号中的行数表示通道长度。该对象接受可变大小的输入。对象锁定后,您可以更改每个输入通道的大小,但不能更改通道的数量。

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

输出参数

全部展开

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

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

对象的功能

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

发行版(obj)

全部展开

freqz 离散时间滤波器的频率响应系统对象
fvtool 可视化DSP滤波器的频率响应
impz 离散时间滤波器的脉冲响应系统对象
信息 关于过滤器的信息系统对象
多项式系数 返回筛选器系统对象结构中的系数
成本 估计实现过滤器的成本系统对象
grpdelay 离散滤波器的群时延响应系统对象
generatehdl 生成量化DSP滤波器的HDL代码(需要滤波器设计HDL编码器
测量 测量滤波器的频响特性系统对象
一步 运行系统对象算法
释放 释放资源并允许更改系统对象属性值和输入特征
重置 重置的内部状态系统对象

例子

全部折叠

为44.1 kHz采样数据创建最小阶FIR高通滤波器。指定12 kHz的通带频率,8 kHz的阻带频率,0.1 dB的通带纹波和80 dB的阻带衰减。

Fs = 44.11 e3;filtertype =“杉”;Fpass = 12e3;Fstop = 8e3;Rp = 0.1;stop = 80;FIRHPF = dsp。HighpassFilter (“SampleRate”Fs,...“FilterType”filtertype,...“PassbandFrequency”成就,...“StopbandFrequency”Fstop,...“PassbandRipple”Rp,...“StopbandAttenuation”, Astop);

设计一个具有与FIR高通滤波器相同特性的最小阶IIR高通滤波器。使用克隆创建一个具有与FIR高通滤波器相同属性的系统对象。改变FilterType属性的克隆筛选器信息检索

IIRHPF =克隆(FIRHPF);IIRHPF。FilterType =“信息检索”

绘制FIR高通滤波器的脉冲响应。零阶系数被延迟19个样本,这等于滤波器的群延迟。FIR高通滤波器是一种因果FIR滤波器

fvtool (FIRHPF“分析”“冲动”

图脉冲响应包含一个轴对象。标题为Impulse Response的axes对象包含一个stem类型的对象。

绘制IIR高通滤波器的脉冲响应。

fvtool (IIRHPF“分析”“冲动”

图脉冲响应包含一个轴对象。标题为Impulse Response的axes对象包含一个stem类型的对象。

绘制FIR高通滤波器的幅值和相位响应。

fvtool (FIRHPF“分析”“频率”

图幅度响应(dB)和相位响应包含一个轴对象。标题为Magnitude Response (dB)和Phase Response的axis对象包含一个类型为line的对象。

绘制IIR高通滤波器的幅值和相位响应。

fvtool (IIRHPF“分析”“频率”

图幅度响应(dB)和相位响应包含一个轴对象。标题为Magnitude Response (dB)和Phase Response的axis对象包含一个类型为line的对象。

计算实现FIR高通滤波器的成本。

成本(FIRHPF)
ans =带字段的结构:NumCoefficients: 39 NumStates: 38 MultiplicationsPerInputSample: 39 AdditionsPerInputSample: 38

计算实现IIR高通滤波器的成本。IIR滤波器比FIR滤波器更有效地实现。

成本(IIRHPF)
ans =带字段的结构:NumCoefficients: 18 NumStates: 14 MultiplicationsPerInputSample: 18 AdditionsPerInputSample: 14

计算FIR高通滤波器的群时延。

grpdelay (FIRHPF)

图组延迟包含一个轴对象。标题为Group delay的axes对象包含一个line类型的对象。

计算IIR高通滤波器的群时延。FIR滤波器具有恒定的组延迟(线性相位),而IIR滤波器则没有。

grpdelay (IIRHPF)

图组延迟包含一个轴对象。标题为Group delay的axes对象包含一个line类型的对象。

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

设置IIR高通滤波器。高斯白噪声的采样率为44100 Hz。该滤波器的通带频率为12 kHz,阻带频率为8 kHz,通带纹波为0.1 dB,阻带衰减为80 dB。

Fs = 44.11 e3;filtertype =“信息检索”;Fpass = 12e3;Fstop = 8e3;Rp = 0.1;stop = 80;HPF = dsp。HighpassFilter (“SampleRate”Fs,...“FilterType”filtertype,...“PassbandFrequency”成就,...“StopbandFrequency”Fstop,...“PassbandRipple”Rp,...“StopbandAttenuation”, Astop);

查看高通滤波器的幅值响应。

fvtool(高通滤波器)

图幅度响应(dB)包含一个轴对象。标题为Magnitude Response (dB)的axis对象包含2个类型为line的对象。

创建频谱分析仪对象。

光谱分析仪(“SampleRate”, 44.1 e3,...“PlotAsTwoSidedSpectrum”假的,“ShowLegend”,真的,“YLimits”...30 [-150],...“标题”...IIR高通滤波器的输入信号和输出信号);sa。ChannelNames = {“输入”“输出”};

对输入的白色高斯噪声信号进行滤波。通过频谱分析仪查看输入输出信号。

k = 1:100 Input = randn(1024,1);输出= hpf(输入);sa((输入、输出));结束

测量高通滤波器的频率响应特性。创建一个dsp。HighpassFilter具有默认属性的系统对象。测量滤波器的频响特性。

HPF = dsp。HighpassFilter
HPF = dsp。HighpassFilter with properties: FilterType: 'FIR' DesignForMinimumOrder: true StopbandFrequency: 8000 PassbandFrequency: 12000 stopband衰减:80 PassbandRipple: 0.1000 SampleRate: 44100显示所有属性
测量(HPF)
HPFMeas =采样率:44.1 kHz止带边缘:8 kHz 6-dB点:10.418 kHz 3-dB点:10.8594 kHz通带边缘:12 kHz止带注意。: 81.8558 dB通带纹波:0.08066 dB过渡宽度:4 kHz

算法

全部展开

参考文献

[1] Shpak, d.j.和A. Antoniou。一种用于FIR数字滤波器设计的广义Remez方法。IEEE®电路与系统汇刊.第37卷第2期,1990年2月,第161-174页。

[2]塞莱斯尼克,i.w.和c.s.伯勒斯。“交换算法补充了线性相位FIR滤波器设计的Parks-McClellan算法。”IEEE电路与系统汇刊.第44卷,第2期,1997年2月,第137-143页

扩展功能

版本历史

在R2015a中引入