主要内容

参量均衡器设计

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

通常,参数均衡器被设计成二阶IIR滤波器。这些滤波器的缺点是,由于它们的低阶,它们可以呈现相对较大的波纹或过渡区域,当它们中的几个级联时,可能会相互重叠。DSP System Toolbox™提供了设计高阶IIR参数均衡器的能力。这种高阶设计为每个滤波器的形状提供了更多的控制。此外,当滤波器阶数为2时,设计了传统二阶参数均衡器的特例。

本例讨论了两种独立的参数均衡器设计方法。首先是使用designParamEQ第二个是使用fdesign.parameqdesignParamEQ应该满足大多数需要。它更简单,并且为大多数常见的设计提供了能力。它还支持C代码生金宝app成,如果希望在运行时用生成的代码调优过滤器,则需要C代码生成。fdesign.parameq提供了许多先进的设计选项,最终控制的结果过滤器。本例中并没有探讨所有的设计选项。

一些基本的设计

考虑以下两个参数均衡器的设计。除过滤器顺序外,设计规格相同。第一种设计是一种典型的二阶参数均衡器,可将10 kHz左右的信号提高5 dB。第二种设计与六阶滤波器相同。请注意,与二阶设计相比,六阶滤波器更接近理想的砖墙滤波器。显然,通过进一步增加滤波器阶数,可以改善近似。由于需要更多的乘数,这种改进近似的代价是增加了实现成本。

Fs = 48 e3;N1 = 2;N2 = 6;G = 5;%5分贝Wo=10000/(Fs/2);体重=4000/(Fs/2);[B1,A1]=设计参数Q(N1,G,Wo,BW);[B2,A2]=设计参数Q(N2,G,Wo,BW);BQ1=dsp.BiquadFilter(“SOSMatrix”[B1。”,[1 A1。]]);BQ2 = dsp。BiquadFilter (“SOSMatrix”, [B2。”[(3,1),A2。]]);hfvt = fvtool (BQ1 BQ2,“财政司司长”Fs,“颜色”“白色”);传奇(hfvt的二阶设计“六阶设计”);

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

设计参数之一是滤波器带宽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分贝我们= 6000 / (Fs / 2);BW1 =我们/ Q1;BW2 =我们/ Q2;(B1, A1] = designParamEQ (N, G,我们BW1);(B2 A2) = designParamEQ (N, G,我们BW2);BQ1 = dsp。BiquadFilter (“SOSMatrix”[B1。”,[1 A1。]]);BQ2 = dsp。BiquadFilter (“SOSMatrix”[B2.][1,A2.]];hfvt=fvtool(BQ1、BQ2、,“财政司司长”Fs,“颜色”“白色”);传奇(hfvt“Q = 1.5”“Q = 10”);

图过滤器可视化工具-幅度响应(dB)包含一个轴和其他类型的uitoolbar, uimenu对象。标题为“大小响应(dB)”的轴包含两个类型为line的对象。这些对象表示Q = 1.5, Q = 10。

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

Fs = 48 e3;N = 2;Q = 10;G = 9;%9分贝Wo1=2000/(Fs/2);Wo2=12000/(Fs/2);BW1=Wo1/Q;BW2=Wo2/Q;[B1,A1]=设计参数(N,G,Wo1,BW1);[B2,A2]=设计参数(N,G,Wo2,BW2);BQ1=dsp.BiquadFilter(“SOSMatrix”[B1。”,[1 A1。]]);BQ2 = dsp。BiquadFilter (“SOSMatrix”[B2.][1,A2.]];hfvt=fvtool(BQ1、BQ2、,“财政司司长”Fs,“颜色”“白色”);传奇(hfvt'BW1 = 200hz;Q = 10 '‘BW2=1200 Hz;Q=10’);

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

然而,当在对数频率尺度上观察时,两个滤波器的“倍频带宽”是相同的。

hfvt = fvtool (BQ1 BQ2,“频率标度”“日志”“财政司司长”Fs,“颜色”“白色”);传奇(hfvt'Fo1 = 2千赫''Fo2 = 12khz ');

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

低货架和高货架过滤器

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

Fs = 48 e3;N = 4;G = 10;% 10 dBWo1=0;Wo2=1;%对应于Fs/2(Hz)或pi(rad/样本)BW = 1000 / (Fs / 2);%带宽发生在7.4 dB在这种情况下[B1,A1]=设计参数(N,G,Wo1,BW);[B2,A2]=设计参数(N,G,Wo2,BW);BQ1=dsp.BiquadFilter(“SOSMatrix”, [B1。”[(2,1),A1。]]);BQ2 = dsp。BiquadFilter (“SOSMatrix”, [B2。”[(2,1),A2。]]);hfvt = fvtool (BQ1 BQ2,“财政司司长”Fs,“颜色”“白色”);传奇(hfvt“低架过滤器”“高架子上过滤”);

图过滤器可视化工具-幅度响应(dB)包含一个轴和其他类型的uitoolbar, uimenu对象。标题为“大小响应(dB)”的轴包含两个类型为line的对象。这些对象代表Low Shelf Filter, High Shelf Filter。

一个参数均衡器切割

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

Fs = 48 e3;N = 2;G = 5;% 5分贝我们= 6000 / (Fs / 2);BW = 2000 / (Fs / 2);[B] = designParamEQ (N, G,我们,BW);BQ = dsp。BiquadFilter (“SOSMatrix”,[B.,[1,A.]];hfvt=fvtool(BQ,“财政司司长”Fs,“颜色”“白色”);传奇(hfvt‘G=-5分贝’);

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

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

Fs = 44.1 e3;N = 8;G =无穷;Q = 1.8;我们= 60 / (Fs / 2);% 60hz下行BW =我们/ Q;在这种特殊情况下,%带宽将出现在-3 dB[B1,A1]=设计参数(N,G,Wo,BW);[NUM,DEN]=iirnotch(Wo,BW);% or [NUM,DEN] = designparameterq (2,G,Wo,BW); / /设计参数SOS2=[NUM,DEN];BQ1=dsp.BiquadFilter(“SOSMatrix”, [B1。”[(4,1),A1。]]);BQ2 = dsp。BiquadFilter (“SOSMatrix”, SOS2);hfvt = fvtool (BQ1 BQ2,“财政司司长”Fs,“频率标度”“日志”“颜色”“白色”);传奇(hfvt“8阶陷波滤波器”“二阶陷波滤波器”);

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

级联参数均衡器

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

Fs=48e3;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,“颜色”“白色”“频率标度”“日志”);传奇(hfvt“二级滤波器级联”);

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

低阶设计,如上面的二阶滤波器,如果它们的中心频率间隔很近,可能会相互干扰。在上面的例子中,以1 kHz为中心的滤波器应具有-2 dB的增益。由于来自另一个滤波器的干扰,实际增益更像-1 dB。高阶设计不太容易出现such干扰。

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]=设计参数(N,G1,Wo1,BW);[B2,A2]=设计参数(N,G2,Wo2,BW);BQ1a=dsp.BiquadFilter(“SOSMatrix”, [B1。”[(4,1),A1。]]);BQ2a = dsp。BiquadFilter (“SOSMatrix”, [B2。”[(4,1),A2。]]);FC2 = dsp.FilterCascade (BQ1a BQ2a);FC2 hfvt = fvtool (FC,“财政司司长”Fs,“颜色”“白色”“频率标度”“日志”);传奇(hfvt“二级滤波器级联”“八阶滤波器级联”);

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

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

对于更高级的设计,fdesign.parameq可以使用。例如,由于频率扭曲,通常很难控制带宽发生的准确频率边缘。要做到这一点,可以使用以下方法:

Fs=44.1e3;N=4;流量=3000;Fhigh=4000;Grsq=1;GRF=10*log10(Grsq);G=-8;Gsq=10.^(G/10);滤波器的%幅度平方;G = 5 dBGBW = 10*log10((Gsq + Grsq)/2);%流量和Fhigh出现在-2.37 dBPEQ = fdesign.parameq ('N,Flow,Fhigh,Gref,G0,GBW'...N,流量/ (Fs / 2) Fhigh / (Fs / 2), Gref, G, GBW);BQ =设计(PEQ,“SystemObject”,真正的);hfvt = fvtool (BQ,“财政司司长”Fs,“颜色”“白色”);传奇(hfvt‘Flow = 3 kHz and Fhigh = 4 kHz的均衡器’);

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

请注意,按照规定,滤波器在3 kHz和4 kHz时的增益为-2.37 dB。

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

搁板滤波器的特性之一是过渡带宽(有时也称为过渡斜率),它可以由搁板斜率参数s来指定。带宽参考增益GBW总是被设置为搁板滤波器升压增益或削减增益的一半。所有其他参数不变,随着S的增加,过渡带宽减小,(响应的斜率增加)在GBW点附近产生一个“斜率旋转”,如下例所示。

N = 2;Fs = 48 e3;Fo = 0;%F0=0设计低通滤波器,F0=1设计高通滤波器Fc = 2 e3 / (Fs / 2);%截止频率G = 10;S = 1.5;PEQ = fdesign.parameq (N, F0、Fc、年代,G0”,N,Fo,Fc,S,G);BQ1=设计(PEQ,“SystemObject”,真正的);PEQ。S = 2.5;BQ2 =设计(PEQ,“SystemObject”,真正的);PEQ。S = 4;BQ3 =设计(PEQ,“SystemObject”,对);hfvt=fvtool(BQ1、BQ2、BX3、,“财政司司长”Fs,“颜色”“白色”);传奇(hfvt'S=1.5'' S = 2.5' S = 4 ');

Figure Filter Visualization Tool-震级响应(dB)包含uitoolbar、uimenu类型的轴和其他对象。标题震级响应(dB)的轴包含3个line类型的对象。这些对象表示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);get (m3,“GBW”
ans = 5
get (m1,“HighTransitionWidth”
ans=0.0945
get(平方米,“HighTransitionWidth”
ans = 0.0425
get (m3,“HighTransitionWidth”
ans=0.0238

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

N=2;PEQ=fdesign.parameq(N, F0、Fc、年代,G0”,N,Fo,Fc,S,G);BQ1=设计(PEQ,“SystemObject”,对);PEQ.FilterOrder=3;BQ2=设计(PEQ,“SystemObject”,真正的);PEQ。FilterOrder = 4;BQ3 =设计(PEQ,“SystemObject”,对);hfvt=fvtool(BQ1、BQ2、BX3、,“财政司司长”Fs,“颜色”“白色”);传奇(hfvt“N = 2”“N = 3”‘N=4’);

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

搁置过滤器与规定的质量因素

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

N=2;Fs=48e3;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=设计(PEQ,“SystemObject”,正确);产品环境质量保证=1/sqrt(2);产品环境质量2=设计(产品环境质量,“SystemObject”,正确);PEQ.Qa=2.0222;BQ3=设计(PEQ,“SystemObject”,对);hfvt=fvtool(BQ1、BQ2、BX3、,“财政司司长”Fs,“颜色”“白色”);传奇(hfvt“Qa = 0.48”“Qa = 0.7071”“Qa = 2.0222”);

图过滤器可视化工具-幅度响应(dB)包含一个轴和其他类型的uitoolbar, uimenu对象。标题为“大小响应(dB)”的轴包含3个类型为line的对象。这些对象代表Qa=0.48, Qa=0.7071, Qa=2.0222。