用MATLAB設計FIR濾波器的方法

2021-01-10 電子產品世界

介紹了利用MATLAB信號處理工具箱進行FIR濾波器設計的三種方法:程序設計法、FDATool設計法和SPTool設計法,給出了詳細的設計步驟,並將設計的濾波器應用到一個混和正弦波信號,以驗證濾波器的性能。

本文引用地址:http://www.eepw.com.cn/article/190611.htm

1 前言

數字濾波器是一種用來過濾時間離散信號的數字系統,通過對抽樣數據進行數學處理來達到頻域濾波的目的。根據其單位衝激響應函數的時域特性可分為兩類:無限衝激響應(IIR)濾波器和有限衝激響應(FIR)濾波器。與IIR濾波器相比,FIR的實現是非遞歸的,總是穩定的;更重要的是,FIR濾波器在滿足幅頻響應要求的同時,可以獲得嚴格的線性相位特性。因此,它在高保真的信號處理,如數字音頻、圖像處理、數據傳輸、生物醫學等領域得到廣泛應用。

2 FIR濾波器的窗函數設計法

FIR濾波器的設計方法有許多種,如窗函數設計法、頻率採樣設計法和最優化設計法等。窗函數設計法的基本原理是用一定寬度窗函數截取無限脈衝響應序列獲得有限長的脈衝響應序列,主要設計步驟為:

(1) 通過傅立葉逆變換獲得理想濾波器的單位脈衝響應hd(n)。

(2) 由性能指標確定窗函數W(n)和窗口長度N。

(3) 求得實際濾波器的單位脈衝響應h(n), h(n)即為所設計FIR濾波器係數向量b(n)。

(4) 檢驗濾波器性能。

本文將針對一個含有5Hz、15Hz和30Hz的混和正弦波信號,設計一個FIR帶通濾波器,給出利用MATLAB實現的三種方法:程序設計法、 FDATool設計法和SPTool設計法。參數要求:採樣頻率fs=100Hz,通帶下限截止頻率fc1=10 Hz,通帶上限截止頻率fc2=20 Hz,過渡帶寬6 Hz,通阻帶波動0.01,採用凱塞窗設計。

2 程序設計法

MATLAB信號處理工具箱提供了各種窗函數、濾波器設計函數和濾波器實現函數。本文的帶通濾波器設計及濾波程序如下:
[n,Wn,beta,ftype]=kaiserord([7 13 17 23],[0 1 0],[0.01 0.01 0.01],100);
%得出濾波器的階數n=38,beta=3.4
w1=2*fc1/fs; w2=2*fc2/fs;%將模擬濾波器的技術指標轉換為數字濾波器的技術指標
window=kaiser(n+1,beta);%使用kaiser窗函數
b=fir1(n,[w1 w2],window);使用標準頻率響應的加窗設計函數fir1
freqz(b,1,512);%數字濾波器頻率響應
t = (0:100)/Fs;
s = sin(2*pi*t*5)+sin(2*pi*t*15)+sin(2*pi*t*30);%混和正弦波信號
sf = filter(b,1,s);%對信號s進行濾波

程序執行的結果如圖1所示:


(1)濾波器幅頻特性和相頻特性 (2)濾波前後的波形
圖1 濾波器特性和濾波效果圖

濾波器相關文章:濾波器原理

濾波器相關文章:濾波器原理

電源濾波器相關文章:電源濾波器原理


相關焦點

  • 一種改進型的FIR數字濾波器設計
    fir系統有自己突出的優點:系統總是穩定的;易實現線性相位;允許設計多通帶(或多阻帶)濾波器,後兩項都是iir系統不易實現的。fir數字濾波器的設計方法有多種,如窗函數設計法、頻率採樣法和chebyshev逼近法等。隨著matlab軟體尤其是matlab的信號處理工作箱的不斷完善,不僅數字濾波器的計算機輔助設計有了可能,而且還可以使設計達到最優化。
  • Matlab輔助DSP設計FIR數字濾波器
    數字濾波器由於其精度高、穩定性好、使用靈活等優點,廣泛應用在各種數位訊號處理領域。數字濾波器根據衝擊響應函數的時域特性,可以分為FIR(有限長衝擊響應濾波器)和IIR(無限長衝擊響應濾波器)。FIR濾波器與IIR濾波器相比,具有嚴格的線性相位,幅度特性可任意等優點。而且,FIR濾波器的單位抽樣響應是有限長的,故一定是穩定的,他又可以用快速傅立葉變換(FFT)算法來實現過濾信號,可大大提高運算效率。
  • MATLAB常用的FIR濾波器設計方法之窗函數法
    FIR濾波器很多工科出身的人都不會陌生,在我們的學習和工作中,也常常需要設計FIR濾波器。因為FIR濾波器有兩個特點:濾波器是穩定的以及具有線性相位。FIR濾波器在信號處理相關領域當然也包括本人所在的雷達信號處理領域有著廣泛的應用。本文主要介紹MATLAB最常用的FIR濾波器設計方法之窗函數法。其他的方法將在另一章中介紹。
  • 什麼是fir數字濾波器 什麼叫FIR濾波器
    在實際中,所有的DSP濾波器必須用有限精度(有限bit數目)實現,而在IIR濾波器中使用有限精度會產生很大的問題,由於採用的是反饋電路,因此IIR通常用非常少的bit實現,設計者就能解決更少的與非理想算術有關的問題。* 可以用小數實現. 不像IIR濾波器,FIR濾波器通常可能用小於1的係數來實現。(如果需要,FIR濾波器的總的增益可以在輸出調整)。
  • 基於FDATool的FIR濾波器設計方法(一)
    FIR 濾波器廣泛應用於數位訊號處理中,主要功能就是將不感興趣的信號濾除,留下有用信號。FIR濾波器是全零點結構,系統永遠穩定;並且具有線性相位的特徵,在有效頻率範圍內所有信號相位上不失真。
  • 基於FPGA+MATLAB的串行多階FIR濾波器設計
    摘要 FIR濾波器的設計分為濾波器係數計算和濾波器結構的具體兩個部分。2 使用MatIab Fdatool設計FIR濾波器FDATool(Fliter Design & Analysis Tool)是Matlab信號處理工具箱專用的濾波器設計分析工具,操作簡單、靈活,可採用多種方法設計FIR和IIR濾波器。在Matlab命令窗口輸入FDATool後回車就會彈出FDATool界面。
  • matlab中的成型濾波器設計
    matlab 中成型濾波器設計有好幾個函數:rcosineFd=9600;Fs=38.4e3;[num,den] = rcosine(Fd,Fs,'sqrt',0.25);freqz(num);其中的Fd表示輸入數據的採樣率
  • 基於Matlab的FIR數字濾波器設計
    摘要:提出FIR敷字濾波器的設計方案,並基於Matlab實現濾波仿真。通過使用Matlab信號處理工具箱提供的函數,選擇適當的窗函數編寫程序,其中窗函數按照實際信號的處理需求,參數折中選擇。實驗獲得了比較理想的濾波器特性,可以實現較好的濾波作用。
  • 基於Matlab的FIR數字濾波器設計方案
    相對於IIR數字濾波器,FIR濾波器以其線性相位的極大優勢得到了更加長足的發展。數字濾波器可以用硬體或軟體兩種方式來實現,而後者的優點是可以通過改變濾波器參數去調整整體性能,而MATLAB所提供的信號處理工具箱具有強大的函數功能,它不僅可以用來設計數字濾波器,還可以使設計達到最憂化,因此它成為了FIR數字濾波器設計的強有力的工具。
  • 基於MATLAB的理想低通濾波器的設計
    低通濾波器在信號處理中的作用等同於其它領域如金融領域中移動平均數(moving average)所起的作用;低通濾波器有很多種,其中,最通用的就是巴特沃斯濾波器和切比雪夫濾波器。 數字濾波器設計流程圖
  • FIR與IIR濾波器的區別與特點比較
    圖2 IIR濾波器機構的表示方法 在matlab下設計IIR濾波器可使用buttterworth函數設計出巴特沃斯濾波器,使用cheby1函數設計出契比雪夫i型濾波器,使用cheby2設計出契比雪夫II型濾波器
  • 用頻率採樣法設計FIR濾波器
    有限長脈衝響應(FIR)數字濾波器由於設計靈活,濾波效果好以及過渡帶寬易控制,因此在數位訊號處理領域得到了廣泛的應用。FIR數字濾波器的典型設計方法主要有窗函數法和頻率採樣法。正確理解和掌握這兩種設計方法是學習FIR數字濾波器的一個重要環節。
  • Matlab在FIR數字濾波器中的應
    提出FIR數字濾波器的設計方案,並基於Matlab實現濾波仿真。通過使用Matlab信號處理工具箱提供的函數,選擇適當的窗函數編寫程序,其中窗函數按照實際信號的處理需求,參數折中選擇。實驗獲得了比較理想的濾波器特性,可以實現較好的濾波作用。而且在實際應用中只需按需求修改濾波器參數,並結合程序的相應改動,即可實現不同功能的濾波器。
  • 基於MATLAB的數字基帶傳輸的 FIR濾波器的設計
    為了解決理想低通特性存在的問題,可採用升餘弦滾降特性的系統,以使理想低通濾波器的邊緣緩慢下降,並使振幅特性在滾降段中心頻率處呈奇對稱,從而保證滿足奈奎斯特第一準則。這種系統可減小碼間串擾和位定時誤差。 由於FIR數字濾波器可實現對升餘弦滾降特性的近似,故本文經過FIR數字濾波器設計來對各種窗函數進行選擇,並通過窗函數法實現對升餘弦特性低通濾波器的設計,同時用MATIAB來仿真實現。
  • 用matlab設計的IIR濾波器源程序-IIR一階低通/高通
    用matlab設計的IIR濾波器源程序(1)IIR一階低通濾波器 P576clear;fi=1;fs=10;Gc2=0.9;wc=2*pi*fi/fs; omegac=tan(wc/2);alpha=(sqrt
  • FIR濾波器設計方案
    採用了一種基於DSPBuilder的FPGA設計方法,使FIR濾波器設計較為簡單易行,並能滿足設計要求。 2 FIR濾波器介紹 2.1 FIR濾波器設計的原理 FIR濾波器的數學表達式可用差分方程(1)來表示:
  • matlab濾波器設計-IIR濾波器的設計與仿真
    本文引用地址:http://www.eepw.com.cn/article/150648.htm2 數字濾波器及傳統設計方法 數字濾波器可以理解為是一個計算程序或算法,將代表輸入信號的數字時間序列轉化為代表輸出信號的數字時間序列,並在轉化過程中,使信號按預定的形式變化。
  • 基於FPGA的高效FIR濾波器設計與實現
    摘要: 給出了一種基於FPGA的數字濾波器的設計方法。該方法先通過MATLAB設計出一個具有具體指標的FIR濾波器, 再對濾波器係數進行處理, 使之便於在FPGA中實現, 然後採用基於分布式算法和CSD編碼的濾波器結構進行設計, 從而避免了乘法運算, 節約了硬體資源,其流水線的設計方式也提高了運行速度。Matlab和Modelsim仿真表明, 該設計功能正確, 能實現快速濾波。
  • 基於Matlab和Visual C++的數字濾波器設計方法
    所以文中提出一種以模擬濾波器為基準,設計具有相同功能而且參數可調的數字濾波器的方法。並以二階RC無源低通濾波電路為例對此過程進行說明,與模擬濾波電路和傳統的數字濾波相比,該方法不僅比傳統的數字濾波算法簡單快捷,而且可有效防止模擬電路中器件的寄生參數、精度、溫度等的影響,使濾波更加穩定。
  • 基於Matlab的IIR數字濾波器設計
    數字濾波器在數位訊號處理中起著非常重要的作用,在信號的過濾、檢測與參數的估計等方面,是使用最為廣泛的一種線性系統。  實現數字濾波器的方法有兩種,一是採用計算機軟體進行,就是把所要完成的工作通過程序讓計算機來實現;二是設計專用的數字處理硬體。這個地方主要用到的就是第一種方法。即是用Mafiab提供的信號處理工具箱來實現數字濾波器。