找回密码
 注册
Simdroid-非首页
查看: 167|回复: 3

butterworth滤波例子

[复制链接]
发表于 2011-3-13 10:06:41 | 显示全部楼层 |阅读模式 来自 天津
查阅了下本版块,进一步增加一个butterworth带通滤波的例子和程序给大家,希望对新手有用.
采用3阶带通滤波,数据采样率为200点每秒,所以下面的程序段设置为[0.4/100 20/100].
[b,a]=butter(3,[0.4/100 20/100]);  %0.4,20是hz单位


滤波器幅频特性如下图:

本帖子中包含更多资源

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

×

评分

1

查看全部评分

 楼主| 发表于 2011-3-13 10:09:14 | 显示全部楼层 来自 天津
Simdroid开发平台
clear;clc; nam=dir('data\*.txt'); aa='data\'; [k1,k2]=size(nam); [b,a]=butter(3,[0.4/100 20/100]); %0.4,20是hz单位 if k1~=0 for k=1:1:length(nam(:,1)) %for k=1:1:1 namname{k,1}=nam(k,1).name; %end [k1,k2]=size(namname); gg=strcat(aa,namname{k,1}); c=strtok(gg,'.'); c=strcat(c,'.flt'); fp=fopen(gg,'r'); fp1=fopen(c,'w'); data=fscanf(fp,'%f %f %f',[3,inf]); d1=data(1,:); d2=data(2,:); d3=data(3,:); %clear data; dd1=filter(b,a,d1); dd2=filter(b,a,d2); dd3=filter(b,a,d3); data=[dd1; dd2; dd3]; fprintf(fp1,'%f %f %f\n',data); fclose(fp1); fclose(fp); end end plot(d1);hold on;plot(dd1+5,'r');axis tight;hold off 以上为完整程序段. 幅频特性图如下(上图发错了,它是滤波前后对比图):

本帖子中包含更多资源

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

×

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2011-3-13 10:19:40 | 显示全部楼层 来自 天津
测试数据见附件.放在程序目录下的data(自己建立)文件夹中即可. 程序是批处理形式的.

本帖子中包含更多资源

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

×
回复 不支持

使用道具 举报

 楼主| 发表于 2011-3-13 10:25:36 | 显示全部楼层 来自 天津
另外补充IIR型滤波器不是最小相位滤波器,所以存在一定的相移.本算例有3个采样点的延迟.
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-5 01:16 , Processed in 0.043389 second(s), 19 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表