主要内容

fdesign.bandpass

带通滤波器设计规范对象

描述

fdesign.bandpass函数返回带通滤波器设计规范对象,该对象包含滤波器的规范,如通带频率、阻带频率、通带纹波和滤波器顺序。使用设计函数从筛选器设计规范对象设计筛选器。

有关更多控制选项,请参见滤波器设计程序.有关完整的工作流,请参见在Fdesign -流程概述中设计一个过滤器

例子

bandpassSpecs= fdesign.bandpass使用以下默认值构造一个带通滤波器设计规范对象:

  • 第一个阻带频率设置为0.35。

  • 第一通频带频率设置为0.45。

  • 第二通频带频率设置为0.55。

  • 第二阻带频率设置为0.65。

  • 第一个阻带衰减设置为60 dB。

  • 通带纹波设置为1dB。

  • 第二阻带衰减设置为60 dB。

例子

bandpassSpecs= fdesign.bandpass (规范value1,…,家构造一个带通滤波器规范对象,该对象具有特定的滤波器顺序、阻带频率、通带频率和其他规范选项。指示要在表达式中指定的选项规范.在表达式之后,为每个选项指定一个值。属性之后未指定值规范参数时,函数采用默认值。

bandpassSpecs= fdesign.bandpass (___Fs提供待滤波信号的采样率(Hz)。Fs必须指定为尾随在所提供的其他数值之后的标量。在本例中,规格中的所有频率都以Hz为单位。

设计说明书fdesign.bandpass(“Fst1、Fp1 Fp2, Fst2, Ast1,美联社,Ast2’,4,5,6,7,60岁,1,80)设计相同的过滤器fdesign.bandstop(“Fst1、Fp1 Fp2, Fst2, Ast1,美联社,Ast2”,1600年,2000年,2400年,2800年,60岁的1,80年,8000年)

bandpassSpecs= fdesign.bandpass (___magunits提供指定大小的单位。magunits可以是以下之一:“线性”“数据库”,或“方”.如果省略此参数,则对象假设大小规格的单位为“数据库”.无论震级规格是如何指定的,它们总是转换并以分贝为单位存储。如果Fs提供,magunits必须遵循Fs在输入参数列表中。

例子

全部折叠

设计一个通频带为[1,1.4]kHz的100阶约束带FIR等纹波滤波器。两个阻带衰减值都限制在60 dB。采样率为10khz。

创建一个带通对象的过滤器设计规范fdesign.bandpass功能并指定这些设计参数。

bandpassSpecs = fdesign.bandpass(' N, Fst1 Fp1 Fp2, Fst2, C '100800年1 e3, 1.4 e3, 1.6 e3, 1 e4);

用60 dB的阻带衰减来约束两个阻带。

bandpassSpecs。Stopband1Constrained = true;bandpassSpecs。Astop1 = 60;bandpassSpecs。Stopband2Constrained = true;bandpassSpecs。Astop2 = 60;

设计了带通滤波器设计函数。生成的筛选器是dsp。FIRFilter系统对象™。有关如何在流数据上应用此过滤器的详细信息,请参见dsp。FIRFilter

bandpassFilt =设计“Systemobject”,真正的)
bandpassFilt = dsp。FIRFilterwith properties: Structure: 'Direct form' NumeratorSource: 'Property' Numerator: [5.5055e-04 5.4751e-05 -2.2052e-05 6.5244e-05 ... ] InitialConditions: 0 Show all properties

可视化所设计滤波器的频率响应fvtool

fvtool (bandpassFilt)

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

测量滤波器的频响特性测量.通带纹波略超过2分贝。因为设计限制了两个止带,所以不能限制通带波纹。

测量(bandpassFilt)
ans =采样率:10 kHz第一个阻带边缘:800 Hz第一个6-dB点:946.7621 Hz第一个3-dB点:975.1807 Hz第一个通带边缘:1 kHz第二个通带边缘:1.4 kHz第二个3-dB点:1.4248 kHz第二个6-dB点:1.4533 kHz第二个阻带边缘:1.6 kHz第一个阻带注意。: 60.0614 dB通带纹波:2.1443 dB秒阻带注意: 60.0399 dB第一过渡宽度:200hz第二过渡宽度:200hz

设计一个巴特沃斯IIR带通滤波器。滤波器的设计程序为:

  1. 指定过滤器设计规范fdesign函数。

  2. 方法提供的设计方法designmethods函数。

  3. 要确定可供选择的可用设计选项,请使用designoptions函数。

  4. 设计过滤器使用设计函数。

构造一个默认的带通滤波器设计规范对象fdesign.bandpass

bandpassSpecs = fdesign.bandpass
带通规格=带通属性:响应:'带通'规格:'Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2'描述:{7x1 cell} NormalizedFrequency: 1 Fstop1: 0.3500 Fpass1: 0.4500 Fpass2: 0.5500 Fstop2: 0.6500 Astop1: 60 Apass: 1 Astop2: 60

确定可用的设计方法designmethods函数。要设计一个巴特沃斯滤波器,请选择黄油

designmethods (bandpassSpecs“Systemobject”,真正的)
支持fdesign类的系统对象的设计方法万博1manbetx。带通(Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2): butter cheby1 cheby2 ellip equiripple kaiserwin

在设计筛选器时,可以指定其他设计选项。属性查看选项列表designoptions函数。该函数还显示筛选器使用的默认设计选项。

designoptions (bandpassSpecs“黄油”
ans =带字段的结构:SOSScaleNorm: 'ustring' SOSScaleOpts: 'fdopts. FilterStructure: {1x6 cell}sosscaling' MatchExactly: {'passband' 'stopband'} SystemObject: 'bool' DefaultFilterStructure: 'df2sos' DefaultMatchExactly: 'stopband' DefaultSOSScaleNorm: " DefaultSOSScaleOpts: [1x1 fdopts。sosscaling] DefaultSystemObject: 0

使用设计函数来设计过滤器。通过“黄油”以及由变量给出的规格bandpassSpecs,作为输入参数。指定“matchexactly”设计选项为“通频带”

bpFilter =设计“黄油”“matchexactly”“通频带”“SystemObject”,真正的)
bpFilter = dsp。SOSMatrixSource: 'Property' SOSMatrix: [7x6 double] ScaleValues: [8x1 double] InitialConditions: 0 OptimizeUnityScaleValues: true显示所有属性

可视化所设计滤波器的频率响应。

fvtool (bpFilter)

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

带通滤波器是一种离散时间正弦波信号,由频率为1khz, 10khz和15khz的三个正弦波组成。

设计FIR等纹波带通滤波器,首先创建一个带通滤波器设计规范对象,然后使用这些规范设计滤波器。

带通滤波器设计

使用创建一个带通滤波器设计规范对象fdesign.bandpass

bandpassSpecs = fdesign.bandpass(, Fst1 Fp1 Fp2, Fst2 Ast1,美联社,Ast2”...1/4, 3/8, 5/8, 6/8, 60岁,1、60);

列出此对象的可用设计方法。

designmethods (bandpassSpecs)
类fdesign的设计方法。带通(Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2): butter cheby1 cheby2 ellip equiripple kaiserwin

为了设计一个等纹波滤波器,选择“equiripple”

bpFilter =设计“equiripple”“Systemobject”,真正的)
bpFilter = dsp。FIRFilterwith properties: Structure: 'Direct form' NumeratorSource: 'Property' Numerator: [-0.0043 -3.0812e-15 0.0136 3.7820e-15 -0.0180 ... ] InitialConditions: 0 Show all properties

可视化所设计滤波器的频率响应。

fvtool (bpFilter“Fs”, 44100)

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

创建正弦信号

创建一个频率为1 kHz、10 kHz和15 kHz的三个正弦波的和的信号。初始化频谱分析仪,查看原始信号和滤波后的信号。

Sine1 = dsp。SineWave (“频率”1 e3,“SampleRate”, 44.1 e3,“SamplesPerFrame”, 4000);Sine2 = dsp。SineWave (“频率”, 10 e3,“SampleRate”, 44.1 e3,“SamplesPerFrame”, 4000);Sine3 = dsp。SineWave (“频率”15 e3,“SampleRate”, 44.1 e3,“SamplesPerFrame”, 4000);光谱分析仪(“PlotAsTwoSidedSpectrum”假的,...“SampleRate”, Sine1。SampleRate,...“ShowLegend”,真的,...“YLimits”, -240年,45);SpecAna。ChannelNames = {“原始噪声信号”带通滤波信号};

滤波正弦信号

使用所设计的带通滤波器对正弦信号进行滤波。在频谱分析仪中查看原始信号和滤波后的信号。1千赫的音调被过滤和衰减。10 kHz的音调不受影响,15 kHz的音调轻微减弱,因为它出现在滤波器的过渡带中。

i = 1,1000 x = Sine1()+Sine2()+Sine3();y = bpFilter(x)SpecAna (x, y);结束发行版(SpecAna)

输入参数

全部折叠

规范表达式,指定为以下字符向量之一:

  • , Fst1 Fp1 Fp2, Fst2 Ast1,美联社,Ast2”(默认)

  • “N F3dB1 F3dB2”

  • “N F3dB1 F3dB2,美联社”

  • “N F3dB1 F3dB2 Ast、“

  • ' N, F3dB1 F3dB2, Ast1,美联社,Ast2”

  • “N F3dB1 F3dB2, BWp”

  • “N F3dB1 F3dB2, BWst”

  • “N, Fc1, Fc2”

  • ' N, Fc1 Fc2, Ast1,美联社,Ast2”

  • “N Fp1 Fp2,美联社”

  • ' N, Fp1 Fp2, Ast1,美联社,Ast2”

  • ' N, Fst1 Fp1 Fp2, Fst2”

  • ' N, Fst1 Fp1 Fp2, Fst2, C '

  • ' N, Fst1 Fp1 Fp2, Fst2,美联社的

  • “N Fst1 Fst2 Ast、“

  • “Nb, Na, Fst1、Fp1 Fp2, Fst2”

该表描述了表达式中可能出现的每个选项。

规范的选择 描述
美联社 通带中允许的纹波量,指定为apas在dB。
Ast 阻带衰减(dB),指定使用Astop
Ast1 第一阻带衰减(dB),指定使用Astop1
Ast2 第二阻带(dB)衰减,指定使用Astop2
BWp 过滤器通带的带宽,指定为BWpass归一化频率单位。
BWst 两个阻带频率之间的频率宽度,指定为BWstop归一化频率单位。
F3dB1 第一个截止的通带值以下3db点的频率,以归一化频率单位指定。适用于IIR滤波器。
F3dB2 第二截止的通带值以下3db点的频率,以标准化频率单位指定。适用于IIR滤波器。
Fc1 第一截止频率(归一化频率单位),指定使用Fcutoff1.适用于FIR滤波器。
Fc2 第二截止频率(归一化频率单位),指定使用Fcutoff1.适用于FIR滤波器。
Fp1 通带开始边缘的频率,指定为Fpass1归一化频率单位。
Fp2 通带末端边缘的频率,指定为Fpass2归一化频率单位。
Fst1 第一个停止频带末端边缘的频率,指定为Fstop1归一化频率单位。
Fst2 第二停止频带开始边缘处的频率,指定为Fstop2归一化频率单位。
N FIR滤波器的滤波器订单。或者IIR滤波器的分子和分母都有阶Na而且不提供。指定使用FilterOrder
IIR滤波器的分子顺序,使用NumOrder财产。
Na IIR滤波器的分母顺序,使用DenOrder财产。
C

受限波段标志。这使您可以在三个波段中的一个或两个指定固定顺序设计的通带纹波或阻带衰减。

详情请参见c

从图形上看,过滤器规范与此图中所示的类似。

规格值之间的区域,如Fst1而且Fp1是没有明确定义过滤器响应的过渡区域。

可用于设计滤波器的设计方法取决于规格表达式。方法可以通过designmethods函数。该表列出了支持的每个规范表达式万博1manbetxfdesign.bandpass以及可用的相应设计方法。

规范表达 万博1manbetx支持的设计方法
, Fst1 Fp1 Fp2, Fst2 Ast1,美联社,Ast2” 黄油cheby1cheby2ellipequiripplekaiserwin
“N F3dB1 F3dB2” 黄油
“N F3dB1 F3dB2,美联社” cheby1
“N F3dB1 F3dB2 Ast、“ cheby2ellip
' N, F3dB1 F3dB2, Ast1,美联社,Ast2” ellip
“N F3dB1 F3dB2, BWp” cheby1
“N F3dB1 F3dB2, BWst” cheby2
“N, Fc1, Fc2” 窗口
' N, Fc1 Fc2, Ast1,美联社,Ast2” fircls
“N Fp1 Fp2,美联社” cheby1
' N, Fp1 Fp2, Ast1,美联社,Ast2” ellip
' N, Fst1 Fp1 Fp2, Fst2” iirlpnormequiripplefirls
' N, Fst1 Fp1 Fp2, Fst2, C ' equiripple
' N, Fst1 Fp1 Fp2, Fst2,美联社的 ellip
“N Fst1 Fst2 Ast、“ cheby2
“Nb, Na, Fst1、Fp1 Fp2, Fst2” iirlpnorm

要设计过滤器,请调用设计以这些设计方法之一作为输入的函数。您可以通过传递来选择筛选器响应的类型“杉”“信息检索”设计函数。详情请参见设计.输入帮助(bandpassSpecs“方法”)在MATLAB中®命令行获取有关给定设计方法的设计选项的详细帮助。

规范值,指定为逗号分隔的值列表。中的每个选项指定一个值规范与表达式中选项出现的顺序相同。

例子:= fdesign.bandpass('N,Fc1,Fc2,Ast1,Ap,Ast2', N,Fc1,Fc2,Ast1,Ap,Ast2)

下面的输入参数提供了表达式中每个选项的更多详细信息。

FIR过滤器的过滤器顺序,指定为正整数。在IIR滤波器设计的情况下,如果而且na如果不提供,则此值将被解释为分子顺序和分母顺序。

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

IIR过滤器的分子顺序,指定为非负整数。

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

IIR过滤器的分母顺序,指定为正整数。

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

这使您可以在三个波段中的一个或两个指定固定顺序设计的通带纹波或阻带衰减。

在规范中' N, Fst1 Fp1 Fp2, Fst2, C ',您不能同时为所有三个频带(两个止带和一个通带)指定约束。您可以在任何一个或两个波段中指定约束。

考虑以下带通设计规范,其中两个阻带都被限制为默认值60 dB。

例子:spec = fdesign.bandpass('N,Fst1,Fp1,Fp2,Fst2,C',100,800,1e3,1.4e3,1.6e3,1e4);spec.Stopband1Constrained = true;spec.Stopband2Constrained = true;

通带纹波,以dB为单位指定为正标量。如果magunits“线性”“方”,通带纹波被函数转换并存储在dB中,而不管它是如何指定的。

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

止带衰减,指定为正标量,单位为dB。如果magunits“线性”“方”时,无论如何指定阻带衰减,函数都将阻带衰减转换并存储为dB。

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

第一个止带的衰减,用正标量表示,单位为dB。如果magunits“线性”“方”时,无论函数如何指定,第一个阻带衰减都将转换并存储为dB。

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

第二止带的衰减,用正标量表示,单位为dB。如果magunits“线性”“方”,第二阻带衰减被函数转换并存储为dB,而不管它是如何指定的。

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

前3分贝频率,在归一化频率单位中指定为正标量。

这是第一个截止的通带值以下3db点的频率。此输入参数仅适用于IIR过滤器。

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

秒3分贝频率,在归一化频率单位中指定为正标量。

这是第二次截止的通带值以下3db点的频率。此输入参数仅适用于IIR过滤器。

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

第一个截止频率,在标准化频率单位中指定为正标量。

此输入参数仅适用于FIR滤波器。

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

第二截止频率,在归一化频率单位中指定为正标量。

此输入参数仅适用于FIR滤波器。

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

第一个止带频率,在归一化频率单位中指定为正标量。

这是第一个阻带末端边缘的频率。

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

第二止带频率,在标准化频率单位中指定为正标量。

这是在第二止带开始边缘的频率。

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

第一个通带频率,在归一化频率单位中指定为正标量。

这是第一个通带开始边缘的频率。

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

第二通带频率,在归一化频率单位中指定为正标量。

这是通带末端边缘的频率。

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

以标准化频率单位表示的滤波器通带带宽,指定为小于的正标量F3dB2F3dB1

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

两个止带频率之间的频率宽度,在归一化频率单位中指定为正标量。

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

要过滤的信号的采样率,以赫兹为单位指定为标量。将采样率指定为尾随所提供的其他数值的标量。当Fs提供,Fs假设为Hz,所有其他频率值也是如此。注意,您不必更改规格字符串。

下面的设计将规格字符串设置为, Fst1 Fp1 Fp2, Fst2 Ast1,美联社,Ast2”,采样率设置为8000hz。

bandpassSpecs = fdesign.bandpass('Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2',1600,2000,2400,2800,60,1,80,8000);filt = design(bandpassSpecs,'Systemobject',true);

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

大小规格单位,指定为“数据库”“线性”,或“方”.如果省略此参数,则对象假定大小单位为“数据库”.请注意,无论大小规格是如何指定的,它们总是转换并存储在dB中。如果Fs是输入参数之一,magunits必须在后面指定Fs在输入参数列表中。

输出参数

全部折叠

带通滤波器设计规范对象,返回为带通对象。对象的字段取决于规范输入字符向量。

考虑一个例子,其中规范参数设置为“N, Fc1, Fc2”,对应的值设置为100.6,0.8,分别。的带通过滤器设计规范对象使用以下字段填充:

版本历史

在R2009a中引入