黄油

巴特沃斯滤波器的设计

描述

例子

[<一个href="#bucse3u_sep_shared-ba" class="intrnllnk">b,一个] =黄油(<一个href="#bucse3u_sep_shared-n" class="intrnllnk">n,<一个href="#bucse3u-Wn" class="intrnllnk">WN.)返回传输功能系数nThround Lowpass Digital Butterworth滤波器,具有归一化截止频率WN.

例子

[<一个href="#bucse3u_sep_shared-ba" class="intrnllnk">b,一个] =黄油(<一个href="#bucse3u_sep_shared-n" class="intrnllnk">n,<一个href="#bucse3u-Wn" class="intrnllnk">WN.,<一个href="#bucse3u-ftype" class="intrnllnk">ftype)根据值设计,设计低通,高通,带通或BandStop Butterworth滤波器ftype和元素的数量WN..所得到的带通和带阻设计是二阶的n

笔记:看到<一个href="//www.tatmou.com/help/signal/ref/butter.html" class="intrnllnk">限制有关影响形成传递函数的数值问题的信息。

例子

[<一个href="#bucse3u_sep_shared-zpk" class="intrnllnk">z,p,k] =黄油(<年代p一个nclass="argument_placeholder">___)设计低通,高通,带通或Bandstop数字Butterworth滤波器,并返回其零,极点和增益。此语法可以包括先前语法中的任何输入参数。

例子

[<一个href="#bucse3u_sep_shared-ABCD" class="intrnllnk">A B C D] =黄油(<年代p一个nclass="argument_placeholder">___)设计一个低通、高通、带通或带阻数字巴特沃斯滤波器并返回指定其状态空间表示的矩阵。

例子

[<年代p一个nclass="argument_placeholder">___] =黄油(<年代p一个nclass="argument_placeholder">___,'s')设计具有截止角频率的低通,高通,带通或带器模拟Butterworth滤波器<一个href="#bucse3u-Wn" class="intrnllnk">WN.

例子

全部折叠

设计一个截止频率为300hz的六阶低通巴特沃斯滤波器,对于在1000hz采样的数据,该滤波器对应于<年代p一个nclass="inlineequation"> 0 6 π rad /样品。绘制它的幅值和相位响应。使用它过滤1000样本随机信号。

fc = 300;fs = 1000;[b] =黄油(fc / (fs / 2));freqz (b)

dataIn = randn (1000 1);dataOut =过滤器(b, a, dataIn);

设计具有归一化边缘频率的第6阶Butterworth BandStop滤波器<年代p一个nclass="inlineequation"> 0 2 π 和<年代p一个nclass="inlineequation"> 0 6 π rad /样品。绘制它的幅值和相位响应。用它来过滤随机数据。

[B,a] =黄油(3,[0.2 0.6],<年代p一个n年代tyle="color:#A020F0">“停止”);freqz (b)

dataIn = randn (1000 1);dataOut =过滤器(b, a, dataIn);

设计一个九阶高通巴特沃斯滤波器。指定截止频率为300hz,对于在1000hz采样的数据,该截止频率对应于<年代p一个nclass="inlineequation"> 0 6 π rad /样品。绘制幅值和相位响应。将零、极点和增益转换为二阶部分以供使用FVTool.

(z,磷、钾)=黄油(9300/500,<年代p一个n年代tyle="color:#A020F0">'高的');sos = zp2sos (z,磷、钾);fvtool (sos,<年代p一个n年代tyle="color:#A020F0">“分析”,<年代p一个n年代tyle="color:#A020F0">“频率”)

设计20阶Butterworth带通滤波器,截止频率为500Hz,距离较高的截止频率为560 Hz。指定样品率为1500 Hz。使用状态空间表示。使用相同的滤波器使用设计档案

[A,B,C,D] = [10,[500 560]/750];d = designfilt (<年代p一个n年代tyle="color:#A020F0">“bandpassiir”,<年代p一个n年代tyle="color:#A020F0">'筛选道'20,<年代p一个n年代tyle="color:#0000FF">......“HalfPowerFrequency1”,500,<年代p一个n年代tyle="color:#A020F0">“HalfPowerFrequency2”, 560,<年代p一个n年代tyle="color:#0000FF">......'采样率', 1500);

将状态空间表示转换为二阶部分。使用频率响应可视化FVTool.

sos = ss2sos (A, B, C, D);fvt = fvtool (sos d<年代p一个n年代tyle="color:#A020F0">'fs', 1500);传奇(FVT,<年代p一个n年代tyle="color:#A020F0">“黄油”,<年代p一个n年代tyle="color:#A020F0">“designfilt”)

设计5阶模拟Butterworth低通滤波器,截止值为2 GHz。乘以<年代p一个nclass="inlineequation"> 2 π 将频率转换为每秒弧度。计算滤波器在4096点的频率响应。

n = 5;f = 2 e9;[zb, pb, kb] =黄油(n, 2 f *π*,<年代p一个n年代tyle="color:#A020F0">“年代”);[BB,AB] = ZP2TF(ZB,PB,KB);[HB,WB] = FREQS(BB,AB,4096);

设计一个具有相同边缘频率和3db通带纹波的五阶切比雪夫I型滤波器。计算其频率响应。

(z1, p1, k1) = cheby1 (n 3 2 f *π*,<年代p一个n年代tyle="color:#A020F0">“年代”);[B1,A1] = ZP2TF(Z1,P1,K1);[H1,W1] = FREQS(B1,A1,4096);

设计一个具有相同边缘频率和30 dB阻带衰减的五阶切比雪夫II型滤波器。计算其频率响应。

(z2, p2, k2) = cheby2(2 *π* f n, 30日,<年代p一个n年代tyle="color:#A020F0">“年代”);[B2,A2] = ZP2TF(Z2,P2,K2);[H2,W2] =频率(B2,A2,4096);

设计一个五阶椭圆滤波器,边缘频率相同,通带纹波为3db,阻带衰减为30db。计算其频率响应。

[ze,pe,ke] =椭圆(n,3,30,2 * pi * f,<年代p一个n年代tyle="color:#A020F0">“年代”);[, ae] = zp2tf(泽、pe、客);[他,我们]=频率(ae, 4096);

在分贝中绘制衰减。表达Gigahertz的频率。比较过滤器。

情节(wb / (2 e9 *π)mag2db (abs (hb)))<年代p一个n年代tyle="color:#A020F0">在绘图(W1 /(2E9 * PI),MAG2DB(ABS(H1)))图(W2 /(2E9 * PI),MAG2DB(ABS(H2)))图(WE /(2E9 * PI),MAG2DB(ABS(ABS)他)))轴([0 4 -40 5])网格XLabel(<年代p一个n年代tyle="color:#A020F0">'频率(GHz)') ylabel (<年代p一个n年代tyle="color:#A020F0">'衰减(DB)') 传奇(<年代p一个n年代tyle="color:#A020F0">“黄油”,<年代p一个n年代tyle="color:#A020F0">“cheby1”,<年代p一个n年代tyle="color:#A020F0">“cheby2”,<年代p一个n年代tyle="color:#A020F0">“ellip”)

Butterworth和Chebyshev II型过滤器具有扁平通带和宽过渡带。Chebyshev类型I和椭圆滤波器更快地滚动但具有通带纹波。Chebyshev类型II设计功能的频率输入设置Stabband的开头而不是通带的结尾。

输入参数

全部折叠

过滤器订单,指定为整数标量。适用于带通和BandStop设计,n表示过滤顺序的一半。

数据类型:双倍的

截止频率,指定为标量或两个元素向量。截止频率是滤波器的幅度响应的频率<年代p一个nclass="inlineequation">1 /√2.

  • 如果WN.是标量,那么黄油使用截止频率设计低通或高通滤波器WN.

    如果WN.是两个元素矢量(w1 w2), 在哪里W1.<W2.,然后黄油设计具有较低截止频率的带通或带器过滤器W1.和更高的截止频率W2.

  • 对于数字滤波器,截止频率必须在0和1之间,其中1对应于奈奎斯特率-一半的采样率或πrad /样品。

    对于模拟滤波器,截止频率必须以弧度/秒表示,并且可以取任何正值。

数据类型:双倍的

过滤类型,指定为以下之一:

  • “低”指定具有截止频率的低通滤波器<一个href="#bucse3u-Wn" class="intrnllnk">WN.“低”是标量的默认值WN.

  • '高的'指定具有截止频率的高通滤波器WN.

  • “带通”指定订单2的带通滤波器<一个href="#bucse3u_sep_shared-n" class="intrnllnk">n如果WN.是一个二元向量。“带通”是默认的何时WN.有两个元素。

  • “停止”指定2阶带阻滤波器n如果WN.是一个二元向量。

输出参数

全部折叠

传输滤波器的函数系数,作为长度的行向量返回<一个href="#bucse3u_sep_shared-n" class="intrnllnk">n+ 1为低通和高通滤波器和2n+ 1用于带通和Bandstop滤波器。

  • 对于数字滤波器,转移函数以条件表示b一个作为

    H z ) B z ) 一个 z ) b (1) + b (2) z - 1 + + b (n + 1) z - n (1) + (2) z - 1 + + a(n + 1) z - n

  • 对于模拟滤波器,传递函数表示为b一个作为

    H 年代 ) B 年代 ) 一个 年代 ) b (1) 年代 n + b (2) 年代 n - 1 + + b (n + 1) (1) 年代 n + (2) 年代 n - 1 + + a(n + 1)

数据类型:双倍的

滤波器的零、极点和增益,返回为两个长度的列向量<一个href="#bucse3u_sep_shared-n" class="intrnllnk">n(2n用于带通和带阻设计)和标量。

  • 对于数字滤波器,转移函数以条件表示zp,k作为

    H z ) k 1 - z (1) z - 1 ) 1 - z (2) z - 1 ) 1 - z (n) z - 1 ) 1 - (1页) z - 1 ) 1 - (2页) z - 1 ) 1 - p (n) z - 1 )

  • 对于模拟滤波器,传递函数表示为zp,k作为

    H 年代 ) k 年代 - z (1) ) 年代 - z (2) ) 年代 - z (n) ) 年代 - (1页) ) 年代 - (2页) ) 年代 - p (n) )

数据类型:双倍的

过滤器的状态空间表示,返回为矩阵。如果=<一个href="#bucse3u_sep_shared-n" class="intrnllnk">n用于低通和高通设计和= 2n对于带通和Bandstop滤波器,然后一个×B×1,C是1×,D是1 × 1。

  • 对于数字滤波器,状态空间矩阵与状态向量相关x,输入u和输出y通过

    x k + 1 ) 一个 x k ) + B u k ) y k ) C x k ) + D u k )

  • 对于模拟滤波器,状态空间矩阵与状态向量相关x,输入u和输出y通过

    x ˙ 一个 x + B u y C x + D u

数据类型:双倍的

更多关于

全部折叠

限制

传递函数语法的数值不稳定性

一般来说,使用the[z,p,k]语法设计IIR过滤器。要分析或实现您的过滤器,您可以使用[z,p,k]输出与ZP2SOS..如果你用[b]语法,你可能会遇到数值问题。这些问题是由于四舍五入错误而导致的n低至4.以下示例说明了此限制。

n = 6;wn = [2.5e6 29e6] / 500e6;ftype =<年代p一个n年代tyle="color:#A020F0">“带通”;<年代p一个n年代tyle="color:#228B22">传递函数设计[b] =黄油(n, n, ftype);<年代p一个n年代tyle="color:#228B22">%这是一个不稳定的过滤器% Zero-Pole-Gain设计(z,磷、钾)=黄油(n, n, ftype);sos = zp2sos (z,磷、钾);<年代p一个n年代tyle="color:#228B22">%显示和比较结果hfvt = fvtool (b, a, sos,<年代p一个n年代tyle="color:#A020F0">'验证',<年代p一个n年代tyle="color:#A020F0">“日志”);传奇(hfvt<年代p一个n年代tyle="color:#A020F0">“特遣部队设计”,<年代p一个n年代tyle="color:#A020F0">“ZPK设计”)

算法

巴特沃斯滤波器的幅值响应在通频带内是最大平坦的,总体是单调的。这种平滑是以下降的滚动陡度为代价的。对于给定的滤波器阶数,椭圆滤波器和切比雪夫滤波器通常提供更陡的滚动。

黄油使用五步算法:

  1. 它找到了低通模拟原型杆,零和使用该功能的增益<一个href="//www.tatmou.com/help/signal/ref/buttap.html">buttap

  2. 它将极点、零和增益转换为状态空间形式。

  3. 如果需要,它使用状态空间转换将低通滤波器转换为具有所需频率约束的带通、高通或带阻滤波器。

  4. 用于数字滤波器的设计<一个href="//www.tatmou.com/help/signal/ref/bilinear.html">双线性通过带频率预翘曲的双线性变换将模拟滤波器转换为数字滤波器。仔细的频率调整使模拟滤波器和数字滤波器具有相同的频率响应幅度WN.或在W1.W2.

  5. 它根据需要将状态空间滤波器转换回其传递函数或零极增益形式。

扩展能力

C / C ++代码生成
使用MATLAB®Coder™生成C和c++代码。

另请参阅

|<年代p一个nitemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代p一个nitemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代p一个nitemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代p一个nitemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代p一个nitemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代p一个nitemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代p一个nitemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代p一个nitemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代p一个nitemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">

之前介绍过的R2006a