主要内容

参量均衡器设计

这个例子展示了如何设计参数均衡器滤波器。参数均衡器是用于音频的数字滤波器,用于调整声音信号的频率内容。参数均衡器提供了超越图形均衡器的功能,允许调整增益,中心频率和每个滤波器的带宽。相反,图形均衡器只允许调整每个滤波器的增益。

通常,参数均衡器被设计成二阶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分贝我们= 10000 / (Fs / 2);BW = 4000 / (Fs / 2);(B1, A1] = designParamEQ (N1, G,我们,BW);(B2 A2) = designParamEQ (N2, G,我们,BW);BQ1 = dsp。BiquadFilter (“SOSMatrix”[B1。”,[1 A1。]]);BQ2 = dsp。BiquadFilter (“SOSMatrix”, [B2。”[(3,1),A2。]]);hfvt = fvtool (BQ1 BQ2,“Fs”Fs,“颜色”“白色”);传奇(hfvt的二阶设计“六阶设计”);

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

其中一个设计参数是滤波器带宽BW。在上例中,带宽设置为4khz。4千赫带宽出现在一半的增益(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”Fs,“颜色”“白色”);传奇(hfvt“Q = 1.5”“Q = 10”);

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

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

Fs = 48 e3;N = 2;Q = 10;G = 9;% 9 dBWo1 = 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 = 200hz;Q = 10 ''BW2 = 1200 Hz;Q = 10 ');

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

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

hfvt = fvtool (BQ1 BQ2,“FrequencyScale”“日志”“Fs”Fs,“颜色”“白色”);传奇(hfvt'Fo1 = 2千赫''Fo2 = 12khz ');

图形过滤器可视化工具-幅度响应(dB)包含一个轴对象和其他类型的uitoolbar, uimenu对象。标题为“大小响应(dB)”的轴对象包含2个类型为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/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。”[(2,1),A1。]]);BQ2 = dsp。BiquadFilter (“SOSMatrix”, [B2。”[(2,1),A2。]]);hfvt = fvtool (BQ1 BQ2,“Fs”Fs,“颜色”“白色”);传奇(hfvt“低货架滤波器”“高架子上过滤”);

图形过滤器可视化工具-幅度响应(dB)包含一个轴对象和其他类型的uitoolbar, uimenu对象。标题为“大小响应(dB)”的轴对象包含2个类型为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]]);。”hfvt = fvtool (BQ,“Fs”Fs,“颜色”“白色”);传奇(hfvt'G = -5 dB');

图形过滤器可视化工具-幅度响应(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] = designParamEQ (N, G,我们,BW);(NUM窝]= iirnotch(我们,BW);% or [NUM,DEN] = designparameterq (2,G,Wo,BW); / /设计参数SOS2 = (NUM,穴);BQ1 = dsp。BiquadFilter (“SOSMatrix”, [B1。”[(4,1),A1。]]);BQ2 = dsp。BiquadFilter (“SOSMatrix”, SOS2);hfvt = fvtool (BQ1 BQ2,“Fs”Fs,“FrequencyScale”“日志”“颜色”“白色”);传奇(hfvt“8阶陷波滤波器”“二阶陷波滤波器”);

图形过滤器可视化工具-幅度响应(dB)包含一个轴对象和其他类型的uitoolbar, uimenu对象。标题为“大小响应(dB)”的轴对象包含2个类型为line的对象。这些对象分别代表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,“颜色”“白色”“FrequencyScale”“日志”);传奇(hfvt“二级滤波器级联”);

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

低阶设计,如上面的二阶滤波器,如果它们的中心频率是紧密间隔的,就会相互干扰。在上面的例子中,以1 kHz为中心的滤波器被认为有-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。”[(4,1),A1。]]);BQ2a = dsp。BiquadFilter (“SOSMatrix”, [B2。”[(4,1),A2。]]);FC2 = dsp.FilterCascade (BQ1a BQ2a);FC2 hfvt = fvtool (FC,“Fs”Fs,“颜色”“白色”“FrequencyScale”“日志”);传奇(hfvt“二级滤波器级联”“8阶滤波器级联”);

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

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

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

Fs = 44.1 e3;N = 4;流= 3000;Fhigh = 4000;Grsq = 1;Gref = 10 * log10 (Grsq);G = 8;Gsq = 10 ^ (G / 10);滤波器的%幅度平方;G = 5 dBGBW = 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 =设计(PEQ,“SystemObject”,真正的);hfvt = fvtool (BQ,“Fs”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 BQ3,“Fs”Fs,“颜色”“白色”);传奇(hfvt' S = 1.5' S = 2.5' S = 4 ');

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

通过计算,可以得到每个S值对应的跃迁带宽和带宽增益测量函数。我们验证了三种设计的带宽参考增益GBW是相同的,并且我们量化了当S增加时过渡宽度减少的多少。

m1 =测量(BQ1);get (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 BQ3,“Fs”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 = 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 =设计(PEQ,“SystemObject”,真正的);PEQ。Qa = 1 /√(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个类型为line的对象。这些对象代表Qa=0.48, Qa=0.7071, Qa=2.0222。