基于Python的FIR數(shù)字濾波器設(shè)計(jì)-第1篇_第1頁(yè)
基于Python的FIR數(shù)字濾波器設(shè)計(jì)-第1篇_第2頁(yè)
基于Python的FIR數(shù)字濾波器設(shè)計(jì)-第1篇_第3頁(yè)
基于Python的FIR數(shù)字濾波器設(shè)計(jì)-第1篇_第4頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 基于Python的FIR數(shù)字濾波器設(shè)計(jì) Summary:數(shù)字濾波器因具備應(yīng)用靈活、穩(wěn)定、處理精度高等優(yōu)點(diǎn)被廣泛應(yīng)用于信號(hào)處理等領(lǐng)域?,F(xiàn)介紹了在Anaconda開發(fā)環(huán)境下,基于Python的FIR數(shù)字濾波器仿真設(shè)計(jì)方法,為后續(xù)基于Python的數(shù)字信號(hào)處理方面的教學(xué)、科研提供了參考。Key:FIR數(shù)字濾波器;Python;數(shù)字信號(hào)處理0 引言數(shù)字濾波器作為信號(hào)處理的核心設(shè)備之一,在工業(yè)生產(chǎn)、科學(xué)研究等領(lǐng)域有著廣泛應(yīng)用。目前在科研和教學(xué)領(lǐng)域,數(shù)字濾波器主要基于Matlab軟件進(jìn)行設(shè)計(jì),隨著國(guó)外軟件公司逐漸限制部分高校使用Matlab軟件,基于開源軟件平臺(tái)進(jìn)行數(shù)字濾波器設(shè)計(jì)顯得十分重要。本文主要介

2、紹了在Anaconda開發(fā)環(huán)境下,基于Python的有限長(zhǎng)單位脈沖響應(yīng)(FIR)數(shù)字濾波器的設(shè)計(jì)方法。1 Anaconda開發(fā)環(huán)境簡(jiǎn)介Anaconda作為Python的一個(gè)開源發(fā)行版本,主要面向科學(xué)計(jì)算,它預(yù)裝了很多常用的第三方庫(kù),提供了包管理與環(huán)境管理的功能,可以方便解決各種第三方包的安裝問(wèn)題,其自帶的Spyder集成開發(fā)環(huán)境及IPython交互式編程環(huán)境都有助于提高編程效率1。本文程序均調(diào)用了Python科學(xué)計(jì)算包中的基礎(chǔ)數(shù)據(jù)處理庫(kù)numpy、圖表繪制庫(kù)matplotlib及數(shù)值計(jì)算庫(kù)scipy。2 FIR數(shù)字濾波器設(shè)計(jì)2.1 窗函數(shù)法設(shè)計(jì)線性相位FIR濾波器設(shè)計(jì)思路:假設(shè)希望逼近的理想濾

3、波器的頻率響應(yīng)為Hd(ej),如果能求出其單位脈沖響應(yīng)hd(n),經(jīng)過(guò)Z變換可得到濾波器的系統(tǒng)函數(shù)。因hd(n)是無(wú)限長(zhǎng)的,需用一個(gè)有限長(zhǎng)的N點(diǎn)窗函數(shù)序列w(n)去截?cái)啵ㄏ喑耍?,截?cái)嗪蟮男蛄袨閔(n),再求出加窗后實(shí)際的頻率響應(yīng)H(ej)。若結(jié)果不滿足要求,則需考慮改變窗的形狀或窗長(zhǎng)的點(diǎn)數(shù)N2。下面設(shè)計(jì)一個(gè)34階的高通濾波器,歸一化截止角頻率為0.48,使用具有50 dB旁瓣紋波衰減的Chebyshev窗設(shè)計(jì)。Python程序與數(shù)字高通濾波器的幅頻響應(yīng)如圖1所示,也可選擇其他窗函數(shù)進(jìn)行設(shè)計(jì)。2.2 頻率采樣法設(shè)計(jì)FIR濾波器該方法從頻域出發(fā),對(duì)理想的頻率響應(yīng)Hd(ej)進(jìn)行等間隔采樣得到Hd(

4、k),并以此作為實(shí)際FIR濾波器頻率特性的離散樣本H(k),H(k)再通過(guò)IDFT可求出有限長(zhǎng)序列h(n),同樣可利用H(k)求出FIR濾波器的系統(tǒng)函數(shù)H(Z)及頻率響應(yīng)H(ej)。下面設(shè)計(jì)一個(gè)線性相位低通FIR數(shù)字濾波器,使得p=0.2,Rp=0.25 dB,s=0.3,As=40 dB。當(dāng)采樣點(diǎn)數(shù)M初步設(shè)置為20時(shí),最小阻帶衰減不到-20 dB。為進(jìn)一步增加阻帶衰減,可增加采樣點(diǎn)數(shù)M,還可在通帶和阻帶交界處插入一個(gè)或幾個(gè)01的采樣值來(lái)改善頻率特性。這里直接選擇M=40,在過(guò)渡帶內(nèi)k=5和k=35處,增設(shè)H(k)=0.39。Python程序與數(shù)字低通濾波器的幅頻響應(yīng)如圖2所示,可以看出此時(shí)阻

5、帶最小衰減可達(dá)-40 dB以上。2.3 等波紋最佳逼近法設(shè)計(jì)FIR濾波器該方法克服了窗函數(shù)設(shè)計(jì)法和頻率采樣法的缺點(diǎn),使最大誤差最小化,并使加權(quán)逼近誤差在整個(gè)逼近頻段上均勻分布。該方法所設(shè)計(jì)的濾波器性價(jià)比高,階數(shù)相同時(shí)可使通帶最大衰減最小、阻帶最小衰減最大,指標(biāo)相同時(shí)可使濾波器階數(shù)最低。為求取滿足等波紋最佳逼近準(zhǔn)則的FIR數(shù)字濾波器的單位脈沖響應(yīng)h(n),目前普遍應(yīng)用的方法是Parks和McCellan提出的一種高效迭代算法雷米茲(Remez)交替算法。下面用雷米茲交替算法設(shè)計(jì)一個(gè)線性相位FIR帶通濾波器,通帶為0.2,0.6,阻帶為0,0.15和0.65,濾波器的階數(shù)為31。Python程序與數(shù)字帶通濾波器的幅頻響應(yīng)如圖3所示。設(shè)計(jì)其他種類數(shù)字濾波器時(shí),需注意Remez函數(shù)相關(guān)參數(shù)的不同格式要求。3 結(jié)語(yǔ)本文介紹了FIR數(shù)字濾波器的常用設(shè)計(jì)思路,給出了基于Python的濾波器仿真設(shè)計(jì)方法,有助于從直觀上比較不同設(shè)計(jì)方法的優(yōu)劣,為后續(xù)基于Python的數(shù)字信號(hào)處理方面的教學(xué)與科研提供了一定的參考。

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論