女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

FIR數字濾波器設計

OpenFPGA ? 來源:OpenFPGA ? 作者:OpenFPGA ? 2022-04-05 09:47 ? 次閱讀

今天給大俠帶來FIR數字濾波器設計,由于篇幅較長,分三篇。今天帶來第三篇,FIR數字濾波器設計,包括窗函數法設計FIR濾波器、頻率采樣法設計FIR濾波器以及基于firls函數和remez函數的最優化方法設計FIR濾波器。話不多說,上貨。

這里也超鏈接了上、中兩篇,方便參考學習。

FIR數字濾波器設計(上)

FIR數字濾波器設計(中)

數字濾波器的輸入輸出均為數字信號信號通過數字濾波器后,可以改變頻率成分的相對比例或濾除某些頻率成分。數字濾波器可以分為IIR數字濾波器和FIR數字濾波器。

本篇只介紹FIR數字濾波器的設計,可以根據所給定的頻率特性直接設計FIR數字濾波器。FIR數字濾波器在保證幅度特性滿足要求的同時,能夠做到嚴格的線性特性。

本篇采用了窗函數法、頻率采樣法以及基于firls函數和remez函數的最優化方法設計FIR濾波器。對FIR濾波器進行了詳細的理論分析,并且對應于每種方法都給出了設計實例。通過編寫MATLAB語言程序,運行程序,得到幅頻和相頻特性圖。

對于窗函數和firls函數設計的濾波器,還通過建立Simulink系統模塊進行仿真,觀察濾波器濾波情況。

FIR數字濾波器設計

FIR數字濾波器的設計方法有窗函數法、頻率采樣法和基于firls函數和remez函數的最優化方法。MATLAB語言中的數字信號處理工具箱,提供了一些濾波器的函數,使FIR濾波器的運算更加方便和快捷。

在MATLAB中提供的濾波函數有fir1(),此函數以經典的方法實現加窗線性相位FIR數字濾波器設計,可以設計出低通、高通、帶通和帶阻濾波器;fir2函數設計的FIR濾波器,其濾波的頻率特性由矢量f和m決定,f和m分別為濾波器的期望幅頻響應的頻率相量和幅值相量。

Firls()和remez()的基本格式用于設計I型和II型線性相位FIR濾波器,I型和II型的區別是偶函數還是奇函數。freqz()用于求數字濾波器的頻率響應。并且提供了各種窗函數的函數,比如,hamming()是海明窗函數,hanning()是漢寧窗函數,kaiser()是凱澤窗函數,使在設計的過程中,不用自己重新設計窗函數。

Simulink是MATLAB眾多工具包中的一員,對于建模,Simulink提供了一個圖形化的用戶界面(GUI)。Simulink包括一個復雜的由接收器、信號源、線性和非線性組件以及連接件組成的模塊庫。定義完一個模型后,就可以通過Simulink的菜單或者在MATLAB的命令窗口輸入命令對它進行仿真。使用Scopes或者其他的顯示模塊,可以在運行仿真時觀察到仿真的結果。另外,還可以在仿真時改變參數,并且立即就可看到變化。

一、窗函數法設計FIR濾波器

設我們所要設計的FIR濾波器的傳輸函數是3296cc42-b016-11ec-aa7f-dac502259ad0.png32a67746-b016-11ec-aa7f-dac502259ad0.png?是與其對應的單位脈沖響應,因此

32bad880-b016-11ec-aa7f-dac502259ad0.png(3-1)

32cba0ca-b016-11ec-aa7f-dac502259ad0.png?(3-2)

如果我們能夠在3296cc42-b016-11ec-aa7f-dac502259ad0.png已知的情況下,求出32a67746-b016-11ec-aa7f-dac502259ad0.png,經過Z變換可得到濾波器的系統函數。通常情況下理想數字濾波器的單32a67746-b016-11ec-aa7f-dac502259ad0.png位脈沖相應是無限長的,且是非因果序列。獲得有限脈沖響應濾波器的一種可能方法是對32a67746-b016-11ec-aa7f-dac502259ad0.png截取一段33194d7a-b016-11ec-aa7f-dac502259ad0.png來近似代替32a67746-b016-11ec-aa7f-dac502259ad0.png,可是這樣會改變原來的濾波器指標,出現吉布斯效應誤差。

窗函數法就是用被稱為窗函數的有限加權序列w(n)來修正式(1)的傅里葉基數以求得要求的有限脈沖響應序列33194d7a-b016-11ec-aa7f-dac502259ad0.png,即:

334c4af4-b016-11ec-aa7f-dac502259ad0.png(3-3)

w(n)是有限長序列,當n<0或n>N-1時,w(n)=0。

這種方法的重點在于選擇某種合適的窗函數。要求窗函數主瓣寬度盡可能窄,以獲得最小的過渡帶;旁瓣相對值盡可能小,以使得通帶波紋小,并且阻帶衰減大。

下面介紹幾種常用的窗函數:

1、矩形窗(Rectangle Window)

335c9daa-b016-11ec-aa7f-dac502259ad0.png(3-4)

其頻率函數為:

336c287e-b016-11ec-aa7f-dac502259ad0.png

(3-5)

2、三角形窗(Bartlett Window)

337c6f86-b016-11ec-aa7f-dac502259ad0.png

(3-6)

其頻率函數為:

338df12a-b016-11ec-aa7f-dac502259ad0.png

(3-7)

3、漢寧(Hanning)窗,又稱升余弦窗

33a0b274-b016-11ec-aa7f-dac502259ad0.png

(3-8)

利用傅里葉變換得到頻率函數為:

33b16416-b016-11ec-aa7f-dac502259ad0.png

(3-9)

33c391e0-b016-11ec-aa7f-dac502259ad0.png 時,33d51c30-b016-11ec-aa7f-dac502259ad0.png,所以窗函數的幅度函數為:

33e6a5cc-b016-11ec-aa7f-dac502259ad0.png?(3-10)

4、漢明(Hamming)窗,又稱改進的升余弦窗

33f9970e-b016-11ec-aa7f-dac502259ad0.png

(3-11)

其幅度函數為:

340b00fc-b016-11ec-aa7f-dac502259ad0.png

(3-12)

5、布萊克曼(Blankman)窗,又稱二階升余弦窗

341d6800-b016-11ec-aa7f-dac502259ad0.png(3-13)

其幅度函數為:

342dbe4e-b016-11ec-aa7f-dac502259ad0.png

(3-14)

6、凱澤(Kaiser)窗

343c4c7a-b016-11ec-aa7f-dac502259ad0.png

(3-15)

其中:β是一個可自由選擇的參數,344cba88-b016-11ec-aa7f-dac502259ad0.png是第一類修正零階貝塞爾函數。

上述窗函數的基本參數如下表:

345c20e0-b016-11ec-aa7f-dac502259ad0.png

窗函數法設計濾波器的步驟:

1)根據技術要求確定等待求值濾波器的單位取樣響應32a67746-b016-11ec-aa7f-dac502259ad0.png

2)根據對過渡帶和阻帶衰減的要求,選擇窗函數的形式,并估計窗口長度N。

3)計算濾波器的單位取樣響應33194d7a-b016-11ec-aa7f-dac502259ad0.png

334c4af4-b016-11ec-aa7f-dac502259ad0.png(3-16)

上式中,34a36572-b016-11ec-aa7f-dac502259ad0.png?是前面所選擇好的窗函數。

4)檢驗技術指標是否滿足要求。根據下式計算:

34b4a03a-b016-11ec-aa7f-dac502259ad0.png

(3-17)

如果不滿足要求,根據具體情況重復步驟(2)(3)(4)步,直到滿足要求為止。

本篇以一個FIR濾波器的設計為例說明如何使用MATLAB設計數字濾波器。

設計實例:用窗函數法設計線性相位FIR低通數字濾波器,要求通帶截止頻率Wp=0.4*34c4dd10-b016-11ec-aa7f-dac502259ad0.png,阻帶截止頻率Ws=0.5*34c4dd10-b016-11ec-aa7f-dac502259ad0.png, 通帶衰減不大于3db,阻帶衰減不小于40db。

1、程序如下:

Wp=0.4*pi;Ws=0.5*pi;Wdel=Ws-Wp;N=ceil(8*pi/Wdel);Wn=(0.4+0.5)*pi/2;window=hanning(N+1);b=fir1(N,Wn/pi,window);freqz(b,1,512)

程序執行后所得幅頻和相頻如下圖所示:

34e5b7ec-b016-11ec-aa7f-dac502259ad0.png

2、用Simulink仿真對窗函數設計的低通濾波器進行濾波:

FIR低通濾波器的Simulink仿真模塊圖如下所示:

34f8d46c-b016-11ec-aa7f-dac502259ad0.png

輸入信號:s(t)=sin(30πt)+sin(56πt)+sin(70πt)

數字濾波器參數設置:已知濾波器的階數n=80。

首先在Filter Type中選擇lowpass;

在Design Method選項中選擇FIR Window,接著在Window選項中選取hann;指定Filter Order項中的Specify order為80;

采樣頻率Fs=100Hz,截止頻率Fc=22.5HZ。

設置完以后點擊窗口下方的Design Filter,在窗口上方就會看到所設計濾波器的幅頻響應和相頻響應曲線。

設計界面如下圖所示:

35164ccc-b016-11ec-aa7f-dac502259ad0.png

信號源參數設置:三個信號源的頻率分別是15Hz、28Hz、35Hz :

3530b486-b016-11ec-aa7f-dac502259ad0.png

運行仿真,得波形如下圖所示:

15HZ信號波形如下:

3546a426-b016-11ec-aa7f-dac502259ad0.png

28HZ信號波形如下:

35582692-b016-11ec-aa7f-dac502259ad0.png

35HZ信號波形如下:

356ac63a-b016-11ec-aa7f-dac502259ad0.png

濾波前的疊加波形如下:

3581c6f0-b016-11ec-aa7f-dac502259ad0.png

濾波后波形如下:

3591b70e-b016-11ec-aa7f-dac502259ad0.png

由上圖可知,15Hz、28Hz、35Hz疊加后通過截止頻率為22.5HZ的FIR低通濾波器,輸出與15Hz信號波形相似,其它的高頻被阻隔。

二、頻率采樣法設計FIR濾波器

1、對理想濾波器的系統函數35a2ebc8-b016-11ec-aa7f-dac502259ad0.png進行頻率采樣以得到系統的理想頻響35b3b138-b016-11ec-aa7f-dac502259ad0.png的等間隔采樣值H(k)。

H(k)實際上是所要求的濾波器的單位采樣響應(h(n))的離散傅里葉變換(DFT),如下關系式:

35c38c2a-b016-11ec-aa7f-dac502259ad0.png

(3-18)

35d5da38-b016-11ec-aa7f-dac502259ad0.png

(3-19)

為了減小H(k)的通帶邊緣由于抽樣點的變化而引起的起伏振蕩,可以增加過渡點,加寬過渡帶以減小通帶的起伏。

每一個抽樣值產生一個與35e4a6b2-b016-11ec-aa7f-dac502259ad0.png?成正比,并位移35f3bd0a-b016-11ec-aa7f-dac502259ad0.png的頻率響應,而H(k)與內插函數的線性組合就是FIR濾波器的頻率響應,增加一點過渡可以使阻帶衰減提高到-44~54dB,二點過渡衰減-65~75,三點過渡衰減-85~95dB。

如果不能使過渡帶太寬,同時要求增大阻帶衰減,可以增加取樣點數N,但這樣會增加計算量、延時和誤差。

頻率取樣型FIR濾波器設計步驟:

(1)給定理想濾波器頻率響應35b3b138-b016-11ec-aa7f-dac502259ad0.png

(2)根據過渡帶寬和阻帶衰減確定過渡點數和h(n)的長度N。

361292de-b016-11ec-aa7f-dac502259ad0.png?(3-20)

(3)由IFFT計算IDFT得到:

3624a104-b016-11ec-aa7f-dac502259ad0.png

(3-21)

設計實例:

頻率采樣法設計一個帶通濾波器,

滿足:低阻帶邊緣:w1s=0.2*34c4dd10-b016-11ec-aa7f-dac502259ad0.png;低通帶邊緣:w1p=0.35*34c4dd10-b016-11ec-aa7f-dac502259ad0.png;高通帶邊緣:w2p=0.65*34c4dd10-b016-11ec-aa7f-dac502259ad0.png;高阻帶邊緣:w2s=0.8*34c4dd10-b016-11ec-aa7f-dac502259ad0.png。設計過渡帶中的頻率樣本值為t1和t2,取t1=0.109021,t2=0.59417456。

設計程序如下:

M=40;al=(M-1)/2;l=0:M-1;t1=0.109021;t2=0.59417456;Hrs=[zeros(1,5),t1,t2,ones(1,7),t2,t1,zeros(1,9),t1,t2,ones(1,7),t2,t1,zeros(1,4)];k1=0:floor((M-1)/2);k2=floor((M-1)/2)+1:M-1;angh=[-al*(2*pi)/M*k1,al*(2*pi)/M*(M-k2)];H=Hrs.*exp(j*angh);h=real(ifft(H,M));freqz(h,1,512,1000)

實驗得幅頻相頻特性如下圖所示:

366ebb22-b016-11ec-aa7f-dac502259ad0.png

三、最優化方法設計FIR數字濾波器

MATLAB信號處理工具箱提供了通用的工具函數firls和remez,采用不同的優化方法可以設計最優濾波器和多頻帶濾波器。

firls是fir1和fir2函數的擴展,其基本設計準則是利用最小二乘法使期望的頻率響應和實際的頻率響應之間的整體誤差最小。

Remez函數則利用Parks-McClellan算法設計線性相位FIR濾波器。

該算法能使期望頻率響應和實際頻率響應之間的最大誤差最小。Firls函數設計的濾波器在頻率響應上出現等波紋,因此也叫等波紋濾波器。

函數firls、remez調用的語法規則相同。

1) firls。

其調用格式為:

b=firls(n,f,a)

b=firls(n,f,a,w)

b=firls(n,f,a,’ftype’)

b=firls(n,f,a,w,’ftype’)

該函數用于設計n階FIR濾波器,其幅頻特性由f和a向量確定,f是頻率點向量,其范圍為0~1,是遞增向量;a是指定頻率點的幅度響應,與f必須同長度;b為函數返回的濾波器系數,長度為n+1,且具有偶對稱關系:b(k)=-b(n+2-k), k=1,2,…,n+1;

b=firls(n,f,a,w)則使用權系數w給誤差加權。

b=firls(n,f,a,w,’ftype’)調用形式中,參數’ftype’用于指定所設計的濾波器類型,ftype=Hilbert,為奇對稱的線性相位濾波器。

返回的濾波器系數滿足b(k)=-b(n+2-k), k=1,2,…,n+1;ftype=differentiator,則采用特殊加權技術,生成奇對稱的線性相位濾波器,使低頻段誤差大大小于高頻段誤差。

2) 函數remez的基本調用格式為:b=remez(n,f,a)。

其中各項意義同函數firls所述。

設計實例:

分別使用函數firls和remez函數設計20階帶通濾波器,阻帶頻率為ws1=0.3*34c4dd10-b016-11ec-aa7f-dac502259ad0.png,ws2=0.7*34c4dd10-b016-11ec-aa7f-dac502259ad0.png,通帶頻率為wp1=0.4*34c4dd10-b016-11ec-aa7f-dac502259ad0.png,wp2=0.6*34c4dd10-b016-11ec-aa7f-dac502259ad0.png,并畫出幅頻特性曲線。

1、程序如下所示:

f=[0 0.3 0.4 0.6 0.7 1];m=[0 0 1 1 0 0];n=20;b=firls(n,f,m); %firls函數設計FIR數字濾波器[h,w]=freqz(b); bb=remez(n,f,m); %remez函數設計FIR數字濾波器[hh,w]=freqz(bb);axes('position',[0.2 0.2 0.5 0.5]); plot(w/pi,abs(h),'b:',w/pi,abs(hh),'r-');xlabel('frequency');ylabel('magnitude');grid on;

實驗得幅頻相頻特性如下圖所示:

36b97748-b016-11ec-aa7f-dac502259ad0.png

2、用Simulink仿真對用firls函數設計的帶通濾波器進行濾波:

仿真模塊如下:

36cca12e-b016-11ec-aa7f-dac502259ad0.png

輸入信號:s(t)=sin(20πt)+sin(50πt)+sin(90πt)

數字濾波器參數設置:已知濾波器的階數n=20。

首先在Filter Type中選擇bandpass;

在Design Method選項中選擇FIR least-squares;

指定Filter Order項中的Specify order為20;

采樣頻率Fs=100Hz,Fstop1=15HZ,Fpass1=20HZ,Fpass2=30HZ,Fstop2=35HZ。

設置完以后點擊窗口下方的Design Filter,在窗口上方就會看到所設計濾波器的幅頻響應曲線。

設計界面如下圖所示:

36de4cf8-b016-11ec-aa7f-dac502259ad0.png

信號源參數設置:三個信號源的頻率分別是10Hz、25Hz、45Hz :

36f249b0-b016-11ec-aa7f-dac502259ad0.png

運行仿真,得波形如下圖所示:

(1)10HZ信號波形如下所示:

370dc3ca-b016-11ec-aa7f-dac502259ad0.png

(2) 25HZ信號波形如下所示:

371fee92-b016-11ec-aa7f-dac502259ad0.png

(3)45HZ信號波形如下所示:

37361bd6-b016-11ec-aa7f-dac502259ad0.png

(4)濾波前波形如下所示:

3752c826-b016-11ec-aa7f-dac502259ad0.png

(5)濾波后波形如下所示:

37658e0c-b016-11ec-aa7f-dac502259ad0.png

由以上波形可知,10Hz、25Hz、45Hz疊加后通過通頻帶為20Hz~30Hz的FIR帶通濾波器,輸出與25Hz信號相似,低頻和高頻部分被阻隔。

第三篇就到這里,本篇在數字濾波器的設計過程中,采用的設計方法是基于MATLAB的數字濾波器的設計。設計過程中充分發揮了MATLAB語言編程效率高的特點以及Simulink仿真能力強的特點,完成各種計算與圖形繪制工作,使得數字濾波器的設計變得簡便快捷。通過FIR數字濾波器的設計實例,說明如何利用MATLAB來完成數字濾波器的設計,設計結果的各項性能指標均達到指定要求,Simulink仿真驗證了設計方法的正確性。本篇所述設計過程簡便易行,具有很好的實際運用意義。

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數字濾波器
    +關注

    關注

    4

    文章

    272

    瀏覽量

    47501
  • FIR
    FIR
    +關注

    關注

    4

    文章

    151

    瀏覽量

    34025

原文標題:FIR數字濾波器設計

文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    基于FPGA的FIR數字濾波器設計

    在現代通信信號處理領域中,隨著各種精密計算和快速計算的發展對信號處理的實時性、快速性的要求越來越高。以往的模擬濾波器無法克服電壓漂移、溫度漂移和噪聲等問題,從而帶來了許多誤差和不穩定因素。而數字濾波器具有穩定性高、精度高、設計靈活、實現方便等突出優點。
    的頭像 發表于 03-06 12:31 ?1108次閱讀
    基于FPGA的<b class='flag-5'>FIR</b><b class='flag-5'>數字濾波器</b>設計

    模擬電路在數字濾波器中的作用是什么?

    模擬電路在數字濾波器之前
    發表于 02-12 08:32

    ADS1293內部的數字濾波器是怎么樣的作用?

    請問ADS1293內部的數字濾波器是怎么樣的作用? 從DS中我看到該AFE有數字濾波器,請問它是心電算法中常見的低通濾波器嗎?效果如何?可以配置嗎
    發表于 01-20 07:37

    基于AD51278設計的一個高精度微應變信號采集系統

    的高階斬波穩定調制FIR數字濾波器、輸入多路復用器等功能。可通過內部控制寄存的不同配置得到不同的A/D采樣速率、采樣模式、A/D轉換精度等,支持高速、高精度、低功耗、低速等4種工
    發表于 01-17 07:17

    模擬濾波器數字濾波器的轉換步驟

    將模擬濾波器轉換為數字濾波器是一個涉及多個步驟的過程,旨在保持濾波器性能的同時,適應數字信號處理的需求。以下是將模擬濾波器轉換為
    的頭像 發表于 11-26 10:03 ?1729次閱讀

    ADS1256的數字濾波器時可以自己設置嗎?

    想問下TI,ADS1256的數字濾波器時可以自己設置嗎,還是通過ADC的DATA RATE的設置,默認是設置到相對于的數字濾波
    發表于 11-26 07:13

    數模轉換數字濾波器的結合應用

    數模轉換(DAC)與數字濾波器的結合應用在現代電子系統中非常普遍,這種結合能夠顯著提高系統的性能、精度和可靠性。以下是對數模轉換數字濾波器結合應用的介紹: 一、數模轉換
    的頭像 發表于 11-25 16:20 ?871次閱讀

    ADC3663數字濾波器如何使用呢?

    板上用到了ADC3663,看數據手冊上,它可以有數字濾波功能,甚至不需要前級的抗混疊濾波器(這么理解對嗎)。 我想問下,這個數字濾波器如何使用呢?咱們是否有推薦的資料,如源碼等。 因為看了手冊也不知道從何處著手呢
    發表于 11-18 07:12

    基于FPGA實現FIR數字濾波器

    數字信號處理系統中,有限脈沖響應(finite impulse response,FIR)數字濾波器是一個非常重要的基本單元。近年來,由于FPGA具有高速度、高集成度和高可靠性的特點而得到快速發展
    的頭像 發表于 11-05 16:26 ?1582次閱讀
    基于FPGA實現<b class='flag-5'>FIR</b><b class='flag-5'>數字濾波器</b>

    Δ-Σ ADC中的數字濾波器類型

    電子發燒友網站提供《Δ-Σ ADC中的數字濾波器類型.pdf》資料免費下載
    發表于 09-06 09:50 ?4次下載
    Δ-Σ ADC中的<b class='flag-5'>數字濾波器</b>類型

    數字濾波器的實現方法

    數字濾波器是一種通過對數字信號進行處理來完成對數字信號或模擬信號進行濾波的儀器。其實現方式多樣,可以從硬件和軟件兩個角度進行探討,同時涉及多種數學方法和設計步驟。
    的頭像 發表于 08-20 16:06 ?1797次閱讀

    AMC1210四通道數字濾波器數據表

    電子發燒友網站提供《AMC1210四通道數字濾波器數據表.pdf》資料免費下載
    發表于 08-19 09:15 ?0次下載
    AMC1210四通道<b class='flag-5'>數字濾波器</b>數據表

    數字濾波器的原理和應用

    數字濾波器是一種由數字乘法器、加法器和延時單元組成的算法或裝置,其輸入和輸出均為數字信號。它的主要功能是通過一定的運算關系改變輸入信號所含頻率成分的相對比例或者濾除某些頻率成分,以達到期望的響應特性。
    的頭像 發表于 08-05 16:19 ?2371次閱讀
    <b class='flag-5'>數字濾波器</b>的原理和應用

    iir濾波器fir濾波器的優勢和特點

    (Infinite Impulse Response)濾波器是一種具有無限脈沖響應的數字濾波器。它的輸出不僅取決于當前的輸入值,還取決于之前的輸入值。IIR濾波器通常由遞歸濾波器實現,
    的頭像 發表于 07-19 09:28 ?2770次閱讀

    數字濾波器是如何工作的

    之前我們在說明數字濾波器的時候,多為Python來進行示例驗證的。實際應用中,多為C/C++,無論是在嵌入式系統中,還是PC機上,尤其對于時間或者實時性要求比較嚴格的情況下,C/C++應該是我們的首選。
    的頭像 發表于 06-13 10:09 ?820次閱讀
    <b class='flag-5'>數字濾波器</b>是如何工作的