簡單記錄下在matlab上如何設計出模擬的帶阻濾波器,包括:巴特沃斯濾波器、切比雪夫i型濾波器、切比雪夫ii型濾波器、橢圓型濾波器。
%設計帶阻濾波器
%巴特沃斯、切比雪夫i型、切比雪夫ii型、橢圓型濾波器
clear all;
%wp和ws分別是通帶和阻帶的頻率(截止頻率)。當wp>ws時,為高通濾波器;當wp和ws為二元向量時,為帶通或帶阻濾波器,這是求出的wn也是二元向量
%wp和ws為二元向量
wp=[0.075*2*pi 0.2*2*pi]; %設定通帶頻率
ws=[0.1*2*pi 0.15*2*pi]; %設定阻帶頻率
rp=1; %設定通帶波紋係數
rs=20; %設定阻帶波紋係數
%巴特沃斯濾波器設計
[n,wn]=buttord(wp,ws,rp,rs,'s'); %求巴特沃斯濾波器階數,輸出引數n代表滿足設計要求的濾波器的最小階數,wn是等效低通濾波器的截止頻率
%無論是高通、帶通和帶阻濾波器,在設計中最終都等效於乙個截止頻率為wn的低通濾波器(我現在也不是很理解為啥是這樣,畢竟我也是剛接觸濾波器)
fprintf('巴特沃斯濾波器 n= %4d\n',n); %顯示濾波器階數
[bb,ab]=butter(n,wn,'stop','s'); %求巴特沃斯濾波器係數,即求傳輸函式的分子和分母的係數向量
w=0:0.01:2; %設定模擬頻率
[hb,wb]=freqs(bb,ab,w); %求巴特沃斯濾波器頻率響應
plot(wb/pi,20*log10(abs(hb)),'b'); %作圖
hold on
%切比雪夫i型濾波器設計
[n,wn]=cheb1ord(wp,ws,rp,rs,'s'); %求切比雪夫i型濾波器階數
fprintf('切比雪夫i型濾波器 n= %4d\n',n); %顯示濾波器階數
[bc1,ac1]=cheby1(n,rp,wn,'stop','s'); %求切比雪夫i型濾波器係數,即求傳輸函式的分子和分母的係數向量
[hc1,wc1]=freqs(bc1,ac1,w); %求切比雪夫i型濾波器頻率響應
plot(wc1/pi,20*log10(abs(hc1)),'k'); %作圖
%切比雪夫ii型濾波器設計
[n,wn]=cheb2ord(wp,ws,rp,rs,'s'); %求切比雪夫ii型濾波器階數
fprintf('切比雪夫ii型濾波器 n= %4d\n',n);%顯示濾波器階數
[bc2,ac2]=cheby2(n,rs,wn,'stop','s'); %求切比雪夫ii型濾波器係數,即求傳輸函式的分子和分母的係數向量
[hc2,wc2]=freqs(bc2,ac2,w); %求切比雪夫ii型濾波器頻率響應
plot(wc2/pi,20*log10(abs(hc2)),'r'); %作圖
%橢圓型濾波器設計
[n,wn]=ellipord(wp,ws,rp,rs,'s'); %求橢圓型濾波器階數
fprintf('橢圓型濾波器 n= %4d\n',n); %顯示濾波器階數
[be,ae]=ellip(n,rp,rs,wn,'stop','s'); %求橢圓型濾波器係數,即求傳輸函式的分子和分母的係數向量
[he,we]=freqs(be,ae,w); %求橢圓型濾波器頻率響應
%作圖plot(we/pi,20*log10(abs(he)),'g');
axis([0 max(we/pi) -30 2]);
legend('巴特沃斯濾波器','切比雪夫i型濾波器','切比雪夫ii型濾波器','橢圓型濾波器');
xlabel('角頻率/');
ylabel('幅值/db');
line([0 max(we/pi)],[-20 -20],'color','k','linestyle','--');
line([0 max(we/pi)],[-1 -1],'color','k','linestyle','--');
line([0.15 0.15],[-30 2],'color','k','linestyle','--');
line([0.4 0.4],[-30 2],'color','k','linestyle','--');
執行結果如下:
巴特沃斯濾波器 n= 4
切比雪夫i型濾波器 n= 3
切比雪夫ii型濾波器 n= 3
橢圓型濾波器 n= 2
matlab帶阻濾波器設計
程式設計 任務書中給出的要求為中心頻率200hz,頻寬150hz。故設上通帶截止頻率為110hz,下通帶截止頻率290hz,阻帶上限頻率140hz,阻帶下限頻率260hz。此處僅以boxcar窗為示例,其他窗函式的程式 基本相同,只是在window boxcar n n ceil 1.8 pi de...
論高通濾波器,帶阻濾波器,陷波濾波器
首先,對一副影象進行如下二維傅利葉變換。我們將u 0和v 0帶上式,我們可以得到如下式子。根據上式,可以到f 0,0 的值是非常大的。這裡,我們將 f 0,0 稱為直流分量,直流分量比其他的成分要大好幾個數量級。所以,這也就是傅利葉譜為什麼需要使用對數變換才能看清楚的原因。這裡,對於高通濾波器而言,...
matlab設計濾波器
陳懷琛的 數字訊號處理教程 matlab釋義與實現 從效能上來說,iir濾波器傳遞函式包括零點和極點兩組可調因素,對極點的惟一限制是在單位圓內。因此可用較低的階數獲得高的選擇性,所用的儲存單元少,計算量小,效率高。但是這個高效率是以相位的非線性為代價的。選擇性越好,則相位非線性越嚴重。fir濾波器傳...