李定樣,殷世民,方成,梁永波,陳真誠
(桂林電子科技大學(xué) 生命與環(huán)境科學(xué)學(xué)院,廣西 桂林)
生物醫(yī)學(xué)工程是一門相對于其他專業(yè)來說交叉性、綜合性較強(qiáng)的新興工科學(xué)科[1,2],融合了多學(xué)科的理論、專業(yè)知識,從各方面對人體的病理和生理情況進(jìn)行研究,實現(xiàn)了對人類疾病從預(yù)防到診斷再到治療和康復(fù)這一過程的監(jiān)測,培養(yǎng)具有扎實的電子技術(shù)、計算機(jī)知識、醫(yī)學(xué)知識的能夠在生物醫(yī)學(xué)工程專業(yè)及其他相關(guān)領(lǐng)域從事科研、教學(xué)、管理工作的高文化、高素質(zhì)、高水平的復(fù)合型人才。
數(shù)字信號處理課程是生物醫(yī)學(xué)工程專業(yè)學(xué)生的一門重要專業(yè)基礎(chǔ)必修課,是今后學(xué)生為了從事醫(yī)療電子儀器設(shè)計、醫(yī)學(xué)信號處理、醫(yī)學(xué)圖像處理等領(lǐng)域研究的基礎(chǔ)課程,學(xué)生對該課程專業(yè)知識的掌握好壞對后續(xù)的工程實踐能力具有非常重要的影響,因而有效提高該課程的學(xué)習(xí)質(zhì)量,對提高生物醫(yī)學(xué)工程專業(yè)本科生工程素養(yǎng)具有重要的現(xiàn)實意義[3-5]。
數(shù)字信號處理是生物醫(yī)學(xué)工程專業(yè)的一門重要的專業(yè)基礎(chǔ)必修課,為了有效提高該課程的學(xué)習(xí)質(zhì)量,輔之于EDA技術(shù),能夠更好地讓大學(xué)生深刻地掌握所學(xué)到的理論知識,并將其運用到相關(guān)的工程項目當(dāng)中去。大學(xué)生對EDA與數(shù)字信號兩門課程融合處理能力地提高,將會對今后的實踐產(chǎn)生很高的現(xiàn)實價值,因而需要有效地提高大學(xué)生融合EDA與數(shù)字信號的融合處理能力,進(jìn)一步大幅度地保證課程的教學(xué)研究質(zhì)量。
目前,大多數(shù)學(xué)生對于EDA技術(shù)和數(shù)字信號處理這兩門課程都能掌握一定的理論知識和實驗經(jīng)驗,并且能夠獨立地運用每門課程的技能方法去解決一些對應(yīng)課程的工程項目問題。但是如何能夠?qū)烧呓Y(jié)合起來綜合運用于工程項目背景當(dāng)中的能力還是有很大提升空間。高校人才培養(yǎng)注重于多方面的能力而不是單一課程的運用能力,在解決實際工程項目中,大多數(shù)的項目解決方案往往采用全方位、多方面、多學(xué)科知識和技術(shù)手段相互融合,才能夠有效的解決實際項目的問題。為此為了能夠有效的提高大學(xué)生融合EDA與數(shù)字信號處理的能力,調(diào)動學(xué)生學(xué)習(xí)的主觀能動性,為了改進(jìn)融合EDA與數(shù)字信號處理融合能力的課程教學(xué)質(zhì)量,提升學(xué)生的綜合能力,針對上述教學(xué)活動中存在的問題,本文從EDA技術(shù)基本方法、數(shù)字信號處理基本方法、EDA與數(shù)字信號處理相融合的教學(xué)這三個角度進(jìn)行了探索。
EDA( Electronic Design Automation) 電子設(shè)計自動化技術(shù)是指依托于計算機(jī)為工作平臺的,用計算機(jī)輔助電子系統(tǒng)來進(jìn)行相關(guān)電路的設(shè)計以及相應(yīng)配置的調(diào)制,實現(xiàn)了電子系統(tǒng)設(shè)計的全自動化和智能化,有效的解決了在電路設(shè)計方面存在的一些缺點[6]。
EAD技術(shù)設(shè)計思路如下所述:
(1)對輸入端進(jìn)行設(shè)計。一個完整的工程項目設(shè)計可由單個或多個的原理圖文件、混合輸入文件、VHDL 文本文件等組成。
(2)對所編寫的程序代碼進(jìn)行綜合。將用 Verilog HDL 語言編寫代碼軟件轉(zhuǎn)化為硬件電路是進(jìn)行軟件綜合的重要一步,為了使得兩者進(jìn)行相互聯(lián)系,利用 QuartusII 軟件的綜合器進(jìn)行完成綜合。通過邏輯關(guān)系設(shè)計出來的邏輯電路圖可以利用QuartusII軟件自帶的邏輯綜合和優(yōu)化功能將其自動的轉(zhuǎn)換成與其相對應(yīng)的門電路,同時還能自動生成一一對應(yīng)的時序分析文件與網(wǎng)表文件。
(3)進(jìn)行合理的布線設(shè)計。完成(2)步驟后對所得到的網(wǎng)表文件使用布局/布線適配器來對所設(shè)計的某一具體的元器件實施邏輯映射的操作,通過映射操作可以將(包括底層器件配置、邏輯分割、邏輯優(yōu)化、布線等操作)放入目標(biāo)器件中。
(4)進(jìn)行仿真功能。仿真功能是EDA設(shè)計當(dāng)中尤為關(guān)鍵的一個步驟,在下載編程前,使用QuartusII軟件對適配產(chǎn)生的結(jié)果進(jìn)行模擬調(diào)試。時序仿真和功能仿真是EDA設(shè)計過程中利用QuartusII軟件產(chǎn)生的兩個不同功能的仿真結(jié)果。其中,時序仿真是對相對應(yīng)的元器件的硬件特性進(jìn)行了具體且詳細(xì)的表達(dá),并根據(jù)適配器產(chǎn)生的網(wǎng)表文件進(jìn)行仿真,仿真程度較高,且最接近于元器件運行的真實狀況。功能仿真僅僅只對設(shè)計者所想要的表達(dá)的邏輯功能進(jìn)行仿真,不會考慮到硬件特性,并且能夠完全滿足設(shè)計者的需求。
(5)進(jìn)行編程程序下載功能。對所設(shè)計的相關(guān)電路、元器件進(jìn)行仿真驗證結(jié)束后,使用Byteblaster下載電纜線通過JTAG的方式將適配產(chǎn)生的配置文件下載至FPGA/CPLD器件內(nèi)[7],有利于對硬件設(shè)施的調(diào)試與驗證。上述5個步驟完成后,將整個硬件系統(tǒng)進(jìn)行統(tǒng)一的測試,目的是為了能夠發(fā)現(xiàn)設(shè)計中存在的問題,以便能夠及時解決。在本科教學(xué)當(dāng)中EDA的理論與實驗課程應(yīng)同步的與數(shù)字信號課程的理論與實驗課程同步進(jìn)行,教師在教學(xué)過程中應(yīng)當(dāng)綜合地把兩門課程的知識點相互聯(lián)系起來,不僅能夠讓本科生在學(xué)習(xí)理論知識過程中了解到兩門課程之間的聯(lián)系,而且能夠有效地提高動手操作能力,為今后的實際工程項目進(jìn)行預(yù)熱。
實際工程領(lǐng)域中,很多問題都會涉及到信號處理的問題,主要包括兩大類信號,一是模擬信號的處理,二是數(shù)字信號的處理。對于模擬信號的處理通過使用數(shù)字信號處理技術(shù)來實現(xiàn),實現(xiàn)的步驟為:第一步將模擬信號經(jīng)過濾波、放大等技術(shù)進(jìn)行預(yù)處理,第二步利用模/數(shù)轉(zhuǎn)化器將模擬信號轉(zhuǎn)換為數(shù)字信號,將處理后得到的數(shù)字信號進(jìn)行目的性的處理,最后將經(jīng)過前兩個步驟處理好后的數(shù)字信號通過數(shù)/模轉(zhuǎn)換器轉(zhuǎn)換為模擬信號。
在本科教學(xué)數(shù)字信號處理課程當(dāng)中,基本的數(shù)字信號處理方法主要包括線性時不變系統(tǒng)輸入輸出之間的關(guān)系、傅里葉變換、Z-變換、信號流圖結(jié)構(gòu)、IIR濾波器設(shè)計、FIR濾波器設(shè)計[7,8]等。
假設(shè)數(shù)字系統(tǒng)為線性時不變系統(tǒng),其單位脈沖響應(yīng)為h(n),系統(tǒng)的輸入為x(n)、輸出為y(n),則該數(shù)字系統(tǒng)輸出信號為系統(tǒng)輸入信號與系統(tǒng)單位脈沖響應(yīng)之間的線性卷積,即:
式(1)中“*”表示線性卷積運算。若x(n)的長度為M,h(n)的長度為N,則y(n)的長度為M+N-1。
同理可得:
式(2)中Y(k)、X(k)、H(k)分別為y(n)、x(n)、h(n)對應(yīng)的離散傅里葉變換;式(3)中Y(z)、X(z)、H(z)分別為y(n)、x(n)、h(n)對應(yīng)的Z-變換。H(k)或H(z)是數(shù)字系統(tǒng)的傳輸函數(shù)。
數(shù)字信號處理的目的,就是設(shè)計滿足需要的H(z),從而通過式(3),將輸入信號X(z)變換為滿足需要的輸出信號Y(z)。同樣,這里H(z)也可以看成是濾波網(wǎng)絡(luò),它可以表示為一個有理函數(shù):
當(dāng)A(z)≠1,則H(z)為IIR(Infinite Impulse Response)系統(tǒng),當(dāng)A(z)=1,則H(z)為FIR(Finite Impulse Response)系統(tǒng)。
在IIR或FIR網(wǎng)絡(luò)結(jié)構(gòu)中,包含延遲線z-1、加法器及乘法器三種基本運算,學(xué)生首先要熟練掌握這三種基本運算的EDA實現(xiàn),然后在此基礎(chǔ)上根據(jù)數(shù)字系統(tǒng)H(z)的具體情況采用合適的結(jié)構(gòu)和算法予以實現(xiàn)。
延遲線z-1的作用就是使信號延遲一個時鐘周期,在VHDL語言編程當(dāng)中可以使用D觸發(fā)器來實現(xiàn),通俗來說就是在時鐘上升沿階段將輸入信號傳輸?shù)捷敵鲂盘枺唧w實現(xiàn)程序如下。
延遲線z-1產(chǎn)生的仿真結(jié)果如圖1所示:
由圖1可以知道,輸出信號q為輸入信號d的一個時鐘周期的延遲。
同樣,可以設(shè)計出VHDL語言的加法器:
這里設(shè)計的是有符號運算的時序加法器。
同樣,在上述程序中,將y<= a + b改成y<= a*b,即可設(shè)計出有符號運算的時序乘法器。
在學(xué)生掌握網(wǎng)絡(luò)結(jié)構(gòu)的三種基本運算的EDA設(shè)計之后,根據(jù)數(shù)字系統(tǒng)H(z)的具體要求,要求學(xué)生利用EDA設(shè)計出對應(yīng)的結(jié)構(gòu)和算法,以有效提高學(xué)生對數(shù)字信號處理課程的掌握。如在FIR數(shù)字濾波器的教學(xué)過程中,首先要求學(xué)生根據(jù)FIR濾波器的設(shè)計指標(biāo)利用MATLAB設(shè)計出相應(yīng)的濾波器系數(shù),其次要求學(xué)生畫出FIR濾波器實現(xiàn)的結(jié)構(gòu)流圖,最后利用EDA技術(shù)對FIR濾波器結(jié)構(gòu)流圖進(jìn)行實現(xiàn)。圖2與圖3為FIR濾波器設(shè)計的仿真結(jié)果。圖2為同幅度的50Hz與200Hz的兩個正弦信號疊加而成的原信號及其頻譜的MATLAB程序顯示。圖3為使用QuartusII軟件設(shè)計出的FIR濾波器后,其對原信號進(jìn)行濾波功能后得到的信號及其頻譜的MATLAB程序顯示,其實現(xiàn)的過程是將QuartusII仿真輸出的波形圖保存為*.tbl文件,之后利用MATLAB讀出相應(yīng)的信號并顯示。從圖2、圖3結(jié)果,可以看出基于EDA設(shè)計的FIR濾波器是正確的。
同樣地,在數(shù)字信號處理的教學(xué)過程中, 對IIR濾波、基于FFT的頻譜分析、卷積計算等也相應(yīng)地利用EDA進(jìn)行了有效實現(xiàn),確實加強(qiáng)了學(xué)生對這些基本方法的掌握,大幅度的提高本科生將所學(xué)的數(shù)字信號處理理論知識融入到實際工程問題的能力。
在數(shù)字信號處理的教學(xué)過程中,嘗試了融合EDA的教學(xué)改革,有效提高了學(xué)生對數(shù)字信號處理基本理論與方法的掌握,一定程度上提升了學(xué)生的實際動手操作能力。
(1)對數(shù)字信號處理關(guān)鍵算法及其硬件實現(xiàn)給學(xué)生講透,并將基于EDA的數(shù)字信號處理實現(xiàn)理念貫穿于整個教學(xué)過程中。
(2)對于IIR濾波器、FIR濾波器、FFT、卷積等數(shù)字信號處理核心算法,給出其EDA實現(xiàn)的程序設(shè)計及其仿真結(jié)果。
(3)保留大部分基于MATLAB仿真的數(shù)字信號處理實驗,對部分?jǐn)?shù)字信號處理核心算法改為基于EDA設(shè)計與實現(xiàn)。
通過上述研究,在數(shù)字信號處理課程當(dāng)中大幅度地融入EDA技術(shù)課程,對大學(xué)生融合EDA與數(shù)字信號處理能力的提升起到關(guān)鍵作用。為高校培養(yǎng)復(fù)合型人才提供重要的保障,能過有效的提高大學(xué)生實際解決問題的能力,提升相應(yīng)的專業(yè)素養(yǎng),為本科生在今后的實際工程項目中打下堅實的基礎(chǔ)。