我要发布
仪器网/ 仪器社区/ 滤波器/ 求助关于matlab滤波功能

求助关于matlab滤波功能

淇淇147258    2009-07-31    滤波器    浏览 474 次

现有一组拉索振动的实验数据,每隔0.002s在拉索中间点出测量位移值,得到txt文件,其中一部分数据如下: 0.0000000(时间) 6.0159998(位移值) 0.0020000 5.8280001 0.0040000 5.6399999 0.0060000 5.3920002 ... 现有一组拉索振动的实验数据,每隔0.002s在拉索中间点出测量位移值,得到txt文件,其中一部分数据如下:
0.0000000(时间) 6.0159998(位移值)
0.0020000 5.8280001
0.0040000 5.6399999
0.0060000 5.3920002
0.0080000 5.0939999

0.0100000 4.8660002
0.0120000 4.5679998

0.0140000 4.2519999
0.0160000 3.9200001
0.0180000 3.5139999

0.0200000 3.1500001
0.0220000 2.7460001

0.0240000 2.3239999

0.0260000 1.9040000

0.0280000 1.3900000

0.0300000 0.9140000

0.0320000 0.4040000

0.0340000 0.0000000

0.0360000 -0.4720000
0.0380000 -0.9740000
0.0400000 -1.3099999
为了消除其他频率波或者噪音的影响,现在希望通过滤波将杂质除去,小弟以前没有用过matlab滤波功能,请问高手具体如何操作啊?感激不尽

精彩问答
我昱云南的人民 发布日期:2018-04-11
低通滤波器参数:Fs=8000,fp=2500,fs=3500,Rp=1dB,As=30dB,其他滤波器可以通过与低通之间的映射关系实现。

%%模拟滤波器

%巴特沃斯——滤波器设计

wp=2*pi*2500;ws=2*pi*3500;Rp=1;As=30;

[N,wc]=buttord(wp,ws,Rp,As,'s')%计算率波器的阶数和3dB截止频率

[B,A]=butter(N,wc,'s');%计算滤波器系统函数分子分母多项式

fk=0:800/512:8000;wk=2*pi*fk;

Hk=freqs(B,A,wk);

figure

plot(fk/1000,20*log10(abs(Hk)));

grid on,xlabel('频率(kHz)'),ylabel('幅度(dB)')

title('巴特沃斯模拟滤波器')

axis([0,4,-35,5])

%%

%切比雪夫I——滤波器设计

wp=2*pi*2500;ws=2*pi*3500;Rp=1;As=30;

[N1,wp1]=cheb1ord(wp,ws,Rp,As,'s')%计算切比雪夫滤波器的阶数和通带边界频率

[B1,A1]=cheby1(N1,Rp,wp1,'s');%计算滤波器系统函数分子分母多项式

fk=0:800/512:8000;wk=2*pi*fk;

Hk=freqs(B1,A1,wk);figure,

plot(fk/1000,20*log10(abs(Hk)));

grid on,xlabel('频率(kHz)'),ylabel('幅度(dB)')

title('切比雪夫I模拟滤波器')

axis([0,4,-35,5])

%%

%切比雪夫II——滤波器设计

wp=2*pi*2500;ws=2*pi*3500;Rp=1;As=30;

[N2,wso]=cheb2ord(wp,ws,Rp,As,'s')%计算切比雪夫滤波器的阶数和通带边界频率

[B2,A2]=cheby2(N1,Rp,wso,'s');%计算滤波器系统函数分子分母多项式

fk=0:800/512:8000;wk=2*pi*fk;

Hk=freqs(B1,A1,wk);figure,

plot(fk/1000,20*log10(abs(Hk)));

grid on,xlabel('频率(kHz)'),ylabel('幅度(dB)')

title('切比雪夫II模拟滤波器')

axis([0,4,-35,5])

%%

%椭圆——滤波器设计

wp=2*pi*2500;ws=2*pi*3500;Rp=1;As=30;

[N,wpo]=ellipord(wp,ws,Rp,As,'s')%计算滤波器的阶数和通带边界频率

[B,A]=ellip(N,Rp,As,wpo,'s');%计算滤波器系统函数分子分母多项式

fk=0:800/512:8000;wk=2*pi*fk;

Hk=freqs(B1,A1,wk);figure,

plot(fk/1000,20*log10(abs(Hk)));

grid on,xlabel('频率(kHz)'),ylabel('幅度(dB)')

axis([0,4,-35,5]),title('椭圆模拟滤波器')

%%

%数字滤波器

%脉冲响应法滤波器设计

fp=2500;fs=3500;Fs=8000;

wp=2*fp/Fs;ws=2*fs/Fs;%求归一化数字通带截止频率,求归一化数字阻带起始频率

deltaw=ws-wp;%求过渡带宽

N0=ceil(6.6/deltaw);%求窗口长度

N=N0+mod(N0+1,2); %确保窗口长度 N为奇数

n=N-1;%求出滤波器的阶数 n

wn=(ws+wp)/2; %求滤波器的截止频率

b=fir1(n,wn)%利用 fir1 函数求出滤波器的系数

[Hk,w] = freqz(b,1); % 计算频率响应

mag = abs(Hk); % 求幅频特性

db = 20*log10(mag/max(mag)); % 化为分贝值

dw =pi/512; %关于pi归一化

Rp = -(min(db(1:wp*pi/dw+1))) % 检验通带波动

As = -(max(db(ws*pi/dw+1:512))) % 检验Z小阻带衰减

figure,plot(0:pi/511:pi,db),grid on

axis([0,4.0,-80,5]),title('数字滤波器——脉冲响应法')

%%
被采纳
milkneng1 发布日期:2009-08-01
你要首先选好滤波器的种类,滤波器的频率范围,滤波器的Z小阶数。
但是,也可以简单点,直接用fft将数据变换到频率域,然后令相应频率域的振幅为零就可以了。

diyi个不说了,要用的的知识比较多。说下第二种方法:
比方说,你本来有个时间序列:x
你用快速富士变换函数fft便可得到x的振幅谱和相位谱
y=fft(x);
y1=abs(y);%y1就是振幅谱。
其对应频率可以有采样时间间隔和采样个数算出来。
假设为0:df:F
而你要其中的
频率范围【a,b】以外的给滤掉,只要使其相应的y为零就可以了。
然后用
x1=ifft(y)
便可
全部评论
gdfgsdgdsaf 发布日期:2015-08-01
滤波既是卷积,可以使用fdatool工具即可
最新主题
相关版块
我要评论
X您尚未登录
账号登录
X您尚未登录
手机动态密码登录
X您尚未登录
扫码登录
官方微信

仪器网微信服务号

扫码获取最新信息


仪器网官方订阅号

扫码获取最新信息

在线客服

咨询客服

在线客服
工作日:  9:00-18:00
联系客服 企业专属客服
电话客服:  400-822-6768
工作日:  9:00-18:00
订阅商机

仪采招微信公众号

采购信息一键获取海量商机轻松掌控