designfilt

设计数字过滤器

描述

例子

D.= designfilt (resp名称,价值设计digitalFilter对象D.,响应类型resp。使用一组名称,价值对。允许的规格集取决于响应类型,resp,由下列各项组合而成:

  • 频率限制对应于过滤器呈现所需行为的频率。例子包括'PassbandFrequency''Cutffrequency.'.(请参阅完整列表下名称-值对参数.)您必须始终指定频率约束。

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

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

  • '设计方法'是用于设计过滤器的算法。示例包括约束最小二乘(“cls”)及Kaiser windowing (“kaiserwin”)。对于某些规范集,有多种设计方法可供选择。在其他情况下,您只能使用一种方法来满足所需的规格。

  • 设计选项是特定于给定设计方法的参数。例子包括''为了'窗户'方法和优化'重量'对于任意幅度平等的设计。(请参阅完整列表下名称-值对参数.)designfilt为未指定的设计选项提供默认值。

  • '取样频率'为滤波器工作的频率。designfilt默认采样率为2hz。使用这个值相当于使用归一化频率。

请注意

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

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

设计过滤器(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,...'stopband职业', 0.35,“PassbandRipple”, 0.5,...“StopbandAttenuation”,65,“DesignMethod”“kaiserwin”);FVTool(LPFILT)

数据=兰特(1000,1);dataout = filter(lpfilt,数据);

使用订单8,通带频率35 kHz和通带纹波0.2 dB设计低通IIR滤波器。指定采样率为200khz。想象滤波器的幅值响应。

lpFilt = designfilt ('洛链'“FilterOrder”8...“PassbandFrequency”35岁的e3,“PassbandRipple”, 0.2,...'采样率'200年e3);FVTool(LPFILT)

使用你设计的滤波器来过滤1000个样本的随机信号。

dataIn = randn (1000 1);dataout = filter(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”'stopband职业',0.25,...“PassbandFrequency”, 0.35,“PassbandRipple”, 0.5,...“StopbandAttenuation”,65,“DesignMethod”“kaiserwin”);fvtool (hpFilt)

dataIn = randn (1000 1);dataout = filter(HPFilt,Datain);

设计一个8阶高通IIR滤波器,通频带频率75khz,通带纹波0.2 dB。指定采样率为200khz。想象滤波器的幅度响应。将过滤器应用于随机数据的1000个样本向量。

hpFilt = designfilt (“highpassiir”“FilterOrder”8...“PassbandFrequency”75年e3,“PassbandRipple”, 0.2,...'采样率'200年e3);fvtool (hpFilt)

dataIn = randn (1000 1);dataout = filter(HPFilt,Datain);

设计一个低截止频率500hz、高截止频率560hz的20阶带通FIR滤波器。采样频率为1500hz。想象滤波器的幅值响应。用它来过滤包含1000个样本的随机信号。

bpFilt=设计过滤器(“bandpassfir”“FilterOrder”,20,...“截止频率1”, 500,“截止频率2”560,...'采样率',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

设计一个低3db频率为500hz、高3db频率为560hz的20阶带通IIR滤波器。采样频率为1500hz。可视化滤波器的频率响应。用它来过滤1000个样本的随机信号。

bpFilt=设计过滤器('bandpassiir'“FilterOrder”,20,...“HalfPowerFrequency1”, 500,“HalfPowerFrequency2”560,...'采样率',1500);fvtool(bpFilt)

dataIn = randn (1000 1);dataOut =过滤器(bpFilt dataIn);

设计具有较低截止频率500 Hz和更高截止频率560Hz的20阶BandStop FIR滤波器。采样频率为1500hz。想象滤波器的幅值响应。使用它过滤1000个样本的随机数据。

bsFilt = designfilt ('bandstopfir'“FilterOrder”,20,...“截止频率1”, 500,“截止频率2”560,...'采样率',1500);FVTool(BSFILT)

dataIn = randn (1000 1);dataOut =过滤器(bsFilt dataIn);

设计一个低3db频率为500hz、高3db频率为560hz的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=设计过滤器(“Differentiorfir”“FilterOrder”7);fvtool (dFilt“MagnitudeDisplay”“零”

dataIn = randn (1000 1);dataOut =过滤器(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 =过滤器(hFilt dataIn);

你得到一个以1千赫采样的信号。设计一个滤波器,停止频率在100hz和350hz之间,频率大于400hz。指定过滤顺序为60。可视化滤波器的频率响应。用它来过滤1000个样本的随机信号。

mbFilt=设计过滤器(“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”

'洛链'

“highpassfir”

“highpassiir”

“bandpassfir”

'bandpassiir'

'bandstopfir'

'bandstopiir'

“Differentiorfir”

“hilbertfir”

“arbmagfir”

数据类型:char|细绳

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

名称-值对参数

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

例子:'FilterOrder',20,'Cutfffrequency',0.4足以指定一个低通FIR滤波器。

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

过滤器订单

全部折叠

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

数据类型:双倍的

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

数据类型:双倍的

IIR设计的分母顺序,指定为逗号分隔对组成“分母订单”和一个正整数标量。

数据类型:双倍的

频率限制

全部折叠

通带频率,指定为逗号分隔对,由“PassbandFrequency”和正标量。频率值必须在奈奎斯特范围内。

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

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

数据类型:双倍的

Stopband频率,指定为逗号分隔对组成'stopband职业'和正标量。频率值必须在奈奎斯特范围内。

'stopbandfrequency1'是带通或带阻设计的较低阻带频率

'stopbandfrequency2'是带通或带器设计的较高的停车频率。

数据类型:双倍的

6-dB频率,指定为逗号分隔对,包括'cutfffrequency'和正标量。频率值必须在奈奎斯特范围内。

“截止频率1”是带通或带器设计的6-DB频率。

“截止频率2”是带通或带器设计的更高的6dB频率。

数据类型:双倍的

3db频率,指定为逗号分隔对,由“HalfPowerFrequency”和正标量。频率值必须在奈奎斯特范围内。

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

“HalfPowerFrequency2”是带通或带阻设计中较高的3db频率。

数据类型:双倍的

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

数据类型:双倍的

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

数据类型:双倍的

多频带设计中的频带数指定为逗号分隔对'numbands'一个不大于10的正整数。

数据类型:双倍的

多频带响应频率,指定为逗号分隔的对组成“频带频率”和一个数字向量。“频带频率”, 在哪里一世从1到1开始NumBands,是一个包含频率的向量一世多频带设计的频带具有期望的值,'Bandamplitudesi'NumBands最多10个。频率必须在奈奎斯特范围内,并且必须以单调递增顺序指定。相邻的频带在其结处必须有相同的振幅。

数据类型:双倍的

大小限制

全部折叠

通带纹波,指定为逗号分隔对组成“PassbandRipple”一个正标量,单位是分贝。

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

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

数据类型:双倍的

阻带衰减,指定为逗号分隔对,由“StopbandAttenuation”一个正标量,单位是分贝。

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

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

数据类型:双倍的

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

数据类型:双倍的

多频响应响应幅度,指定为逗号分隔的对组成'Bandamplitudesi'和一个数字向量。'Bandamplitudesi', 在哪里一世从1到1开始NumBands,是一个包含所需振幅的矢量一世多波段设计的第四波段。NumBands最多可以是10。用线性单位表示振幅。'Bandamplitudesi'长度必须和“频带频率”.相邻的频带在其结处必须有相同的振幅。

数据类型:双倍的

设计方法

全部折叠

设计方法,指定为逗号分隔对组成“DesignMethod”以及字符向量或字符串标量。设计方法的选择取决于您指定的频率和幅度约束的集合。

  • “黄油”设计Butterworth IIR过滤器。Butterworth滤波器具有光滑的单调频率响应,在通带中最大平坦。他们牺牲了升降陡峭的平坦度。

  • 'chebby1'设计了契比雪夫I型IIR滤波器。契比雪夫I型滤波器的频率响应在通带是等纹波的,在阻带是最大平坦的。它们的通带波纹随滚落陡度的增加而增加。

  • 'chebby2'设计Chebyshev Type II IIR过滤器。Chebyshev II型滤波器具有在通带中最大平坦的频率响应,并在停机带中相同。

  • “cls”利用约束最小二乘设计FIR滤波器。该方法使指定的任意分段线性函数与滤波器的幅值响应之间的差异最小。同时,它允许您设置通带纹波和阻带衰减的限制。

  • “埃利普”设计椭圆IIR过滤器。椭圆滤波器具有频率响应,该频率响应在通带和停机中等于平均。

  • “equiripple”使用Parks-McClellan算法设计Equiripple FIR滤波器。Equiripple滤波器具有频率响应,可最大限度地减少所有频段的最大纹波幅度。

  • “freqsamp”通过对频率响应进行均匀采样并进行傅里叶逆变换,设计了一种任意幅值响应的FIR滤波器。

  • “kaiserwin”使用Kaiser Window方法设计FIR滤波器。该方法截断理想过滤器的脉冲响应,并使用Kaiser窗口来衰减得到的截断振荡。

  • “ls”设计了一种基于最小二乘的FIR滤波器。该方法使指定的任意分段线性函数与滤波器的幅值响应之间的差异最小。

  • “maxflat”设计了一个最大平坦FIR滤波器。这些滤波器具有平滑的单调频率响应,在通频带内是最大平坦的。

  • '窗户'使用最小二乘近似来计算滤波系数,然后用''

数据类型:char|细绳

设计方法选项

全部折叠

窗口,指定为逗号分隔的配对组成“窗口”和长度的矢量N+ 1, 在哪里N为过滤顺序。“窗口”也可以与指定用于生成窗口的函数的窗口名称或函数句柄配对。任何此类函数都必须N+ 1作为第一输入。可以通过指定单元格数组传递额外的输入。默认情况下,“窗口”是的空向量“freqsamp”设计方法与应用@hamming为了'窗户'设计方法。

有关可用窗口的列表,请参阅窗户

例子:'窗',hann(n + 1)‘窗口’,(1-cos(2*pi*(0:N)’/N))/2两者都指定一个Hann窗口,用于顺序过滤器N

例子:'窗口','汉明'指定所需顺序的汉明窗口。

例子:'窗口',@ mywindow用于定义自己的窗口函数。

例子:'窗口',{@ kaiser,0.5}使用形状参数0.5指定所需顺序的Kaiser窗口。

数据类型:双倍的|char|细绳|function_handle.|单间牢房

乐队准确地匹配,指定为逗号分隔的对组成“MatchExactly”,要么阻带的“通频带”,或“两个”“两个”仅对椭圆设计方法可用,在该方法中它是默认值。阻带的是的默认值“黄油”'chebby2'方法。“通频带”是默认值'chebby1'

数据类型:char|细绳

通带偏移,指定为逗号分隔对,由“PassbandOffset”一个正标量,单位是分贝。“PassbandOffset”指定通带中的过滤器增益。

例子:'passbandoffset',0结果是在通带中有单位增益的滤波器。

例子:'passbandoffset',2结果得到一个通带增益为2 dB或1.259的滤波器。

数据类型:双倍的

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

例子:{@kaiser, 0.1}‘窗口’,‘ScalePassband’,真的帮助指定一个滤波器,它的幅度响应在零频率正好为0分贝。这不是你指定的情况“ScalePassband”,错误.为了验证,将过滤器可视化fvtool并放大。

数据类型:逻辑

零相位,指定为逗号分隔对,由“零相位”和一个逻辑标量。当你设置时“零相位”真正的,所得滤波器的零阶段响应始终为正。这使您可以对结果进行频谱分解,并从中获取最小相位滤波器。

数据类型:逻辑

通带优化权重,指定为逗号分隔对,由'passbandweight'和正标量。

'passbandweight1'为带阻FIR设计的下带通带优化权值。

'passbandweight2'是BandStop FIR设计的高频带通带优化权重。

数据类型:双倍的

阻带优化权重,指定为逗号分隔对,包括“StopbandWeight”和正标量。

'stopbandweight1'为带通FIR设计的下带阻带优化权值。

'stopbandweight2'是带通FIR设计的更高带阻带优化权重。

数据类型:双倍的

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

数据类型:双倍的

多频带权重,指定为逗号分隔对,由“BandWeightsi”和一组正标量或向量。“BandWeightsi”, 在哪里一世从1到1开始NumBands,是一个标量或向量,包含一世多频带设计的第个频带。如果指定为向量,“BandWeightsi”长度必须和'Bandamplitudesi'

数据类型:双倍的

采样率

全部折叠

抽样率,指定为逗号分隔对,由'采样率'和以赫兹表示的正标量。若要使用标准化频率,请设置'采样率'到2,或简单地省略它。

数据类型:双倍的

输出参数

全部折叠

数字滤波器,返回为digitalFilter对象。

更多关于

全部折叠

滤波器设计助理

如果指定了一组不完整或不一致的设计参数,designfilt供应打开过滤器设计助手。

(在论点描述中resp这里有所有可用响应类型的有效规范集的完整列表。)

如果您致电,助理的行为方式不同designfilt在命令行或脚本或函数中。

命令行中的过滤器设计助手

给你一个采样频率为2千赫的信号。你被要求设计一个低通FIR滤波器,抑制高于650 Hz的频率成分。“截止频率”听起来很适合作为规范参数。在MATLAB命令行中,输入以下命令。

Fsamp=2e3;Fctff=650;dee=designfilt(“lowpassfir”'cutfffrequency'Fctff,...'采样率', Fsamp);

因为这个对话框出现在你的屏幕上,所以看起来有些不对劲。

你点击是的并获得一个提供生成代码的新对话框。您可以看到,之前定义的变量已经插入到所需的位置。

在研究了提供的一些选项之后,您决定测试修正过的过滤器。你点击好啊并在命令行上获取以下代码。

迪= designfilt (“lowpassfir”“FilterOrder”, 10,...'cutfffrequency',fctff,'采样率',FSAMP);

键入筛选器的名称将重复对话框中的信息。

dee = digitalFilter with properties: Coefficients: [1x11 double] Specifications: FrequencyResponse: 'lowpass' ImpulseResponse: 'fir' SampleRate: 2000 FilterOrder: 10 CutoffFrequency: 650 DesignMethod: 'window' Use fvtool to visualize filter Use filter function to filter data . dee = digitalFilter with properties: Coefficients: [1x11 double] Specifications: FrequencyResponse: 'lowpass' ImpulseResponse: 'fir' SampleRate: 2000 FilterOrder: 10 CutoffFrequency: 650 DesignMethod: 'window' Use fvtool to visualize filter Use filter function to filter data . dee = digitalFilter with properties: Coefficients: [1x11 double

您调用FVTool.然后得到的频率响应。

FVTool(Dee)

截止看起来并不特别尖锐。对于大多数频率,响应高于40 dB。您还记得助理有一个选项,可以选择称为“Stopband衰减”的“幅度约束”。通过致电打开助手designfilt以过滤器名称作为输入。

designfilt(迪)

单击幅度约束下拉菜单并选择通带纹波和阻带衰减.你可以看到设计方法已经改变了冷杉约束最小二乘.衰减的默认值为60db,高于40。点击好啊并将得到的滤镜可视化。

迪= designfilt (“lowpassfir”“FilterOrder”, 10,...'cutfffrequency',fctff,...“PassbandRipple”, 1“StopbandAttenuation”现年60岁的...'采样率',FSAMP);FVTool(Dee)

截止仍然看起来不敏锐。衰减确实是60 dB,但对于900 Hz以上的频率。

再次调用designfilt使用过滤器作为输入。

designfilt(迪)

助手重新出现。

为了缩小接受频率和拒绝频率之间的差别,可以增加滤波器的阶数或改变频率限制截止频率(6 db)通带和阻带频率.如果将过滤器订单更改为10到50,则会获得更清晰的过滤器。

迪= designfilt (“lowpassfir”“FilterOrder”,50,...'cutfffrequency'650,...“PassbandRipple”, 1“StopbandAttenuation”现年60岁的...'采样率',2000);FVTool(Dee)

一些实验表明,通过将通带和阻带频率分别设置为600hz和700hz,可以获得类似的滤波器。

迪= designfilt (“lowpassfir”“PassbandFrequency”, 600,...'stopband职业',700,...“PassbandRipple”, 1“StopbandAttenuation”现年60岁的...'采样率',2000);FVTool(Dee)

在脚本或函数中筛选设计助理

给你一个以2 kHz采样的信号。你被要求设计一个高通滤波器,使频率停止在700 Hz以下。你不关心信号的相位,你需要使用低阶滤波器。因此IIR滤波器似乎是足够的。你不确定什么样的滤波器阶次是最好的,所以你编写了一个函数,接受该阶次作为输入。打开MATLAB编辑器并创建文件。

作用dataout = hipassfilt(n,datain)hpfilter = designfilt(“highpassiir”“FilterOrder”N);dataOut =过滤器(hpFilter dataIn);结尾

为了测试您的函数,创建一个由两个频率为500和800 Hz的正弦波组成的信号,并生成0.1 s的采样。作为一种初步猜测,五阶滤波器似乎是合理的。创建一个名为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。的设计方法改变巴特沃斯切比雪夫型.你点击好啊并获得以下信息。

助手已正确识别您调用的文件designfilt.点击是的接受改变。该函数具有校正的MATLAB代码。

作用dataout = hipassfilt(n,数据)% hpFilter = designfilt('high - passiir','FilterOrder',N); / /指定路径hpFilter = designfilt (“highpassiir”“FilterOrder”N...“PassbandFrequency”,700,“PassbandRipple”, 1...'采样率',2000);数据输出=过滤器(hpFilter,数据输入);结尾

现在可以使用不同的筛选顺序值运行脚本。根据您的设计约束,您可以更改您的规范集。

过滤器设计助理偏好

你可以设置designfilt永远不要提供过滤器设计助理。此操作设置了可以未命中的MATLAB首选项setpref.

  • 使用setpref(‘dontshowmeagain’,‘filterDesignAssistant’,假)每次都能得到助理的帮助。使用此命令,您可以在禁用了该助手之后再次获得它。

  • 使用SetPref('dontshowmeagain','filterdesignaciabastant',true)永久禁用该助手。您也可以点击不再显示此消息在初始对话框中。

你可以设置designfilt总是在没有询问的情况下纠正有缺陷的规格。这个动作设置了一个MATLAB首选项,可以通过使用setpref.

  • 使用setpref(‘dontshowmeagain’,‘filterDesignAssistantCodeCorrection’,假)具有designfilt纠正MATLAB代码而不要求确认。您也可以点击总是接受在“确认”对话框中。

  • 使用setpref(‘dontshowmeagain’,‘filterDesignAssistantCodeCorrection’,真的)以确保designfilt只有当您确认需要更改时,才会对MATLAB代码进行修正。使用此命令,您可以撤消已单击的效果总是接受在“确认”对话框中。

故障排除

考虑到无效规格集,有一些实例designfilt不提供过滤器设计助手,通过对话框或通过错误消息中的链接。

  • 如果您使用代码段计算,无论是通过MATLAB Toolstrip或按下,都不会提供助手按Ctrl + Enter.(见将文件分成代码段(matlab)了解更多信息。)

  • 如果您的代码有多次呼叫,您就没有提供助手designfilt,其中至少有一个呼叫不正确,并且

    • 您将代码粘贴在命令行上并按按键执行它进来

    • 您可以在编辑器中选择代码并按下键执行它F9.

  • 如果你跑步,就不会有助手designfilt使用匿名函数。(见匿名功能(MATLAB)有关详细信息。)例如,此输入提供助手。

    d = designfilt (“lowpassfir”'cutfffrequency', 0.6)
    这个输入没有。
    myFilterDesigner = @designfilt;d = myFilterDesigner (“lowpassfir”'cutfffrequency', 0.6)

  • 如果你跑步,就不会有助手designfilt使用求解.例如,这个输入提供了一个助手。

    d = designfilt (“lowpassfir”'cutfffrequency', 0.6)
    这个输入没有。
    myfilterdesigner =...sprintf ('设计过滤器(''%s'',''截止频率',%f)'...“lowpassfir”, 0.6);d = eval (myFilterDesigner)

过滤器设计助手需要Java®软件和MATLAB桌面运行。如果使用金宝app-nojvm-nodisplay,或-nodesktop选项。

R2014a中引入