王 玲,萬建偉,吳 京,丹 梅
(國防科技大學 電子科學與工程學院,湖南 長沙 410073)
“信號處理綜合設計”實驗是信號處理系列課程配套的實踐環節。作為一門綜合設計實驗課程,在教學過程中應注重向學生傳授系統分析和系統設計的方法,引導學生綜合運用信號處理與系統的關鍵技術,如信號分析技術、數字濾波器設計技術和DSP實現技術等,解決實際工程應用中的具體問題,通過實驗環節培養學生的工程素質和創新能力。
本文通過設計實驗讓學生系統地完成從理論分析到仿真計算再到DSP實現的全過程,縮短開發DSP系統的時間,提高學生的創新意識[1,2]。
我們根據課程內容將實驗課程確定為:基礎理論實驗、綜合設計和DSP工程實現。實驗過程從基礎理論實驗開始,通過Matlab編程仿真,對信號和系統的分析,進而完成一個信號處理課題的工程實現。
在DSP課程中,離散時間信號和離散時間系統的分析和采樣定理是重要的基礎理論內容,DFT和FFT是DSP的重要的數學工具。通過基礎理論實驗幫助學生掌握重點基礎理論內容,加深對DFT算法原理和基本性質的理解以及FFT快速算法的實現,學習用FFT對連續信號和時域離散信號進行譜分析的方法,理解頻譜泄漏、分辨率等概念以及柵欄效應,在實際中正確應用FFT,理解“DSP是通過對輸入信號的一種運算達到處理目的”的概念。學生應當重點掌握IIR和FIR數字濾波器的基本設計原理和實現方法,完成一個具體的信號處理實例,實現簡單的信號處理系統[3]。
具體的實驗確定為:①用FFT對連續信號和時域離散信號進行頻譜分析;②IIR數字濾波器設計;③FIR數字濾波器設計。學生必須完成一個體信號的頻譜分析、按要求設計所需的濾波器,實現對信號的濾波處理,并分析結果。
學生在綜合設計實驗中應能綜合應用信號處理基本理論知識,以培養他們應用理論知識解決實際問題的能力。我們結合教學內容和科研工作,提出一定量的適合本科生的綜合設計實驗項目。學生可及時更新實驗項目及內容設置,選擇其中一個項目進行實驗[4]。
例如,音頻信號干擾抑制系統要求設計一個獨立的信號分析與處理系統,該系統可用來抑制音頻信號中的干擾信號。第一步應在Matlab平臺上完成信號頻譜分析和數字濾波器的設計;根據對音頻信號的頻譜分析,分析出干擾信號的頻譜分布情況,確定系統所要求的數字濾波器的類型和技術指標;再借助Matlab平臺設計出該數字濾波器的系數,并通過繪出濾波器的頻率響應特性曲線來驗證所設計出的數字濾波器能夠滿足系統需求;最后一步是完成工程實現。
實驗提供了一個含噪的音頻信號“noise.wav”,該信號中混有單頻干擾信號。由于一段音頻信號是持續時間很長的信號,因此,音頻信號的頻譜必須分段計算,我們可以采用滑動窗DFT方法[5]來計算音頻信號的頻譜,分析信號特征。
滑動窗DFT法又稱短時傅立葉變換(STFT),這是與時間有關的傅里葉變換,即沿著時間軸滑動窗,每一次只取信號的一部分。序列x(n)的STFT定義為

其中,w(m)是窗函數序列。
設DFT的長度為N(計算分辨率),R是窗函數的長度(物理分辨率),其中NR。則用DFT來計算STFT,得

窗函數的功能是截取信號的一部分用于分析,并確保信號x(n)所抽取的部分是近似平穩的。由于音頻信號是一個非平穩信號,因此,窗函數的長度R的選擇必須小心處理。一般來說,窗越寬,參與運算的時間樣本越多,STFT的頻率分辨率就越好。另一方面,窗越短,STFT的時間分辨率就越好,因為此時所截取的信號其平穩性越好。因此,一個較短的窗可提供一個寬帶頻譜圖,而一個較長的窗則得到一個窄帶頻譜圖。
通常,窗與窗之間要有重疊,這樣才能確保所有輸入信號都能參與分析和處理。設L為兩窗中心的間距,則為了正確地分析音頻信號頻譜,必須使得

在采用STFT法分析音頻信號頻譜時,除了窗函數的長度需要仔細選擇之外,窗函數的類型對信號頻譜分析也有著非常重要的影響。在分析原始信號頻譜的過程中,要注意不同類型的窗函數情況下的頻譜泄漏現象和柵欄效應。
學生通過CCS集成開發環境及DSP編程過程的學習,進入FIR濾波器的DSP工程實現:在DSP實驗板硬件平臺上搭建一個實時的音頻信號干擾抑制系統。該系統包括接收從PC機平臺播放的有干擾的音頻信號,經過模/數轉換后送給DSP處理器,由DSP處理器完成原始信號的緩沖存儲、頻譜分析和濾波,再對濾波后的信號進行頻譜分析和數/模轉換,濾波后的信號通過耳機播放出來。從而達到即可以從信號頻譜上分析干擾抑制情況,也可以通過人耳做出主觀判斷。
FIR濾波器的輸出表達式為

式中,h(i)為濾波器的系數;x(n)為濾波器在n時刻的輸入;y(n)為n時刻的輸出。其基本算法是一種卷積運算也就是乘法累加運算,即不斷地輸入樣本x(n),經過z-1延時后,再進行乘法累加,最后輸出濾波器結果y(n)。
在DSP中,要實現這種運算可以采用數組的方法。我們可在程序中定義一個數組,數組中的元素由濾波器系數構成。通過C語言中的FOR循環,將輸入的信號值與數組進行乘法累加運算,不斷更新輸入的數據,最終實現輸入信號的濾波卷積運算。有一點需要強調的是在濾波器系數的選擇上,因為是FIR濾波器,所以選擇的濾波器系數應該是奇對稱或偶對稱,這樣才能構成一個線性相位濾波器。
在DSP實現中需要注意采樣頻率問題。因為,實驗采用的是TI公司開發的套裝TMS320VC5416 DSK,其外設比較完備,可以滿足基本的開發需求。TMS320VC5416DSK主要包括一塊VC5416實驗板和一個運行于PC機的集成開發環境-Code Composer StudioTMv2.1IDE。VC5416實驗板可以通過USB口與主機相連,運行頻率在16-160MHz。
在DSP的應用中,音頻模擬信號進入實驗板上的音頻Codec芯片PCM3002模塊進行采樣,其采樣頻率可以設置為48/24/12/8/6kHz。在 Matlab頻譜分析時,音頻信號采樣頻率與硬件采樣頻率不同。我們在進行濾波器設計時,要按照硬件采樣頻率調整濾波器的設計參數。
此外,由于VC5416處理器是定點運算,而在濾波器設計中使用的濾波器運算都是浮點運算,所以在實現過程中需要把浮點運算轉換成定點運算,宜采用純小數或純整數。使用的方法是將濾波器系數乘以215,運算結束后再通過將結果移位的方法獲得最終的濾波值。
通過基礎實驗和綜合設計實驗,學生可以運用所學的信號處理知識在Matlab軟件平臺上對受干擾的音頻信號進行頻譜分析,并完成相關FIR和IIR濾波器的設計;學習DSP處理器的硬件結構,掌握它的處理方式,從結構上理解它的快速運算速度和強大的數據處理能力,對DSP處理器內部組成和片內外設會有相當的認識;掌握在DSP的開發平臺CCS上建立工程、編寫相關文件、運行程序和調試驗證的方法和流程;學習TMS320VC5416DSK板上的外設模塊,利用DSK軟硬件平臺完成音頻信號干擾抑制系統的設計并進行分析驗證工作。
[1]楊述斌.數字信號處理實踐教學的層次設計 [J].上海:實驗室研究與探索,2009,28(2):123-125
[2]李宏,謝霞,鄭俊.基于Matlab環境的DSP濾波教學實驗系統的設計與實現[J].南京:電氣電子教學學報,2005,27(2):76-79
[3]朱金秀,江冰等.數字信號處理綜合設計性實驗教學探索與實踐 [J].北京:實驗技術與管理,2008,10,25(10):125-127
[4]萬建偉,王玲.《信號處理仿真技術》[M].長沙:國防科技大學出版社,2008.3