主要内容

实用介绍数字滤波器的设计

这个例子展示了如何设计FIR和IIR滤波器基于频率响应规范使用designfilt功能的信号处理工具箱®产品。集中于低通滤波器的例子但大多数结果同样适用于其他类型的反应。

这个例子着重于数字滤波器的设计,而不是在他们的应用程序。如果你想了解更多关于数字滤波器的应用程序,看看实际的介绍了数字滤波

数字滤波器设计

低通滤波器的规范

理想的低通滤波器是一个叶子不变的所有频率成分信号低于指定的截止频率, ω c 以上,拒绝所有组件 ω c 。因为所需的脉冲响应实现理想的低通滤波器是无限长,不可能设计一个理想的FIR低通滤波器。有限长度近似理想的脉冲响应导致两个通带波纹的存在( ω < ω c )和阻带( ω > ω c )的过滤器,以及非零过渡宽通带和阻带之间。

通带和阻带波纹和过渡宽度不受欢迎的,但不可避免的偏离理想低通滤波器的响应近似有限脉冲响应。这些偏差中描述如下图:

  • 实用的冷杉设计通常包括过滤器有一个过渡宽度和最大的通带和阻带波动不超过容许值。除了这些设计规范,一个人必须选择过滤器订单,或者,等价于截短脉冲响应的长度。

一个有用的比喻滤波器设计规范的设计是把每个规范的角度在下图所示的三角形。

三角形是用来了解可用的自由度在选择设计规范。因为角之和是固定的,一个最多可以选择的值的两个规格。第三规范将由特定的设计算法。此外,正如一个三角形的角度,如果我们做一个规格的大/小,它会影响一个或两个其他的规范。

冷杉过滤器是非常吸引人的,因为他们本质上是稳定的,可以设计线性相位。尽管如此,这些过滤器可以早就瞬态响应和在某些应用程序可能需要大量的计算。

最小订单冷杉设计

最小订单设计是通过指定通带和阻带频率以及通带波纹和阻带衰减。设计算法然后选择最小滤波器长度,符合规范。

设计一个最小订单低通数字滤波器通带频率为0.37 *πrad /样本,0.43 *πrad /样品的阻带频率(因此过渡宽度= 0.06 *πrad /样本),通带波纹1 dB和阻带衰减30 dB。

成就= 0.37;Fstop = 0.43;美联社= 1;Ast = 30;d = designfilt (“lowpassfir”,“PassbandFrequency”成就,“StopbandFrequency”Fstop,“PassbandRipple”据美联社,,“StopbandAttenuation”,Ast);hfvt = fvtool (d);

数字滤波器可视化工具——级响应(dB)包含一个轴uitoolbar类型的对象和其他对象,uimenu。坐标轴对象2级响应(dB)包含标题行类型的对象。

由此产生的过滤器可以查询使用filtord函数。

N = filtord (d)
N = 39

您可以使用信息函数参数的信息用于设计滤波器

信息(d)
ans =17 x44 char数组FIR数字滤波器(真正的)“- - - - - - - - - - - - - - - - - - - - - - - - -“过滤器长度:40‘稳定:是的“线性相位:是的(2型)信息' ' ' ' ' '设计方法设计算法:Equiripple ' ' ' '设计规范“采样率:N / A(归一化频率)的反应:低通“规范:Fp,置,美联社,Ast‘通带波纹:1 dB的阻带衰减器。:30 dB的通频带边缘:0.37“阻带边缘:0.43”
  • designfilt函数选择一个默认equiripple设计算法。线性相位equiripple过滤器是可取的,因为对于一个给定的顺序有最小的可能的最大偏离理想的滤波器。

但是请注意,最小订单设计使用Kaiser窗也可以获得。尽管Kaiser窗方法产生一个更大的过滤订单相同的规范,该算法减少计算昂贵,可能当设计规范非常严格的收敛问题。这可能发生,如果应用程序需要一个非常狭窄的宽度或一个非常大的阻带衰减过渡。

设计一个过滤器上面的规格一样使用Kaiser窗方法并比较其应对equiripple过滤器。

dk = designfilt (“lowpassfir”,“PassbandFrequency”成就,“StopbandFrequency”Fstop,“PassbandRipple”据美联社,,“StopbandAttenuation”Ast,“DesignMethod”,“kaiserwin”);addfilter (hfvt dk);传奇(hfvt“Equiripple设计”,Kaiser窗设计的)

数字滤波器可视化工具——级响应(dB)包含一个轴uitoolbar类型的对象和其他对象,uimenu。坐标轴对象与标题级响应(dB)包含3线类型的对象。这些对象代表Equiripple设计、Kaiser窗设计。

N = filtord (dk)
N = 52

指定在赫兹频率参数

如果你知道的采样率过滤操作,您可以指定采样率和赫兹的频率。重新设计的最小订单equiripple过滤器2 kHz的采样率。

成就= 370;Fstop = 430;美联社= 1;Ast = 30;Fs = 2000;d = designfilt (“lowpassfir”,“PassbandFrequency”成就,“StopbandFrequency”Fstop,“PassbandRipple”据美联社,,“StopbandAttenuation”Ast,“SampleRate”Fs);hfvt = fvtool (d);

数字滤波器可视化工具——级响应(dB)包含一个轴uitoolbar类型的对象和其他对象,uimenu。坐标轴对象2级响应(dB)包含标题行类型的对象。

固定,固定宽度的过渡

顺序固定的设计对于敏感的应用程序非常有用的计算负载或限制滤波器系数的数量。期权是修复过渡宽度为代价控制通带波纹/阻带衰减。

考虑一个三十日阶低通滤波器的通带频率370赫兹,阻带频率430赫兹,2 kHz的采样率。有两种设计方法用于这组特定的规范:equiripple和最小二乘法。让我们为每个方法设计一个过滤器和比较结果。

N = 30;成就= 370;Fstop = 430;Fs = 2000;%设计方法默认为“equiripple”省略描述:= designfilt (“lowpassfir”,“FilterOrder”N“PassbandFrequency”成就,“StopbandFrequency”Fstop,“SampleRate”Fs);dls = designfilt (“lowpassfir”,“FilterOrder”N“PassbandFrequency”成就,“StopbandFrequency”Fstop,“SampleRate”Fs,“DesignMethod”,“ls”);hfvt = fvtool(环保、dls);传奇(hfvt“Equiripple设计”,“最小二乘设计”)

数字滤波器可视化工具——级响应(dB)包含一个轴uitoolbar类型的对象和其他对象,uimenu。坐标轴对象与标题级响应(dB)包含3线类型的对象。这些对象代表Equiripple设计,最小二乘设计。

Equiripple过滤器是适合应用程序必须满足特定的公差,如设计一个滤波器与给定最小阻带衰减或一个给定的最大的通带波纹。另一方面,这些设计可能不是理想的如果我们想最小化误差的能量(理想和实际滤波器之间)在通带和阻带。

  • 如果你想要尽可能地减少信号的能量在一定频段,使用最小二乘设计。

在上面的例子中,所设计的滤波器有相同的涟漪在通带和阻带。我们可以用重量来降低纹波的乐队,同时保持过滤器固定顺序。例如,如果您希望阻带的十分之一,在通带波纹,你必须给阻带通频带的十倍的重量。重新设计equiripple过滤器使用这一事实。

deqw = designfilt (“lowpassfir”,“FilterOrder”N“PassbandFrequency”成就,“StopbandFrequency”Fstop,“SampleRate”Fs,“PassbandWeight”,1“StopbandWeight”10);hfvt = fvtool(环保、deqw);传奇(hfvt“Equiripple设计”,“Equiripple设计加权阻带的)

数字滤波器可视化工具——级响应(dB)包含一个轴uitoolbar类型的对象和其他对象,uimenu。坐标轴对象与标题级响应(dB)包含3线类型的对象。这些对象代表Equiripple设计、Equiripple设计加权阻带。

固定,固定的截止频率

你可以用固定滤波器设计过滤器秩序和截止频率设计方法使用一个窗口。

  • 您可以使用不同的窗口控制阻带衰减,同时保持滤波器的顺序不变。

例如,考虑一个第100阶低通滤波器的截止频率60 Hz, 1 kHz的采样率。比较设计由于采用汉明窗,和切比雪夫窗口90 dB的旁瓣衰减。

汉姆= designfilt (“lowpassfir”,“FilterOrder”,100,“CutoffFrequency”现年60岁的“SampleRate”,1000,“窗口”,“汉明”);dchebwin = designfilt (“lowpassfir”,“FilterOrder”,100,“CutoffFrequency”现年60岁的“SampleRate”,1000,“窗口”,{“chebwin”90});hfvt = fvtool(汉姆,dchebwin);传奇(hfvt“汉明窗”,“切比雪夫窗口”)

数字滤波器可视化工具——级响应(dB)包含一个轴uitoolbar类型的对象和其他对象,uimenu。坐标轴对象与标题级响应(dB)包含3线类型的对象。这些对象代表汉明窗,切比雪夫窗口。

还有其他的方法中,您可以指定一个过滤器固定顺序:固定截止频率,通带波纹,阻带衰减;固定过渡宽度;和固定半功率(3 db)的频率。

IIR滤波器的设计

FIR滤波器的缺点之一是,他们需要一个大的过滤器以满足一些设计规范。如果涟漪保持不变,过滤器秩序生长过渡宽度成反比。通过使用反馈,可以满足一组与一个小得多的过滤器设计规范秩序。这是背后的想法IIR滤波器的设计。术语“无限脉冲响应(IIR)”源于这一事实,一个脉冲应用于滤波器时,输出从未衰减为零。

  • IIR滤波器计算资源溢价时是有用的。然而,稳定,因果IIR滤波器不能有完美的线性相位。避免信息检索的情况下设计阶段线性要求。

使用IIR滤波器的另一个重要原因是他们的小群延迟相对于FIR滤波器,从而导致更短的瞬态响应。

巴特沃斯滤波器

巴特沃斯滤波器是最大限度地平的IIR滤波器。平坦的通带和阻带导致过渡带很宽。大订单需要获得过滤器宽度比较窄的过渡。

设计一个最小订单巴特沃斯滤波器通带频率100赫兹,阻带频率300赫兹,最大的通带波纹1 dB, 60 dB阻带衰减。采样率是2千赫。

Fp = 100;置= 300;美联社= 1;Ast = 60;Fs = 2 e3;但= designfilt (“lowpassiir”,“PassbandFrequency”《外交政策》,“StopbandFrequency”置,“PassbandRipple”据美联社,,“StopbandAttenuation”Ast,“SampleRate”Fs,“DesignMethod”,“黄油”);

切比雪夫型过滤器

切比雪夫型过滤器达到较小的过渡宽度比巴特沃斯滤波器通带波纹的顺序相同,允许。

  • 巴特沃斯、切比雪夫型过滤器都有最大平坦的阻带。对于一个给定的滤波器秩序,和通带波纹之间的权衡是过渡宽度。

设计一个切比雪夫型滤波器具有相同规格上面的巴特沃斯滤波器。

dcheby1 = designfilt (“lowpassiir”,“PassbandFrequency”《外交政策》,“StopbandFrequency”置,“PassbandRipple”据美联社,,“StopbandAttenuation”Ast,“SampleRate”Fs,“DesignMethod”,“cheby1”);

切比雪夫II型过滤器

  • 切比雪夫II型过滤器最大平坦的通带和equiripple阻带。

因为很大衰减通常不是必需的,我们也许能够达到所需的过渡宽度相对较小的订单通过允许一些阻带波动。

设计一个最小订单切比雪夫II型滤波器具有相同规格与前面的例子。

dcheby2 = designfilt (“lowpassiir”,“PassbandFrequency”《外交政策》,“StopbandFrequency”置,“PassbandRipple”据美联社,,“StopbandAttenuation”Ast,“SampleRate”Fs,“DesignMethod”,“cheby2”);

椭圆滤波器

椭圆滤波器推广切比雪夫允许脉动和巴特沃斯滤波器的通带和阻带。随着波纹是由小,椭圆滤波器可以近似任意关闭大小和切比雪夫或巴特沃斯滤波器的相位响应。

  • 椭圆滤波器达到给定的过渡宽度最小的订单。

dellip = designfilt (“lowpassiir”,“PassbandFrequency”《外交政策》,“StopbandFrequency”置,“PassbandRipple”据美联社,,“StopbandAttenuation”Ast,“SampleRate”Fs,“DesignMethod”,“ellip”);

比较反应和四个IIR滤波器的顺序。

  • 同样的规范约束,巴特沃斯方法产量最高的秩序和椭圆收益率最小的方法。

(但)FilterOrders = [filtord filtord (dcheby1) filtord (dcheby2) filtord (dellip)]
FilterOrders =1×47 5 5 4
hfvt = fvtool(但dcheby1、dcheby2 dellip);轴([0 1 e3 -80 2]);传奇(hfvt“巴特沃斯”,“切比雪夫型”,“切比雪夫II型”,“椭圆”)

数字滤波器可视化工具——级响应(dB)包含一个轴uitoolbar类型的对象和其他对象,uimenu。坐标轴对象与标题级响应(dB)包含5线类型的对象。这些对象代表巴特沃斯、切比雪夫型,切比雪夫II型,椭圆。

放大的通带波纹的差异。

轴([0 150 3 2]);

数字滤波器可视化工具——级响应(dB)包含一个轴uitoolbar类型的对象和其他对象,uimenu。坐标轴对象与标题级响应(dB)包含5线类型的对象。这些对象代表巴特沃斯、切比雪夫型,切比雪夫II型,椭圆。

匹配完全通带和阻带的规格

与最小订单设计,理想的秩序需要四舍五入到下一个整数。这些额外的分数阶允许算法实际上超过了规范。

  • 使用“MatchExactly”参数约束的设计算法来匹配一个乐队。其他乐队超过其规范。

默认情况下,切比雪夫型设计与通频带,巴特沃斯、切比雪夫II型与阻带,和椭圆的设计匹配的通带和阻带(在阻带边缘频率超过了):

dellip1 = designfilt (“lowpassiir”,“PassbandFrequency”《外交政策》,“StopbandFrequency”置,“PassbandRipple”据美联社,,“StopbandAttenuation”Ast,“SampleRate”Fs,“DesignMethod”,“ellip”,“MatchExactly”,“通频带”);dellip2 = designfilt (“lowpassiir”,“PassbandFrequency”《外交政策》,“StopbandFrequency”置,“PassbandRipple”据美联社,,“StopbandAttenuation”Ast,“SampleRate”Fs,“DesignMethod”,“ellip”,“MatchExactly”,阻带的);hfvt = fvtool (dellip dellip1 dellip2);传奇(hfvt匹配的通带和阻带的,“通频带匹配”,匹配的阻带的);轴([0 1 e3 -80 2]);

数字滤波器可视化工具——级响应(dB)包含一个轴uitoolbar类型的对象和其他对象,uimenu。坐标轴对象与标题级响应(dB)包含4线类型的对象。这些对象表示匹配的通带和阻带,匹配的通带与阻带。

matched-passband和与设计有涟漪完全1 dB的通带频率100赫兹的价值。

群时延比较

用IIR滤波器,我们不仅需要考虑波纹/过渡宽度权衡,而且相位失真的程度。我们知道这是不可能的线性相位整个尼奎斯特间隔。因此我们可能希望看到多远线性相位响应。一个好的方法就是看(理想情况下恒定)群延迟,看看平。

比较四种IIR滤波器的群时延设计上面。

  • 如果阶段是一个问题,请记住,巴特沃斯、切比雪夫II型设计最平的群延迟,从而引入失真。

hfvt = fvtool(但dcheby1、dcheby2 dellip,“分析”,“grpdelay”);传奇(hfvt“巴特沃斯”,“切比雪夫型”,“切比雪夫II型”,“椭圆”)

数字滤波器可视化工具——群延迟包含一个坐标轴对象和其他对象类型uitoolbar, uimenu。坐标轴对象与标题群延迟包含4线类型的对象。这些对象代表巴特沃斯、切比雪夫型,切比雪夫II型,椭圆。

结论

在这个示例中,您了解了如何使用designfilt获得各种低通FIR和IIR滤波器有不同的约束条件和设计方法。designfilt也可以用来获得高反差保留,带通,bandstop arbitrary-magnitude,微分器,希尔伯特的设计。了解更多关于所有可用的选项,滤波器设计画廊

进一步的阅读

滤波器的设计和分析的更多信息,参见信号处理工具箱®软件文档。过滤应用程序看到的更多信息实际的介绍了数字滤波

另请参阅

||