designfilt
设计数字滤波器
designfilt
不再帮助纠正脚本或函数中对函数的调用。有关更多信息,请参见兼容性的考虑.
描述
设计一个d
= designfilt (分别地
,名称,值
)digitalFilter
对象,d
,具有响应类型分别地
.的例子分别地
是“lowpassfir”
而且“bandstopiir”
.属性的集合进一步指定筛选器名称-值对参数.允许的规范集取决于分别地
由这些组合而成:
频率约束对应于滤波器显示所需行为的频率。例子包括
“PassbandFrequency”
而且“CutoffFrequency”
.您必须始终指定频率约束。大小限制描述滤波器在特定频率范围内的行为。例子包括
“PassbandRipple”
而且“StopbandAttenuation”
.designfilt
为未指定的幅度约束提供默认值。在任意幅值设计中,必须始终指定所需幅值的矢量。过滤器订单.有些设计方法允许您指定顺序。其他人则生产最小订单设计。也就是说,它们生成满足指定约束的最小过滤器。
设计方法是用来设计滤波器的算法。例子包括受约束最小二乘(
“cls”
)和Kaiser窗口(“kaiserwin”
).对于某些规范集,有多种设计方法可供选择。在其他情况下,您可以只使用一种方法来满足所需的规范。设计方法选项是特定于给定设计方法的参数。例子包括
“窗口”
为“窗口”
方法与优化“重量”
对于任意大小的等纹波设计。designfilt
为未指定的设计选项提供默认值。采样率是滤波器工作的频率。
designfilt
默认采样率为2hz。使用这个值相当于使用标准化频率。
请注意
如果在命令行中指定了不完整或不一致的名称-值参数集,designfilt
提供开设过滤器设计助理.该助手可以帮助您设计滤波器并粘贴校正后的MATLAB®命令行上的代码。
如果你打电话designfilt
如果脚本或函数的规范集不正确,designfilt
对象的打开链接发出错误消息过滤器设计助理.该助手帮助您设计过滤器,并将校正后的MATLAB代码粘贴到命令行上。设计的过滤器被保存到工作空间中。
使用
过滤器
在表格中dataOut = filter(d,dataIn)
对信号进行滤波digitalFilter
,d
.对于IIR滤波器过滤器
函数使用直接形式II实现。你也可以使用filtfilt
而且fftfilt
功能与digitalFilter
对象。使用FVTool为了想象
digitalFilter
,d
.类型
d.Coefficients
为了得到a的系数digitalFilter
,d
.对于IIR滤波器,系数表示为二阶截面。看到
digitalFilter
获取可供使用的筛选和分析函数的列表digitalFilter
对象。
designfilt (
让你编辑现有的数字滤镜,d
)d
.它打开一个过滤器设计助理用筛选器的规范填充,然后可以对其进行修改。这是您可以编辑的唯一方法digitalFilter
对象。否则它的属性是只读的。
例子
低通FIR滤波器
设计了一种通频带归一化的最小阶低通FIR滤波器 Rad /sample,阻带频率 rad/sample,通带纹波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);
低通IIR滤波器
设计一个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滤波器
设计一种阻带频率归一化的最小阶高通FIR滤波器 Rad /sample,通带频率 rad/sample,通带纹波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);
高通IIR滤波器
设计一个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);
带通FIR滤波器
设计一个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
带通IIR滤波器
设计一个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);
带阻FIR滤波器
设计一个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);
带阻IIR滤波器
设计一个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);
FIR希尔伯特变压器
设计一个18阶希尔伯特变压器。指定的归一化过渡宽度 rad /样品。以线性单位显示滤波器的幅值响应。用它来过滤随机数据的1000个样本向量。
hFilt = designfilt(“hilbertfir”,“FilterOrder”, 18岁,“TransitionWidth”, 0.25);fvtool (hFilt“MagnitudeDisplay”,“级”)
dataIn = randn(1000,1);dataOut = filter(hFilt,dataIn);
任意幅度FIR滤波器
给你一个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”
筛选器响应和类型,指定为字符向量或字符串标量。
“lowpassfir”
- FIR低通滤波器
响应类型
选择此选项可设计有限脉冲响应(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 |
|
|||
|
“lowpassiir”
- IIR低通滤波器
响应类型
选择此选项可设计无限脉冲响应(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 |
“highpassfir”
- FIR高通滤波器
响应类型
选择此选项可设计有限脉冲响应(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 |
|
|||
|
“highpassiir”
- IIR高通滤波器
响应类型
选择此选项可设计无限脉冲响应(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 |
“bandpassfir”
- FIR带通滤波器
响应类型
选择此选项可设计有限脉冲响应(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 |
|
|||
|
“bandpassiir”
- IIR带通滤波器
响应类型
选择此选项可设计无限脉冲响应(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 |
“bandstopfir”
- FIR带阻滤波器
响应类型
选择此选项可设计有限脉冲响应(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 |
|
|||
|
“bandstopiir”
- IIR带阻滤波器
响应类型
选择此选项可设计无限脉冲响应(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 |
“differentiatorfir”
- FIR微分器滤波器
响应类型
选择此选项可设计有限脉冲响应(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 |
“hilbertfir”
- FIR希尔伯特变压器滤波器
响应类型
选择这个选项来设计一个有限脉冲响应(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 |
“arbmagfir”
-任意幅值响应的FIR滤波器
响应类型
选择此选项可设计具有任意幅度响应的有限脉冲响应(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。
过滤器顺序参数名称 | 频率约束参数名称 | 量级约束参数名称 | “DesignMethod” 参数值 |
设计选项参数名称 |
---|---|---|---|---|
|
||||
|
||||
|
||||
... |
... |
|
... |
|
|
... |
数据类型:字符
|字符串
d
- - - - - -数字滤波器
digitalFilter
对象
数字滤波器,指定为digitalFilter
对象生成的designfilt
.使用此输入更改现有的规范digitalFilter
.
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里名字
参数名称和价值
对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
例子:FilterOrder = 20, CutoffFrequency = 0.4
足以指定一个低通FIR滤波器。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来名字
在报价。
例子:“CutoffFrequency”“FilterOrder”,20日,0.4
足以指定一个低通FIR滤波器。
不是所有的名称-值组合都有效。有效的组合取决于您需要的滤波器响应以及您的设计的频率和幅度限制。
FilterOrder
- - - - - -过滤器订单
正整数标量
筛选器顺序,指定为正整数标量。
数据类型:双
NumeratorOrder
- - - - - -分子秩序
正整数标量
IIR设计的分子阶数,指定为正整数标量。
数据类型:双
DenominatorOrder
- - - - - -分母秩序
正整数标量
IIR设计的分母顺序,指定为正整数标量。
数据类型:双
PassbandFrequency
,PassbandFrequency1
,PassbandFrequency2
- - - - - -通带频率
积极的标量
通带频率,指定为正标量。频率值必须在Nyquist范围内。
“PassbandFrequency1”
是带通或带阻设计的较低通频带频率。
“PassbandFrequency2”
是带通或带阻设计的较高通频带频率。
数据类型:双
StopbandFrequency
,StopbandFrequency1
,StopbandFrequency2
- - - - - -阻带频率
积极的标量
止带频率,指定为正标量。频率值必须在Nyquist范围内。
“StopbandFrequency1”
低阻带频率是带通还是带阻设计
“StopbandFrequency2”
是带通或带阻设计的较高阻带频率。
数据类型:双
CutoffFrequency
,CutoffFrequency1
,CutoffFrequency2
- - - - - -6分贝的频率
积极的标量
6-dB频率,指定为正标量。频率值必须在Nyquist范围内。
“CutoffFrequency1”
是带通或带阻设计中较低的6分贝频率。
“CutoffFrequency2”
为带通或带阻设计的更高的6 db频率。
数据类型:双
HalfPowerFrequency
,HalfPowerFrequency1
,HalfPowerFrequency2
- - - - - -3-dB频率
积极的标量
3-dB频率,指定为正标量。频率值必须在Nyquist范围内。
“HalfPowerFrequency1”
是带通或带阻设计中较低的3分贝频率。
“HalfPowerFrequency2”
为带通或带阻设计的更高3db频率。
数据类型:双
TransitionWidth
- - - - - -过渡区宽度
积极的标量
希尔伯特变压器通带和阻带之间过渡区域的宽度,用正标量表示。
数据类型:双
频率
- - - - - -响应频率
向量
响应频率,以矢量表示。使用此变量可列出任意幅值响应滤波器具有所需幅值的频率。频率必须是单调增加的,并且位于奈奎斯特范围内。向量的第一个元素必须是0或- - - - - -f年代/ 2,在那里f年代是抽样率,它的最后一个元素必须是f年代/ 2.如果不指定抽样率,designfilt
使用默认值2hz。
数据类型:双
NumBands
- - - - - -频带数
正整数标量
多频带设计中的频带数,指定为不大于10的正整数标量。
数据类型:双
BandFrequencies1
,...
,BandFrequenciesN
- - - - - -多频带响应频率
向量
多频带响应频率,指定为数值向量。“BandFrequenciesi”
,在那里我从1到“NumBands”
的频率向量我多频带设计的频带具有期望的值,“BandAmplitudesi”
.“NumBands”
最多10个。频率必须位于奈奎斯特范围内,并且必须以单调递增的顺序指定。相邻频带在连接处的振幅必须相同。
数据类型:双
PassbandRipple
,PassbandRipple1
,PassbandRipple2
- - - - - -通带纹波
1(默认)|积极的标量
通带纹波,指定为用分贝表示的正标量。
“PassbandRipple1”
是带阻设计的低带通带纹波。
“PassbandRipple2”
是带阻设计的高频带通带纹波。
数据类型:双
StopbandAttenuation
,StopbandAttenuation1
,StopbandAttenuation2
- - - - - -阻带衰减
60(默认)|积极的标量
止带衰减,指定为用分贝表示的正标量。
“StopbandAttenuation1”
是带通设计的低带阻带衰减。
“StopbandAttenuation2”
是带通设计的高带阻带衰减。
数据类型:双
振幅
- - - - - -期望的响应振幅
向量
任意幅值响应滤波器的期望响应幅值,用矢量表示。用线性单位表示振幅。向量的长度必须与“频率”
.
数据类型:双
BandAmplitudes1
,...
,BandAmplitudesN
- - - - - -多波段响应振幅
向量
多波段响应振幅,指定为数值向量。“BandAmplitudesi”
,在那里我从1到“NumBands”
中所期望的幅值的向量我多波段设计的波段。“NumBands”
最多10个。用线性单位表示振幅。“BandAmplitudesi”
长度必须和“BandFrequenciesi”
.相邻频带在连接处的振幅必须相同。
数据类型:双
DesignMethod
- - - - - -设计方法
“黄油”
|“cheby1”
|“cheby2”
|“cls”
|“ellip”
|“equiripple”
|“freqsamp”
|“kaiserwin”
|“ls”
|“maxflat”
|“窗口”
设计方法,指定为字符向量或字符串标量。设计方法的选择取决于您指定的频率和幅度约束集。
“黄油”
设计了巴特沃斯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滤波器。这些滤波器具有平滑的单调频率响应,在通带中最大程度地平坦。“窗口”
使用最小二乘近似来计算滤波器系数,然后平滑脉冲响应“窗口”
.
数据类型:字符
|字符串
MinOrder
- - - - - -最小订单奇偶性
“任何”
(默认)|“甚至”
a的最小阶奇偶性“kaiserwin”
设计,指定为“任何”
或“甚至”
.当你设置“MinOrder”
来“甚至”
,designfilt
返回偶数阶的最小阶过滤器。当你设置“MinOrder”
来“任何”
,返回的过滤器可以是偶数或奇数,以较小的为准。
数据类型:字符
|字符串
窗口
- - - - - -窗口
数值向量|窗口名称|函数处理|单元阵列
窗口,指定为长度向量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
- - - - - -带子完全匹配
阻带的
|“通频带”
|“两个”
精确匹配的波段,指定为阻带的
,“通频带”
,或“两个”
.“两个”
仅对椭圆设计方法可用,其中它是默认值。阻带的
的默认值是“黄油”
而且“cheby2”
方法。“通频带”
的默认值。“cheby1”
.
数据类型:字符
|字符串
PassbandOffset
- - - - - -通频带抵消
0(默认)|积极的标量
通带偏移量,指定为用分贝表示的正标量。“PassbandOffset”
指定通带中的滤波器增益。
例子:“PassbandOffset”,0
结果在通带中有单位增益的滤波器。
例子:“PassbandOffset”,2
滤波器的通带增益为2 dB或1.259。
数据类型:双
ScalePassband
- - - - - -扩展通频带
真正的
(默认)|假
缩放通带,指定为逻辑标量。当你设置“ScalePassband”
来真正的
时,通带被缩放,加窗后,使滤波器在零频率时有单位增益。
例子:{@kaiser, 0.1}‘窗口’,‘ScalePassband’,真的
帮助指定一个滤波器,其在零频率下的幅值响应正好为0db。当您指定时,情况并非如此“ScalePassband”,假的
.要验证,请将过滤器可视化fvtool
放大。
数据类型:逻辑
ZeroPhase
- - - - - -零相
假
(默认)|真正的
零相位,指定为逻辑标量。当你设置“ZeroPhase”
来真正的
时,得到的滤波器的零相响应始终为正。这允许您对结果执行谱分解,并从中获得最小相位滤波器。
数据类型:逻辑
PassbandWeight
,PassbandWeight1
,PassbandWeight2
- - - - - -通带优化权重
1(默认)|积极的标量
通带优化权重,指定为正标量。
“PassbandWeight1”
为带阻FIR设计的低带通带优化权值。
“PassbandWeight2”
为带阻FIR设计的高频带通带优化权值。
数据类型:双
StopbandWeight
,StopbandWeight1
,StopbandWeight2
- - - - - -阻带优化权重
1(默认)|积极的标量
止带优化权重,指定为正标量。
“StopbandWeight1”
为带通FIR设计的低带阻带优化权值。
“StopbandWeight2”
为带通FIR设计的高带阻带优化权重。
数据类型:双
权重
- - - - - -优化权重
1(默认)|积极的标量|向量
优化权重,指定为正标量或相同长度的向量“振幅”
.
数据类型:双
BandWeights1
,...
,BandWeightsN
- - - - - -多波段权重
1(默认)|积极的标量|向量
多带权重,指定为一组正标量或向量。“BandWeightsi”
,在那里我从1到“NumBands”
类的优化权值是一个标量或向量我多波段设计的波段。如果指定为向量,“BandWeightsi”
长度必须和“BandAmplitudesi”
.
数据类型:双
SampleRate
- - - - - -采样率
2(默认)|积极的标量
采样率,用正标量表示,单位为赫兹。要使用归一化频率,请设置“SampleRate”
到2,或者直接省略它。
数据类型:双
输出参数
d
-数字滤波器
digitalFilter
对象
数字滤波器,返回为digitalFilter
对象。
更多关于
过滤器设计助理
如果指定的设计参数不完整或不一致,designfilt
提供打开过滤器设计助手。
的参数描述中分别地
这里有所有可用响应类型的有效规范集的完整列表。)
如果你打电话,助理会有不同的反应designfilt
在命令行或脚本或函数中。
给你一个2千赫的采样信号。你被要求设计一个低通FIR滤波器,抑制高于650赫兹的频率成分。“截止频率”听起来像是一个很好的规格参数。在MATLAB命令行中键入这段代码。
Fsamp = 2e3;Fctff = 650;Dee = designfilt(“lowpassfir”,“CutoffFrequency”Fctff,...“SampleRate”, Fsamp);
由于此对话框出现在屏幕上,因此似乎有问题。
你点击是的并获得一个提供生成代码的新对话框。您可以看到之前定义的变量已经插入到预期的位置。
在研究了提供的一些选项之后,您决定测试修正后的过滤器。你点击好吧并在命令行上获取此代码。
designfilt (“lowpassfir”,“FilterOrder”10...“CutoffFrequency”Fctff,“SampleRate”, 2000);
输入筛选器的名称将重复对话框中的信息。
迪
dee = digitalFilter属性:系数:[-0.0036 0.0127 -0.0066 -0.0881 0.2595…0.6521 0.2595 -0.0881 -0.0066 0.0127 -0.0036]规格:FrequencyResponse: 'lowpass' ImpulseResponse: 'fir' SampleRate: 2000 CutoffFrequency: 650 FilterOrder: 10 DesignMethod: 'window'使用fvtool可视化过滤器使用designfilt编辑过滤器使用过滤器过滤数据
您调用FVTool得到一张图迪
的频率响应。
fvtool(迪)
截线看起来并不是特别明显。大多数频率的响应都在40db以上。您还记得助手有一个选项来设置称为“阻带衰减”的“幅度约束”。通过呼叫打开助手designfilt
使用过滤器名称作为输入。
designfilt(迪)
单击大小限制
下拉菜单,选择通带纹波和阻带衰减
.你可以看到设计方法已经从窗口
来FIR约束最小二乘
.默认衰减值为60 dB,大于40 dB。点击好吧并可视化生成的过滤器。
Dee = designfilt(“lowpassfir”,“FilterOrder”10...“CutoffFrequency”, 650,“PassbandRipple”, 1...“StopbandAttenuation”现年60岁的“SampleRate”, 2000);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(Order,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);N = 5;sgout = hipassfilt(N,sgin);
在命令行上运行脚本时,会得到一条错误消息。
错误消息让您选择打开一个助手来更正MATLAB代码。点击点击这里
让滤镜设计助手出现在你的屏幕上。
您可以看到问题所在:您没有指定频率约束。你还忘了设置抽样率。经过试验,您发现您可以指定频率的单位作为赫兹
,通带频率等于700hz,和输入Fs等于2000赫兹。的设计方法改变从巴特沃斯
来切比雪夫I型
.你点击好吧然后在命令行中获取。
HP = designfilt(“highpassiir”,“FilterOrder”N...“PassbandFrequency”, 700,“PassbandRipple”, 1...“SampleRate”, 2000);
新digitalFilter
对象惠普
保存到工作区。根据您的设计约束,您可以更改您的规范集。
你可以设置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.(见把你的文件分成几个部分以获取更多信息。)
如果您的代码有多个调用,则不会为您提供助手
designfilt
,至少有一个是不正确的,而且您可以将代码粘贴到命令行上并通过按下执行它输入.
在编辑器中选择代码并按下执行F9.
如果你参选,你不会有助手
designfilt
使用匿名函数。(见匿名函数以获取更多信息。)例如,该输入提供了一个助手。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时不万博1manbetx支持-nojvm
,-nodisplay
,或-nodesktop
选项。
版本历史
在R2014a中引入R2021b:designfilt
函数不再帮助纠正对的调用designfilt
从R2021b开始,designfilt
函数不再帮助纠正对的调用designfilt
在脚本或函数中。在以前的版本中,该函数自动纠正并执行命令行上的代码。
您不需要对代码进行任何更改。如果调用designfilt
包含一个错误,则该函数发出一个带有打开过滤器设计助手的链接的错误。您可以使用该助手生成筛选器,并在命令行上显示相应的代码。生成的筛选器对象保存到工作空间。
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。