任意幅度滤波器设计

这个例子说明了如何设计出具有任意幅度响应滤波器。滤波器设计的家庭(FDESIGN)对象允许过滤器的设计与不同类型的响应。在这些类型中任意幅度不太专业,最通用的一个。下面的例子说明任意大小的设计如何能够解决问题,当其他响应类型找到限制。

FIR建模与频率抽样法

本节示出了过滤器的幅度在整个奈奎斯特范围(没有松弛或“不关心”的区域)中所定义的情况。下面的例子使用一个单一的(全)频带规范类型和鲁棒频率采样算法设计一个滤波器,其幅度随三个部分被定义:正弦部分,线性部分的分段和一个二次部分。有必要选择一个大的滤波器阶,因为过滤器的形状非常复杂:

N = 300;B1 = 0:0.01:0.18;B2 = [0.2 0.38 0.4 0.55 0.562 0.585 0.6 0.78];B3 = 0.79:0.01:1;A1 = 0.5 + SIN(2 * PI * 7.5 * B1)/ 4;%正弦节A2 = [0.5 2.3 1 1 -.2 -.2 1 1];%分段线性部A3 = 0.2 + 18 *(1-B3)^ 2。%二次节F = [B1 B2 B3]。A = [A1 A2 A3];d = fdesign.arbmag('N,F,A',N,F,A);HD =设计(d,'freqsamp''SYSTEMOBJECT',真正);fvtool(HD,'MagnitudeDisplay'“零相”'颜色''白色');

接近(GCF)

在前面的示例中,归一化频率点进行0和pi弧度/样品(包括极值)之间分配。您也可以指定负频率,并获得复杂的过滤器。下面的示例模型的复合RF带通滤波器,并使用Kaiser窗来减轻发生由于-pi和pi弧度/样本频率之间的70分贝大小间隙的吉布斯现象的影响:

加载cfir.mat;%加载一组预定义的频率和振幅矢量的N = 200;d = fdesign.arbmag('N,F,A',N,F,A);HD =设计(d,'freqsamp''窗口'{@凯泽,20},'SYSTEMOBJECT',真正);fvtool(HD,'频率范围''[-pi,PI)''颜色''白色');

与等波纹FIR滤波器造型流畅功能

的等波纹算法非常适合于作为显示在下面的示例造型流畅函数模型具有最小阶FIR滤波器的指数。该示例指定在所有频率,并且限定的权重成比例地增加至所需的振幅,以提高在高频率性能的小波纹值:

F = linspace(0,1,100);A = EXP(-2 * PI * F);R = 0.045;%纹波W = .1-20 *日志10(ABS(A));%的权重d = fdesign.arbmag('远',远);HD =设计(d,“等波纹”“权重”,W,'SYSTEMOBJECT',真正);fvtool(HD,'MagnitudeDisplay'“零相”'频率范围''[0,PI)'...'颜色''白色');

单频与多频带等波纹FIR设计

在某些应用中,这可能是感兴趣的塑造滤波器的阻带,例如,最小化集成旁瓣电平,或以提高量化的鲁棒性。下面的示例设计具有楼梯阻带的低通滤波器。实现了设计,它使用的权重增加在阻带的每个步骤5分贝的衰减的分布:

N = 150;F = [0 0.25 0.3 0.4 0.401 0.5 0.501 0.6 0.601 0.7 0.701 0.8 0.801 0.9 0.901 1];A = [1 1 0 0 0 0 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,A',N,F,A);HD1 =设计(d,“等波纹”“权重”,W,'SYSTEMOBJECT',真正);

下面的例子中提供了一个替代的设计基于使用的多频带的方法的一个定义了两个频带(通带和阻带)由分离的“不关心”的区域(或过渡频带):

B = 2;乐队的数量%F1 = F(1:2);%通带F2 = F(3:结束);%阻带%F(2:3)=%过渡频带[25 0.3。]A1 = A(1:2);A2 = A(3:结束);W1 = W(1:2);W2 = W(3:结束);d = fdesign.arbmag('N,B,F,A',N,B,F1,A1,F2,A2);HD2 =设计(d,“等波纹”'B1Weights',W1,'B2Weights',W2,...'SYSTEMOBJECT',真正);hfvt = fvtool(HD1,HD2,'MagnitudeDisplay''大小(dB)''传说''上'...'颜色''白色');传说(hfvt,“单频设计”“多频段设计”);

注意多带方法的明显优势。通过在过渡区域中,等波纹算法收敛到具有较低通带波纹和更大的阻带衰减的溶液放松约束。换句话说,所述第一滤波器的频率特性可以用一个低阶匹配。下面的例子说明使用最小订单设计获得相当于过滤器这最后的评论:

%最小顺序的设计要求每一个纹波值的规范%带。在这个例子中,在所有带纹波设置为0.0195。R = 0.0195;%单波段最低订单设计d = fdesign.arbmag('远',远);HD1 =设计(d,“等波纹”“权重”,W,'SYSTEMOBJECT',真正);%多频带最低顺序设计d = fdesign.arbmag('B,F,A,R',B,F1,A1,R,F2,A2,R);HD2 =设计(d,“等波纹”'B1Weights',W1,'B2Weights',W2,...'SYSTEMOBJECT',真正);hfvt = fvtool(HD1,HD2,'颜色''白色');传说(hfvt,“单频最小订单设计”...“多带最小订单设计”);

两者的通带波纹和阻带衰减设计相匹配。然而,单频带设计具有152的顺序,而多频带设计具有72的顺序。

顺序(HD)
ANS = 32

约束多带等波纹设计

多频段等波纹设计,使您可以为不同的频段指定的纹波限制,指定单频段,并强制指定的频率点指定的值。

约束带设计

下面的示例设计具有60分贝的第一阻带和为40dB在第二阻带的衰减的第80阶带通滤波器。通过放松所述第二阻带的衰减在通带波纹,同时保持相同的过滤器的顺序减小。

N = 80;%滤波器阶B = 3;乐队的数量%d = fdesign.arbmag('N,B,F,A,C',N,B,[0 0.25],[0 0],真实,...[0.3 0.6],[1 1],假,[0.65 1],[0 0],真)%#好
d = arbmag与属性:响应: '任意幅度' 规格: 'N,B,F,A,C' 说明:{4X1细胞} NormalizedFrequency:1 FilterOrder:80个NBands:3个B1Frequencies:[0 0.2500] B1Amplitudes:[00] B1Constrained:1个B1Ripple:0.2000 B2Frequencies:[0.3000 0.6000] B2Amplitudes:[1 1] B2Constrained:0 B3Frequencies:0.6500 1] B3Amplitudes:[0 0] B3Constrained:1个B3Ripple:0.2000

该B1Constrained和B3Constrained属性已设置为true,指定第一和第三频带限制带。指定使用BiRipple财产第i个约束带内的波动值:

d.B1Ripple = 10 ^( -  60/20);%抑制的所述第一阻带d.B3Ripple = 10 ^( -  40/20);%抑制的第二阻带HD =设计(d,“等波纹”'SYSTEMOBJECT',真正);fvtool(HD,'传说'“关”'颜色''白色');

单频段

下面的示例设计具有两个凹口在完全相同0.25 * pi和0.55 * PI弧度/样品的最小顺序等波纹滤波器,并用0.15中的通带波纹。

B = 5;乐队的数量%d = fdesign.arbmag('B,F,A,R',B);d.B1Frequencies = [0 0.2];d.B1Amplitudes = [1 1];d.B1Ripple = 0.15;d.B2Frequencies = 0.25;%的单频带d.B2Amplitudes = 0;d.B3Frequencies = [0.3 0.5]。d.B3Amplitudes = [1 1];d.B3Ripple = 0.15;d.B4Frequencies = 0.55;%的单频带d.B4Amplitudes = 0;d.B5Frequencies = [0.6 1];d.B5Amplitudes = [1 1];d.B5Ripple = 0.15;HD =设计(d,“等波纹”'SYSTEMOBJECT',真正);fvtool(HD,'颜色''白色');

强制频点

下面的示例设计与在100Hz的阻带边缘,并且以150Hz的通带边缘处的高通滤波器。假设你要拒绝,而无需添加额外的过滤器或无需通过大量增加滤波器的阶强大的60赫兹的干扰。您可以通过强制高通滤波器的幅频响应60 Hz至0做到这一点:

B = 2;乐队的数量%N = 92;%滤波器阶FS = 2E3;% 采样频率d = fdesign.arbmag('N,B,F,A',N,B,[0 60 100],[0 0 0],[150 1000],[1 1],FS);%使用B1ForcedFrequencyPoints设计选项应用到60赫兹点强制%的指定的振幅值HD =设计(d,“等波纹”'B1ForcedFrequencyPoints'60,...'SYSTEMOBJECT',真正);hfvt = fvtool(HD,'FS',FS,'颜色''白色');

放大到高通滤波器的阻带,观察到的幅度是在指定的60赫兹的频率点零:

hfvt.MagnitudeDisplay ='大小';XLIM([0 100])ylim([0 0.015])

单频与多频带IIR设计

正如FIR情况下,如果一个过渡带不容易识别IIR设计问题最好用单(全)波段指定的方式解决。作为示例,模型气体(原子Rubidium87蒸汽)的光吸收:

NB = 12;NA = 10;F = linspace(0,1,100);正如=酮(1100)-F * 0.2;吸收= [酮(1,30),(1-0.6 * bohmanwin(10))”,...酮(1,5),(1-0.5 * bohmanwin(8))”,酮(1,47)];A =作为*吸收。d = fdesign.arbmag('铌,钠,F,A',铌,钠,F,A);W = [酮(1,30)的人(1,10)* 2个1(1,60)];HD =设计(d,'iirlpnorm'“权重”,W,'规范',2,'DensityFactor'30,...'SYSTEMOBJECT',真正);fvtool(HD,'MagnitudeDisplay''大小(dB)'...'NormalizedFrequency''上''颜色''白色');

在约束可以在一个或多个过渡频带放宽其他情况下,所述多频带方法提供了相同的益处的情况下,FIR(即更好的通带和阻带的特性)。下面的示例示出了由建模的瑞利衰落的无线通信信道这些差异:

NB = 4;NA = 6;F = [0:0.01:0.4 0.45 1];A = [1.0./(1-(F(1:end-2)./0.42).^2).^0.25 0 0];d = fdesign.arbmag('铌,钠,F,A',铌,钠,F,A);%单频带设计HD1 =设计(d,'iirlpnorm''SYSTEMOBJECT',真正);B = 2;F1 = F(1:结束-2);%通带F2 = F(端-1:结束);%阻带%F(端-2:端-1)=%过渡带[4 0.45。]A1 = A(1:结束-2);A2 = A(最终1:结束);d = fdesign.arbmag('铌,钠,B,F,A',铌,钠,B,F1,A1,F2,A2);%多频带设计HD2 =设计(d,'iirlpnorm''SYSTEMOBJECT',真正);hfvt = fvtool(HD1,HD2,'颜色''白色');传说(hfvt,“单频设计”“多频段设计”);