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函數畫出系統的零極點。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章