设计数字滤波器
设计了d
= designfilt (RESP
,名称,值
)digitalFilter
目的,d
与响应类型RESP
。指定进一步使用一组过滤器名称,值
对。允许的规范集取决于响应类型,RESP
和由以下的组合:
频率限制对应于在该过滤器表现出期望的行为的频率。例子包括“
PassbandFrequency
“
和“
CutoffFrequency
“
。(参见下的完整列表名称 - 值对参数。)您必须始终指定频率的限制。
大小限制描述在特定频率范围内的滤波器的行为。例子包括“
PassbandRipple
“
和“
StopbandAttenuation
“
。(参见下的完整列表名称 - 值对参数。)designfilt
为未指定的大小约束提供默认值。在任意幅度设计中,必须始终指定所需振幅的矢量。
“
FilterOrder
“
。一些设计方法,让你指定的顺序。其他生产最低阶的设计。也就是说,它们产生满足指定的约束最小的过滤器。
“
DesignMethod
“
是用于设计滤波器的算法。实例包括约束最小二乘('CLS'
)和Kaiser windowing ('kaiserwin'
)。对于某些规范集,有多种设计方法可供选择。在其他情况下,您只能使用一种方法来满足所需的规范。
设计方案特定于给定的设计方法的参数。例子包括“
窗口
“
为了'窗口'
方法和优化“
权重
“
对于任意幅度等波纹设计。(参见下的完整列表名称 - 值对参数。)designfilt
提供设计方案,默认值未指定。
“
采样率
“
为滤波器工作的频率。designfilt
有2Hz的缺省采样率。使用这个值相当于与归一化频率工作。
如果您在命令行指定一个不完整或不一致的组名称 - 值对,designfilt
打开一个报价滤波器设计助理。助理可以帮助您设计滤波器和粘贴修正MATLAB®命令行上的代码。
如果你打电话designfilt
从一组不正确的规范的脚本或函数,designfilt
一个链接来打开将发出错误消息滤波器设计助理。助理可以帮助您设计滤波器,评论了在函数或脚本故障码,并贴到下一行校正MATLAB代码。
用过滤器
形式DATAOUT =过滤器(d,DATAIN)
用于过滤与一信号digitalFilter
,d
。
用FVTool以可视化digitalFilter
,d
。
类型d.Coefficients
以获得的系数digitalFilter
,d
。对于IIR滤波器,系数被表示为第二阶段。
看到digitalFilter
对于可供利用的过滤和分析功能的列表digitalFilter
对象。
designfilt(
让您编辑现有的数字过滤器,d
)d
。它打开一个滤波器设计助理填充过滤器的规格,然后你就可以修改。这是你可以编辑的唯一途径digitalFilter
目的。它的属性,否则只读。
设计最低阶低通FIR滤波器,具有标准化的通带频率 弧度/秒,阻带频率 弧度/秒,通带波纹0.5分贝,和阻带衰减65分贝。使用Kaiser窗设计滤波器。可视化的幅度响应。用它来过滤随机数据的载体。
lpFilt = designfilt ('lowpassfir','PassbandFrequency',0.25,...'StopbandFrequency', 0.35,“PassbandRipple”,0.5%,...'StopbandAttenuation'65,'DesignMethod','kaiserwin');fvtool(lpFilt)
DATAIN =兰特(1000,1);DATAOUT =滤波器(lpFilt,DATAIN);
设计的低通IIR滤波器具有顺序如图8所示,通频带频率35千赫,和通带波纹0.2分贝。指定采样率为200khz。将滤波器的响应幅度可视化。
lpFilt = designfilt ('lowpassiir','FilterOrder'8...'PassbandFrequency',35e3,“PassbandRipple”, 0.2,...'采样率',200e3);fvtool(lpFilt)
使用你设计的滤波器来过滤1000个样本的随机信号。
dataIn = randn (1000 1);DATAOUT =滤波器(lpFilt,DATAIN);
输出的滤波系数,表示为二阶区段。
SOS = lpFilt.Coefficients
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滤波器 弧度/秒,通频带频率 弧度/秒,通带波纹0.5分贝,和阻带衰减65分贝。使用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 =滤波器(hpFilt,DATAIN);
设计了一个8阶高通IIR滤波器,通频75 kHz,通带纹波0.2 dB。指定采样率为200khz。可视化滤波器的幅值响应。对随机数据的1000个样本向量应用过滤器。
hpFilt = designfilt('highpassiir','FilterOrder'8...'PassbandFrequency',75e3,“PassbandRipple”, 0.2,...'采样率',200e3);fvtool(hpFilt)
dataIn = randn (1000 1);DATAOUT =滤波器(hpFilt,DATAIN);
设计一个截止频率低500hz,截止频率高560hz的20阶带通FIR滤波器。采样率是1500hz。将滤波器的响应幅度可视化。用它来过滤一个包含1000个样本的随机信号。
bpFilt = designfilt('bandpassfir','FilterOrder'20,...'CutoffFrequency1',500,'CutoffFrequency2',560,...'采样率',1500);fvtool(bpFilt)
dataIn = randn (1000 1);DATAOUT =滤波器(bpFilt,DATAIN);
输出的滤波器系数。
B = bpFilt.Coefficients
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
设计具有低3分贝的频率500 Hz至更高的3dB频率560赫兹一个20阶带通IIR滤波器。采样率是1500hz。可视化的滤波器的频率响应。用它来过滤1000样本随机信号。
bpFilt = designfilt('bandpassiir','FilterOrder'20,...“HalfPowerFrequency1”,500,“HalfPowerFrequency2”,560,...'采样率',1500);fvtool(bpFilt)
dataIn = randn (1000 1);DATAOUT =滤波器(bpFilt,DATAIN);
设计具有较低的截止频率500赫兹或更高的截止频率560赫兹一个20阶带阻FIR滤波器。采样率是1500hz。将滤波器的响应幅度可视化。用它来过滤随机数据的1000个样本。
bsFilt = designfilt('bandstopfir','FilterOrder'20,...'CutoffFrequency1',500,'CutoffFrequency2',560,...'采样率',1500);fvtool(bsFilt)
dataIn = randn (1000 1);dataOut =过滤器(bsFilt dataIn);
设计具有低3分贝的频率500 Hz至更高的3dB频率560赫兹一个20阶带阻IIR滤波器。采样率是1500hz。将滤波器的响应幅度可视化。用它来过滤随机数据的1000个样本。
bsFilt = designfilt('bandstopiir','FilterOrder'20,...“HalfPowerFrequency1”,500,“HalfPowerFrequency2”,560,...'采样率',1500);fvtool(bsFilt)
dataIn = randn (1000 1);dataOut =过滤器(bsFilt dataIn);
设计的顺序7.显示其零相位响应全频带微分滤波器。用它来过滤随机数据的1000样本矢量。
dFilt = designfilt('differentiatorfir','FilterOrder'7);fvtool (dFilt'MagnitudeDisplay',“零相”)
dataIn = randn (1000 1);dataOut =过滤器(dFilt dataIn);
设计一个18阶希尔伯特变压器。指定标准化的转换宽度 弧度/秒。以线性单位显示滤波器的幅度响应。用它来过滤随机数据的1000样本矢量。
hFilt = designfilt(“hilbertfir”,'FilterOrder'18,'TransitionWidth',0.25);fvtool(hFilt,'MagnitudeDisplay','大小')
dataIn = randn (1000 1);DATAOUT =滤波器(hFilt,DATAIN);
您将获得在1 kHz采样的信号。设计一个过滤器,停止100赫兹和350赫兹和频率超过400赫兹更大之间的频率。指定60.形象化的滤波器的频率响应的一个过滤器的顺序。用它来过滤1000样本随机信号。
mbFilt = designfilt('arbmagfir','FilterOrder'60,...“频率”,0:50:500,“振幅”,[1 1 1 0 0 0 0 1 1 0 0],...'采样率',1000);fvtool(mbFilt)
dataIn = randn (1000 1);DATAOUT =滤波器(mbFilt,DATAIN);
RESP
-滤波器响应和类型'lowpassfir'
|'lowpassiir'
|'highpassfir'
|'highpassiir'
|'bandpassfir'
|'bandpassiir'
|'bandstopfir'
|'bandstopiir'
|'differentiatorfir'
|“hilbertfir”
|'arbmagfir'
滤波器响应和类型,指定为字符向量或标量的字符串。点击的可能值之一RESP
扩大允许规范集的表。
选择此选项设计一个有限脉冲响应(FIR)低通滤波器。此示例使用来自下表的第五规范集。
d = designfilt('lowpassfir',...%响应型'FilterOrder'25,...%过滤器订单'PassbandFrequency',400,...%频率限制'StopbandFrequency', 550,...'DesignMethod','LS',...%设计方法'PassbandWeight'1,...%设计方法选项'StopbandWeight',2,...'采样率',2000年)% 采样率
如果省略'FilterOrder'
(当需要时),或任何的频率的限制,designfilt
抛出一个错误。
如果省略大小的限制,designfilt
使用默认值。
如果省略'DesignMethod'
,designfilt
使用规范集的默认设计方法。
如果省略了设计方法的选择,designfilt
使用供选择的设计方法的默认值。
如果省略'采样率'
,designfilt
将其设置为2赫兹。
滤波器阶参数名 | 频率约束的参数名 | 震级约束参数名 | “ DesignMethod “ 参数值 |
设计选项参数名 |
---|---|---|---|---|
N / A(最低阶设计) |
|
N / A |
||
|
||||
N / A |
|
N / A |
||
N / A |
|
|
||
|
||||
N / A |
|
|||
|
选择此选项可以设计一个无限脉冲响应(IIR)低通滤波器。此示例使用第一规格从下面的表中设置。
d = designfilt('lowpassiir',...%响应型'PassbandFrequency',400,...%频率限制'StopbandFrequency', 550,...“PassbandRipple”4,...%幅度限制'StopbandAttenuation'55,...'DesignMethod',“椭球”,...%设计方法“MatchExactly”,“通频带”,...%设计方法选项'采样率',2000年)% 采样率
如果省略'FilterOrder'
(当需要时),或任何的频率的限制,designfilt
抛出一个错误。
如果省略大小的限制,designfilt
使用默认值。
如果省略'DesignMethod'
,designfilt
使用规范集的默认设计方法。
如果省略了设计方法的选择,designfilt
使用供选择的设计方法的默认值。
如果省略'采样率'
,designfilt
将其设置为2赫兹。
滤波器阶参数名 | 频率约束的参数名 | 震级约束参数名 | “ DesignMethod “ 参数值 |
设计选项参数名 |
---|---|---|---|---|
N / A(最低阶设计) |
|
|||
|
||||
|
||||
|
||||
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',假,...%设计方法选项'采样率',2000年)% 采样率
如果省略'FilterOrder'
(当需要时),或任何的频率的限制,designfilt
抛出一个错误。
如果省略大小的限制,designfilt
使用默认值。
如果省略'DesignMethod'
,designfilt
使用规范集的默认设计方法。
如果省略了设计方法的选择,designfilt
使用供选择的设计方法的默认值。
如果省略'采样率'
,designfilt
将其设置为2赫兹。
滤波器阶参数名 | 频率约束的参数名 | 震级约束参数名 | “ DesignMethod “ 参数值 |
设计选项参数名 |
---|---|---|---|---|
N / A(最低阶设计) |
|
N / A |
||
|
||||
N / A |
|
|
||
|
||||
N / A |
|
|||
|
选择此选项可以设计一个无限脉冲响应(IIR)高通滤波器。此示例使用第一规格从下面的表中设置。
d = designfilt('highpassiir',...%响应型'StopbandFrequency',400,...%频率限制'PassbandFrequency', 550,...'StopbandAttenuation'55,...%幅度限制“PassbandRipple”4,...'DesignMethod','cheby1',...%设计方法“MatchExactly”,“阻带”,...%设计方法选项'采样率',2000年)% 采样率
如果省略'FilterOrder'
(当需要时),或任何的频率的限制,designfilt
抛出一个错误。
如果省略大小的限制,designfilt
使用默认值。
如果省略'DesignMethod'
,designfilt
使用规范集的默认设计方法。
如果省略了设计方法的选择,designfilt
使用供选择的设计方法的默认值。
如果省略'采样率'
,designfilt
将其设置为2赫兹。
滤波器阶参数名 | 频率约束的参数名 | 震级约束参数名 | “ DesignMethod “ 参数值 |
设计选项参数名 |
---|---|---|---|---|
N / A(最低阶设计) |
|
|||
|
||||
|
||||
|
||||
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,...'采样率',2000年)% 采样率
如果省略'FilterOrder'
(当需要时),或任何的频率的限制,designfilt
抛出一个错误。
如果省略大小的限制,designfilt
使用默认值。
如果省略'DesignMethod'
,designfilt
使用规范集的默认设计方法。
如果省略了设计方法的选择,designfilt
使用供选择的设计方法的默认值。
如果省略'采样率'
,designfilt
将其设置为2赫兹。
滤波器阶参数名 | 频率约束的参数名 | 震级约束参数名 | “ DesignMethod “ 参数值 |
设计选项参数名 |
---|---|---|---|---|
N / A(最低阶设计) |
|
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',“椭球”,...%设计方法“MatchExactly”,“通频带”,...%设计方法选项'采样率',2000年)% 采样率
如果省略'FilterOrder'
(当需要时),或任何的频率的限制,designfilt
抛出一个错误。
如果省略大小的限制,designfilt
使用默认值。
如果省略'DesignMethod'
,designfilt
使用规范集的默认设计方法。
如果省略了设计方法的选择,designfilt
使用供选择的设计方法的默认值。
如果省略'采样率'
,designfilt
将其设置为2赫兹。
滤波器阶参数名 | 频率约束的参数名 | 震级约束参数名 | “ DesignMethod “ 参数值 |
设计选项参数名 |
---|---|---|---|---|
N / A(最低阶设计) |
|
|||
|
||||
|
||||
|
||||
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,...'采样率',2000年)% 采样率
如果省略'FilterOrder'
(当需要时),或任何的频率的限制,designfilt
抛出一个错误。
如果省略大小的限制,designfilt
使用默认值。
如果省略'DesignMethod'
,designfilt
使用规范集的默认设计方法。
如果省略了设计方法的选择,designfilt
使用供选择的设计方法的默认值。
如果省略'采样率'
,designfilt
将其设置为2赫兹。
滤波器阶参数名 | 频率约束的参数名 | 震级约束参数名 | “ DesignMethod “ 参数值 |
设计选项参数名 |
---|---|---|---|---|
N / A(最低阶设计) |
|
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',“椭球”,...%设计方法“MatchExactly”,“两个”,...%设计方法选项'采样率',2000年)% 采样率
如果省略'FilterOrder'
(当需要时),或任何的频率的限制,designfilt
抛出一个错误。
如果省略大小的限制,designfilt
使用默认值。
如果省略'DesignMethod'
,designfilt
使用规范集的默认设计方法。
如果省略了设计方法的选择,designfilt
使用供选择的设计方法的默认值。
如果省略'采样率'
,designfilt
将其设置为2赫兹。
滤波器阶参数名 | 频率约束的参数名 | 震级约束参数名 | “ DesignMethod “ 参数值 |
设计选项参数名 |
---|---|---|---|---|
N / A(最低阶设计) |
|
|||
|
||||
|
||||
|
||||
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,...'采样率',2000年)% 采样率
如果省略'FilterOrder'
或任何的设计部分频带微分当频率限制,designfilt
抛出一个错误。
如果省略'DesignMethod'
,designfilt
使用规范集的默认设计方法。
如果省略了设计方法的选择,designfilt
使用供选择的设计方法的默认值。
如果省略'采样率'
,designfilt
将其设置为2赫兹。
滤波器阶参数名 | 频率约束的参数名 | 震级约束参数名 | “ DesignMethod “ 参数值 |
设计选项参数名 |
---|---|---|---|---|
N / A |
N / A |
|
N / A |
|
|
N / A |
|||
N / A |
|
|||
|
N / A |
选择此选项设计一个有限脉冲响应(FIR)希尔伯特变换滤波器。此示例使用说明书从下面的表中设置。
d = designfilt(“hilbertfir”,...%响应型'FilterOrder'12,...%过滤器订单'TransitionWidth',400,...%频率限制'DesignMethod','LS',...%设计方法'采样率',2000年)% 采样率
如果省略'FilterOrder'
要么'TransitionWidth'
,designfilt
抛出一个错误。
如果省略'DesignMethod'
,designfilt
使用希尔伯特变压器默认的设计方法。
如果省略'采样率'
,designfilt
将其设置为2赫兹。
滤波器阶参数名 | 频率约束的参数名 | 震级约束参数名 | “ DesignMethod “ 参数值 |
设计选项参数名 |
---|---|---|---|---|
N / A |
|
N / A |
||
|
N / A |
选择此选项来设计任意幅度响应的有限脉冲响应(FIR)滤波器。此示例使用从下表所述第二规范集。
d = designfilt('arbmagfir',...%响应型'FilterOrder'88,...%过滤器订单'NumBands'4,...%频率限制'BandFrequencies1',[0 20]...“BandFrequencies2”(25 40),...“BandFrequencies3”[45 65],...“BandFrequencies4”,[70 100],...'BandAmplitudes1'(2 - 2),...%幅度限制'BandAmplitudes2',[0 0],...'BandAmplitudes3',[1 1],...'BandAmplitudes4',[0 0],...'DesignMethod','LS',...%设计方法'BandWeights1',[1 1] / 10,...%设计方法选项'BandWeights2',[3 1],...“BandWeights3”(2 - 4),...'BandWeights4'[5 1],...'采样率', 200)% 采样率
如果省略'FilterOrder'
或任何的频率或幅度的限制,designfilt
抛出一个错误。
如果省略'DesignMethod'
,designfilt
使用规范集的默认设计方法。
如果省略了设计方法的选择,designfilt
使用供选择的设计方法的默认值。
如果省略'采样率'
,designfilt
将其设置为2赫兹。
数据类型:烧焦
|串
d
-数字滤波digitalFilter
目的数字滤波,指定为digitalFilter
由生成的对象designfilt
。使用此输入更改现有的规范digitalFilter
。
指定可选的用逗号分隔的对名称,值
参数。名称
参数名称和值
是对应的值。名称
必须出现引号内。您可以按照任何顺序指定多个名称和值对参数Name1, Value1,…,的家
。
'FilterOrder',20 'CutoffFrequency',0.4
足以指定一个低通FIR滤波器。
并非所有的组合名称,值
对有效。有效的组合取决于滤波器的响应,你需要和你的设计的频率和幅度的限制。
'FilterOrder'
-滤波器的阶过滤器顺序,指定为逗号分隔对所组成的'FilterOrder'
和一个正整数标量。
数据类型:双
'NumeratorOrder'
-分子的阶的IIR设计的分子顺序,指定为逗号分隔的一对组成的'NumeratorOrder'
和一个正整数标量。
数据类型:双
'DenominatorOrder'
-分母的阶的IIR设计的分母的阶,指定为逗号分隔的一对组成的'DenominatorOrder'
和一个正整数标量。
数据类型:双
'PassbandFrequency'
,'PassbandFrequency1'
,“PassbandFrequency2”
-通带频率通频带频率,指定为逗号分隔的一对组成的'PassbandFrequency'
和正标量。频率值必须在奈奎斯特范围内。
'PassbandFrequency1'
为带通或带阻设计下的通带频率。
“PassbandFrequency2”
是带通或带阻设计中较高的通频带频率。
数据类型:双
'StopbandFrequency'
,'StopbandFrequency1'
,'StopbandFrequency2'
-阻带频率阻带频率,指定为逗号分隔的一对组成的'StopbandFrequency'
和正标量。频率值必须在奈奎斯特范围内。
'StopbandFrequency1'
为带通或带阻设计下阻带频率
'StopbandFrequency2'
是带通或带阻设计中较高的阻带频率。
数据类型:双
'CutoffFrequency'
,'CutoffFrequency1'
,'CutoffFrequency2'
-6分贝的频率6dB的频率,指定为逗号分隔的一对组成的'CutoffFrequency'
和正标量。频率值必须在奈奎斯特范围内。
'CutoffFrequency1'
是低6分贝频率的带通或带阻的设计。
'CutoffFrequency2'
越高6dB的频率的带通或带阻的设计。
数据类型:双
“HalfPowerFrequency”
,“HalfPowerFrequency1”
,“HalfPowerFrequency2”
-3-dB的频率3分贝的频率,指定为逗号分隔的一对组成的“HalfPowerFrequency”
和正标量。频率值必须在奈奎斯特范围内。
“HalfPowerFrequency1”
是低3分贝的频率的带通或带阻的设计。
“HalfPowerFrequency2”
在带通或带阻设计中是较高的3-dB频率。
数据类型:双
'TransitionWidth'
-过渡区的宽度为一个希尔伯特变换器的通带和阻带之间的过渡区域的宽度,被指定为逗号分隔的一对组成的'TransitionWidth'
和正标量。
数据类型:双
“频率”
-频率响应响应频率,指定为逗号分隔的一对组成的“频率”
和一个向量。使用这个变量来列出任意幅度响应的滤波器具有期望振幅的频率。频率必须是单调增加的并且在奈奎斯特范围内。向量的第一个元素必须是0或者-F小号/ 2,其中F小号是的采样率,其最后一个元素必须是F小号/ 2。如果没有指定采样率,designfilt
使用2赫兹的默认值。
数据类型:双
'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 Express在线性单位的振幅。'BandAmplitudesi'
必须和'BandFrequenciesi'
。相邻的频带在其接点处必须有相同的振幅。
数据类型:双
'DesignMethod'
-设计方法'牛油'
|'cheby1'
|'cheby2'
|'CLS'
|“椭球”
|“equiripple”
|“freqsamp”
|'kaiserwin'
|'LS'
|'maxflat'
|'窗口'
设计方法中,指定由逗号分隔对组成'DesignMethod'
以及字符向量或字符串标量。设计方法的选择取决于你所指定的频率和大小约束的集合。
'牛油'
设计巴特沃斯IIR滤波器。巴特沃斯滤波器具有平滑的单调的频率响应是在通带最大平坦。他们牺牲滚降陡度的平整度。
'cheby1'
设计了一个切比雪夫I型IIR滤波器。切比雪夫I型滤波器具有频率响应是在通带等波纹和最平坦的阻带。他们通带纹波增加随着滚降陡度。
'cheby2'
设计了一个切比雪夫型II IIR滤波器。切比雪夫型II滤波器具有频率响应是在阻带通带和等波纹最大平坦。
'CLS'
设计使用约束最小二乘一个FIR滤波器。该方法最小化的指定任意分段线性函数和滤波器的幅度响应之间的差异。同时,它可以让你的通带波纹和阻带衰减设置限制。
“椭球”
设计了一个椭圆IIR滤波器。椭圆滤波器具有频率响应是在这两个通带和阻带等波纹。
“equiripple”
外观设计采用的公园 - 麦克莱伦算法的等波纹FIR滤波器。等波纹滤波器具有频率响应,最大限度地减少对所有波段的最大波幅。
“freqsamp”
通过均匀采样的频率响应,并采取逆傅立叶变换设计任意幅度响应的FIR滤波器。
'kaiserwin'
设计使用Kaiser窗方法的FIR滤波器。该方法截断的理想滤波器的脉冲响应,并使用Kaiser窗以衰减所产生的截断的振荡。
'LS'
设计采用最小二乘FIR滤波器。该方法最小化的指定任意分段线性函数和滤波器的幅度响应之间的差异。
'maxflat'
设计最平坦FIR滤波器。这些过滤器具有光滑的单调的频率响应是在通带最大平坦。
'窗口'
使用最小二乘近似来计算滤波器系数,然后用平滑的脉冲响应“
窗口
“
。
数据类型:烧焦
|串
'窗口'
-窗口窗口中,指定为逗号分隔的一对组成的'窗口'
和长度的矢量ñ+ 1,其中ñ是滤波器的阶数。'窗口'
也可以用一个窗口名称或功能句柄指定用于生成窗函数配对。任何这样的函数必须ñ+ 1作为第一输入。额外的输入可以通过指定的单元阵列被传递。默认,'窗口'
对于空载体“freqsamp”
设计方法和@hamming
为了'窗口'
设计方法。
有关可用窗口的列表,请参阅视窗。
例子:'窗口',汉恩(N + 1)
和'窗口',(1-COS(2 * PI *(0:N)'/ N))/ 2
双方指定Hann窗使用带有顺序过滤器ñ
。
例子:“窗口”,“汉明”
指定所需顺序的汉明窗口。
例子:'窗口',@ mywindow的
让你定义自己的窗口功能。
例子:'窗口',{@凯泽,0.5}
指定与形状参数0.5所要求的顺序的Kaiser窗。
数据类型:双
|烧焦
|串
|function_handle
|细胞
“MatchExactly”
-精确匹配频带“阻带”
|“通频带”
|“两个”
带精确匹配,指定为逗号分隔的一对组成的“MatchExactly”
,要么“阻带”
,“通频带”
, 要么“两个”
。“两个”
仅对椭圆设计方法可用,该方法为默认值。“阻带”
对于默认'牛油'
和'cheby2'
方法。“通频带”
是默认'cheby1'
。
数据类型:烧焦
|串
'PassbandOffset'
-通频带抵消通带偏移,指定为逗号分隔对,由'PassbandOffset'
而正标用分贝表示。'PassbandOffset'
指定通带中的滤波器增益。
例子:'PassbandOffset',0
结果在通带内产生单位增益的滤波器。
例子:'PassbandOffset',2
结果在以2dB或1.259的通带增益的滤波器。
数据类型:双
'ScalePassband'
-规模通真正
(默认)|假
标度通带,指定为逗号分隔对所组成的'ScalePassband'
和一个逻辑标量。当您设置'ScalePassband'
至真正
中,通带被缩放,加窗后,使该过滤器具有单位增益在零频率。
例子:'窗口',{@凯泽,0.1}, 'ScalePassband',真
帮助指定一个滤波器,其幅度响应在零频率正好是0分贝。当您指定时,情况并非如此'ScalePassband',假
。要验证,请将过滤器可视化fvtool
并进行放大。
数据类型:合乎逻辑
“零相位”
-零阶段假
(默认)|真正
零相位,指定为逗号分隔的一对组成的“零相位”
和一个逻辑标量。当您设置“零相位”
至真正
时,得到的滤波器的零相位响应总是正的。这允许您对结果进行光谱分解,并从中获得一个最小相位滤波器。
数据类型:合乎逻辑
'PassbandWeight'
,'PassbandWeight1'
,'PassbandWeight2'
-优化通带重量通带优化重量,指定为逗号分隔的一对组成的'PassbandWeight'
和正标量。
'PassbandWeight1'
为带阻FIR设计的低带通带优化权值。
'PassbandWeight2'
是带阻FIR设计的高带通优化重量。
数据类型:双
'StopbandWeight'
,'StopbandWeight1'
,'StopbandWeight2'
-阻带优化重量阻带优化重量,指定为逗号分隔的一对组成的'StopbandWeight'
和正标量。
'StopbandWeight1'
为带通FIR设计窄频带的阻带优化重量。
'StopbandWeight2'
为带通FIR设计的高带阻带优化重量。
数据类型:双
“重量”
-优化权重优化权重,指定为逗号分隔对所组成的“重量”
一个正的标量或者一个和它长度相同的向量“振幅”
。
数据类型:双
'BandWeights1'
,'...'
,'BandWeightsN'
-多频段的权重多波段权值,指定为逗号分隔对,由“BandWeightsi”
和一组标量的正或载体。“BandWeightsi”
,其中一世从1点到运行NumBands
是包含的最优化权重标量或向量一世的多频带设计的个频带。如果指定为载体,“BandWeightsi”
必须和'BandAmplitudesi'
。
数据类型:双
'采样率'
-采样率抽样率,指定为逗号分隔对所组成的'采样率'
而正标以赫兹表示。与归一化频率工作,集'采样率'
或者干脆省略。
数据类型:双
d
- 数字滤波digitalFilter
目的数字滤波器,返回为digitalFilter
目的。
如果指定一个不完整或不一致的一组设计参数,designfilt
报价开滤波器设计助理。
(在论证描述中RESP
对于所有可用的响应类型,都有一个有效规范集的完整列表。
助理行为有所不同,如果你打电话designfilt
在命令行或脚本或功能内。
您将获得在2 kHz采样的信号。你被要求设计一个低通FIR滤波器抑制的频率分量高于650赫兹。该“截止频率”听起来像一个很好的候选人的规格参数。在MATLAB命令行中,键入以下命令。
Fsamp = 2 e3;Fctff = 650;DEE = designfilt('lowpassfir','CutoffFrequency'Fctff,...'采样率', Fsamp);
由于这个对话框出现在您的屏幕上,所以似乎有些问题。
你点击是并得到一个新的对话框,提供生成代码。你看,你之前定义的变量已经被插入在预期的位置。
在研究了提供的一些选项之后,您决定测试修正后的过滤器。你点击好并获得在命令行下面的代码。
DEE = designfilt('lowpassfir','FilterOrder'10,...'CutoffFrequency',Fctff,'采样率',FSAMP);
键入过滤器的名称重申从对话框中的信息。
迪
dee = digitalFilter with properties: Coefficients: [1x11 double]规格:频响应:“低通”脉冲响应:“fir”采样采样:2000 FilterOrder: 10 CutoffFrequency: 650设计方法:“窗口”使用fvtool来可视化滤波器使用滤波器函数来过滤数据
您调用FVTool并获得一个阴谋迪
的频率响应。
fvtool(DEE)
截止看起来并不特别尖锐。响应是高于40分贝大多数频率。你还记得那个助理有一个选项来设置一个“大小限制”被称为“阻带衰减”。打开通过调用助手designfilt
与所述过滤器的名称作为输入。
designfilt(迪)
单击大小限制
下拉菜单,然后选择通带波纹和阻带衰减
。你看到设计方法已经改变窗口
至冷杉约束最小二乘
。默认的衰减值是60db,大于40。请点击好和可视化所得到的过滤器。
DEE = designfilt('lowpassfir','FilterOrder'10,...'CutoffFrequency',Fctff,...“PassbandRipple”1,'StopbandAttenuation'现年60岁的...'采样率',FSAMP);fvtool(DEE)
截止仍然不锋利的样子。衰减确实60分贝,但对于高于900赫兹的频率。
再次调用designfilt
您的筛选器作为输入。
designfilt(迪)
助手重新出现。
为了缩小接受和拒绝的频率之间的区别,增加过滤器或变化的阶频率限制
从截止(6分贝)频率
至通带和阻带频率
。如果更改从10滤波器的阶数为50,你会得到一个更清晰过滤器。
DEE = designfilt('lowpassfir','FilterOrder'50,...'CutoffFrequency',650,...“PassbandRipple”1,'StopbandAttenuation'现年60岁的...'采样率',2000);fvtool(DEE)
一些实验表明,可以通过分别设置在通带和阻带频率600赫兹和700赫兹获得类似的过滤器。
DEE = designfilt('lowpassfir','PassbandFrequency',600,...'StopbandFrequency',700,...“PassbandRipple”1,'StopbandAttenuation'现年60岁的...'采样率',2000);fvtool(DEE)
您将获得在2 kHz采样的信号。你被要求设计一个高通滤波器,停止低于700赫兹的频率。你不关心信号的相位,你需要将工作与低阶滤波器。因此IIR滤波器似乎足以。你不知道什么滤波器的阶是最好的,所以你写的接受顺序输入的功能。打开MATLAB编辑和创建文件。
功能DATAOUT = hipassfilt(N,DATAIN)hpFilter = designfilt('highpassiir','FilterOrder'N);DATAOUT =滤波器(hpFilter,DATAIN);结束
到测试函数,创建一个与频率500和800赫兹两个正弦波组成的信号,并产生样品的0.1秒。五阶滤波器似乎是合理的,作为初始猜测。创建一个称为脚本driveHPfilt.m
。
%脚本driveHPfilt.mFsamp = 2 e3;Fsm = 500;光纤光栅= 800;t = 0:1 / Fsamp: 0.1;sgin =罪(2 *π* Fsm * t) +罪(2 *π*光纤光栅* t);订单= 5;sgout = hipassfilt(顺序,sgin);
当您运行在命令行脚本,你会得到一个错误消息。
错误信息给你打开一个助手纠正MATLAB代码的选择。请点击点击这里
获得滤波器设计助理在屏幕上。
您可以看到问题:您没有指定频率约束。您还忘记设置采样率。在试验之后,您发现您可以指定频率单位作为赫兹
,通带频率等于700hz,和输入Fs等于2000hz。的设计方法从变化巴特沃斯
至切比雪夫I型
。你点击好并获得以下。
助理已经正确识别,你调用文件designfilt
。请点击是接受改变。函数有修正过的MATLAB代码。
功能DATAOUT = hipassfilt(N,DATAIN)%hpFilter = designfilt( 'highpassiir', 'FilterOrder',N);hpFilter = designfilt ('highpassiir','FilterOrder',N,...'PassbandFrequency',700,“PassbandRipple”1,...'采样率',2000);DATAOUT =滤波器(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万博1manbetx运行不支持它-nojvm
,-nodisplay
, 要么-nodesktop
选项。
FVTool|digitalFilter
|双
|fftfilt
|filt2block
|过滤器
|filtfilt
|filtord
|firtype
|freqz
|grpdelay
|impz
|impzlength
|信息
|isallpass
|isdouble
|isfir
|islinphase
|ismaxphase
|isminphase
|issingle
|isstable
|phasedelay
|phasez
|单
|SS
|stepz
|TF
|零相位
|zpk
|zplane
您单击对应于该MATLAB命令的链接:
在MATLAB命令窗口中输入它运行的命令。Web浏览器不支持MATLAB的命令。万博1manbetx
您还可以选择从下面的列表中的网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。