1. 程式人生 > >MATLAB學習之濾波器設計

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

採用了窗函式設計方法

語法如下:

各項引數意義:

  1. b:返回的FIR濾波器單位脈衝響應,脈衝響應為偶對稱,長度為n+1
  2. n:濾波器的階數,需要注意的是,設計出的濾波器長度為n+1
  3. 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)

引數意義:

  1. 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]
  2. a:指定這些頻率段的理想幅度值。通帶為1,阻帶為0.a與f相對應。以上例子,應該設定為a=[1 0 1],則表示設計帶阻濾波器。
  3. dev:指定通帶或阻帶內的容許誤差。同樣是上面的例子,要求通帶容許誤差為0.01,阻帶容許誤差為0.02,則dev=[0.01 0.02 0.01]
  4. n:n為濾波器的最小階數
  5. wn:得到濾波器的截止頻率點
  6. beta:計算得到的beta值
  7. ftype:獲得濾波器的型別引數

三.   採用fir2函式設計

使用fir2函式,可以完成任意響應濾波器的設計,即濾波器的幅度頻率響應在指定的頻段範圍內有不同的幅值。,如在0~0.1的理想幅值為1,0.2~0.4的幅值為0.5等。

語法如下:

引數意義:

  1. n及b:濾波器的階數。注意,根據FIR濾波器的結構特點,當設計的濾波器在歸一化頻率為1處的幅度值部位0時,n不能為奇數。
  2. 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]
  3. windom:指定窗函式的種類,其長度為濾波器長度n+1,預設為海明窗。
  4. npt:指定在對幅度響應進行插值的插值點個數,其預設為512
  5. 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函式畫出系統的零極點。