如何获得参数均衡器的幅度值?

问题描述

我在模拟滤波器上做得很好,但是在数字滤波器上我似乎无法获得相似的结果。

这是我首先尝试的方法Link to my xlsx data

%% load stuff
M = readtable('dB Technologies T4 PS1.xlsx','Sheet','TF');

%% create filter
Fs = 96e3;
N1 = 2;
G  = -5; % 5 dB
Wo = 100/(Fs/2);
BW = 4000/(Fs/2); % Need to figure out how to insert BW in octaves.
[b,a] = designParamEQ(N1,G,Wo,BW);

%% calculate magnitude response
w = M.Frequency_Hz;
h = freqz(b,a,w);
magdB = mag2db(abs(h));

那没有用。结果如下:

Magnitude of Bessel vs Parametric filter

所以我试图从参数滤波器中创建一个二阶滤波器。

BQ = dsp.BiquadFilter('SOSMatrix',[b.',[1,a.']]);
h = freqz(BQ);

那也不起作用。显然,关于滤波器的工作原理,我有很多东西要学习,但是我不确定要在哪里找到想要基于给定频率分辨率计算幅度的简单结果。

我认为可能与我需要将频率转换为每个样本的弧度有关...

wRad = w*((2*pi)/(Fs/2));

但是那也不起作用。我在这里想念什么?

顺便说一下,我能够使用fvtool可视化BQ过滤器,因此我可以看到它正在工作。我只是无法从中得到幅度响应。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)