这是关于cfirpm函数的介绍,所以想使用它设计特定的滤波器频率响应滤波器,下面是代码
clc
clear
S = load('演示曲线—全频.txt');
n = 128;
t=0:1:n-1;
f=t./n;
w = S;
b = cfirpm(n,f,@fresp,w,'even');
b = b(1:n/2);
fvtool(b);
function [dh,dw]=fresp(n,f,gf,w)
x1 = w(:,1); %频率 hz
x2 = w(:,2); %幅度值 db
x3 = w(:,3); %相位 度
% x1=[0;x1];
% x2=[0;x2];
% x3=[0;x3];
FS = 48000; %采样频率
x1_f = x1./(FS/2);
x2_a = power(10, x2 ./ 20);
x2_p = unwrap(x3);
a3 = interp1(x1_f,x2_a,gf,'spline'); % 幅度插值
p3 = interp1(x1_f,x2_p,gf,'spline'); % 相位插值
a3(1) = 0;
p3 = p3*pi/180;
subplot(2,1,1);
plot(gf,a3);
subplot(2,1,2);
plot(gf,p3);
dh = 2*a3.* exp(-1i*p3);
dw=ones(length(gf),1);
end
附件是设定的频率响应曲线值
现在是通过上面代码并不能设计出此频率响应的滤波器,感觉是cfirpm的用法没有用对,请问一下有人知道怎么设计@fresp
这个函数吗?
文字识别接口在线调用是搭配sdk使用的,SDK封装了不支持修改header,若需要自行修改,可以通过自主鉴权方式发起请求,详情您可以参考文档。