designfilt

设计数字滤波器

描述

例子

d= designfilt (分别地名称,值设计一个digitalFilter对象,d,具有响应类型分别地.属性的集合进一步指定筛选器名称,值对。允许的规范集取决于响应类型,分别地,并由下列组合组成:

  • 频率约束对应于滤波器显示所需行为的频率。例子包括PassbandFrequency而且CutoffFrequency.(请参阅下面的完整列表名称-值对参数)。您必须始终指定频率约束。

  • 大小限制描述滤波器在特定频率范围内的行为。例子包括PassbandRipple而且StopbandAttenuation.(请参阅下面的完整列表名称-值对参数)。designfilt为未指定的幅度约束提供默认值。在任意幅值设计中,必须始终指定所需幅值的矢量。

  • FilterOrder.有些设计方法允许您指定顺序。其他人则生产最小订单设计。也就是说,它们生成满足指定约束的最小过滤器。

  • DesignMethod是用来设计滤波器的算法。例子包括受约束最小二乘(“cls”)和Kaiser窗口(“kaiserwin”).对于某些规范集,有多种设计方法可供选择。在其他情况下,您可以只使用一种方法来满足所需的规范。

  • 设计选项是特定于给定设计方法的参数。例子包括窗口“窗口”方法与优化权重对于任意大小的等纹波设计。(请参阅下面的完整列表名称-值对参数)。designfilt为未指定的设计选项提供默认值。

  • SampleRate是滤波器工作的频率。designfilt默认采样率为2hz。使用这个值相当于使用标准化频率。

请注意

如果在命令行中指定了不完整或不一致的名-值对集,designfilt提供开设过滤器设计助理.该助手可以帮助您设计滤波器并粘贴校正后的MATLAB®命令行上的代码。

如果你打电话designfilt如果脚本或函数的规范集不正确,designfilt对象的打开链接发出错误消息过滤器设计助理.该助手帮助您设计过滤器,注释掉函数或脚本中的错误代码,并将更正后的MATLAB代码粘贴到下一行。

designfilt (d让你编辑现有的数字滤镜,d.它打开一个过滤器设计助理用筛选器的规范填充,然后可以对其进行修改。这是您可以编辑的唯一方法digitalFilter对象。否则它的属性是只读的。

例子

全部折叠

设计了一种通频带归一化的最小阶低通FIR滤波器 0 2 5 π Rad /s,阻带频率 0 3. 5 π 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滤波器 0 2 5 π Rad /s,通带频率 0 3. 5 π 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阶希尔伯特变压器。指定的归一化过渡宽度 0 2 5 π 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”

数据类型:字符|字符串

数字滤波器,指定为digitalFilter对象生成的designfilt.使用此输入更改现有的规范digitalFilter

名称-值对参数

的可选逗号分隔对名称,值参数。的名字参数名称和价值对应的值。的名字必须出现在引号内。您可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:“CutoffFrequency”“FilterOrder”,20日,0.4足以指定一个低通FIR滤波器。

不是所有的组合名称,值对有效。有效的组合取决于您需要的滤波器响应以及您的设计的频率和幅度限制。

过滤器订单

全部折叠

过滤器顺序,指定为逗号分隔的对,由“FilterOrder”一个正整数标量。

数据类型:

IIR设计的分子顺序,指定为逗号分隔的对,由“NumeratorOrder”一个正整数标量。

数据类型:

IIR设计的分母顺序,指定为逗号分隔的对,由“DenominatorOrder”一个正整数标量。

数据类型:

频率约束

全部折叠

通频带频率,指定为由逗号分隔的对组成“PassbandFrequency”一个正标量。频率值必须在Nyquist范围内。

“PassbandFrequency1”是带通或带阻设计的较低通频带频率。

“PassbandFrequency2”是带通或带阻设计的较高通频带频率。

数据类型:

止带频率,指定为由逗号分隔的对组成“StopbandFrequency”一个正标量。频率值必须在Nyquist范围内。

“StopbandFrequency1”低阻带频率是带通还是带阻设计

“StopbandFrequency2”是带通或带阻设计的较高阻带频率。

数据类型:

6-dB频率,指定为由逗号分隔的对组成“CutoffFrequency”一个正标量。频率值必须在Nyquist范围内。

“CutoffFrequency1”是带通或带阻设计中较低的6分贝频率。

“CutoffFrequency2”为带通或带阻设计的更高的6 db频率。

数据类型:

3-dB频率,以逗号分隔的对组成“HalfPowerFrequency”一个正标量。频率值必须在Nyquist范围内。

“HalfPowerFrequency1”是带通或带阻设计中较低的3分贝频率。

“HalfPowerFrequency2”为带通或带阻设计的更高3db频率。

数据类型:

希尔伯特变压器通带和阻带之间过渡区域的宽度,指定为逗号分隔的对,由“TransitionWidth”一个正标量。

数据类型:

响应频率,指定为逗号分隔的对,由“频率”还有一个向量。使用此变量可列出任意幅值响应滤波器具有所需幅值的频率。频率必须是单调增加的,并且位于奈奎斯特范围内。向量的第一个元素必须是0或- - - - - -f年代/ 2,在那里f年代是抽样率,它的最后一个元素必须是f年代/ 2.如果不指定抽样率,designfilt使用默认值2hz。

数据类型:

多频带设计中的频带数,以逗号分隔的对表示,由“NumBands”一个不大于10的正整数标量。

数据类型:

多频带响应频率,指定为逗号分隔的对,由“BandFrequenciesi”和一个数值向量。“BandFrequenciesi”,在那里从1到NumBands的频率向量多频带设计的频带具有期望的值,“BandAmplitudesi”NumBands最多10个。频率必须位于奈奎斯特范围内,并且必须以单调递增的顺序指定。相邻频带在连接处的振幅必须相同。

数据类型:

大小限制

全部折叠

通带纹波,指定为由逗号分隔的对组成“PassbandRipple”一个用分贝表示的正标量。

“PassbandRipple1”是带阻设计的低带通带纹波。

“PassbandRipple2”是带阻设计的高频带通带纹波。

数据类型:

止带衰减,指定为由逗号分隔的对组成“StopbandAttenuation”一个用分贝表示的正标量。

“StopbandAttenuation1”是带通设计的低带阻带衰减。

“StopbandAttenuation2”是带通设计的高带阻带衰减。

数据类型:

任意幅值响应滤波器的期望响应幅值,指定为由逗号分隔的对组成“振幅”还有一个向量。用线性单位表示振幅。向量的长度必须与“频率”

数据类型:

多波段响应振幅,以逗号分隔的对组成“BandAmplitudesi”和一个数值向量。“BandAmplitudesi”,在那里从1到NumBands中所期望的幅值的向量多波段设计的波段。NumBands最多10个。用线性单位表示振幅。“BandAmplitudesi”长度必须和“BandFrequenciesi”.相邻频带在连接处的振幅必须相同。

数据类型:

设计方法

全部折叠

设计方法,指定为由逗号分隔的对组成“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”,要么阻带的“通频带”,或“两个”“两个”仅对椭圆设计方法可用,其中它是默认值。阻带的的默认值是“黄油”而且“cheby2”方法。“通频带”的默认值。“cheby1”

数据类型:字符|字符串

通带偏移量,指定为逗号分隔的对,由“PassbandOffset”一个用分贝表示的正标量。“PassbandOffset”指定通带中的滤波器增益。

例子:“PassbandOffset”,0结果在通带中有单位增益的滤波器。

例子:“PassbandOffset”,2滤波器的通带增益为2 dB或1.259。

数据类型:

缩放通带,指定为由逗号分隔的对组成“ScalePassband”和一个逻辑标量。当你设置“ScalePassband”真正的时,通带被缩放,加窗后,使滤波器在零频率时有单位增益。

例子:{@kaiser, 0.1}‘窗口’,‘ScalePassband’,真的帮助指定一个滤波器,其在零频率下的幅值响应正好为0db。当您指定时,情况并非如此“ScalePassband”,假的.要验证,请将过滤器可视化fvtool放大。

数据类型:逻辑

零阶段,指定为由逗号分隔的对组成“ZeroPhase”和一个逻辑标量。当你设置“ZeroPhase”真正的时,得到的滤波器的零相响应始终为正。这允许您对结果执行谱分解,并从中获得最小相位滤波器。

数据类型:逻辑

通带优化权值,指定为由逗号分隔的对组成“PassbandWeight”一个正标量。

“PassbandWeight1”为带阻FIR设计的低带通带优化权值。

“PassbandWeight2”为带阻FIR设计的高频带通带优化权值。

数据类型:

止带优化权重,由逗号分隔的对组成“StopbandWeight”一个正标量。

“StopbandWeight1”为带通FIR设计的低带阻带优化权值。

“StopbandWeight2”为带通FIR设计的高带阻带优化权重。

数据类型:

优化权重,指定为由逗号分隔的对组成“重量”一个正的标量或者一个长度相同的向量“振幅”

数据类型:

多带权重,指定为逗号分隔的对,由“BandWeightsi”和一组正标量或向量。“BandWeightsi”,在那里从1到NumBands类的优化权值是一个标量或向量多波段设计的波段。如果指定为向量,“BandWeightsi”长度必须和“BandAmplitudesi”

数据类型:

采样率

全部折叠

采样率,指定为由逗号分隔的对组成“SampleRate”一个用赫兹表示的正标量。要使用归一化频率,请设置“SampleRate”到2,或者直接省略它。

数据类型:

输出参数

全部折叠

数字滤波器,返回为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选项。

在R2014a中引入