主要内容

参数均衡器设计

此示例显示了如何设计参数均衡器过滤器。参数均衡器是用于调整声音信号的频率内容的音频中使用的数字滤波器。参数均衡器通过允许调整每个过滤器的增益,中心频率和带宽来提供超出图形均衡器的能力。相比之下,图形均衡器仅允许调整每个过滤器的增益。

通常,参数均衡器被设计为二阶IIR过滤器。这些滤波器具有缺点,因为它们的低阶,它们可以呈现相对较大的纹波或过渡区域,并且当其中几个在级联连接时可以彼此重叠。DSP System Toolbox™提供了设计高阶IIR参数均衡器的能力。这种高阶设计提供了更大的控制对每个过滤器的形状。此外,如果将过滤器的顺序设置为两个,则将特殊情况特殊情况到传统的二阶参数均衡器。

该示例讨论了两个分开的参数均衡器设计方法。第一个是使用的DesignParameq.第二个是使用fdesign.parameq.parameq.DesignParameq.应该提供大多数需求。它更简单,提供最常见的设计的能力。它还支持C代码生金宝app成,如果希望在使用生成的代码在运行时调整过滤器。fdesign.parameq.parameq.提供许多高级设计选项,以实现所得滤波器的最终控制。并非所有设计选项都在此示例中探讨。

一些基本的设计

考虑以下两个参数均衡器的设计。除过滤器订单外,设计规范是相同的。第一个设计是典型的二阶参数均衡器,其将10 kHz的信号提升5 dB。第二种设计与六阶滤波器相同。请注意,与二阶设计相比,第六级滤波器如何更接近理想的砖墙过滤器。显然,通过增加滤波器顺序,可以提高近似。支付此类改进近似的价格是增加的实施成本,因为需要更多的乘数。

Fs = 48 e3;n1 = 2;n2 = 6;g = 5;%5 dB.WO = 10000 /(FS / 2);BW = 4000 /(FS / 2);[B1,A1] = DesignParameq(N1,G,WO,BW);[B2,A2] = DesignParameq(N2,G,WO,BW);bq1 = dsp.biquadfilter('sosmatrix'[B1。”,[1 A1。]]);bq2 = dsp.biquadfilter('sosmatrix',[B2。',[of(3,1),a2。']);hfvt = fvtool (BQ1 BQ2,'FS',fs,'颜色'“白色”);传奇(HFVT,的二阶设计'第6阶设计');

图过滤器可视化工具-幅度响应(dB)包含一个轴和其他类型的uitoolbar, uimenu对象。标题为幅度响应(dB)的轴包含2个线型对象。这些对象代表2nd订单设计,第6阶设计。

其中一个设计参数是滤波器带宽,BW。在前面的示例中,带宽指定为4 kHz。4 kHz带宽发生在增益(2.5 dB)的一半。

基于质量因素的设计

另一个常见的设计参数是质量因子Q。滤波器的Q被定义为Wo/BW(中心频率/带宽)。它提供了滤波器锐度的度量,即滤波器在参考值(0 dB)和增益G之间的锐度转换。考虑相同的G和Wo,但不同的Q值的两种设计。

Fs = 48 e3;N = 2;Q1 = 1.5;Q2 = 10;G = 15;%15 dB.WO = 6000 /(FS / 2);bw1 = wo / q1;bw2 = wo / q2;[B1,A1] = DesignParameq(n,g,wo,bw1);[b2,a2] = designparameq(n,g,wo,bw2);bq1 = dsp.biquadfilter('sosmatrix'[B1。”,[1 A1。]]);bq2 = dsp.biquadfilter('sosmatrix',[b2。',[1,a2。']);hfvt = fvtool (BQ1 BQ2,'FS',fs,'颜色'“白色”);传奇(HFVT,“Q = 1.5”'q = 10');

图过滤器可视化工具-幅度响应(dB)包含一个轴和其他类型的uitoolbar, uimenu对象。标题为幅度响应(dB)的轴包含2个线型对象。这些对象代表q = 1.5,q = 10。

虽然较高的Q因子对应于更尖锐的滤波器,但必须注意的是,对于给定的带宽,Q因子仅通过增加中心频率而增加。这似乎不太直观。例如,下面两个滤波器有相同的Q因子,但是其中一个明显比另一个占用更大的带宽。

Fs = 48 e3;N = 2;q = 10;g = 9;%9 dB.WO1 = 2000 /(FS / 2);WO2 = 12000 /(FS / 2);bw1 = wo1 / q;bw2 = wo2 / q;[B1,A1] = DesignParameq(n,g,wo1,bw1);[b2,a2] = designparameq(n,g,wo2,bw2);bq1 = dsp.biquadfilter('sosmatrix'[B1。”,[1 A1。]]);bq2 = dsp.biquadfilter('sosmatrix',[b2。',[1,a2。']);hfvt = fvtool (BQ1 BQ2,'FS',fs,'颜色'“白色”);传奇(HFVT,'BW1 = 200 Hz;q = 10''BW2 = 1200 Hz;q = 10');

图过滤器可视化工具-幅度响应(dB)包含一个轴和其他类型的uitoolbar, uimenu对象。标题为幅度响应(dB)的轴包含2个线型对象。这些对象代表BW1 = 200 Hz;Q = 10, BW2 = 1200hz;Q = 10。

当从对数频率的角度来看,两个滤波器的“倍频带宽”是相同的。

hfvt = fvtool (BQ1 BQ2,'验证'“日志”'FS',fs,'颜色'“白色”);传奇(HFVT,'fo1 = 2 khz''fo2 = 12 khz');

图过滤器可视化工具-幅度响应(dB)包含一个轴和其他类型的uitoolbar, uimenu对象。标题为幅度响应(dB)的轴包含2个线型对象。这些对象代表FO1 = 2 kHz,FO2 = 12 kHz。

低架和高架滤波器

当中心频率为0.5*pi(奈奎斯特速率的一半)时,滤波器的带宽BW仅完美地以中心频率Wo为中心。当Wo接近于0或时,有一种翘曲效应,使大部分带宽发生在中心频率的一侧。在边缘情况下,如果中心频率设置为0 (pi),滤波器的整个带宽发生在中心频率的右(左)。其结果就是所谓的搁置低(高)滤波器。

Fs = 48 e3;N = 4;G = 10;%10 dB.wo1 = 0;WO2 = 1;%对应于FS / 2(Hz)或Pi(Rad / Sample)BW = 1000 /(FS / 2);%带宽在本例中为7.4 dB[B1,A1] = DesignParameq(n,g,wo1,bw);[B2,A2] = DesignParameq(n,g,wo2,bw);bq1 = dsp.biquadfilter('sosmatrix',[b1。',[of(2,1),a1。']);bq2 = dsp.biquadfilter('sosmatrix', [B2。”[(2,1),A2。]]);hfvt = fvtool (BQ1 BQ2,'FS',fs,'颜色'“白色”);传奇(HFVT,'低架过滤器''高架过滤器');

图过滤器可视化工具-幅度响应(dB)包含一个轴和其他类型的uitoolbar, uimenu对象。标题为幅度响应(dB)的轴包含2个线型对象。这些物体代表低架滤波器,高架滤波器。

切割的参数均衡器

前面所有的设计都是在一定频带上增强信号的参数均衡器的例子。你也可以设计在给定区域切断(衰减)信号的均衡器。

Fs = 48 e3;N = 2;G = 5;% 5分贝WO = 6000 /(FS / 2);BW = 2000 /(FS / 2);[b,a] = designparameq(n,g,wo,bw);bq = dsp.biquadfilter('sosmatrix',[b。',[1,a。']);hfvt = fvtool (BQ,'FS',fs,'颜色'“白色”);传奇(HFVT,'g = -5 db');

图过滤器可视化工具-幅度响应(dB)包含一个轴和其他类型的uitoolbar, uimenu对象。标题为幅度响应(dB)的轴包含一个类型为line的对象。这个对象表示G = - 5db。

在极限下,滤波器可以在指定的频率上设计为增益为零(-Inf dB)。这允许设计二阶或更高阶陷波器。

Fs = 44.1 e3;N = 8;G =无穷;Q = 1.8;我们= 60 / (Fs / 2);60 Hz的%缺口bw = wo / q;对于此特殊情况,将在-3 dB发生%带宽[B1,A1] = DesignParameq(n,g,wo,bw);[num,den] = inirnotch(wo,bw);% or [NUM,DEN] = designparameterq (2,G,Wo,BW);sos2 = [num,den];bq1 = dsp.biquadfilter('sosmatrix',[b1。',[of(4,1),a1。']);bq2 = dsp.biquadfilter('sosmatrix',SOS2);hfvt = fvtool (BQ1 BQ2,'FS',fs,'验证'“日志”'颜色'“白色”);传奇(HFVT,'第8阶陷波过滤器''2nd订单Notch滤波器');

图过滤器可视化工具-幅度响应(dB)包含一个轴和其他类型的uitoolbar, uimenu对象。标题为幅度响应(dB)的轴包含2个线型对象。这些对象代表了8阶陷波滤波器,2阶陷波滤波器。

级联参数均衡器

参数均衡器通常在级联(串联)中连接,以便同时使用若干以均衡音频信号。要以这种方式连接多个均衡器,请使用dsp.filtercascade.

Fs = 48 e3;N = 2;g1 = 3;% 3 dBg2 = -2;% 2 dBWO1 = 400 /(FS / 2);WO2 = 1000 /(FS / 2);BW = 500 /(FS / 2);%带宽在本例中为7.4 dB(B1, A1] = designParamEQ (N, G1、Wo1 BW);(B2 A2) = designParamEQ (N, G2、Wo2 BW);bq1 = dsp.biquadfilter('sosmatrix'[B1。”,[1 A1。]]);bq2 = dsp.biquadfilter('sosmatrix',[b2。',[1,a2。']);fc = dsp.filtercascade(BQ1,BQ2);hfvt = fvtool(fc,'FS',fs,'颜色'“白色”'验证'“日志”);传奇(HFVT,'级联的第二订单过滤器');

图过滤器可视化工具-幅度响应(dB)包含一个轴和其他类型的uitoolbar, uimenu对象。标题为幅度响应(dB)的轴包含一个类型为line的对象。该对象表示二阶滤波器级联。

如果其中心频率紧密间隔,则上面的二阶滤波器等低阶设计可以相互干扰。在上面的示例中,在1kHz以1kHz为中心的滤波器被认为具有-2 dB的增益。由于其他滤波器的干扰,实际增益更像-1 dB。高阶设计不太容易发生这种干扰。

Fs = 48 e3;N = 8;g1 = 3;% 3 dBg2 = -2;% 2 dBWO1 = 400 /(FS / 2);WO2 = 1000 /(FS / 2);BW = 500 /(FS / 2);%带宽在本例中为7.4 dB(B1, A1] = designParamEQ (N, G1、Wo1 BW);(B2 A2) = designParamEQ (N, G2、Wo2 BW);bq1a = dsp.biquadfilter('sosmatrix',[b1。',[of(4,1),a1。']);bq2a = dsp.biquadfilter('sosmatrix',[b2。',[ofly(4,1),a2。']);fc2 = dsp.filtercascade(bq1a,bq2a);hfvt = fvtool(fc,fc2,'FS',fs,'颜色'“白色”'验证'“日志”);传奇(HFVT,'级联的第二订单过滤器''级联的第8次滤波器');

图过滤器可视化工具-幅度响应(dB)包含一个轴和其他类型的uitoolbar, uimenu对象。标题为幅度响应(dB)的轴包含2个线型对象。这些对象代表了第2个汇位的级联,第8个订单过滤器的级联。

高级设计选项:指定低频和高频

对于更高级的设计,fdesign.parameq.parameq.可以使用。例如,由于频率翘曲,一般来说,它可能难以控制带宽发生的精确频率边缘。为此,可以使用以下操作:

Fs = 44.1 e3;N = 4;流量= 3000;fhigh = 4000;grsq = 1;gref = 10 * log10(grsq);g = -8;GSQ = 10. ^(g / 10);%滤波器大小的平方;G = 5分贝GBW = 10*log10((Gsq + Grsq)/2);%流动和fhigh发生在-2.37 dBpeq = fdesign.parameq('n,流量,fhigh,gref,g0,gbw'...n,流量/(fs / 2),fhigh /(fs / 2),gref,g,gbw);BQ = Design(PEQ,'systemobject',真正的);hfvt = fvtool (BQ,'FS',fs,'颜色'“白色”);传奇(HFVT,“流量= 3 kHz, Fhigh = 4 kHz的均衡器”);

图过滤器可视化工具-幅度响应(dB)包含一个轴和其他类型的uitoolbar, uimenu对象。标题为幅度响应(dB)的轴包含一个类型为line的对象。该对象表示均衡器,流量= 3 kHz, Fhigh = 4 kHz。

请注意,过滤器的增益为-2.37dB,3 kHz和4 kHz指定。

具有可变过渡带宽或斜率的搁架过滤器

搁架滤波器的一个特性是转换带宽(有时也称为转换斜率),其可以由货架斜率S指定。带宽参考增益GBW总是设置为搁架滤波器的升压或切割增益的一半。所有其他参数是常数的,因为S增加转换带宽减小,(响应的斜率增加)在GBW点周围创建“斜率旋转”,如下面的示例中所示。

N = 2;Fs = 48 e3;Fo = 0;%F0 = 0设计低通滤波器,F0 = 1设计高通滤波器FC = 2E3 /(FS / 2);%截止频率G = 10;s = 1.5;peq = fdesign.parameq(N, F0、Fc、年代,G0”,n,fo,fc,s,g);BQ1 = Design(PEQ,'systemobject',真正的);PEQ。S = 2.5;BQ2 =设计(PEQ,'systemobject',真正的);peq.s = 4;BQ3 =设计(PEQ,'systemobject',真正的);HFVT = FVTool(BQ1,BQ2,BQ3,'FS',fs,'颜色'“白色”);传奇(HFVT,'s = 1.5''s = 2.5''s = 4');

图过滤器可视化工具-幅度响应(dB)包含一个轴和其他类型的uitoolbar, uimenu对象。具有标题幅度响应(DB)的轴包含3个类型的类型。这些对象表示s = 1.5,s = 2.5,s = 4。

可以使用该转换带宽和对应于S的每个值的带宽增益措施功能。我们验证了三个设计的带宽参考增益GBW是相同的,并且我们量化在S增加时的过渡宽度减小。

M1 =测量(BQ1);得到(m1,'gbw'
ans = 5
m2 =测量(BQ2);get(平方米,'gbw'
ans = 5
M3 =测量(BQ3);得到(m3,'gbw'
ans = 5
得到(m1,'hightransitionwidth'
ANS = 0.0945.
get(平方米,'hightransitionwidth'
ans = 0.0425.
得到(m3,'hightransitionwidth'
ANS = 0.0238.

随着架子斜率参数S的增大,滤波器的纹波也随之增大。我们可以增加滤波器以减少纹波,同时保持所需的过渡带宽。

N = 2;peq = fdesign.parameq(N, F0、Fc、年代,G0”,n,fo,fc,s,g);BQ1 = Design(PEQ,'systemobject',真正的);peq.filterorder = 3;BQ2 =设计(PEQ,'systemobject',真正的);PEQ。FilterOrder = 4;BQ3 =设计(PEQ,'systemobject',真正的);HFVT = FVTool(BQ1,BQ2,BQ3,'FS',fs,'颜色'“白色”);传奇(HFVT,“N = 2”'n = 3''n = 4');

图过滤器可视化工具-幅度响应(dB)包含一个轴和其他类型的uitoolbar, uimenu对象。具有标题幅度响应(DB)的轴包含3个类型的类型。这些对象表示n = 2,n = 3,n = 4。

具有规定质量因子的搁架过滤器

可以使用质量因子QA代替架子斜率参数S来设计具有可变转变带宽的搁架滤波器。

N = 2;Fs = 48 e3;FO = 1;%F0 = 0设计低通滤波器,F0 = 1设计高通滤波器Fc = 20 e3 / (Fs / 2);%截止频率G = 10;q = 0.48;peq = fdesign.parameq(' N, F0、Fc、Qa、G0,n,fo,fc,q,g);BQ1 = Design(PEQ,'systemobject',真正的);PEQ.QA = 1 / SQRT(2);BQ2 =设计(PEQ,'systemobject',真正的);PEQ.QA = 2.0222;BQ3 =设计(PEQ,'systemobject',真正的);HFVT = FVTool(BQ1,BQ2,BQ3,'FS',fs,'颜色'“白色”);传奇(HFVT,“Qa = 0.48”'qa = 0.7071'“Qa = 2.0222”);

图过滤器可视化工具-幅度响应(dB)包含一个轴和其他类型的uitoolbar, uimenu对象。具有标题幅度响应(DB)的轴包含3个类型的类型。这些对象表示QA = 0.48,QA = 0.7071,QA = 2.0222。