designfilt
设计数字滤波器
designfilt
不再帮助纠正脚本或函数中对函数的调用。有关更多信息,请参见兼容性的考虑.
描述
设计一个d
= designfilt (分别地
,名称,值
)digitalFilter
对象,d
,具有响应类型分别地
.的例子分别地
是“lowpassfir”
而且“bandstopiir”
.方法进一步指定筛选器名称-值对的观点.允许的规格集取决于分别地
并由以下的组合组成:
频率约束对应于滤波器显示所需行为的频率。例子包括
“PassbandFrequency”
而且“CutoffFrequency”
.您必须始终指定频率限制。大小限制描述滤波器在特定频率范围内的行为。例子包括
“PassbandRipple”
而且“StopbandAttenuation”
.designfilt
为未指定的幅度约束提供默认值。在任意幅值设计中,必须始终指定所需幅值的向量。过滤器订单.有些设计方法允许指定顺序。其他公司则生产最低订单设计。也就是说,它们生成满足指定约束的最小过滤器。
设计方法是用来设计滤波器的算法。例子包括约束最小二乘(
“cls”
)和凯撒窗(“kaiserwin”
).对于某些规范集,有多种设计方法可供选择。在其他情况下,您只能使用一种方法来满足所需的规范。设计方法的选择是特定于给定设计方法的参数。例子包括
“窗口”
为“窗口”
方法和优化“重量”
对于任意大小的等纹波设计。designfilt
为未指定的设计选项提供默认值。采样率是滤波器工作的频率。
designfilt
默认采样率为2hz。使用此值等同于使用归一化频率。
请注意
如果在命令行上指定不完整或不一致的名称-值参数集,designfilt
提议开一家滤波器设计助理.助手帮助您设计过滤器和粘贴修正的MATLAB®命令行上的代码。
如果你叫designfilt
从一组不正确的规范的脚本或函数,designfilt
的链接发出错误消息滤波器设计助理.助手帮助您设计过滤器,并将修正后的MATLAB代码粘贴到命令行上。设计的过滤器被保存到工作区中。
使用
过滤器
在表单中dataIn dataOut =过滤器(d)
用滤波器对信号进行滤波digitalFilter
,d
.对于IIR过滤器,过滤器
函数使用了直接形式的II实现。你也可以使用filtfilt
而且fftfilt
功能与digitalFilter
对象。使用FVTool想象一个
digitalFilter
,d
.类型
d.Coefficients
得到a的系数digitalFilter
,d
.对于IIR滤波器,系数表示为二阶截面。看到
digitalFilter
获取可用的过滤和分析函数的列表digitalFilter
对象。
designfilt (
让你编辑现有的数字滤波器,d
)d
.它打开一个滤波器设计助理用过滤器的规格填充,然后可以对其进行修改。这是你编辑的唯一方法digitalFilter
对象。否则,它的属性是只读的。
例子
低通滤波器
设计了一种通带频率归一化的最小次低通FIR滤波器 rad /样本,阻带频率 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 =兰德(1000 1);dataOut =过滤器(lpFilt dataIn);
低通滤波器IIR滤波器
设计一个8阶低通IIR滤波器,通带频率35 kHz,通带纹波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 =过滤器(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 /样本,通频带的频率 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 =过滤器(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 =过滤器(hpFilt dataIn);
带通滤波器
设计一个低截止频率500hz,高截止频率560hz的20阶带通FIR滤波器。采样速率为1500hz。可视化滤波器的幅度响应。用它来过滤包含1000个样本的随机信号。
bpFilt = designfilt (“bandpassfir”,“FilterOrder”, 20岁,...“CutoffFrequency1”, 500,“CutoffFrequency2”, 560,...“SampleRate”, 1500);fvtool (bpFilt)
dataIn = randn (1000 1);dataOut =过滤器(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滤波器
设计一个低3分贝频率500hz,高3分贝频率560hz的20阶带通IIR滤波器。采样速率为1500hz。可视化滤波器的频率响应。用它来过滤1000个样本的随机信号。
bpFilt = designfilt (“bandpassiir”,“FilterOrder”, 20岁,...“HalfPowerFrequency1”, 500,“HalfPowerFrequency2”, 560,...“SampleRate”, 1500);fvtool (bpFilt)
dataIn = randn (1000 1);dataOut =过滤器(bpFilt dataIn);
Bandstop冷杉过滤器
设计一个低截止频率500hz,高截止频率560hz的20阶带阻FIR滤波器。采样速率为1500hz。可视化滤波器的幅度响应。用它来过滤随机数据的1000个样本。
bsFilt = designfilt (“bandstopfir”,“FilterOrder”, 20岁,...“CutoffFrequency1”, 500,“CutoffFrequency2”, 560,...“SampleRate”, 1500);fvtool (bsFilt)
dataIn = randn (1000 1);dataOut =过滤器(bsFilt dataIn);
Bandstop IIR滤波器
设计一个低3db频率500hz,高3db频率560hz的20阶带阻IIR滤波器。采样速率为1500hz。可视化滤波器的幅度响应。用它来过滤随机数据的1000个样本。
bsFilt = designfilt (“bandstopiir”,“FilterOrder”, 20岁,...“HalfPowerFrequency1”, 500,“HalfPowerFrequency2”, 560,...“SampleRate”, 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阶希尔伯特变压器。的归一化过渡宽度 rad /样品。以线性单位显示滤波器的幅度响应。使用它来过滤随机数据的1000个样本向量。
hFilt = designfilt (“hilbertfir”,“FilterOrder”, 18岁,“TransitionWidth”, 0.25);fvtool (hFilt“MagnitudeDisplay”,“级”)
dataIn = randn (1000 1);dataOut =过滤器(hFilt dataIn);
Arbitrary-Magnitude冷杉过滤器
给你一个1khz的采样信号。设计一个滤波器,阻止频率在100hz到350hz之间和频率大于400hz。指定过滤器的顺序为60。可视化滤波器的频率响应。用它来过滤1000个样本的随机信号。
mbFilt = designfilt (“arbmagfir”,“FilterOrder”现年60岁的...“频率”0:50:500,“振幅”,[1 1 1 0 0 0 0 0 1 1 0 0],...“SampleRate”, 1000);fvtool (mbFilt)
dataIn = randn (1000 1);dataOut =过滤器(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 |
|
|||
|
||||
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 |
|
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 |
|
|||
|
||||
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 |
|
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 |
|
|||
|
||||
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 |
|||
|
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 |
|
|||
|
||||
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 |
|||
|
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分贝频率,指定为正标量。频率值必须在Nyquist范围内。
“CutoffFrequency1”
为带通或带阻设计中较低的6分贝频率。
“CutoffFrequency2”
为带通或带阻设计中较高的6分贝频率。
数据类型:双
HalfPowerFrequency
,HalfPowerFrequency1
,HalfPowerFrequency2
- - - - - -3-dB频率
积极的标量
3-dB频率,指定为正标量。频率值必须在Nyquist范围内。
“HalfPowerFrequency1”
为带通或带阻设计中较低的3分贝频率。
“HalfPowerFrequency2”
为带通或带阻设计中较高的3分贝频率。
数据类型:双
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”
利用Kaiser窗法设计了FIR滤波器。该方法对理想滤波器的脉冲响应进行截断,并使用凯撒窗来衰减由此产生的截断振荡。“ls”
利用最小二乘设计FIR滤波器。该方法使指定的任意分段线性函数和滤波器的幅值响应之间的差异最小化。“maxflat”
设计了一个最大平坦FIR滤波器。这些滤波器具有平滑的单调频率响应,在通带中最大程度地平坦。“窗口”
使用最小二乘近似计算滤波器系数,然后平滑脉冲响应“窗口”
.
数据类型:字符
|字符串
MinOrder
- - - - - -最低订购量平价
“任何”
(默认)|“甚至”
的最小阶奇偶校验“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
在命令行或脚本或函数中。
给你一个2khz的采样信号。你被要求设计一个低通FIR滤波器,抑制高于650赫兹的频率成分。“截止频率”听起来像是一个很好的规格参数候选者。您可以在MATLAB命令行中键入此代码。
Fsamp = 2 e3;Fctff = 650;迪= designfilt (“lowpassfir”,“CutoffFrequency”Fctff,...“SampleRate”, Fsamp);
因为这个对话框出现在您的屏幕上,所以似乎有什么问题。
你点击是的并获得一个提供生成代码的新对话框。您可以看到之前定义的变量已经插入到预期的位置。
在研究了所提供的一些选项之后,您决定测试校正后的过滤器。你点击好吧并在命令行中获取此代码。
designfilt (“lowpassfir”,“FilterOrder”10...“CutoffFrequency”Fctff,“SampleRate”, 2000);
输入筛选器的名称会重复对话框中的信息。
迪
系数:[-0.0036 0.0127 -0.0066 -0.0881 0.2595…0.6521 0.2595 -0.0881 -0.0066 0.0127 -0.0036]规格:FrequencyResponse: 'lowpass' impulse esponse: 'fir' SampleRate: 2000 CutoffFrequency: 650 FilterOrder: 10 DesignMethod: 'window'使用fvtool可视化过滤器使用designfilter编辑过滤器使用filter过滤数据
您调用FVTool得到一个图迪
的频率响应。
fvtool(迪)
这个分水岭看起来并不是特别明显。大多数频率的响应都在40分贝以上。你记得助手有一个选项,可以设置一个叫做“阻带衰减”的“幅度约束”。通过呼叫打开助手designfilt
使用筛选器名称作为输入。
designfilt(迪)
单击大小限制
下拉菜单和选择通带波纹和阻带衰减
.你看,设计方法已经从窗口
来冷杉约束最小二乘
.衰减的默认值是60db,大于40。点击好吧并将得到的过滤器可视化。
迪= designfilt (“lowpassfir”,“FilterOrder”10...“CutoffFrequency”, 650,“PassbandRipple”,1,...“StopbandAttenuation”现年60岁的“SampleRate”, 2000);fvtool(迪)
分水岭看起来仍然不明显。衰减确实是60分贝,但频率超过900赫兹。
再次调用designfilt
使用过滤器作为输入。
designfilt(迪)
助理重新出现。
要缩小接受和拒绝频率之间的区别,增加滤波器的阶数或更改频率约束
从截止频率(6 db)
来通带和阻带频率
.如果你改变过滤器顺序从10到50,你会得到一个更清晰的过滤器。
迪= designfilt (“lowpassfir”,“FilterOrder”, 50岁,...“CutoffFrequency”, 650,“PassbandRipple”,1,...“StopbandAttenuation”现年60岁的“SampleRate”, 2000);fvtool(迪)
少量实验表明,通过将通带和阻带频率分别设置为600hz和700hz,可以获得类似的滤波器。
迪= designfilt (“lowpassfir”,“PassbandFrequency”, 600,...“StopbandFrequency”, 700,“PassbandRipple”,1,...“StopbandAttenuation”现年60岁的“SampleRate”, 2000);fvtool(迪)
给你一个2khz的采样信号。你被要求设计一个高通滤波器,阻止频率低于700hz。你不需要关心信号的相位,你需要使用低阶滤波器。因此,IIR过滤器似乎就足够了。您不确定哪种过滤器顺序是最好的,因此编写一个函数接受该顺序作为输入。打开MATLAB编辑器并创建文件。
函数dataOut = hipassfilt(Order,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);N = 5;sgout = hipassfilt (N, sgin);
在命令行上运行脚本时,会得到一条错误消息。
错误消息让您可以选择打开助手来纠正MATLAB代码。点击点击这里
以获得屏幕上的过滤器设计助手。
您可以看到问题所在:您没有指定频率限制。你还忘了设置抽样速率。经过实验,您会发现您可以指定频率的单位作为赫兹
,通带频率等于700hz,和输入Fs等于2000赫兹。的设计方法改变从巴特沃斯
来切比雪夫型
.你点击好吧并在命令行中获取。
惠普= 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桌面运行。如果你用-nojvm
,-nodisplay
,或-nodesktop
选项。
版本历史
介绍了R2014aR2021b:designfilt
函数不再帮助纠正对的调用designfilt
从R2021b开始designfilt
函数不再帮助纠正对的调用designfilt
在脚本或函数中。在以前的版本中,该函数在命令行上自动更正和执行代码。
您不需要对代码做任何更改。如果呼唤designfilt
包含一个错误,则该函数发出一个带有打开过滤器设计助手的链接的错误。您可以使用助手生成筛选器并在命令行上显示相应的代码。生成的筛选器对象被保存到工作区中。
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。