MATLAB學習之濾波器設計
MATLAB
進位制之間的轉換
1. 十進位制整數轉二進位制函式dec2bin
如果已知絕對值小於1的十進位制數D,如何轉換成B位元的二進位制數原碼?
Dec2bin(round(abs(D)*2^(B-1))+(2^(B-1))*(D<0),B)
2. 十進位制整數轉換成補碼形式的二進位制數
Dec2bin(round(D*2^(B-1))+2^B*(D<0),B)
規定:窗函式以w_開頭(window),濾波器係數以b_開頭,量化濾波器係數以Q_開頭(quantization),頻率響應(dB單位)以f_開頭(就相當於頻率響應的縱座標f)
FIR濾波器的MATLAB設計
一. 採用fir1
採用了窗函式設計方法
語法如下:
各項引數意義:
- b:返回的FIR濾波器單位脈衝響應,脈衝響應為偶對稱,長度為n+1
- n:濾波器的階數,需要注意的是,設計出的濾波器長度為n+1
- Wn:濾波器的截止頻率(歸一化)。需要注意的是,wn的取值範圍為0<wn<1,1對應為訊號取樣頻率的1/2;
如果wn是單個數值,且ftype引數為low,則表示設計截止頻率為wn的低通濾波器,如ftype引數為high,則表示設計截止頻率為wn的高通濾波器;
如果wn是由兩個陣列成的向量[wn1,wn2],ftype為stop,則表示設計帶阻濾波器,ftype為bandpass,則表示設計帶通濾波器;
如果wn是由多個數組成的向量,則表示根據ftype的值設計多個通帶或阻帶範圍的濾波器,ftype為DC-1,表示設計的第一個頻帶為通帶,ftype為DC-0,表示設計的第一個頻帶為阻帶。
4.window:指定使用的窗函式向量,預設為海明窗(Hamming),最常用的窗函式有漢寧窗(Hanning),海明窗(Hamming),布拉克曼窗(Blackman)和凱塞窗(Kaiser),可通過輸入help window查詢(當凱塞窗函式的貝塔值取7.856時,凱塞窗具有最好的效能)
5.noscale:指定是否歸一化濾波器的幅度
注意:fir1函式智慧選擇濾波器的截止頻率和階數,不能選擇濾波器通帶,阻帶衰減,過渡頻寬等引數。
二. 採用kaiserord函式設計
語法如下:[n,wn,beta,filtype]=kaiserord(f,a,dev,fs)
引數意義:
- f及fs:f是一個向量,其中的元素為待設計濾波器的過渡帶的起始點和結束點。如果沒有fs引數,f中元素的取值範圍為0~1,即相對於取樣頻率一半的歸一化頻率;如果有fs引數,則fs為訊號取樣頻率,f中元素即為實際的截止頻率。如,設計濾波器的過渡頻寬為1000~1200hz,2000~2100hz,訊號取樣頻率為8000hz;如沒有設定fs引數,則f=[0.25 0.3 0.5 0.525];如設定fs為8000,則f=[1000 1200 2000 2100]
- a:指定這些頻率段的理想幅度值。通帶為1,阻帶為0.a與f相對應。以上例子,應該設定為a=[1 0 1],則表示設計帶阻濾波器。
- dev:指定通帶或阻帶內的容許誤差。同樣是上面的例子,要求通帶容許誤差為0.01,阻帶容許誤差為0.02,則dev=[0.01 0.02 0.01]
- n:n為濾波器的最小階數
- wn:得到濾波器的截止頻率點
- beta:計算得到的beta值
- ftype:獲得濾波器的型別引數
三. 採用fir2函式設計
使用fir2函式,可以完成任意響應濾波器的設計,即濾波器的幅度頻率響應在指定的頻段範圍內有不同的幅值。,如在0~0.1的理想幅值為1,0.2~0.4的幅值為0.5等。
語法如下:
引數意義:
- n及b:濾波器的階數。注意,根據FIR濾波器的結構特點,當設計的濾波器在歸一化頻率為1處的幅度值部位0時,n不能為奇數。
- f及m:f的取值為0~1,對應於濾波器的歸一化頻率,m用於設定對應頻段範圍內的理想幅值。如要求的濾波器在0~0.125內幅值為1,0.125~0.25為0.5,0.25~0.5為0.25,0.5~1為0.125,則f=[0 0.125 0.125 0.25 0.25 0.5 0.5 1],m=[1 1 0.5 0.5 0.25 0.25 0.125 0.125]
- windom:指定窗函式的種類,其長度為濾波器長度n+1,預設為海明窗。
- npt:指定在對幅度響應進行插值的插值點個數,其預設為512
- lap:指定對幅度響應進行插值時,對於不連續點轉變成連續時的點數,其預設值是25
區別:
1.stem和plot
stem是離散函式,plot是連續函式
常用的訊號處理函式:
1. 隨機訊號函式
隨機訊號函式:Rand(1,N)和randn(1,N)
2. 方波訊號函式
Square(T)和Square(T,DUTY),其實DUTY為正值區域在一個週期的比例,如DUTY=50時,產生方波。
3. 鋸齒波訊號函式
Sawtooth(T)和sawtooth(T,WIDTH)
4. 正弦波訊號函式
Sin(2*pi*f*t)
常用訊號分析級處理函式
1. 濾波函式
Filter(b,a,x):分子項係數依次從大到小排列成一個行矩陣b,分母項係數依次從大到小排列成一個行矩陣a,x為輸入訊號序列。
2. 單位抽樣響應函式
Impz(b,a,p),其中a,b同上,p為計算的資料點數
3. 頻率抽樣響應函式
Freqz(b,a,n,Fs): 其中a,b同上,n為在[0 Fs/2]範圍內計算的頻率點數量,Fs為取樣頻率。
4. 零極點增益函式
Root函式計算系統的零極點,zplane函式畫出系統的零極點。