當前位置:編程學習大全網 - 編程軟體 - matlab 脈沖響應不變法 低通濾波器

matlab 脈沖響應不變法 低通濾波器

運行結果不對,可以看出妳對於各種頻率的概念還很混亂。妳的這個程序有問題,給出建議如下:

1、buttord那壹句裏,因為有's',所以給出的wc是數字濾波器的截止頻率,故在lp2lp語句中,不能再將wc乘以π*Fs,這句話應改成:

[bs,as]=lp2lp(bp,ap,wc);

2、tf那壹句裏,T沒有定義。觀察了下,這個可以去掉,改為:

sys=tf(bz,az);

改了後的運行結果就差不多了,不截圖,自己運行下吧。現將妳的疑問逐句解釋如下:

[bs,as]=lp2lp(bp,ap,wc); % 將模擬低通濾波器原型 (傳遞函數為bp(s)/ap(s),截止頻率為1),轉換為模擬低通濾波器(截止頻率為wc,傳遞函數為bs(s)/as(s) )

[bz,az]=impinvar(bs,as,Fs); % 采用脈沖響應不變法,將上面的模擬低通濾波器,轉換為數字低通濾波器,傳遞函數為bz(z)/az(z)

sys=tf(bz,az); % 構造傳遞函數bz(z)/az(z)

[H,W]=freqz(bz,az,512,Fs); % 在512點上計算該數字濾波器的頻率響應,返回頻率值W和頻率響應值H。

help 函數名,然後對照著書上的內容細讀,效果會好很多。祝好!

  • 上一篇:華為輸出程序員是什麽工作
  • 下一篇:構成局域網的軟件有哪些?
  • copyright 2024編程學習大全網