shiaiwei6442 发表于 2010-4-8 16:00

帮我看看带阻滤波我用错在哪里

我打算处理心音信号,在信号的首、末端,尤其是末端出现严重失真不知道错在哪里,请高手帮我看看,谢谢了
%输入数字滤波器的技术指标
fp1 = 40; fp2 = 60;
fsl = 45;fs2 = 55;fz = 50;
rp=3; rs=20;
%滤波器的采样频率
Fs=2000;
%归一化处理
wp1=2*pi*fp1/Fs;
wp2=2*pi*fp2/Fs;
ws1=2*pi*fsl/Fs;
ws2=2*pi*fs2/Fs;
%转换为模拟滤波器的指标
wap1=tan(wp1/2);
wap2=tan(wp2/2);
was1=tan(ws1/2);
was2=tan(ws2/2);
%设计模拟带阻滤波器
= buttord(,,rp,rs,'s');%计算最小阶数
= buttap(n);
= zp2tf(z,p,k);
%转换为数字带阻滤波器
wo=2*pi*fz/Fs;
bw=wap2 - wap1;
= lp2bs(b,a,wo,bw);%将模拟低通滤波器转换为模拟带阻滤波器,见959页
= bilinear(bt,at,1);%将模拟滤波器转换为数字滤波器,见101页
= freqz(bz,az,4096,Fs);%得到频率响应向量,见865页
%读取心音信号
x=rheartsound;
N=length(x);
%利用数字滤波器进行滤波
nfft = N;
X1=fft(x,nfft);
XY=conv(abs(h),X1);%f=Convolution(X1,abs(h)');
xy=real(ifft(XY));
x=flipud(xy);
plot(x);
页: [1]
查看完整版本: 帮我看看带阻滤波我用错在哪里