滤波器设计!

[复制链接]
1858|10
 楼主| jlgcumt 发表于 2013-10-12 18:02 | 显示全部楼层 |阅读模式
谁能帮忙设计一个滤波器,40阶的,FIR,3db点(3400HZ),截止点4000HZ,衰减40db以上就行了,要c代码,我对滤波器一点也不懂!
zhangmangui 发表于 2013-10-13 20:32 | 显示全部楼层
这个还是要你自己先学学理论了   最好结合matlab下看看效果  
得到一些参数   在移植到C上
网上应该有很多的相关代码   也可以参考一下  
TI也有相应的资源
 楼主| jlgcumt 发表于 2013-10-13 21:09 | 显示全部楼层
zhangmangui 发表于 2013-10-13 20:32
这个还是要你自己先学学理论了   最好结合matlab下看看效果  
得到一些参数   在移植到C上
网上应该有很多 ...

用MATLAB的工具FDATool设计出的滤波器怎么生成c代码?
zhangmangui 发表于 2013-10-13 23:41 | 显示全部楼层
jlgcumt 发表于 2013-10-13 21:09
用MATLAB的工具FDATool设计出的滤波器怎么生成c代码?

直接是生不成的吧  你可以使用一些系数
aresc 发表于 2013-10-14 10:10 | 显示全部楼层
order = 40;     % order of filter
Fs = 8000;      % sampling rate
N_Fs = Fs/2;    % half of sampling rate
h = firls(order, [0, 3200/N_Fs, 3400/N_Fs, 3600/N_Fs, 3800/N_Fs, 1], [1,1,0.7071, 0.06, 0.01, 0]);  % length of h is order + 1.
fvtool(h);      % for filter analysis, such as mangnitude/phase...
fid = fopen('coeff.h', 'w+t');          % save filter coefficients to coeff.h
fprintf(fid, 'coeff[%d] = {\n', N+1);
for i=1:40
    fprintf(fid, '\t%.15f,\n',h(i));
end
fprintf(fid, '\t%.15f\n', h(41));
fprintf(fid, '}\n');
fclose(fid);

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
zhangmangui 发表于 2013-10-14 10:19 | 显示全部楼层
aresc 发表于 2013-10-14 10:10
order = 40;     % order of filter
Fs = 8000;      % sampling rate
N_Fs = Fs/2;    % half of sampling ...

牛人  向你学习
youluo235 发表于 2013-10-14 15:35 | 显示全部楼层
楼上同意
huangzj121 发表于 2013-10-27 19:37 | 显示全部楼层
本帖最后由 huangzj121 于 2013-10-27 19:42 编辑

5楼的 不好
搞些浮点数 不要误导年轻人 不动脑筋
另外 采样8000 有点低吧



如图
等纹波

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
huangzj121 发表于 2013-10-27 19:55 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
wxjawgy 发表于 2013-11-19 14:31 | 显示全部楼层
恬蔚 发表于 2013-11-20 16:20 | 显示全部楼层
正好课本学到这了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:善攻者,动于九天之上,善守者,藏于九地之下!

183

主题

733

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部