<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 一種改進(jìn)型的FIR數字濾波器設計

一種改進(jìn)型的FIR數字濾波器設計

——
作者:曹斌芳,何怡剛,胡惟文,傅祖清 時(shí)間:2007-01-26 來(lái)源:《現代電子技術(shù)》 收藏



在數字信號處理中,濾波占有極其重要的作用,數字濾波器是譜分析、雷達信號處理、通信信號處理應用中的基本處理算法。目前常用的濾波器設計方法普遍采用matlab仿真,dsp實(shí)現。但這一傳統設計方法需要的開(kāi)發(fā)周期較長(cháng),且設計過(guò)程反復進(jìn)行,非常不便。

本文引用地址:http://dyxdggzs.com/article/20805.htm

針對這一問(wèn)題,出現了系統級設計方法的構想將matlab算法仿真和dsp的實(shí)現融合在一起。文中應用matlab link for ccs development tools進(jìn)行系統級設計,來(lái)完成fir濾波器的設計。

1 fir數字濾波器設計的基本步驟

數字濾波器根據其沖激響應函數的時(shí)域特性,可分為2種,即無(wú)限長(cháng)沖激響應(iir)濾波器和有限長(cháng)沖激響應(fir)濾波器。fir系統不像iir系統那樣易取得較好的通帶和阻帶衰減特性,要取得較好的衰減特性,一般要求h(z)階次要高,也即m要大。fir系統有自己突出的優(yōu)點(diǎn):系統總是穩定的;易實(shí)現線(xiàn)性相位;允許設計多通帶(或多阻帶)濾波器,后兩項都是iir系統不易實(shí)現的。fir數字濾波器的設計方法有多種,如窗函數設計法、頻率采樣法和chebyshev逼近法等。隨著(zhù)matlab軟件尤其是matlab的信號處理工作箱的不斷完善,不僅數字濾波器的計算機輔助設計有了可能,而且還可以使設計達到最優(yōu)化。

fir數字濾波器設計的基本步驟如下[1]:

(1)確定技術(shù)指標

在設計一個(gè)濾波器之前,必須首先根據工程實(shí)際的需要確定濾波器的技術(shù)指標。在很多實(shí)際應用中,數字濾波器常被用來(lái)實(shí)現選頻操作。因此,指標的形式一般在頻域中給出幅度和相位響應。幅度指標主要以2種方式給出。第一種是絕對指標。他提供對幅度響應函數的要求,一般應用于fir濾波器的設計。第二種指標是相對指標。他以分貝值的形式給出要求。本文中濾波器的設計就以線(xiàn)性相位fir濾波器的設計為例。

(2)逼近

確定了技術(shù)指標后,就可以建立一個(gè)目標的數字濾波器模型(通常采用理想的數字濾波器模型)。之后,利用數字濾波器的設計方法(窗函數法、頻率采樣法等),設計出一個(gè)實(shí)際濾波器模型來(lái)逼近給定的目標。

(3)性能分析和計算機仿真

上兩步的結果是得到以差分或系統函數或沖激響應描述的濾波器。根據這個(gè)描述就可以分析其頻率特性和相位特性,以驗證設計結果是否滿(mǎn)足指標要求;或者利用計算機仿真實(shí)現設計的濾波器,再分析濾波結果來(lái)判斷。

2 fir數字濾波器的傳統設計方法

傳統的fir數字濾波器設計流程分為2個(gè)部分:開(kāi)發(fā)設計和產(chǎn)品實(shí)現。在開(kāi)發(fā)設計部分完成方案設計和算法設計與驗證,一般用matlab語(yǔ)言進(jìn)行仿真,當仿真結果滿(mǎn)意時(shí),再進(jìn)入產(chǎn)品的實(shí)現階段。在實(shí)現階段,將開(kāi)發(fā)設計的階段的算法用c/c++或者匯編語(yǔ)言實(shí)現,在硬件的單片機或dsp目標板上實(shí)現。

下面以電力系統中的用于濾除高次諧波的低通濾波器為例,介紹設計線(xiàn)性相位fir低通數字濾波器的傳統設計方法。

2.1 fir濾波器的matlab仿真[2]

在電力分析實(shí)驗儀中,只要求分析20次以下的諧波,30次以上的諧波由抗混疊濾波器濾波,20-30次的諧波則由數字濾波器濾除。所以電力系統的低通濾波器的技術(shù)指標如下:通帶截止頻率為1 000hz,阻帶截止頻率為1 500hz,通帶波紋為0.001,阻帶波紋為0.001,采樣頻率為4 000hz,阻帶衰減小于50 db,因此設計中采用漢明窗比較合適。

fir濾波器的設計用matlab數字信號處理軟件包提供的專(zhuān)用函數來(lái)直接求取是非常方便的。

先求出濾波器的階數n:n=ceil(n)+1,通過(guò)相關(guān)程序仿真可以計算出n=28。

濾波器h(n)的系數和他的幅頻特性:

調用格式為:b=fir1(n,wc,’ftype’,window)或b=fir2(n,wc,m,window);編制程序并運行,表1為計算所得濾波器系數,圖1所示為設計的低通濾波器頻率響應曲線(xiàn)。由此可見(jiàn)基本滿(mǎn)足性能指標。h(n)的系數見(jiàn)表1。

輸入一混疊信號來(lái)測試所設計濾波器的功能:輸入信號是頻率為f1=400hz和f2=1 800hz的正弦交流信號。

s1=sin(400×2πt);

s2=sin(1800×2πt);

s=s1+s2

圖2為混疊信號波形s=s1+s2。

圖3經(jīng)濾波器濾波后的波形。由此可見(jiàn),仿真結果基本令人滿(mǎn)意。然后用dsp來(lái)實(shí)現系統。

將上述系統存盤(pán),建立一個(gè)數據文件fir01.txt,將matlab中產(chǎn)生的fir01.txt文件,通過(guò)執行轉換命令,將自動(dòng)變換為firdata.inc濾波器系數文件。轉換命令為(在matlab下):!firdata fic01.txt

2.2 fir數字濾波器的c54實(shí)現

tms320c5416有很強的數據處理功能[3],帶數據移位的加法指令macd在循環(huán)執行時(shí),一但流水線(xiàn)啟動(dòng),該指令就變?yōu)閱沃芷谥噶???梢钥焖偻瓿蔀V波器的設計和運算。

下面討論上述仿真得到的fir濾波器的設計[4],程序流程圖如圖4所示。

根據上述運算和流程圖編制對稱(chēng)fir低通濾波器程序,源程序清單略。在ccs5000上進(jìn)行仿真調試運行,利用觀(guān)察窗口可以看到如下圖形,并分析輸入信號和輸出信號的頻譜,結果如圖5,圖6所示。

輸入信號是頻率為f1=400hz和f2=1 800hz的正弦交流信號的疊加。通過(guò)觀(guān)察頻域和時(shí)域圖,得知:輸入波形中的低頻波形通過(guò)了濾波器,而高頻部分則被濾除。濾波器實(shí)現了目標要求。

這種方法盡管能設計出較好的濾波器。但需要用ccs把目標dsp程序運行的中間結果保存到pc機的硬盤(pán)上,然后調到matlab工作空間,與matlab算法的中間結果進(jìn)行比較,可以發(fā)現dsp程序中由于設計或者精度導致的結果偏差。如此過(guò)程反復進(jìn)行,非常不便。

下面提出了一種改進(jìn)型的設計方法。

3 濾波器設計的改進(jìn)方法

目前提出了一種系統級設計方法的構想[5]。系統級設計方法的核心是將算法設計與系統級設計仿真在統一的環(huán)境中進(jìn)行,進(jìn)而將開(kāi)發(fā)流程的兩個(gè)部分有效地結合在一起。進(jìn)行系統級設計需要一個(gè)統一的開(kāi)發(fā)環(huán)境,且在該開(kāi)發(fā)環(huán)境中可以對系統結構、算法進(jìn)行描述,還能夠對系統不同層次、不同組件和不同數據類(lèi)型進(jìn)行建模。matlab link for ccs development tools就是為了完成系統級設計出現的。

3.1 matlab link for ccs development tools簡(jiǎn)介

mathworks公司和ti公司聯(lián)合開(kāi)發(fā)的matlab link for ccs development tools(ccs link)提供了matlab 和ccs的接口,即把matlab和ti ccs及目標dsp連接起來(lái)。利用此工具可以像操作matlab變量一樣來(lái)操作ti dsp的存儲器或寄存器,即整個(gè)目標dsp對于matlab好像是透明的,開(kāi)發(fā)人員在matlab環(huán)境中就可以完成對ccs的操作。matlab link for ccs development tools可以支持ccs能夠識別的任何目標板,包括ti公司的dsp,evm板和用戶(hù)自己開(kāi)發(fā)的目標dsp(c2000,c5000,c6000)板。

3.2 系統級設計探討

ccs link向用戶(hù)提供的3種接口如圖7,可以完成系統級設計。

3.3 數字濾波器的系統級設計方法

利用link for ccs ide接口實(shí)現ccside和matlab之間的連接來(lái)設計fir數字濾波器,利用此連接可以在matlab控制下操作dsp的應用程序,利用matlab中強大計算分析、可視化工具來(lái)分析和對比目標程序運行中的結果,大大縮短調試開(kāi)發(fā)系統的周期。

具體設計步驟如下[6]:

(1)選擇dsp型號:實(shí)驗中用tms320c5416dsp;

(2)創(chuàng )建ccs ide連接對象;

(3)利用matlab把文件加載到ccs ide中;

(4)在matlab環(huán)境下對ccs ide連接對象進(jìn)行操作;

(5)關(guān)閉ccs ide連接對象。

從這個(gè)設計步驟中可以看出,在matlab環(huán)境下操作dsp中變量或者寄存器是很方便的。這樣就可以在matlab環(huán)境下完成dsp程序的仿真調試。而不用像傳統的開(kāi)發(fā)要把dsp運行結果調回pc機驗證,方便了開(kāi)發(fā)設計,縮短了開(kāi)發(fā)周期。

用這種方法所設計濾波器結果和上面基本相同,只是設計過(guò)程得到了很大簡(jiǎn)化,方便了開(kāi)發(fā)設計。

4.結語(yǔ)

應用matlab對dsp進(jìn)行系統級的設計極大地改進(jìn)了傳統的設計方法。matlab系統級的設計環(huán)境,有助于在設計早期發(fā)現錯誤和應對系統復雜性不斷增加的挑戰,方便了復雜dsp應用系統的設計。所設計的數字濾波器和傳統設計的濾波器比較,速度提高了很多,設計過(guò)程得到了很大的簡(jiǎn)化,方便了開(kāi)發(fā)設計。

c++相關(guān)文章:c++教程


低通濾波器相關(guān)文章:低通濾波器原理


電源濾波器相關(guān)文章:電源濾波器原理


數字濾波器相關(guān)文章:數字濾波器原理


關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>