新聞中心

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

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

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



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

本文引用地址:http://m.butianyuan.cn/article/20805.htm

針對(duì)這一問題,出現(xiàn)了系統(tǒng)級(jí)設(shè)計(jì)方法的構(gòu)想將matlab算法仿真和dsp的實(shí)現(xiàn)融合在一起。文中應(yīng)用matlab link for ccs development tools進(jìn)行系統(tǒng)級(jí)設(shè)計(jì),來完成fir濾波器的設(shè)計(jì)。

1 fir數(shù)字濾波器設(shè)計(jì)的基本步驟

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

fir數(shù)字濾波器設(shè)計(jì)的基本步驟如下[1]:

(1)確定技術(shù)指標(biāo)

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

(2)逼近

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

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

上兩步的結(jié)果是得到以差分或系統(tǒng)函數(shù)或沖激響應(yīng)描述的濾波器。根據(jù)這個(gè)描述就可以分析其頻率特性和相位特性,以驗(yàn)證設(shè)計(jì)結(jié)果是否滿足指標(biāo)要求;或者利用計(jì)算機(jī)仿真實(shí)現(xiàn)設(shè)計(jì)的濾波器,再分析濾波結(jié)果來判斷。

2 fir數(shù)字濾波器的傳統(tǒng)設(shè)計(jì)方法

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

下面以電力系統(tǒng)中的用于濾除高次諧波的低通濾波器為例,介紹設(shè)計(jì)線性相位fir低通數(shù)字濾波器的傳統(tǒng)設(shè)計(jì)方法。

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

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

fir濾波器的設(shè)計(jì)用matlab數(shù)字信號(hào)處理軟件包提供的專用函數(shù)來直接求取是非常方便的。

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

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

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

輸入一混疊信號(hào)來測(cè)試所設(shè)計(jì)濾波器的功能:輸入信號(hào)是頻率為f1=400hz和f2=1 800hz的正弦交流信號(hào)。

s1=sin(400×2πt);

s2=sin(1800×2πt);

s=s1+s2

圖2為混疊信號(hào)波形s=s1+s2。

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

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

2.2 fir數(shù)字濾波器的c54實(shí)現(xiàn)

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

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

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

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

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

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

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

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

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

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

3.2 系統(tǒng)級(jí)設(shè)計(jì)探討

ccs link向用戶提供的3種接口如圖7,可以完成系統(tǒng)級(jí)設(shè)計(jì)。

3.3 數(shù)字濾波器的系統(tǒng)級(jí)設(shè)計(jì)方法

利用link for ccs ide接口實(shí)現(xiàn)ccside和matlab之間的連接來設(shè)計(jì)fir數(shù)字濾波器,利用此連接可以在matlab控制下操作dsp的應(yīng)用程序,利用matlab中強(qiáng)大計(jì)算分析、可視化工具來分析和對(duì)比目標(biāo)程序運(yùn)行中的結(jié)果,大大縮短調(diào)試開發(fā)系統(tǒng)的周期。

具體設(shè)計(jì)步驟如下[6]:

(1)選擇dsp型號(hào):實(shí)驗(yàn)中用tms320c5416dsp;

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

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

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

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

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

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

4.結(jié)語

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

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


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


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


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


關(guān)鍵詞:

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉