全错了,iir滤波器的设计,要先设计 模拟滤波器,然后通过一些方法(如频率响应不变法)转化为数字滤波器;绝对不是s换成z这末简单!
%File my01;
%把你的数据转化为比较通用的表示形式;
%Fs=10,Fstop=0.001,Fpass=0.01,Astop=90,Apass=1;
Wp=0.01;Ws=0.001;Rp=1; Rs=90;Fs=10;
[N, Wn] = BUTTORD(Wp, Ws, Rp, Rs);
[B,A] = BUTTER(N,Wn,'high');
%如果楼主想用极零点表示,二者等价;
[Z,P,K]= BUTTER(N,Wn,'high');
%可画出模拟滤波器的频谱;
figure(1);
FREQS(B,A);
axis([0 15 0 1.1*10^0.01]);
%用频率响应不变法转化为数字滤波器;
[BZ,AZ] = IMPINVAR(B,A,Fs);
%可画出数字滤波器的频谱;
figure(2);
FREQZ(B,A);
axis([0 0.05 -100 50]);
%可以看出的确是高通;
把你的要处理的信号通过这一滤波器就是你想要的结果了,0.2HZ,离0.01HZ远着呢,完全可以放心使用。 |