首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用matlab系统函数cfirpm设计设定的频率响应滤波器?

如何使用matlab系统函数cfirpm设计设定的频率响应滤波器?

提问于 2023-05-30 14:46:06
回答 0关注 0查看 164

这是关于cfirpm函数的介绍,所以想使用它设计特定的滤波器频率响应滤波器,下面是代码

代码语言:js
复制
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

这个函数吗?

回答

和开发者交流更多问题细节吧,去 写回答
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档