主要内容

任意幅值滤波器设计

这个例子展示了如何设计具有任意大小响应的滤波器。滤波器设计(FDESIGN)对象家族允许设计具有不同类型响应的滤波器。在这些类型中,任意大小是较不专门化和最通用的一种。下面的例子说明,当其他响应类型存在局限性时,任意大小的设计如何解决问题。

频率采样法FIR建模

本节演示了一个示例,其中滤波器的振幅定义在完整的Nyquist范围内(没有松弛或“不关心”区域)。下面的例子使用单(全)频带规格类型和鲁棒频率采样算法来设计一个振幅定义在三个部分的滤波器:正弦部分、分段线性部分和二次部分。因为过滤器的形状比较复杂,所以选择较大的过滤器顺序是必要的:

N = 300;B1 = 0:0.01:0.18;B2 =[。2.38 .4 . 55.562 .585 .6 .78];B3 = 0.79:0.01:1;A1罪= 5 +(2 * 7.5π* * B1) / 4;%正弦部分A2 =[。5 . 2.3 . 1 1 -。2 -。2 1 1];分段线性剖分A3 = 2 + 18 * (1-B3)。^ 2;%二次部分F = [b1 b2 b3];A = [a1 a2 a3];d = fdesign.arbmag (' N、F '、N、F);高清=设计(d,“freqsamp”“SystemObject”,真正的);fvtool(高清“MagnitudeDisplay”“零”“颜色”“白色”);

图过滤器可视化工具-零相位响应包含一个轴对象和其他类型的uitoolbar, uimenu对象。标题为“零相位响应”的轴对象包含两个类型为line的对象。

关上(gcf)

在前面的例子中,归一化频率点分布在0和pi rad/sample(包括极值)之间。您还可以指定负频率并获得复杂滤波器。下面的例子模拟了一个复杂的射频带通滤波器,并使用Kaiser窗口来减轻由于-pi和pi rad/采样频率之间70db的幅度差距而产生的吉布斯现象的影响:

负载cfir.mat加载一组预定义的频率和振幅矢量N = 200;d = fdesign.arbmag (' N、F '、N、F);高清=设计(d,“freqsamp”“窗口”{@kaiser 20},“SystemObject”,真正的);fvtool(高清“FrequencyRange”“(π-π)”“颜色”“白色”);

图形过滤器可视化工具-幅度响应(dB)包含一个轴对象和其他类型的uitoolbar, uimenu对象。标题为“大小响应(dB)”的轴对象包含2个类型为line的对象。

用等纹波FIR滤波器建模平滑函数

等效纹波算法非常适合于建模光滑函数,如下所示的例子所示,它用最小阶FIR滤波器建模指数函数。该示例在所有频率上指定了一个小的纹波值,并定义了与所需振幅成比例增加的权重,以提高高频性能:

F = linspace (0, 1100);一个= exp(2 *π* F);R = 0.045;%的涟漪W = .1-20 * log10 (abs (A));%的重量d = fdesign.arbmag (“F, R”F, R);高清=设计(d,“equiripple”“重量”W,“SystemObject”,真正的);fvtool(高清“MagnitudeDisplay”“零”“FrequencyRange”“[0,π)”...“颜色”“白色”);

图过滤器可视化工具-零相位响应包含一个轴对象和其他类型的uitoolbar, uimenu对象。标题为“零相位响应”的轴对象包含两个类型为line的对象。

单波段与多波段Equiripple FIR设计

在某些应用中,形状滤波器的阻带可能是很有趣的,例如,最小化集成旁瓣电平,或提高量化鲁棒性。下面的例子设计了一个带有阶梯阻带的低通滤波器。为了实现这个设计,它使用了一个权重分配,使每一步在阻带内的衰减增加5 dB:

N = 150;F = [0.25 .3 .4 .401 .5 .501 .6 .601 .7 .701 .8 .801 .9 .901 1];A = [1 1 0 0 0 0 0 0 0 0 0 0];W = 10。^([0 0 5 5 10 10 15 15 20 20 25 25 30 30 35 35]/20);d = fdesign.arbmag (' N、F '、N、F);Hd1 =设计(d,“equiripple”“重量”W,“SystemObject”,真正的);

下面的例子给出了一种基于多频带方法的替代设计,该方法定义了两个频带(通频带和阻频带),两个频带由一个“无关”区域(或过渡频带)分隔:

B = 2;%频带数F1 = F (1:2);%通频带F2 = F(3:结束);%阻带% F(2:3) =(。25.3] %过渡带A1 = (1:2);A2 =(3:结束);W1 = W (1:2);W2 = W(3:结束);d = fdesign.arbmag (”N, B, F,“A1, N, B, F1, F2, A2);Hd2 =设计(d,“equiripple”“B1Weights”W1,“B2Weights”W2,...“SystemObject”,真正的);hfvt = fvtool (Hd1, Hd2,“MagnitudeDisplay”“(dB)级”“传奇”“上”...“颜色”“白色”);传奇(hfvt“单波段设计”“多波段设计”);

图形过滤器可视化工具-幅度响应(dB)包含一个轴对象和其他类型的uitoolbar, uimenu对象。标题为“大小响应(dB)”的轴对象包含2个类型为line的对象。这些对象代表了单波段设计,多波段设计。

注意多频带方法的明显优势。等纹波算法通过放松过渡区域的约束,收敛到具有更低通带纹波和更大阻带衰减的解。换句话说,第一个滤波器的频率特性可以与较低阶匹配。下面的例子通过使用最小序设计获得等价滤波器来说明最后的注释。

最小订单设计要求每个频带有一个纹波值。对于本例,将所有波段的纹波设置为0.0195。

R = 0.0195;单波段最小订单数设计d = fdesign.arbmag (“F, R”F, R);Hd1 =设计(d,“equiripple”“重量”W,“SystemObject”,真正的);%多波段最小订单设计d = fdesign.arbmag (“B, F, A, R”, B, F1, A1, R, F2, A2, R);Hd2 =设计(d,“equiripple”“B1Weights”W1,“B2Weights”W2,...“SystemObject”,真正的);hfvt = fvtool (Hd1, Hd2,“颜色”“白色”);传奇(hfvt“单波段最低订货量设计”...“多波段最低订购量设计”);

图形过滤器可视化工具-幅度响应(dB)包含一个轴对象和其他类型的uitoolbar, uimenu对象。标题为“大小响应(dB)”的轴对象包含2个类型为line的对象。这些对象分别代表了单频带最小订单设计和多频带最小订单设计。

两种设计的通带纹波和阻带衰减相匹配。然而,单波段设计有152个订单,而多波段设计有72个订单。

订单(高清)
ans = 32

受限多频带Equiripple设计

多频带等效纹波设计允许您为不同频带指定纹波约束,指定单频频带,并强制指定的频率点到指定的值。

约束带的设计

下面的例子设计了一个80阶通带滤波器,其第一阻带衰减为60 dB,第二阻带衰减为40 dB。通过放松第二阻带的衰减,在保持相同滤波器阶数的情况下,减小通带的纹波。

N = 80;%过滤器订单B = 3;频带百分数d = fdesign.arbmag (' N, B, F, A, C '0.25 N B[0],[0 0],真的,...[0.3 0.6],[1 1],false,[0.65 1],[0 0],true)
描述:{4x1 cell} NormalizedFrequency: 1 FilterOrder: 80 nband: 3 b1frequency: [0 0.2500] b1amplitude: [0 0] B1Constrained: 1 B1Ripple: 0.2000 B2Frequencies: [0.3000 0.6000] b2amplitude: [1 1] B2Constrained: 0 B3Frequencies: [0.6 6500 1] b3amplitude: [1 1] B1Constrained: 0 B3Frequencies: [0.6 6500 1] b3amplitude:[0 0] B3Constrained: 1 B3Ripple: 0.2000

B1ConstrainedB3Constrained属性被设置为true以指定第一和第三个波段是受约束的波段。的值指定第i个约束频带的纹波值BiRipple属性:

d.B1Ripple = 10 ^ (-60/20);%第一个阻带衰减d.B3Ripple = 10 ^ (-40/20);%第二阻带衰减高清=设计(d,“equiripple”“SystemObject”,真正的)
高清= dsp。FIRFilter与属性:结构:'直接形式' NumeratorSource: 'Property' Numerator:[-0.0036 0.0049 0.0052 -0.0022 -0.0097 -0.0044…InitialConditions: 0显示所有属性
fvtool(高清“传奇”“关闭”“颜色”“白色”);

图形过滤器可视化工具-幅度响应(dB)包含一个轴对象和其他类型的uitoolbar, uimenu对象。标题为“大小响应(dB)”的轴对象包含2个类型为line的对象。

单频乐队

下面的例子设计了一个最小阶等纹波滤波器,它有两个陷波点,分别为0.25*pi和0.55*pi rad/sample,通带纹波为0.15。

B = 5;频带百分数d = fdesign.arbmag (“B, F, A, R”, B);d. b1频率= [0 0.2];d. b1振幅= [1 1];d.B1Ripple = 0.15;d.B2Frequencies = 0.25;%单频乐队d.B2Amplitudes = 0;d.B3Frequencies = [0.3 0.5];d. b3amplitude = [1 1];d.B3Ripple = 0.15;d.B4Frequencies = 0.55;%单频乐队d.B4Amplitudes = 0;d. b5频率= [0.6 1];d. b5振幅= [1 1];d.B5Ripple = 0.15;高清=设计(d,“equiripple”“SystemObject”,真正的);fvtool(高清“颜色”“白色”);

图形过滤器可视化工具-幅度响应(dB)包含一个轴对象和其他类型的uitoolbar, uimenu对象。标题为“大小响应(dB)”的轴对象包含2个类型为line的对象。

迫使频率点

下面的例子设计了一个带阻边为100hz,带通边为150hz的高通滤波器。假设您想要拒绝强60hz干扰,而不需要添加额外的滤波器或不需要大量增加滤波器的阶数。你可以通过强制高通滤波器在60hz的幅度响应为0来做到这一点:

B = 2;频带百分数N = 92;%过滤器订单Fs = 2 e3;%采样频率d = fdesign.arbmag (”N, B, F,“,N,B,[0 60 100],[0 00],[150 1000],[1 1],Fs);

使用B1ForcedFrequencyPoints设计选项强制60hz点到其指定的振幅值。

高清=设计(d,“equiripple”“B1ForcedFrequencyPoints”现年60岁的...“SystemObject”,真正的);hfvt = fvtool(高清“Fs”Fs,“颜色”“白色”);

图形过滤器可视化工具-幅度响应(dB)包含一个轴对象和其他类型的uitoolbar, uimenu对象。标题为“大小响应(dB)”的轴对象包含2个类型为line的对象。

放大高通滤波器的阻带,观察振幅在指定的60hz频率点为零:

hfvt。MagnitudeDisplay =“级”;Xlim ([0 100]) ylim([0 0.015])

图形过滤器可视化工具-幅度响应包含一个轴对象和其他类型的uitoolbar, uimenu对象。标题为“大小响应”的轴对象包含两个类型为line的对象。

单波段与多波段IIR设计

在FIR情况下,IIR设计问题中,过渡频带不能很容易地识别,最好使用单一(全)频带规范方法来解决。例如,模拟一种气体(原子铷87蒸汽)的光学吸收:

Nb = 12;Na = 10;F = linspace (0, 1100);= (1100) - f * 0.2;吸收= [(30),(1 - 0.6 * bohmanwin(10))”,...(1、5),(1 - 0.5 * bohmanwin(8))的,(47)];一个=。*吸收;d = fdesign.arbmag (“Nb, Na, F,”Nb, Na, F);W = [ones(1,30) ones(1,10)*。2人(1、60)];高清=设计(d,“iirlpnorm”“重量”W,“规范”2,“DensityFactor”30岁的...“SystemObject”,真正的);fvtool(高清“MagnitudeDisplay”“(dB)级”...“NormalizedFrequency”“上”“颜色”“白色”);

图形过滤器可视化工具-幅度响应(dB)包含一个轴对象和其他类型的uitoolbar, uimenu对象。标题为“大小响应(dB)”的轴对象包含2个类型为line的对象。

在可以在一个或多个过渡带中放松约束的其他情况下,多频带方法提供了与FIR情况相同的好处(即更好的通频带和阻频带特性)。下面的例子通过对瑞利衰落无线通信信道建模来说明这些差异:

Nb = 4;Na = 6;F = [0:01:0.4 .45 1];A = [1.0./(1-(F(1:end-2)./0.42).²).^0.25 0 0];d = fdesign.arbmag (“Nb, Na, F,”Nb, Na, F);%的单波段设计Hd1 =设计(d,“iirlpnorm”“SystemObject”,真正的);B = 2;F1 = F (1: end-2);%通频带F2 = F (end-1:结束);%阻带% F (end-2: end-1) =(。4.45] %过渡带A1 = (1: end-2);A2 = (end-1:结束);d = fdesign.arbmag (“Nb, Na, B, F,“Nb, Na, B, F1, A1, F2, A2);%多波段设计Hd2 =设计(d,“iirlpnorm”“SystemObject”,真正的);hfvt = fvtool (Hd1, Hd2,“颜色”“白色”);传奇(hfvt“单波段设计”“多波段设计”);

图形过滤器可视化工具-幅度响应(dB)包含一个轴对象和其他类型的uitoolbar, uimenu对象。标题为“大小响应(dB)”的轴对象包含2个类型为line的对象。这些对象代表了单波段设计,多波段设计。