中通滤波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函數第一個參數(表示濾波器階數)改大一點。
全部
總結
以上是生活随笔為你收集整理的中通滤波matlab,如何用MATLAB将低通改成中通滤波器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WPF 用 DataTemplate
- 下一篇: 他山之石,可以攻玉——来自亚马逊的电商启