用matlab得到一个信号是用采样频率10KHZ采集的电流信号,想滤去其中的噪声,用巴特沃斯滤波器怎么滤波?

是滤波,不是巴特沃斯滤波器的设计,设计的滤波器是四阶巴特沃斯滤波器,截止频率是500hz,下边是我自己编的程序,肯定不对,望指正哪里出现的错误
[b,a]=butter(4,2*pi*500,'s')
[num,den]=bilinear(b,a,1000)
z=filter(num,den,i1aL1a)
plot(t,z)
figure(2)
plot(t,i1aL1a)
有几个疑问,一是Z变换那的频率到底要填多少,我看demo里也没提,二是所得的信号是一个离散的采样信号,需要怎样处理才能用filter来进行滤波,上面这段程序前后两个波形一模一样,望不吝赐教

首先要明白,由你给的代码知道你是要设计数字低通滤波器,而你给的频率是模拟的,你需要将模拟的频率转换到数字,butter函数是用在数字中的函数,Wn应在0~1之间,即你写的2*pi*500是不可以的。
具体程序可以这样写(去采样周期为T=1s,采样频率FS=1/T=1hz)
(1)设通带频率为400hz,截止频率为500hz,通带衰减Rp=1db,阻带衰减Rs=20db
(2)用双线性变换设计时,模拟和数字的频率对应关系为W(模拟)=2/T*tan(1/2)*w(数字),得到数字的技术指标为Wpz,Wsz。
(3)设计滤波器
[Nd,Wdc]=buttor(Wpz,Wsz,Rp,Rs);
[B,A]=butter(Nd,Wdz);
(4)滤波
z=filter(B,A,要滤波的函数)
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答