朱 磊,宋彩霞
(西安工程大學 電子信息學院, 陜西 西安 710048)
基于DSP的FIR數字濾波綜合實驗設計
朱 磊,宋彩霞
(西安工程大學 電子信息學院, 陜西 西安 710048)
為了提供一種融合數字信號處理、Matlab仿真與DSP技術3門課程相關內容且貼近實際應用的綜合性實驗,設計了一種基于DSP的FIR數字濾波綜合實驗。該實驗包含了數字信號處理從理論到設計、再到最后調試實現的完整實踐訓練過程,為學生提供了一種進行數字信號處理設計與實現的綜合性實踐訓練。
綜合實驗設計; FIR數字濾波; DSP; A/D轉換; D/A轉換
綜合性的實踐訓練對于高校培養高素質信息類專業技術人才具有重要作用[1],而信息類專業相關課程的綜合實驗研究方興未艾[2-7]。作為高校信息類專業普遍開設的數字信號處理、Matlab仿真與DSP技術3門重要課程,數字信號處理課程主要解決概念、性質、數學推導等基本理論問題,Matlab仿真課程則強調利用Matlab程序語言工具進行理論、算法的仿真驗證,而DSP技術課程則強調解決數字信號處理在DSP上的最終實現問題。上述3門課程雖然解決的是數字信號處理不同層次與階段的問題,但在實際應用中,3門課程在相關內容上需要密切配合才能有效解決實際問題。實際教學中,上述3門課程都有相應的實驗教學,但3門課程的實驗教學往往“各自為戰”,缺乏能融合3門課程相關內容且貼近實際應用的綜合性實驗。針對上述課程的一些改進實驗被先后提出[8-10],而本文則以實際應用系統中常見的數字濾波為例,提出了一種基于TMS320F28335型DSP的FIR數字濾波綜合實驗。該實驗包含了數字信號處理從理論到設計、再到最后調試實現的完整實踐訓練過程,使得學生需要綜合應用上述3門課程的相關知識與技能,才能實現與實際應用結果相似的連續實時濾波信號的輸出,從而達到對學生實施綜合實踐訓練的目的。
數字濾波是數字信號處理中的重要內容,在實際中應用廣泛,而FIR濾波由于具有全零點結構無穩定性問題、可實現嚴格的線性相位、可采用FFT算法加快實現濾波運算、可應對較復雜幅頻響應波形等優點,而在數字濾波中占有重要地位。
模擬信號數字化濾波的實現過程一般可分為以下幾步:一,原始模擬信號先經過限幅、抗混疊濾波等預處理,獲得滿足A/D采樣基本條件的模擬信號;二,預處理后的模擬信號經A/D采樣,DSP濾波運算處理及D/A重構,生成濾波輸出信號;三,濾波輸出信號再經平滑濾波等后處理即可獲得最終的濾波信號。若在上述濾波過程中,DSP處理器采用了FIR濾波運算,那么上述濾波過程就是一個典型的模擬信號FIR數字化濾波實現過程。
由數字信號處理課程的知識可知,若設FIR濾波器的脈沖響應為N點長的h(n)序列,則該濾波器的頻率響應可表示為
(1)
其中,|H(ej w)|為濾波器的幅頻特性,θ(w)為相頻特性。若設FIR濾波器輸入輸出信號分別為s(n)與p(n),則二者的數學關系可用卷積式表示為

(2)
顯然,只要獲得了濾波器的有限長脈沖響應h(n),即可根據(2)式由輸入信號s(n)獲得輸出信號p(n)。
本文設計的綜合實驗實現方案如圖1所示。

圖1 基于DSP的FIR數字濾波綜合實驗實現方案框圖
原始模擬信號s(t)由信號發生器產生。模擬信號s(t)的A/D采樣、FIR濾波及D/A重構由DSP目實驗標板實現。DSP目標板主要由帶片上A/D轉換器的TMS320F28335處理器與D/A轉換器TLV5636構成,TMS320F28335負責A/D采樣及FIR濾波運算,并通過配置為SPI兼容模式的McBSP接口將p(n)傳輸給TLV5636進行D/A重構。TMS320F28335進行FIR濾波運算所需的濾波系數h(n)(本實驗中設定為16位帶符號整形數)由Matlab軟件根據設計指標產生。DSP目標板輸出的信號p(t)與信號發生器產生的原始信號s(t)通過示波器進行實驗結果的直觀比較。FIR濾波實驗過程由PC機端的CCS軟件與USB接口DSP仿真器配合,利用JTAG接口控制TMS320F28335的濾波程序運行實現。
FIR濾波綜合實驗主要由FIR濾波系數生成、DSP實現程序設計及FIR濾波程序的DSP仿真調試3部分構成,下面按步驟說明。
3.1 FIR濾波系數的生成
FIR濾波器系數由設計指標與設計方法共同決定。FIR濾波器常用的設計指標包括采樣頻率、通帶截止頻率、阻帶截止頻率、通帶最大衰減、阻帶最小衰減等,而FIR濾波器的設計方法常見的有等紋波法、窗函數法、均方誤差法等。雖然FIR濾波器設計理論與方法比較成熟,但人工計算濾波系數,特別是階數較高時卻不是一件輕松的工作,然而Matlab軟件提供的FDAtool工具將使得FIR濾波系數的計算工作變成一件容易的事情。例如在圖2所示FDAtool工具工作界面中,選擇Lowpass低通濾波器與Equiripple等紋波設計法,輸入采樣頻率Fs=16 kHz、通帶截止頻率Fpass=1 kHz、阻帶截止頻率Fstop=1.2 kHz、通帶最大衰減Apass=1 dB、阻帶最小衰減Astop=40 dB后,即可獲得最小114階的FIR濾波器系數(共115個系數)。

圖2 Matlab軟件FDAtool工具的工作界面
濾波器設計完畢后,濾波系數還可導出為本實驗設定的16位帶符號整型C語言數組,最終獲得的115個系數如下:const int16_T B[115]={-205,-39,-21,12,57…,57,12,-21,-39,-205}。此處,省略了數組中間的105個系數。上述數組元素呈現明顯的偶對稱特性,從而保證了FIR濾波器的線性相位。
3.2 FIR濾波的DSP實現程序設計
TMS320F28335型DSP一般基于CCS軟件開發應用程序,為了實現本實驗連續實時輸出濾波信號的功能,就需要對A/D采樣、FIR濾波與D/A重構等DSP實現程序進行合理設計,下面就DSP程序設計的幾個要點進行說明。
3.2.1 基于“乒乓”制的分段濾波
由于信號發生器會將原始模擬信號持續不斷地送給DSP進行濾波,因此,必須采取分段濾波方式,而在分段濾波的同時,原始模擬信號的A/D采樣與濾波數據的D/A重構必須按采樣周期不間斷進行。為了讓分段FIR濾波與周期性進行的A/D采樣與D/A重構協調工作,本實驗采用了圖3所示的“乒乓”制分段濾波,其中Tw表示以T為周期采樣W點數據的時間,A、B為W+N-1點長的采樣數組,C、D為W點長的濾波數組。
圖3中,從0時間開始,A/D采樣在每個Tw時間段內分別向A、B數組交替地裝載周期性采樣的W個采樣數據(從N-1點位置開始),從Tw時間開始,FIR濾波開始在每個Tw時間段內分別對A、B數組交替的進行濾波(從N-1點位置開始)并把濾波數據分別裝載到C、D數組,從2Tw時間開始,D/A重構在每個Tw時間段內分別將C、D數組交替的周期性重構W個濾波數據。由于A/D采樣、FIR濾波與D/A重構均開辟了2個數組且每隔Tw時間交替進行相應操作,因此,將這種類似“打乒乓”的分段濾波方式稱為“乒乓”制分段濾波。另外,從2Tw時間開始,每個Tw時間段內要進行A/D采樣、濾波與D/A重構3項操作,因此,本實驗在進行FIR濾波的同時,采用16 kHz的PWM波周期性觸發A/D轉換中斷,并在A/D中斷服務程序中先后完成一次A/D采樣與一次D/A重構,實現A/D采樣與D/A重構的周期性不間斷操作。需要強調,雖然采用了“乒乓”制分段濾波,但必須保證分段采樣時間大于分段濾波時間,否則會出現數據覆蓋丟失問題,為此,采樣頻率Fs、濾波系數長度N不能過大,而分段采樣點數W不能過小。

圖3 “乒乓”制分段濾波的流水線運行示意圖
3.2.2 分段濾波數組的拼接組合
當每隔W點采樣數據進行分段濾波時,(2)式所示的FIR濾波卷積式可改寫為
(3)
其中,sl(n)與pl(n)分別表示W點的第l段采樣信號與濾波信號。若每段pl(k)都用對應的sl(k-m)代入(3)式直接計算,那么當k-m<0時,由于sl(k-m)均默認為0,從而使得每段pl(k)的前N-1點濾波數據出現非穩態的情況。為此,在對采樣信號進行分段濾波時,須對其進行“拼接”處理。
在介紹基于“乒乓”制的分段濾波中,設定A、B為W+N-1點長的采樣數組,對A、B數組周期性裝載W個采樣數據與FIR濾波均從N-1點位置開始,這些設置就是為濾波數組的拼接服務的。濾波數組的“拼接”處理也需開辟E、F兩個長為N-1點的數組進行“乒乓”制存儲操作。假設DSP正在向A或B數組裝載第l段采樣信號,此時需將該段采樣數據的后N-1點數據同時也保存至E或F數組中,當A或B數組第l段采樣數據裝載完畢且開始濾波前,將在F或E數組中保存的第l-1段采樣數據的后N-1點數據復制到A或B數組的前N-1點位置,從而完成了長為W+N-1點的前后兩段采樣數據在同一數組的連續拼接,此時只要從A或B數組的N-1點開始對W點采樣數據進行FIR濾波,該段pl(k)的前N-1點濾波數據就不會出現非穩態的情況。
3.2.3 不同類型濾波器D/A重構時的特殊處理
本實驗中采用的TMS320F28335片上A/D及其外擴的D/A轉換器TLV5636均只能對0 V以上的電壓信號進行輸入輸出。因此,本實驗中由信號發生器產生的原始模擬信號須疊加其交流峰—峰值幅度一半大小的直流成分,從而使得整個模擬信號的電平均在0 V以上。由于信號發生器一般都帶直流偏置調節功能,因此生成電平均在0 V以上的模擬信號比較容易。另一方面,常見的分段常數濾波器中,低通與帶阻濾波器濾波后可保留信號中的直流成分,而高通與帶通濾波器卻將直流成分直接過濾了,因此,進行高通與帶通濾波處理后的信號是存在負電壓的。對于要進行高通與帶通濾波處理的DSP濾波來講,如果不進行特殊處理,則不能用TLV5636完整輸出有負電壓的高頻模擬信號。
解決的辦法是按不同類型濾波器進行分類特殊處理。對于低通與帶阻型濾波,DSP按常規方法對模擬信號進行采樣與濾波后,可直接驅動TLV5636輸出濾波信號。對高通與帶通型濾波,DSP在對模擬信號進行采樣與濾波后,還需要對濾波后的數字信號加入直流成分才能實施D/A轉換。對于本實驗來講,由于采用12位D/A且參考電壓為2.048 V,因此,加入的直流偏置應為1.024 V,對應的12位數字量為0x800,即給每個濾波數據加上的直流偏置為0x800。這樣就解決了高通與帶通濾波處理后的信號存在負電壓不能實現D/A轉換的問題,然而,此時D/A輸出的模擬信號中含有直流成分不是真正意義上的高頻信號,但可通過在D/A轉換器后加隔直電容的簡單方法獲得正意義上的高頻模擬信號。
3.2.4 硬件驅動程序設計
要實現DSP的FIR濾波功能,就必須設計相應的硬件驅動程序。本實驗涉及到的硬件具體包括TMS320F28335片上A/D轉化器ADC1、ADC1中斷、EPWM、McBSP-A以及外擴的D/A轉化器TLV5636。外設EPWM用于產生16 kHz 的PWM波,周期性觸發外設ADC1產生ADC1轉換中斷,而外設McBSP-A則被配置為16位SPI工作模式,驅動TLV5636進行濾波數據的D/A轉換。由于TI公司為C2833x系列DSP的開發,提供了眾多庫函數及相關外設實例代碼[11],使得上述DSP上述外設開發相對比較容易,上述外設驅動程序的具體程序代碼限于篇幅這里不再贅述。
3.3 FIR濾波程序的DSP仿真調試
圖1所示的原理框圖與圖4(a)所示的實物圖表明,FIR濾波的DSP仿真調試需要多個軟件與設備配合工作。本實驗中,采用了CCS5.5版開發軟件、USB型XDS100V3版DSP仿真器、RIGOL示波器與信號發生器以及自制的DSP目標板。圖4(a)右下角所示的自制目標板是一種低成本的DSP最小系統板,主要包括提供1.9V與3.3V雙電壓的電壓轉換芯片TPS767D301、提供2.048V高精度參考電壓的電壓基準芯片REF3020以及TMS320F28335芯片、TLV5636芯片與JTAG接口電路等,自制DSP系統的具體電路不再贅述。
樣例實驗按圖1所示的方案執行,并采用了本文3.1節設計的具有115個系數的低通濾波器,輸入、輸出模擬信號示波器對比測試結果如圖4所示。

圖4 基于DSP的FIR濾波樣例實驗與結果實物圖
在圖4中,當信號發生器分別輸入0.8、1及1.2 kHz信號時,示波器顯示的輸入、輸出信號,從開始的頻率與幅度基本一致,變為頻率一致、幅度明顯衰減,再到最后輸出信號基本全被濾除。考慮到所設計的FIR低通濾波器通帶與阻帶截止頻率分別為1與1.2 kHz,因此,實驗結果顯示:DSP目標板能連續實時輸出與設計指標吻合的正確濾波信號,說明本文設計的基于DSP的FIR濾波綜合實驗是有效可行的。
本文設計了一種基于DSP的FIR濾波綜合實驗,該實驗可提升學生綜合應用多門課程所學知識,解決與實際應用非常貼近的數字信號處理應用的專業綜合實踐能力。同時,本實驗中的諸如最多能設計多少點濾波系數等眾多細節問題,還可讓學生進一步深挖與探索,從而在實驗教學中既面向實際解決問題,又激勵學生的專業學習興趣。
References)
[1] 厲旭云,梅汝煥,葉治國,等.高校實驗教學研究的發展及趨勢[J].實驗室研究與探索,2014,33(3):131-135.
[2] 施鼎方,王士芬.探析綜合性實驗教學的有效途徑[J].實驗技術與管理,2010,27(1):120-121.
[3] 王志芳,周錦燕.創新型實驗教學體系的實踐[J].實驗技術與管理,2010,27(3):206-208.
[4] 李露,史振威,周付根.基于Matlab/Simulink的幅度調制與解調綜合實驗設計[J].實驗室研究與探索,2011,30(1):96-99.
[5] 陳萬通,李小強. 基于現代GNSS信號的通信綜合實驗設計[J].電氣電子教學學報,2016,38(3):124-126,139.
[6] 劉迎澍,金文,陳曦,等.單片機—嵌入式系統綜合實驗平臺[J].電氣電子教學學報,2014,36(3):77-79.
[7] 雷鵬,羅斐翔,張博誠,等.基于軟件無線電的數字信號處理綜合實驗平臺[J].工業和信息化教育,2016,4(7):83-89.
[8] 何朝霞.數字信號處理實驗教學改革的探索[J].實驗室科學,2015,18(3):103-105.
[9] 陳超洋,周少武,歐青立,等.MATLAB/SIMULINK在課堂教學中的應用探究[J].當代教育理論與實踐,2016,8(10):85-88.
[10] 陳小元,陳超.DSP課程實驗內容設計及實施[J].電氣電子教學學報,2015,37(1):59-61.
[11] Texas Instruments.C2833x/C2823x C/C++ Header Files and Peripheral Examples Quick Start[EB/OL].2010:http://www.ti.com/lit/ml/sprca73/sprca73.pdf.
Comprehensive experiment design of FIR digital filtering based on DSP
Zhu Lei, Song Caixia
(College of Electronics and Information,Xi’an Polytechnic University,Shanxi Xi’an,710048,China)
In order to provide a kind of comprehensive experiment closing to the practical application and combining the relevant content of the three courses including digital signal processing, Matlab simulation and DSP technology, an FIR digital filtering comprehensive experiment is designed based on DSP. Firstly, Matlab software should be used to produce FIR filter coefficients in accordance with the given design indexes. Secondly, the development software CCS should be used to write DSP program which can realize the A/D sampling, FIR filtering and D/A reconstructing functions. Finally, CCS software and DSP simulator should be used to download and debug the digital filtering program on the self-made DSP target experiment board until the DSP target board can output continuous and real-time filtered signals correctly. The experiment provides a comprehensive practical training for students to design and implement digital signal processing, and the sample experiment results show that the proposed experiment design is feasible and effective.
comprehensive experiment design;FIR digital filtering;DSP;A/D conversion;D/A conversion
10.16791/j.cnki.sjg.2017.01.050
2016-08-05 修改日期:2016-10-12
國家自然科學基金資助項目(61401347);陜西省科技廳工業科技攻關項目(2016GY103);陜西省“現代DSP技術”精品資源共享課建設項目;西安工程大學教學改革研究項目(2014JG013);西安工程大學“現代電子系統設計”精品資源共享課建設項目;西安工程大學博士科研啟動基金(BS1410)
朱磊(1979—),男,四川綿陽,博士,副教授,主要研究方向為信號與信息處理、嵌入式系統應用.
E-mail:zhulei791014@163.com
TN911.7;G642.423
B
1002-4956(2017)1-0206-04