DSP的FIR設(shè)計低通濾波C語言編寫要點_第1頁
DSP的FIR設(shè)計低通濾波C語言編寫要點_第2頁
DSP的FIR設(shè)計低通濾波C語言編寫要點_第3頁
DSP的FIR設(shè)計低通濾波C語言編寫要點_第4頁
DSP的FIR設(shè)計低通濾波C語言編寫要點_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、一、設(shè)計目的低通濾波器設(shè)計。本設(shè)計中使用的信號為信息信號:signal=sin(2*pi*sl*n*T)高頻噪聲1:noise1=0.7*sin(2*pi*ns1*n*T)高頻噪聲2:noise2=0.4*sin(2*pi*ns2*n*T)混合信號:x=(signal+noise1+noise2)其中sl=500Hz,ns1=3000Hz,ns2=8000Hz,T=1/20000?;旌闲盘柌ㄐ螢闉V波器輸入信號波形,信息信號波形為輸出信號波形,濾波器的效果為濾除兩個高頻噪聲。二、FIRFIR濾波器基本理論(1)FIR濾波器的特點數(shù)字濾波器的功能,就是把輸入序列通過一定的運算變換成輸出序列。它的實

2、現(xiàn)方法有很多, 其中比較常用到的是無限長脈沖響應(yīng)濾波器IIR和有限長脈沖響應(yīng)濾波器FIR兩種。在計算量相等的情況下,IIR數(shù)字濾波器比FIR濾波器的幅頻特性優(yōu)越,頻率選擇性也好。 但是, 它有著致命的缺點, 其相位特性不好控制。 它的相位特性 f(6)=argH(ej8)是使頻率產(chǎn)生嚴(yán)重的非線性的原因。但是在圖像處理、數(shù)據(jù)傳輸?shù)炔ㄐ蝹鬟f系統(tǒng)中都越來越多的要求信道具有線性的相位特性。在這方面FIR濾波器具有它獨特的優(yōu)點,設(shè)FIR濾波器單位脈沖響應(yīng)h(n)長度為N,其系統(tǒng)函數(shù)H(z)為N1H(z)三二h(n)zn力H(z)是 z的(N-1)次多項式,它在z平面上有(N-1)個零點,原點z=0是(N

3、-1)階重極點。因此,H(z)永遠穩(wěn)定, 它可以在幅度特性隨意設(shè)計的同時, 保證精確、 嚴(yán)格的線性相位。(2)FIR濾波器的基本結(jié)構(gòu)數(shù)字濾波是將輸入的信號序列,按規(guī)定的算法進行處理,從而得到所期望的輸出序列,F(xiàn)IR濾波器的差分方程為:N4y(n)二akx(n-k)k=0對上式進行Z變換得到FIR濾波器的傳遞函數(shù)為:N4V、bkz”i=0由上式可以看出,H(z)是 z的N-1次多項式,它在z平面內(nèi)有N-1個零點,同時在原點處有N-1個重極點。N階濾波器通常采用N個延遲單元、N個加法器與N+1個乘法器,取圖中(a)、(b)兩種結(jié)構(gòu)(ai(bi圖FIR濾波器的一般結(jié)構(gòu)因為FIR濾波器的單位抽樣響應(yīng)是

4、有限長的,所以它永遠是穩(wěn)定的。另外,若對h(n)提出一些約束條件,那么可以很容易地使H(z)具有線性相位,這在信號處理的很多領(lǐng)域是非常重要的。FIR濾波器的設(shè)計任務(wù), 是要決定一個轉(zhuǎn)移函數(shù)H(z),使它的頻率響應(yīng)滿足給定的要求。這里所說的要求,除了通帶頻率sp、阻帶頻率及兩個帶上的最大和最小衰減%和氣外,很重要的一條是保證H(z)具有線性相位。(3)Chebyshev近法窗函數(shù)法和頻率采樣法設(shè)計出的濾波器的頻率特性都是在不同意義上對所給理想頻率特性Hd(ejw相逼近。由數(shù)值逼近理論可知,對某個函數(shù)f(x)的逼近一般有以下三種方法:插值法(InterpolatingWay)最小平方逼近法(Lea

5、stSquareApproachingWay)一致逼近法(ConsistentApproachingWay)切比雪夫最佳一致逼近的基本思想是,對于給定區(qū)間a,b上的連續(xù)函數(shù)f(x),在所有n次多項式的集合Q中,尋找一個多項式p(x),使它在a,b上對f(x)的偏差和其它一切屬于駕的多項式p(x)對f(x)的偏差相比是最小的,即max?x-fx=minmaxpx-fx);切比雪夫逼近理論,這樣的多項式是存在的,且是唯一的,并指出了構(gòu)造這種最佳一致逼近多項式的方法,就是有名的“交錯點組定理”。切比雪夫逼近理論解決了p(x)的存在性、唯一性和如何構(gòu)造等問題。J.H.McClellan、T.W.Par

6、ks、L.R.Rabiner等人應(yīng)用切比雪夫逼近理論提出了一種設(shè)計FIR濾波器的計算機輔助算法。這種算法由于是在一致意義上對Hd(ejw祚最佳逼近,因而獲得了較好的通帶和阻帶性能,并能準(zhǔn)確地指定通帶和阻帶的邊緣。但它的效率依賴于初始極值頻率點的估計,且通帶和阻帶內(nèi)波紋數(shù)較多,這是Chebyshe舊法的兩個主要缺點。三、FIRFIR濾波器的MATLABMATLAB實現(xiàn)MATLAB輔助DSP實現(xiàn)FIR,其總體過程為在DSP中編寫處理程序,在MATLAB中利用濾波器設(shè)計、分析工具(FDATOOL),根據(jù)指定的濾波器性能快速設(shè)計一個FIR,再把濾波器系數(shù)以頭文件形式導(dǎo)入CCS中,頭文件中MATLAB輔

7、助DSP實現(xiàn)FIR數(shù)字濾波器含濾波器階數(shù)和系數(shù)數(shù)組,在MATLAB中調(diào)試、運行DSP程序并顯示、分析處理后的數(shù)據(jù)。使用該方法,便于采用匯編語言來實現(xiàn)程序。頭文件名不變,當(dāng)MATLAB中設(shè)計的濾波器系數(shù)改變時,相應(yīng)頭文件中系數(shù)也改變,方便程序調(diào)試、仿真。(1)輸入信號的產(chǎn)生首先利用Matlab產(chǎn)生導(dǎo)入CCS的dat文件,具體實現(xiàn)如下代碼所示sl=500;%有效信號ns1=3000;%高頻噪聲ns2=8000;%高頻噪聲fs=20000;%采樣頻率N=1000;T=1/fs;n=0:N;signal=sin(2*pi*sl*n*T);noise1=0.7*sin(2*pi*ns1*n*T);noi

8、se2=0.4*sin(2*pi*ns2*n*T);x=(signal+noise1+noise2)%待濾波信號figure(1)plot(x)figure(2)y=abs(fft(x);%待濾波頻譜df=n*(fs/N);plot(df,y)figure(3)plot(signal)figure(4)ysignal=abs(fft(signal);%濾波后頻譜df=n*(fs/N);plot(df,ysignal)%濾波數(shù)據(jù)導(dǎo)出xout=x/max(x);%歸一化xto_css=round(32767*xout);%數(shù)據(jù)取整xoutcss=xto_css;fid=fopen(input.da

9、t,w);%打開文件fprintf(fid,16511000n);%輸出文件頭fprintf(fid,%dn,xoutcss);%輸出fclose(fid);產(chǎn)生的時域波形如圖所示:圖輸入信號波形頻譜如圖所示:圖輸入頻譜經(jīng)過濾波器后的預(yù)期時域波形如圖:1圖輸出時域波形頻譜如圖所示圖輸出頻譜(2)濾波器的設(shè)計MATLAB集成了一套功能強大的濾波器設(shè)計工具FDATool(FilterDesign&AnalysisTool),可以完成多種濾波器的設(shè)計、分析和性能評估。a.打開FilterDesign&AnalysisTool單擊MATLAB主窗口下方的“Start”按鈕,選擇菜單“T

10、oolBox”一“FilterDesign”一“FilterDesign&AnalysisTool(FDATool)”命令,打開FDATool,如圖所示0.20.40.60.811.21.41.61.8x104圖濾波器的幅頻特性. .MATLABMATLAB,JLI1hireifyoudonotwanttoseethisnessageags*Toolboxes/啾Aerospace加Simuilink&Bioinforrnatics梟Block$E$心Communications言LinksandTargetsControlSystemCurveFitting*Shortcut

11、sk#DataAcquisition年DesktopTools+4kDatabase一WebData相edGetProductTrialsEconometricsCheckforUpdatesdkFilterDesignFilterBuilder(filterbuilder)嘿*Preferences.-心FilterDesignHtLCoder即FilterDesign&AnalysisTool(fdatool)AFindFiles.M白r%“,HlpHdp一0 DemosiDemosAProductAage(Web)StartStart圖fadatool的啟動b.產(chǎn)生濾波器階數(shù)為8

12、1階,這里應(yīng)填80,比階數(shù)少1。窗函數(shù)選擇切比雪夫型采樣頻率為20000Hz,通帶截止頻率為750HzBJIFilterDesign&AnalysisTod-uAtitled.fda*J(chebysheS,fileditAnalysisTagetsViewJfiJindowJJelp口降q號電為足國x罰KI01E前卷哲田廣圖kJ。園目SlrutlurftSlrutlurftDiftCT-rrrtiFFDiftCT-rrrtiFFOrder80Stable:Y&tSoiree:Oesgned三向璃rilri-rilri-FilerUnlige-rFilerUnlige-rif璃

13、窗直8iResponseType* *LDWPBS-LDWPBS-HQhpasaBandpassBain-dtcipQ汗際中i聞口_口川期Melhagi晅加加rwQrfhlFiherOrder管與ped在NdcrWMnimimionJerLOprticmisj*StalePasabtifidWlnctow:Ch喇永.TSidetobeAtlen-忖口IFrequency邰。dUcetian蘇Unis:HzFSFS:曲而mT50強gnrtud。SpecrHcrtnsThe加電nuatianelcutotffr-siuencicsisfixedd6dB(hfllfIhepesssbrnd鯽jn)1

14、CLrrertFilerFilerIhlorrtvarlIhlorrtvarlMagrflucicponse(dB)Magrflucicponse(dB)LaJkpnwE三01234560123456Fnequflnoy(kHz)。FRWind。,VMM|圖頭文件的產(chǎn)生EJFitterDesign&AnalysisTool三untrtied*)FileFile巨ditAnalysisTargetsViewWindowHelpditAnalysisTargetsViewWindowHelp口整 P P3 3 出I0兄Q屯B區(qū)舊志哈四廠區(qū)LJ。0團k?k?一 LurreritFnerFif

15、ormeriicnLurreritFnerFiformeriicnSlruclure:Slruclure:CHredl-FoFmCHredl-FoFmFIRFIROrcter:toSibte.Sibte.YssYssSource:Source:DcsiqneidDcsiqneid-guEPe-MFResponseResponseTypeType 一* *LowpassLowpassHghpnssHghpnssBandtHiiiiBandtHiiiii i:BandstooBandstoo:1Drrr1Drrr r r fltittCirfltittCirDesignDesignMethodMe

16、thodIRIRBMUrwOrlh!BMUrwOrlh!WindowWindowl lF FK K- -BTBTCrcterCrcter等 SiKCffyargrSiKCffyargrW WMinmuniorderMinmuniorderi iQptM#QptM#515154Kl54Kl4P-asbAnd4P-asbAndVMhdowVMhdowSJcWobctSJcWobctAtienrAtienrFreojencyFreojencySpeEcSpeEc010fls010flsUrits:Urits:HZHZFSFS:2M2M0 0。Fc-750Fc-750ComputingResponse

17、doneJ J 例 jntudeSpewlcalkrejntudeSpewlcalkreTheerltisnLierlignnrtTheerltisnLierlignnrtcutofrcutofrlieriHXlieriHX誨Tix4dIdTix4dId6aB6aB(twiith(twiith pMsbandgrtn)pMsbandgrtn)匚ii加總IMIM: :5 5c cH H: :04aFiler04aFiler圖濾波器的相位特性c產(chǎn)生濾波器系數(shù)和頭文件圖濾波器系數(shù)5673056730Frequency(kHziFrequency(kHzi最后將產(chǎn)生的頭文件中的濾波器系數(shù)數(shù)組放入編寫好

18、的濾波器函數(shù)中,進行CCS中進行調(diào)試與測試。四、FIRFIR濾波器的SimulinkSimulink仿真通過Matlab的FDATOOL設(shè)計濾波器后, 為了確認(rèn)該濾波器是否有效, 現(xiàn)通過simulink進行建模仿真觀察該濾波器是否有效。把三個信號通過加法器相加后,再通過FDATOOL設(shè)計的濾波器即可。注意此處設(shè)計的是數(shù)字濾波器,需要把三個輸入信號數(shù)字化。具體仿真模型建立如下:并在五、FIRFIR濾波器的DSPDSP實現(xiàn)(1)(2)DSP中濾波器的Z算法實現(xiàn)FIR濾波器的輸出表達式為N-1N/2y(n)=h(i)x(nT)=h(i)s(nT)n=0n=0式中,為濾波器系數(shù);x(n)表示濾波器在n

19、時刻的輸入;y(n)為n時刻的輸出。它的基本算法是一種乘法-累加運算,即不斷地輸入樣本x(n),經(jīng)過延時后,再進行乘法-累加,最后輸出濾波結(jié)果y(n)。1)線性緩沖區(qū)法:線性緩沖區(qū)法又稱延遲線法,其特點:(a)對于N級的FIR濾波器,在數(shù)據(jù)存儲器中開辟一個N單元的緩沖區(qū)(滑窗),用來存放最新的N個輸入樣本;(b)從最老樣本開始取數(shù),每取一個樣本后,將此樣本向下移位;(c)讀完最后一個樣本后,輸入最新樣本存入緩沖區(qū)的頂部。2)循環(huán)緩沖區(qū)法:循環(huán)緩沖區(qū)法的特點如下:(a)對于N級FIR濾波器,在數(shù)據(jù)存儲器中開辟一個N單元的緩沖區(qū)(滑窗),用來存放最新的N個輸入樣本;(b)從最新樣本開始取數(shù);(c)

20、讀完最后一個樣本(最老樣本)后, 輸入最新樣本來代替最老樣本, 而其他數(shù)據(jù)位置不變;(d)用片內(nèi)BK(循環(huán)緩沖區(qū)長度)寄存器對緩沖區(qū)進行間接尋址,使循環(huán)緩沖區(qū)地址首尾相鄰。本次設(shè)計的FIR濾波器所采用的就是循環(huán)緩沖區(qū)法。(3)C語言實現(xiàn)FIR采用C語言算法在DSP平臺上實現(xiàn)了FIR低通數(shù)字濾波器,C語言算法相比于匯編算法可移植性很強。這里是在TMS320VC5510DSP為平臺編寫的C語言算法,此算法可以稍加改動用在其他DSP芯片上,而匯編算法則不然。這種方法具有以下優(yōu)點:(a)程序的入口和出口由C語言自動管理,不必手工編寫匯編程序?qū)崿F(xiàn)。(b)程序結(jié)構(gòu)清晰,可讀性強。(c)程序調(diào)試方便。由于C程序中的變量全部由C語言來定義,因此采用C源碼調(diào)試器可以方便地觀察C語言變量。(d)可移植性較強,通用性較好。具體代碼如下:#includestdio.h#includefdacoefs.h頭文件包含濾波器

溫馨提示

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

評論

0/150

提交評論