實驗5基於Matlab的數字濾波器設計

2022-12-11 12:12:03 字數 2772 閱讀 2971

實驗目的:加深對數字濾波器的常用指標和設計過程的理解。

實驗原理:低通濾波器的常用指標如下所述,其典型規格如下:

通帶邊緣頻率阻帶邊緣頻率:

通帶起伏通帶峰值起伏:

阻帶起伏最小阻帶衰減:

數字濾波器有iir和fir兩種型別,他們的特點和設計方法不同。

一、窗函式法設fir濾波器

在matlab中產生窗函式十分簡單:

(1) 矩形窗

呼叫格式:w=boxcar(n) ,根據長度n產生乙個矩形窗w。

(2) 三角窗

呼叫格式:w=triang(n) ,根據長度n產生乙個三角窗w。

(3)漢寧窗

呼叫格式:w=hanning(n) ,根據長度n產生乙個漢寧窗w。

(4)漢明窗

呼叫格式:w=hamming(n) ,根據長度n產生乙個漢明窗w。

(5)布萊克曼窗

呼叫格式:w=blackman(n) ,根據長度n產生乙個布萊克曼窗w。

基於窗函式的fir濾波器設計利用matlab提供的函式firl來實現。

呼叫格式:firl(n,wn,』ftype』,window),n為階數,wn是截止頻率(如果輸入是形如[w1 w2]的向量時,本函式將設計帶通濾波器,其通帶為w11、設計乙個長度為8的線性相位fir濾波器。

window=boxcar(8); b=fir1(7,0.4,window); freqz(b,1); window=blackman(80;

b=fir1(7,0.4,window); freqz(b,1);

2、設計線性相位帶通濾波器,其長度n=15,上下邊帶截止頻率分別為w1=0.3,w2=0.5

window=blackman(16); b=firl(15,[0.3 0.5],window); freqz(b,1);

3、設計指標為,的底通濾波器。

見課本p197。

二、iir濾波器的實現

(1)脈衝響應不變法設計數字butterworth濾波器

呼叫格式:[bz,az]=impinvar(b,a,),再給定模擬濾波器引數b,a和取樣頻率的前提下,計算數字濾波器的引數。兩者的衝激響應不變,即模擬濾波器的衝激響應按取樣後等同於數字濾波器的衝激響應。

(2)利用雙線性變換法設計數字濾波器butterworth濾波器

呼叫格式: [bz,az]=bilinear(b,a,) ,根據給定的分子b,分母係數a和取樣頻率,根據雙線性變換將模擬濾波器變換成離散濾波器,具有分子係數向量和分母係數向量

4、取樣頻率為1hz,通帶臨界頻率0.2hz,通帶內衰減小於1db();阻帶臨界頻率,阻帶內衰減大於25db()。設計乙個數字濾波器滿足以上引數。

%直接設計數字濾波器

[n,wn]=buttord(0.2,0.3,1,25); [b,a]=butter(n,wn); freqz(b,a,512,1); %脈衝響應不變發設計數字濾波器

[n,wn]=buttord(0.2,0.3,1,25,'s'); [b,a]=butter(n,wn,'s'); freqz(b,a) [bz,az]=impinvar(b,a,1);

freqz(bz,az,512,1); %雙線性變換法設計butterworth數字濾波器

[n,wn]=buttord(0.2,0.3,1,25,'s'); [b,a]=butter(n,wn,'s'); freqz(b,a); [bz,az]=bilinear(b,a,1); freqz(bz,az,512,1);

實驗內容:利用matlab程式設計設計乙個數字帶通濾波器,指標要求如下:

通帶邊緣頻率:通帶峰值起伏:

阻帶邊緣頻率:,最小阻帶衰減: b)。

分別用iir和fir兩種數字濾波器型別進行設計。

實驗要求:給出iir數字濾波器引數和fir數字濾波器的衝激響應,繪出它們的幅度和相位頻響曲線,討論它們各自的實現形式和特點。

參考程式:

(1) iir數字濾波器實現(巴特沃什)

%design of a butterworth bandpass digital filter

ws=[0.3 0.75];wp=[0.45 0.65];rp=1;rs=40;

%estimate the filter order

[n1,wn1]=buttord(wp,ws,rp,rs);

%design the filter

[num,den]=butter(n1,wn1); [g,w,pha]=gain(num,den);

%plot the gain and phase response

subplot(1,2,1); plot(w/pi,g); grid; axis([0 1 -60 5]); xlabel('\omega/\pi'); ylabel('gain in db');

title('巴特沃什帶通濾波器增益響應');

subplot(1,2,2); plot(w/pi,pha); grid; xlabel('\omega/\pi'); ylabel('phase');

title('巴特沃什帶通濾波器相位響應');

子程式function[g,w,pha]=gain(num,den)

%computes the gain function in db of a

%transfer function at 256 equally spaced points

%on the unit circlr

w=0:pi/255:pi; h=freqz(num,den,w); g=20*log10(abs(h)); pha=angle(h);

實驗5基於MATLAB的數字濾波器設計

一 實驗原理 在matlab中,可以用下列函式輔助設計iir數字濾波器 1 利用buttord和cheb1ord可以確定低通原型巴特沃斯和切比雪夫濾波器的階數和截止頻率 2 num,den butter n,wn 巴特沃斯 和 num,den cheby1 n,wn num,den cheby2 n...

數學實驗報告 基於matlab

西安交通大學 實驗報告 課程 高數實驗 班級 自動化32 姓名 張文傑 學號 2130504049 日期 2014年4月20日 1 計算值其它公式 請按照上述公式分別程式設計計算並與 1 就精度與疊加次數進行比較,能得出什麼結論?解 1 按照以下的程式得到n取不同的值 1 式計算的的近似值 form...

MATLAB數字的顯示方法

matlab中format函式在控制輸出格式中的使用方法如下 format 預設格式 format short 5字長定點數 format long 15字長定點數 format short e 5字長浮點數 format long e 15字長浮點數 format short g format l...