| 查看: 5255 | 回复: 4 | ||
[求助]
用Matlab设计一个0.5-20HZ的带通滤波器! 已有2人参与
|
|
采集了一段脉搏波信号,有一些干扰,想用matlab设计一个0.5-20HZ的带通滤波器,求代码! 假设脉搏波序列为y,采样率1000Hz。 |
» 猜你喜欢
职称评审没过,求安慰
已经有54人回复
垃圾破二本职称评审标准
已经有19人回复
毕业后当辅导员了,天天各种学生超烦
已经有5人回复
26申博自荐
已经有3人回复
A期刊撤稿
已经有4人回复
【答案】应助回帖
感谢参与,应助指数 +1
|
这是我在网上看到的,希望对你有所帮助。 ----------------------------------------------------------------------------- function y=bandp(x,f1,f3,fsl,fsh,rp,rs,Fs) %带通滤波 %使用注意事项:通带或阻带的截止频率与采样率的选取范围是不能超过采样率的一半 %即,f1,f3,fs1,fsh,的值小于 Fs/2 %x:需要带通滤波的序列 % f 1:通带左边界 % f 3:通带右边界 % fs1:衰减截止左边界 % fsh:衰变截止右边界 %rp:边带区衰减DB数设置 %rs:截止区衰减DB数设置 %FS:序列x的采样频率 % f1=300;f3=500;%通带截止频率上下限 % fsl=200;fsh=600;%阻带截止频率上下限 % rp=0.1;rs=30;%通带边衰减DB值和阻带边衰减DB值 % Fs=2000;%采样率 % wp1=2*pi*f1/Fs; wp3=2*pi*f3/Fs; wsl=2*pi*fsl/Fs; wsh=2*pi*fsh/Fs; wp=[wp1 wp3]; ws=[wsl wsh]; % % 设计切比雪夫滤波器; [n,wn]=cheb1ord(ws/pi,wp/pi,rp,rs); [bz1,az1]=cheby1(n,rp,wp/pi); %查看设计滤波器的曲线 [h,w]=freqz(bz1,az1,256,Fs); h=20*log10(abs(h)); figure;plot(w,h);title('所设计滤波器的通带曲线');grid on; y=filter(bz1,az1,x); end |
2楼2014-01-09 20:21:19
【答案】应助回帖
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
GlintRock: 金币+50, ★★★★★最佳答案 2014-01-10 20:58:25
感谢参与,应助指数 +1
GlintRock: 金币+50, ★★★★★最佳答案 2014-01-10 20:58:25
|
ECG 为待处理的信号; 10为order; 0.05, 0.5 为start stop frequency; ECGRATE 为 sampling rate d = fdesign.bandpass('N,F3dB1,F3dB2',10,0.05,0.5,ECGRATE); % Bandpass filter for the ECG Hd = design(d,'butter'); ECG = filter(Hd,ECG); |
3楼2014-01-10 20:02:34
4楼2014-01-10 20:05:15
5楼2016-03-17 22:47:34














回复此楼