设计数字滤波器
设计一个d
= designfilt (分别地
,名称,值
)digitalFilter
对象,d
,具有响应类型分别地
.属性的集合进一步指定筛选器名称,值
对。允许的规范集取决于响应类型,分别地
,并由下列组合组成:
频率约束对应于滤波器显示所需行为的频率。例子包括'
PassbandFrequency
'
而且'
CutoffFrequency
'
.(请参阅下面的完整列表名称-值对参数)。您必须始终指定频率约束。
大小限制描述滤波器在特定频率范围内的行为。例子包括'
PassbandRipple
'
而且'
StopbandAttenuation
'
.(请参阅下面的完整列表名称-值对参数)。designfilt
为未指定的幅度约束提供默认值。在任意幅值设计中,必须始终指定所需幅值的矢量。
'
FilterOrder
'
.有些设计方法允许您指定顺序。其他人则生产最小订单设计。也就是说,它们生成满足指定约束的最小过滤器。
'
DesignMethod
'
是用来设计滤波器的算法。例子包括受约束最小二乘(“cls”
)和Kaiser窗口(“kaiserwin”
).对于某些规范集,有多种设计方法可供选择。在其他情况下,您可以只使用一种方法来满足所需的规范。
设计选项是特定于给定设计方法的参数。例子包括'
窗口
'
为“窗口”
方法与优化'
权重
'
对于任意大小的等纹波设计。(请参阅下面的完整列表名称-值对参数)。designfilt
为未指定的设计选项提供默认值。
'
SampleRate
'
是滤波器工作的频率。designfilt
默认采样率为2hz。使用这个值相当于使用标准化频率。
如果在命令行中指定了不完整或不一致的名-值对集,designfilt
提供开设过滤器设计助理.该助手可以帮助您设计滤波器并粘贴校正后的MATLAB®命令行上的代码。
如果你打电话designfilt
如果脚本或函数的规范集不正确,designfilt
对象的打开链接发出错误消息过滤器设计助理.该助手帮助您设计过滤器,注释掉函数或脚本中的错误代码,并将更正后的MATLAB代码粘贴到下一行。
使用过滤器
在表格中dataOut = filter(d,dataIn)
对信号进行滤波digitalFilter
,d
.
使用FVTool为了想象digitalFilter
,d
.
类型d.Coefficients
为了得到a的系数digitalFilter
,d
.对于IIR滤波器,系数表示为二阶截面。
看到digitalFilter
获取可供使用的筛选和分析函数的列表digitalFilter
对象。
designfilt (
让你编辑现有的数字滤镜,d
)d
.它打开一个过滤器设计助理用筛选器的规范填充,然后可以对其进行修改。这是您可以编辑的唯一方法digitalFilter
对象。否则它的属性是只读的。
设计了一种通频带归一化的最小阶低通FIR滤波器 Rad /s,阻带频率 rad/s,通带纹波0.5 dB,阻带衰减65 dB。使用Kaiser窗口设计滤镜。想象它的大小响应。使用它来过滤随机数据的向量。
lpFilt = designfilt(“lowpassfir”,“PassbandFrequency”, 0.25,...“StopbandFrequency”, 0.35,“PassbandRipple”, 0.5,...“StopbandAttenuation”, 65,“DesignMethod”,“kaiserwin”);fvtool (lpFilt)
dataIn = rand(1000,1);dataOut = filter(lpFilt,dataIn);
设计一个8阶低通IIR滤波器,通带频率35khz,通带纹波0.2 dB。指定200khz的采样率。可视化滤波器的幅值响应。
lpFilt = designfilt(“lowpassiir”,“FilterOrder”8...“PassbandFrequency”35岁的e3,“PassbandRipple”, 0.2,...“SampleRate”200年e3);fvtool (lpFilt)
使用你设计的滤波器来过滤1000个样本的随机信号。
dataIn = randn(1000,1);dataOut = filter(lpFilt,dataIn);
输出滤波器系数,表示为二阶部分。
sos = lpFilt。系数
sos =4×60.2666 0.5333 0.2666 1.0000 -0.8346 0.9073 0.1943 0.3886 0.1943 1.0000 -0.9586 0.7403 0.1012 0.2023 0.1012 1.0000 -1.1912 0.5983 0.0318 0.0636 0.0318 1.0000 -1.3810 0.5090
设计一种阻带频率归一化的最小阶高通FIR滤波器 Rad /s,通带频率 rad/s,通带纹波0.5 dB,阻带衰减65 dB。使用Kaiser窗口设计滤镜。想象它的大小响应。用它来过滤1000个随机数据样本。
hpFilt = designfilt(“highpassfir”,“StopbandFrequency”, 0.25,...“PassbandFrequency”, 0.35,“PassbandRipple”, 0.5,...“StopbandAttenuation”, 65,“DesignMethod”,“kaiserwin”);fvtool (hpFilt)
dataIn = randn(1000,1);dataOut = filter(hpFilt,dataIn);
设计一个8阶的高通IIR滤波器,通频带频率75 kHz,通带纹波0.2 dB。指定200khz的采样率。可视化滤波器的幅值响应。将过滤器应用于随机数据的1000个样本向量。
hpFilt = designfilt(“highpassiir”,“FilterOrder”8...“PassbandFrequency”75年e3,“PassbandRipple”, 0.2,...“SampleRate”200年e3);fvtool (hpFilt)
dataIn = randn(1000,1);dataOut = filter(hpFilt,dataIn);
设计一个20阶带通FIR滤波器,低截止频率500hz,高截止频率560hz。采样率为1500hz。可视化滤波器的幅值响应。用它来过滤包含1000个样本的随机信号。
bpFilt = designfilt(“bandpassfir”,“FilterOrder”, 20岁,...“CutoffFrequency1”, 500,“CutoffFrequency2”, 560,...“SampleRate”, 1500);fvtool (bpFilt)
dataIn = randn(1000,1);dataOut = filter(bpFilt,dataIn);
输出滤波器系数。
b = bpFilt。系数
b =1×21-0.0113 0.0067 0.0125 -0.0445 0.0504 0.0101 -0.1070 0.1407 -0.0464 -0.1127 0.1913 -0.1127 -0.0464 0.1407 -0.1070 0.0101 0.0504 -0.0445 0.0125 0.0067 -0.0113
设计一个20阶带通IIR滤波器,低3db频率500hz,高3db频率560hz。采样率为1500hz。可视化滤波器的频率响应。用它来过滤1000个样本的随机信号。
bpFilt = designfilt(“bandpassiir”,“FilterOrder”, 20岁,...“HalfPowerFrequency1”, 500,“HalfPowerFrequency2”, 560,...“SampleRate”, 1500);fvtool (bpFilt)
dataIn = randn(1000,1);dataOut = filter(bpFilt,dataIn);
设计一个20阶带阻FIR滤波器,低截止频率500hz,高截止频率560hz。采样率为1500hz。可视化滤波器的幅值响应。用它来过滤1000个随机数据样本。
bsFilt = designfilt(“bandstopfir”,“FilterOrder”, 20岁,...“CutoffFrequency1”, 500,“CutoffFrequency2”, 560,...“SampleRate”, 1500);fvtool (bsFilt)
dataIn = randn(1000,1);dataOut = filter(bsFilt,dataIn);
设计一个20阶带阻IIR滤波器,低3db频率500hz,高3db频率560hz。采样率为1500hz。可视化滤波器的幅值响应。用它来过滤1000个随机数据样本。
bsFilt = designfilt(“bandstopiir”,“FilterOrder”, 20岁,...“HalfPowerFrequency1”, 500,“HalfPowerFrequency2”, 560,...“SampleRate”, 1500);fvtool (bsFilt)
dataIn = randn(1000,1);dataOut = filter(bsFilt,dataIn);
设计一个全频带7阶微分器滤波器。显示其零相位响应。用它来过滤随机数据的1000个样本向量。
dFilt = designfilt(“differentiatorfir”,“FilterOrder”7);fvtool (dFilt“MagnitudeDisplay”,“零”)
dataIn = randn(1000,1);dataOut = filter(dFilt,dataIn);
设计一个18阶希尔伯特变压器。指定的归一化过渡宽度 rad / s。以线性单位显示滤波器的幅值响应。用它来过滤随机数据的1000个样本向量。
hFilt = designfilt(“hilbertfir”,“FilterOrder”, 18岁,“TransitionWidth”, 0.25);fvtool (hFilt“MagnitudeDisplay”,“级”)
dataIn = randn(1000,1);dataOut = filter(hFilt,dataIn);
给你一个1khz的采样信号。设计一个滤波器,可以阻止频率在100hz ~ 350hz之间和频率大于400hz的频率。指定筛选器的顺序为60。可视化滤波器的频率响应。用它来过滤1000个样本的随机信号。
mbFilt = designfilt(“arbmagfir”,“FilterOrder”现年60岁的...“频率”0:50:500,“振幅”,[1 1 1 1 0 0 0 0 0 1 1 0 0],...“SampleRate”, 1000);fvtool (mbFilt)
dataIn = randn(1000,1);dataOut = filter(mbFilt,dataIn);
分别地
- - - - - -过滤器响应和类型“lowpassfir”
|“lowpassiir”
|“highpassfir”
|“highpassiir”
|“bandpassfir”
|“bandpassiir”
|“bandstopfir”
|“bandstopiir”
|“differentiatorfir”
|“hilbertfir”
|“arbmagfir”
筛选器响应和类型,指定为字符向量或字符串标量。的可能值之一单击分别地
展开包含允许的规格集的表。
选择此选项可设计有限脉冲响应(FIR)低通滤波器。本例使用下表中的第五个规范集。
D = designfilt(“lowpassfir”,...响应类型“FilterOrder”25岁的...过滤器顺序%“PassbandFrequency”, 400,...%频率约束“StopbandFrequency”, 550,...“DesignMethod”,“ls”,...%设计方法“PassbandWeight”, 1...%设计方法选项“StopbandWeight”2,...“SampleRate”, 2000)%抽样率
如果你省略了“FilterOrder”
(如有需要),或任何频率限制,designfilt
抛出错误。
如果忽略幅度约束,designfilt
使用默认值。
如果你省略了“DesignMethod”
,designfilt
为规格集使用默认设计方法。
如果省略了设计方法选项,designfilt
使用所选设计方法的默认值。
如果你省略了“SampleRate”
,designfilt
设置为2hz。
过滤器顺序参数名称 | 频率约束参数名称 | 量级约束参数名称 | ' DesignMethod ' 参数值 |
设计选项参数名称 |
---|---|---|---|---|
-(最小订单设计) |
|
N/A |
||
|
||||
N/A |
|
N/A |
||
N/A |
|
|
||
|
||||
N/A |
|
|||
|
选择此选项可设计无限脉冲响应(IIR)低通滤波器。本示例使用下表中的第一个规范集。
D = designfilt(“lowpassiir”,...响应类型“PassbandFrequency”, 400,...%频率约束“StopbandFrequency”, 550,...“PassbandRipple”4...幅度约束“StopbandAttenuation”现年55岁的...“DesignMethod”,“ellip”,...%设计方法“MatchExactly”,“通频带”,...%设计方法选项“SampleRate”, 2000)%抽样率
如果你省略了“FilterOrder”
(如有需要),或任何频率限制,designfilt
抛出错误。
如果忽略幅度约束,designfilt
使用默认值。
如果你省略了“DesignMethod”
,designfilt
为规格集使用默认设计方法。
如果省略了设计方法选项,designfilt
使用所选设计方法的默认值。
如果你省略了“SampleRate”
,designfilt
设置为2hz。
过滤器顺序参数名称 | 频率约束参数名称 | 量级约束参数名称 | ' DesignMethod ' 参数值 |
设计选项参数名称 |
---|---|---|---|---|
-(最小订单设计) |
|
|||
|
||||
|
||||
|
||||
N/A |
|
N/A |
||
|
N/A |
|||
|
N/A |
|||
|
N/A |
|||
N/A |
|
N/A |
选择此选项可设计有限脉冲响应(FIR)高通滤波器。本示例使用下表中的第一个规范集。
D = designfilt(“highpassfir”,...响应类型“StopbandFrequency”, 400,...%频率约束“PassbandFrequency”, 550,...“StopbandAttenuation”现年55岁的...幅度约束“PassbandRipple”4...“DesignMethod”,“kaiserwin”,...%设计方法“ScalePassband”假的,...%设计方法选项“SampleRate”, 2000)%抽样率
如果你省略了“FilterOrder”
(如有需要),或任何频率限制,designfilt
抛出错误。
如果忽略幅度约束,designfilt
使用默认值。
如果你省略了“DesignMethod”
,designfilt
为规格集使用默认设计方法。
如果省略了设计方法选项,designfilt
使用所选设计方法的默认值。
如果你省略了“SampleRate”
,designfilt
设置为2hz。
过滤器顺序参数名称 | 频率约束参数名称 | 量级约束参数名称 | ' DesignMethod ' 参数值 |
设计选项参数名称 |
---|---|---|---|---|
-(最小订单设计) |
|
N/A |
||
|
||||
N/A |
|
|
||
|
||||
N/A |
|
|||
|
选择此选项可设计无限脉冲响应(IIR)高通滤波器。本示例使用下表中的第一个规范集。
D = designfilt(“highpassiir”,...响应类型“StopbandFrequency”, 400,...%频率约束“PassbandFrequency”, 550,...“StopbandAttenuation”现年55岁的...幅度约束“PassbandRipple”4...“DesignMethod”,“cheby1”,...%设计方法“MatchExactly”,阻带的,...%设计方法选项“SampleRate”, 2000)%抽样率
如果你省略了“FilterOrder”
(如有需要),或任何频率限制,designfilt
抛出错误。
如果忽略幅度约束,designfilt
使用默认值。
如果你省略了“DesignMethod”
,designfilt
为规格集使用默认设计方法。
如果省略了设计方法选项,designfilt
使用所选设计方法的默认值。
如果你省略了“SampleRate”
,designfilt
设置为2hz。
过滤器顺序参数名称 | 频率约束参数名称 | 量级约束参数名称 | ' DesignMethod ' 参数值 |
设计选项参数名称 |
---|---|---|---|---|
-(最小订单设计) |
|
|||
|
||||
|
||||
|
||||
N/A |
|
N/A |
||
|
N/A |
|||
|
N/A |
|||
|
N/A |
|||
N/A |
|
N/A |
选择此选项可设计有限脉冲响应(FIR)带通滤波器。本例使用下表中的第四个规范集。
D = designfilt(“bandpassfir”,...响应类型“FilterOrder”, 86,...过滤器顺序%“StopbandFrequency1”, 400,...%频率约束“PassbandFrequency1”, 450,...“PassbandFrequency2”, 600,...“StopbandFrequency2”, 650,...“DesignMethod”,“ls”,...%设计方法“StopbandWeight1”, 1...%设计方法选项“PassbandWeight”2,...“StopbandWeight2”3,...“SampleRate”, 2000)%抽样率
如果你省略了“FilterOrder”
(如有需要),或任何频率限制,designfilt
抛出错误。
如果忽略幅度约束,designfilt
使用默认值。
如果你省略了“DesignMethod”
,designfilt
为规格集使用默认设计方法。
如果省略了设计方法选项,designfilt
使用所选设计方法的默认值。
如果你省略了“SampleRate”
,designfilt
设置为2hz。
过滤器顺序参数名称 | 频率约束参数名称 | 量级约束参数名称 | ' DesignMethod ' 参数值 |
设计选项参数名称 |
---|---|---|---|---|
-(最小订单设计) |
|
N/A |
||
|
||||
N/A |
|
|
||
|
||||
N/A |
|
|||
|
选择此选项可设计无限脉冲响应(IIR)带通滤波器。本示例使用下表中的第一个规范集。
D = designfilt(“bandpassiir”,...响应类型“StopbandFrequency1”, 400,...%频率约束“PassbandFrequency1”, 450,...“PassbandFrequency2”, 600,...“StopbandFrequency2”, 650,...“StopbandAttenuation1”现年40岁的...幅度约束“PassbandRipple”, 1...“StopbandAttenuation2”, 50岁,...“DesignMethod”,“ellip”,...%设计方法“MatchExactly”,“通频带”,...%设计方法选项“SampleRate”, 2000)%抽样率
如果你省略了“FilterOrder”
(如有需要),或任何频率限制,designfilt
抛出错误。
如果忽略幅度约束,designfilt
使用默认值。
如果你省略了“DesignMethod”
,designfilt
为规格集使用默认设计方法。
如果省略了设计方法选项,designfilt
使用所选设计方法的默认值。
如果你省略了“SampleRate”
,designfilt
设置为2hz。
过滤器顺序参数名称 | 频率约束参数名称 | 量级约束参数名称 | ' DesignMethod ' 参数值 |
设计选项参数名称 |
---|---|---|---|---|
-(最小订单设计) |
|
|||
|
||||
|
||||
|
||||
N/A |
|
N/A |
||
|
N/A |
|||
|
N/A |
|||
|
N/A |
选择此选项可设计有限脉冲响应(FIR)带阻滤波器。本例使用下表中的第四个规范集。
D = designfilt(“bandstopfir”,...响应类型“FilterOrder”32岁的...过滤器顺序%“PassbandFrequency1”, 400,...%频率约束“StopbandFrequency1”, 500,...“StopbandFrequency2”, 700,...“PassbandFrequency2”, 850,...“DesignMethod”,“ls”,...%设计方法“PassbandWeight1”, 1...%设计方法选项“StopbandWeight”3,...“PassbandWeight2”5,...“SampleRate”, 2000)%抽样率
如果你省略了“FilterOrder”
(如有需要),或任何频率限制,designfilt
抛出错误。
如果忽略幅度约束,designfilt
使用默认值。
如果你省略了“DesignMethod”
,designfilt
为规格集使用默认设计方法。
如果省略了设计方法选项,designfilt
使用所选设计方法的默认值。
如果你省略了“SampleRate”
,designfilt
设置为2hz。
过滤器顺序参数名称 | 频率约束参数名称 | 量级约束参数名称 | ' DesignMethod ' 参数值 |
设计选项参数名称 |
---|---|---|---|---|
-(最小订单设计) |
|
N/A |
||
|
||||
N/A |
|
|
||
|
||||
N/A |
|
|||
|
选择此选项可设计无限脉冲响应(IIR)带阻滤波器。本示例使用下表中的第一个规范集。
D = designfilt(“bandstopiir”,...响应类型“PassbandFrequency1”, 400,...%频率约束“StopbandFrequency1”, 500,...“StopbandFrequency2”, 700,...“PassbandFrequency2”, 850,...“PassbandRipple1”, 1...幅度约束“StopbandAttenuation”现年55岁的...“PassbandRipple2”, 1...“DesignMethod”,“ellip”,...%设计方法“MatchExactly”,“两个”,...%设计方法选项“SampleRate”, 2000)%抽样率
如果你省略了“FilterOrder”
(如有需要),或任何频率限制,designfilt
抛出错误。
如果忽略幅度约束,designfilt
使用默认值。
如果你省略了“DesignMethod”
,designfilt
为规格集使用默认设计方法。
如果省略了设计方法选项,designfilt
使用所选设计方法的默认值。
如果你省略了“SampleRate”
,designfilt
设置为2hz。
过滤器顺序参数名称 | 频率约束参数名称 | 量级约束参数名称 | ' DesignMethod ' 参数值 |
设计选项参数名称 |
---|---|---|---|---|
-(最小订单设计) |
|
|||
|
||||
|
||||
|
||||
N/A |
|
N/A |
||
|
N/A |
|||
|
N/A |
|||
|
N/A |
选择此选项可设计有限脉冲响应(FIR)微分器滤波器。本例使用下表中的第二个规范集。
D = designfilt(“differentiatorfir”,...响应类型“FilterOrder”现年42岁的...过滤器顺序%“PassbandFrequency”, 400,...%频率约束“StopbandFrequency”, 500,...“DesignMethod”,“equiripple”,...%设计方法“PassbandWeight”, 1...%设计方法选项“StopbandWeight”4...“SampleRate”, 2000)%抽样率
如果你省略了“FilterOrder”
,或设计部分带微分器时的任何频率约束,designfilt
抛出错误。
如果你省略了“DesignMethod”
,designfilt
为规格集使用默认设计方法。
如果省略了设计方法选项,designfilt
使用所选设计方法的默认值。
如果你省略了“SampleRate”
,designfilt
设置为2hz。
过滤器顺序参数名称 | 频率约束参数名称 | 量级约束参数名称 | ' DesignMethod ' 参数值 |
设计选项参数名称 |
---|---|---|---|---|
N/A |
N/A |
|
N/A |
|
|
N/A |
|||
N/A |
|
|||
|
N/A |
选择这个选项来设计一个有限脉冲响应(FIR)希尔伯特变压器滤波器。本示例使用下表中的规范集。
D = designfilt(“hilbertfir”,...响应类型“FilterOrder”,12,...过滤器顺序%“TransitionWidth”, 400,...%频率约束“DesignMethod”,“ls”,...%设计方法“SampleRate”, 2000)%抽样率
如果你省略了“FilterOrder”
或“TransitionWidth”
,designfilt
抛出错误。
如果你省略了“DesignMethod”
,designfilt
希尔伯特变压器采用默认设计方法。
如果你省略了“SampleRate”
,designfilt
设置为2hz。
过滤器顺序参数名称 | 频率约束参数名称 | 量级约束参数名称 | ' DesignMethod ' 参数值 |
设计选项参数名称 |
---|---|---|---|---|
N/A |
|
N/A |
||
|
N/A |
选择此选项可设计具有任意幅度响应的有限脉冲响应(FIR)滤波器。本例使用下表中的第二个规范集。
D = designfilt(“arbmagfir”,...响应类型“FilterOrder”, 88,...过滤器顺序%“NumBands”4...%频率约束“BandFrequencies1”20 [0],...“BandFrequencies2”(25 40),...“BandFrequencies3”(65年45),...“BandFrequencies4”(70 100),...“BandAmplitudes1”(2 - 2),...幅度约束“BandAmplitudes2”[0 0],...“BandAmplitudes3”[1],...“BandAmplitudes4”[0 0],...“DesignMethod”,“ls”,...%设计方法“BandWeights1”[1] / 10...%设计方法选项“BandWeights2”(3 - 1),...“BandWeights3”(2 - 4),...“BandWeights4”(5 - 1),...“SampleRate”, 200)%抽样率
如果你省略了“FilterOrder”
,或任何频率或幅度限制,designfilt
抛出错误。
如果你省略了“DesignMethod”
,designfilt
为规格集使用默认设计方法。
如果省略了设计方法选项,designfilt
使用所选设计方法的默认值。
如果你省略了“SampleRate”
,designfilt
设置为2hz。
数据类型:字符
|字符串
d
- - - - - -数字滤波器digitalFilter
对象数字滤波器,指定为digitalFilter
对象生成的designfilt
.使用此输入更改现有的规范digitalFilter
.
的可选逗号分隔对名称,值
参数。的名字
参数名称和价值
对应的值。的名字
必须出现在引号内。您可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家
.
“CutoffFrequency”“FilterOrder”,20日,0.4
足以指定一个低通FIR滤波器。
不是所有的组合名称,值
对有效。有效的组合取决于您需要的滤波器响应以及您的设计的频率和幅度限制。
“FilterOrder”
- - - - - -过滤器订单过滤器顺序,指定为逗号分隔的对,由“FilterOrder”
一个正整数标量。
数据类型:双
“NumeratorOrder”
- - - - - -分子秩序IIR设计的分子顺序,指定为逗号分隔的对,由“NumeratorOrder”
一个正整数标量。
数据类型:双
“DenominatorOrder”
- - - - - -分母秩序IIR设计的分母顺序,指定为逗号分隔的对,由“DenominatorOrder”
一个正整数标量。
数据类型:双
“PassbandFrequency”
,“PassbandFrequency1”
,“PassbandFrequency2”
- - - - - -通带频率通频带频率,指定为由逗号分隔的对组成“PassbandFrequency”
一个正标量。频率值必须在Nyquist范围内。
“PassbandFrequency1”
是带通或带阻设计的较低通频带频率。
“PassbandFrequency2”
是带通或带阻设计的较高通频带频率。
数据类型:双
“StopbandFrequency”
,“StopbandFrequency1”
,“StopbandFrequency2”
- - - - - -阻带频率止带频率,指定为由逗号分隔的对组成“StopbandFrequency”
一个正标量。频率值必须在Nyquist范围内。
“StopbandFrequency1”
低阻带频率是带通还是带阻设计
“StopbandFrequency2”
是带通或带阻设计的较高阻带频率。
数据类型:双
“CutoffFrequency”
,“CutoffFrequency1”
,“CutoffFrequency2”
- - - - - -6分贝的频率6-dB频率,指定为由逗号分隔的对组成“CutoffFrequency”
一个正标量。频率值必须在Nyquist范围内。
“CutoffFrequency1”
是带通或带阻设计中较低的6分贝频率。
“CutoffFrequency2”
为带通或带阻设计的更高的6 db频率。
数据类型:双
“HalfPowerFrequency”
,“HalfPowerFrequency1”
,“HalfPowerFrequency2”
- - - - - -3-dB频率3-dB频率,以逗号分隔的对组成“HalfPowerFrequency”
一个正标量。频率值必须在Nyquist范围内。
“HalfPowerFrequency1”
是带通或带阻设计中较低的3分贝频率。
“HalfPowerFrequency2”
为带通或带阻设计的更高3db频率。
数据类型:双
“TransitionWidth”
- - - - - -过渡区宽度希尔伯特变压器通带和阻带之间过渡区域的宽度,指定为逗号分隔的对,由“TransitionWidth”
一个正标量。
数据类型:双
“频率”
- - - - - -响应频率响应频率,指定为逗号分隔的对,由“频率”
还有一个向量。使用此变量可列出任意幅值响应滤波器具有所需幅值的频率。频率必须是单调增加的,并且位于奈奎斯特范围内。向量的第一个元素必须是0或- - - - - -f年代/ 2,在那里f年代是抽样率,它的最后一个元素必须是f年代/ 2.如果不指定抽样率,designfilt
使用默认值2hz。
数据类型:双
“NumBands”
- - - - - -频带数多频带设计中的频带数,以逗号分隔的对表示,由“NumBands”
一个不大于10的正整数标量。
数据类型:双
“BandFrequencies1”
,'...'
,“BandFrequenciesN”
- - - - - -多频带响应频率多频带响应频率,指定为逗号分隔的对,由“BandFrequenciesi”
和一个数值向量。“BandFrequenciesi”
,在那里我从1到NumBands
的频率向量我多频带设计的频带具有期望的值,“BandAmplitudesi”
.NumBands
最多10个。频率必须位于奈奎斯特范围内,并且必须以单调递增的顺序指定。相邻频带在连接处的振幅必须相同。
数据类型:双
“PassbandRipple”
,“PassbandRipple1”
,“PassbandRipple2”
- - - - - -通带纹波通带纹波,指定为由逗号分隔的对组成“PassbandRipple”
一个用分贝表示的正标量。
“PassbandRipple1”
是带阻设计的低带通带纹波。
“PassbandRipple2”
是带阻设计的高频带通带纹波。
数据类型:双
“StopbandAttenuation”
,“StopbandAttenuation1”
,“StopbandAttenuation2”
- - - - - -阻带衰减止带衰减,指定为由逗号分隔的对组成“StopbandAttenuation”
一个用分贝表示的正标量。
“StopbandAttenuation1”
是带通设计的低带阻带衰减。
“StopbandAttenuation2”
是带通设计的高带阻带衰减。
数据类型:双
“振幅”
- - - - - -期望的响应振幅任意幅值响应滤波器的期望响应幅值,指定为由逗号分隔的对组成“振幅”
还有一个向量。用线性单位表示振幅。向量的长度必须与“频率”
.
数据类型:双
“BandAmplitudes1”
,'...'
,“BandAmplitudesN”
- - - - - -多波段响应振幅多波段响应振幅,以逗号分隔的对组成“BandAmplitudesi”
和一个数值向量。“BandAmplitudesi”
,在那里我从1到NumBands
中所期望的幅值的向量我多波段设计的波段。NumBands
最多10个。用线性单位表示振幅。“BandAmplitudesi”
长度必须和“BandFrequenciesi”
.相邻频带在连接处的振幅必须相同。
数据类型:双
“DesignMethod”
- - - - - -设计方法“黄油”
|“cheby1”
|“cheby2”
|“cls”
|“ellip”
|“equiripple”
|“freqsamp”
|“kaiserwin”
|“ls”
|“maxflat”
|“窗口”
设计方法,指定为由逗号分隔的对组成“DesignMethod”
和字符向量或字符串标量。设计方法的选择取决于您指定的频率和幅度约束集。
“黄油”
设计了巴特沃斯IIR滤波器。巴特沃斯滤波器具有平滑的单调频率响应,在通带内最大程度地平坦。他们牺牲滚滚的陡度来换取平坦。
“cheby1”
设计了一种切比雪夫I型IIR滤波器。切比雪夫I型滤波器的频率响应在通带是等纹波的,在阻带是最大的平坦的。它们的通带波纹随着滚转陡度的增加而增加。
“cheby2”
设计了切比雪夫II型IIR滤波器。切比雪夫II型滤波器的频率响应在通带最大平坦,在阻带等纹波。
“cls”
利用约束最小二乘设计FIR滤波器。该方法最小化了指定的任意分段线性函数和滤波器的幅度响应之间的差异。同时,它允许您设置通带纹波和阻带衰减的约束。
“ellip”
设计了一种椭圆IIR滤波器。椭圆滤波器的频率响应在通带和阻带都是等纹波的。
“equiripple”
利用Parks-McClellan算法设计了一个等纹波FIR滤波器。等纹波滤波器具有使所有波段的最大纹波幅度最小化的频率响应。
“freqsamp”
通过对频率响应进行均匀采样并进行傅里叶反变换,设计了一个任意幅值响应的FIR滤波器。
“kaiserwin”
利用凯撒窗法设计了FIR滤波器。该方法截断理想滤波器的脉冲响应,并使用凯泽窗来衰减所产生的截断振荡。
“ls”
利用最小二乘设计FIR滤波器。该方法最小化了指定的任意分段线性函数和滤波器的幅度响应之间的差异。
“maxflat”
设计了一个最大平面FIR滤波器。这些滤波器具有平滑的单调频率响应,在通带中最大程度地平坦。
“窗口”
使用最小二乘近似来计算滤波器系数,然后平滑脉冲响应'
窗口
'
.
数据类型:字符
|字符串
“窗口”
- - - - - -窗口窗口,指定为逗号分隔的对,由“窗口”
和一个长度向量N+ 1,在那里N是过滤器的顺序。“窗口”
还可以与指定用于生成窗口的函数的窗口名称或函数句柄配对。任何这样的函数都必须N+ 1作为第一个输入。可以通过指定单元格数组来传递其他输入。默认情况下,“窗口”
是空向量吗“freqsamp”
设计方法及@hamming
为“窗口”
设计方法。
有关可用窗口的列表,请参见窗户.
例子:“窗口”,损害(N + 1)
而且“窗口”,(1-cos(2 *π* (0:N) / N)) / 2
两者都指定了一个Hann窗口,用于排序过滤器N
.
例子:“窗口”、“汉明”
指定所需顺序的汉明窗口。
例子:“窗口”,@mywindow
允许您定义自己的窗口函数。
例子:“窗口”,{@kaiser, 0.5}
指定一个形状参数为0.5的所需顺序的Kaiser窗口。
数据类型:双
|字符
|字符串
|function_handle
|细胞
“MatchExactly”
- - - - - -带子完全匹配阻带的
|“通频带”
|“两个”
精确匹配的频带,指定为由逗号分隔的对组成“MatchExactly”
,要么阻带的
,“通频带”
,或“两个”
.“两个”
仅对椭圆设计方法可用,其中它是默认值。阻带的
的默认值是“黄油”
而且“cheby2”
方法。“通频带”
的默认值。“cheby1”
.
数据类型:字符
|字符串
“PassbandOffset”
- - - - - -通频带抵消通带偏移量,指定为逗号分隔的对,由“PassbandOffset”
一个用分贝表示的正标量。“PassbandOffset”
指定通带中的滤波器增益。
例子:“PassbandOffset”,0
结果在通带中有单位增益的滤波器。
例子:“PassbandOffset”,2
滤波器的通带增益为2 dB或1.259。
数据类型:双
“ScalePassband”
- - - - - -扩展通频带真正的
(默认)|假
缩放通带,指定为由逗号分隔的对组成“ScalePassband”
和一个逻辑标量。当你设置“ScalePassband”
来真正的
时,通带被缩放,加窗后,使滤波器在零频率时有单位增益。
例子:{@kaiser, 0.1}‘窗口’,‘ScalePassband’,真的
帮助指定一个滤波器,其在零频率下的幅值响应正好为0db。当您指定时,情况并非如此“ScalePassband”,假的
.要验证,请将过滤器可视化fvtool
放大。
数据类型:逻辑
“ZeroPhase”
- - - - - -零相假
(默认)|真正的
零阶段,指定为由逗号分隔的对组成“ZeroPhase”
和一个逻辑标量。当你设置“ZeroPhase”
来真正的
时,得到的滤波器的零相响应始终为正。这允许您对结果执行谱分解,并从中获得最小相位滤波器。
数据类型:逻辑
“PassbandWeight”
,“PassbandWeight1”
,“PassbandWeight2”
- - - - - -通带优化权重通带优化权值,指定为由逗号分隔的对组成“PassbandWeight”
一个正标量。
“PassbandWeight1”
为带阻FIR设计的低带通带优化权值。
“PassbandWeight2”
为带阻FIR设计的高频带通带优化权值。
数据类型:双
“StopbandWeight”
,“StopbandWeight1”
,“StopbandWeight2”
- - - - - -阻带优化权重止带优化权重,由逗号分隔的对组成“StopbandWeight”
一个正标量。
“StopbandWeight1”
为带通FIR设计的低带阻带优化权值。
“StopbandWeight2”
为带通FIR设计的高带阻带优化权重。
数据类型:双
“重量”
- - - - - -优化权重优化权重,指定为由逗号分隔的对组成“重量”
一个正的标量或者一个长度相同的向量“振幅”
.
数据类型:双
“BandWeights1”
,'...'
,“BandWeightsN”
- - - - - -多波段权重多带权重,指定为逗号分隔的对,由“BandWeightsi”
和一组正标量或向量。“BandWeightsi”
,在那里我从1到NumBands
类的优化权值是一个标量或向量我多波段设计的波段。如果指定为向量,“BandWeightsi”
长度必须和“BandAmplitudesi”
.
数据类型:双
“SampleRate”
- - - - - -采样率采样率,指定为由逗号分隔的对组成“SampleRate”
一个用赫兹表示的正标量。要使用归一化频率,请设置“SampleRate”
到2,或者直接省略它。
数据类型:双
d
-数字滤波器digitalFilter
对象数字滤波器,返回为digitalFilter
对象。
如果指定的设计参数不完整或不一致,designfilt
提供打开过滤器设计助手。
的参数描述中分别地
这里有所有可用响应类型的有效规范集的完整列表。)
如果你打电话,助理会有不同的反应designfilt
在命令行或脚本或函数中。
给你一个2千赫的采样信号。你被要求设计一个低通FIR滤波器,抑制高于650赫兹的频率成分。“截止频率”听起来像是一个很好的规格参数。在MATLAB命令行中输入以下内容。
Fsamp = 2e3;Fctff = 650;Dee = designfilt(“lowpassfir”,“CutoffFrequency”Fctff,...“SampleRate”, Fsamp);
由于此对话框出现在屏幕上,因此似乎有问题。
你点击是的并获得一个提供生成代码的新对话框。您可以看到之前定义的变量已经插入到预期的位置。
在研究了提供的一些选项之后,您决定测试修正后的过滤器。你点击好吧并在命令行上获得以下代码。
Dee = designfilt(“lowpassfir”,“FilterOrder”10...“CutoffFrequency”Fctff,“SampleRate”, Fsamp);
输入筛选器的名称将重复对话框中的信息。
迪
dee = digitalFilter与属性:系数:[1x11 double]规格:FrequencyResponse: 'lowpass' impulse esponse: 'fir' SampleRate: 2000 FilterOrder: 10 CutoffFrequency: 650 DesignMethod: 'window'使用fvtool可视化过滤器使用过滤器函数来过滤数据
您调用FVTool得到一张图迪
的频率响应。
fvtool(迪)
截线看起来并不是特别明显。大多数频率的响应都在40db以上。您还记得助手有一个选项来设置称为“阻带衰减”的“幅度约束”。通过呼叫打开助手designfilt
使用过滤器名称作为输入。
designfilt(迪)
单击大小限制
下拉菜单,选择通带纹波和阻带衰减
.你可以看到设计方法已经从窗口
来FIR约束最小二乘
.默认衰减值为60 dB,大于40 dB。点击好吧并可视化生成的过滤器。
Dee = designfilt(“lowpassfir”,“FilterOrder”10...“CutoffFrequency”Fctff,...“PassbandRipple”, 1“StopbandAttenuation”现年60岁的...“SampleRate”, Fsamp);fvtool(迪)
截线看起来仍然不明显。衰减确实是60分贝,但频率高于900赫兹。
再次调用designfilt
使用过滤器作为输入。
designfilt(迪)
店员又出现了。
要缩小接受频率和拒绝频率之间的区别,可以增加或更改滤波器的阶数频率约束
从截止(6dB)频率
来通带和阻带频率
.如果你把滤镜的顺序从10改为50,你会得到一个更清晰的滤镜。
Dee = designfilt(“lowpassfir”,“FilterOrder”, 50岁,...“CutoffFrequency”, 650,...“PassbandRipple”, 1“StopbandAttenuation”现年60岁的...“SampleRate”, 2000);fvtool(迪)
一个小实验表明,通过将通频带和阻频带频率分别设置为600hz和700hz,可以获得类似的滤波器。
Dee = designfilt(“lowpassfir”,“PassbandFrequency”, 600,...“StopbandFrequency”, 700,...“PassbandRipple”, 1“StopbandAttenuation”现年60岁的...“SampleRate”, 2000);fvtool(迪)
给你一个2千赫的采样信号。你被要求设计一个高通滤波器,阻止频率低于700hz。你不需要关心信号的相位,你需要使用低阶滤波器。因此,IIR滤波器似乎是足够的。您不确定哪种筛选顺序是最好的,因此编写了一个接受该顺序作为输入的函数。打开MATLAB编辑器并创建文件。
函数hipassfilt(N,dataIn) hpFilter = designfilt(“highpassiir”,“FilterOrder”N);dataOut = filter(hpFilter,dataIn);结束
为了测试您的功能,创建一个由频率为500和800 Hz的两个正弦波组成的信号,并生成0.1 s的样本。作为最初的猜测,五阶滤波器似乎是合理的。创建一个名为driveHPfilt.m
.
%脚本driveHPfilt.mFsamp = 2e3;Fsm = 500;Fbg = 800;t = 0:1/Fsamp:0.1;sin(2*pi*Fsm*t)+sin(2*pi*Fbg*t);Order = 5;sgout = hipassfilt(Order,sgin);
在命令行上运行脚本时,会得到一条错误消息。
错误消息让您选择打开一个助手来更正MATLAB代码。点击点击这里
让滤镜设计助手出现在你的屏幕上。
您可以看到问题所在:您没有指定频率约束。你还忘了设置抽样率。经过试验,您发现您可以指定频率的单位作为赫兹
,通带频率等于700hz,和输入Fs等于2000赫兹。的设计方法改变从巴特沃斯
来切比雪夫I型
.你点击好吧得到如下结果。
助理已经正确识别了您呼叫的文件designfilt
.点击是的接受改变。该函数有校正的MATLAB代码。
函数dataOut = hipassfilt(N,dataIn)% hpFilter = designfilt('highpassiir','FilterOrder',N);hpFilter = designfilt(“highpassiir”,“FilterOrder”N...“PassbandFrequency”, 700,“PassbandRipple”, 1...“SampleRate”, 2000);dataOut = filter(hpFilter,dataIn);结束
现在可以使用过滤器顺序的不同值运行脚本。根据您的设计约束,您可以更改您的规范集。
你可以设置designfilt
永远不要提供过滤器设计助手。此操作设置一个MATLAB首选项,可以使用该首选项取消设置setpref
:
使用setpref(‘dontshowmeagain’,‘filterDesignAssistant’,假)
每次都让我当助理。使用此命令,您可以在禁用该助手后再次获得它。
使用setpref(‘dontshowmeagain’,‘filterDesignAssistant’,真的)
永久禁用助手。您也可以点击不再显示此消息在初始对话框中。
你可以设置designfilt
总是在没有要求的情况下纠正错误的规格。此操作设置一个MATLAB首选项,可以通过使用取消设置setpref
:
使用setpref(‘dontshowmeagain’,‘filterDesignAssistantCodeCorrection’,假)
有designfilt
更正你的MATLAB代码而不要求确认。您也可以点击总是接受在确认对话框中。
使用setpref(‘dontshowmeagain’,‘filterDesignAssistantCodeCorrection’,真的)
为了确保designfilt
只有当您确认想要更改时,才会更正MATLAB代码。使用此命令,可以取消单击的效果总是接受在确认对话框中。
在某些情况下,给定一组无效的规范,designfilt
不通过对话框或错误消息中的链接提供“过滤器设计助手”。
如果您使用从MATLAB工具条或按下的代码段求值,则不提供助手按Ctrl + Enter.(见将文件划分为代码段(MATLAB)获取更多信息。)
如果您的代码有多个调用,则不会为您提供助手designfilt
,至少有一个是不正确的,而且
您可以将代码粘贴到命令行上并通过按下执行它输入.
在编辑器中选择代码并按下执行F9.
如果你参选,你不会有助手designfilt
使用匿名函数。(见匿名函数(MATLAB)获取更多信息。)例如,该输入提供了一个助手。
D = designfilt(“lowpassfir”,“CutoffFrequency”, 0.6)
myFilterDesigner = @designfilt;d = myFilterDesigner(“lowpassfir”,“CutoffFrequency”, 0.6)
如果你参选,你不会有助手designfilt
使用eval
.例如,该输入提供了一个助手。
D = designfilt(“lowpassfir”,“CutoffFrequency”, 0.6)
myFilterDesigner =...sprintf (“designfilt(“% s”、“CutoffFrequency % f)”,...“lowpassfir”, 0.6);d = eval(myFilterDesigner)
过滤器设计助手需要Java®软件和MATLAB桌面运行。运行MATLAB时不金宝app支持-nojvm
,-nodisplay
,或-nodesktop
选项。
FVTool|digitalFilter
|双
|fftfilt
|filt2block
|过滤器
|filtfilt
|filtord
|firtype
|freqz
|grpdelay
|impz
|impzlength
|信息
|isallpass
|isdouble
|isfir
|islinphase
|ismaxphase
|isminphase
|issingle
|趋于稳定
|phasedelay
|phasez
|单
|党卫军
|stepz
|特遣部队
|zerophase
|zpk
|zplane
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您也可以从以下列表中选择一个网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。