中通滤波matlab,如何用MATLAB将低通改成中通滤波器

程序注释:有疑问的我标注出来了???f1=10;f2=200;fs=1000;????????F1=f1/fs;F2=f2/fs;???????%数字频率(此处应该是2*f1/fs,2*f2/fs)???fRange=[0,15*F1,15*F1,1];%确定低通滤波器的截止频率??hVal=[1,1,0,0];???????????b=fir2(60,fRange,hVal);??%b是产生的FIR滤波器的系数向量??????????[H,W]=freqz(b,1);???????%画出FIR滤波器的幅度特性和相位特性,freqz是matlab函数??subplot(3,1,1);plot(W/pi,abs(H));%W/pi是将数字频率归一化,abs(H))代表幅度??n1=0:511;???????????%因为你是要有两段不同频率的信号拼接而成,其实不分段也行??n2=512:1023;??n=[n1n2];??x1=sin(2*pi*F1*n1);?????????x2=sin(2*pi*F2*n2);?????????x=[x1,x2];??????????????y=filter(b,1,x);?%b是FIR滤波器系数(相当于分子),1是FIR滤波器分母(全1),x是待滤波信号??subplot(3,1,2);plot(x);???????subplot(3,1,3);plot(y);??????要将低通滤波器改成带通比较简单把fRange改成[0,2*(100-10)/fs,2*(100+10)/fs,1],hVal改成[0,1,1,0],x1=sin(2*pi*10*n);%此处我按n不分段处理x2=sin(2*pi*100*n);x3=sin(2*pi*200)*n;x=x1+x2+x3;y=filter(b,1,x);1、fRange中间两个参数是数字频率和模拟频率的换算具体公式为数字频率=模拟频率/(fs/2)。

2、fRange中间两个参数的差表示带通滤波器的带宽,你程序中两个值一样了,所以滤不干净;还可以把fir2函数第一个参数(表示滤波器阶数)改大一点。

全部

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值