孫慧霞,周上楠,周 玲,竇永梅
(運城學(xué)院 物理與電子工程系, 山西 運城 044000)
幾乎所有的工程技術(shù)領(lǐng)域都會涉及到信號處理問題,而數(shù)字信號處理以其靈活性、高精度、高可靠性、便于大規(guī)模集成以及可以實現(xiàn)模擬系統(tǒng)無法實現(xiàn)的諸多功能等優(yōu)點,成為發(fā)展最快、應(yīng)用最廣泛、成效最顯著的學(xué)科之一,目前已廣泛應(yīng)用于雷達、圖像、語音、聲納、控制、通信、地震、航空航天、生物醫(yī)學(xué)、地質(zhì)勘探、故障檢測、遙感遙測、自動化儀表等領(lǐng)域[1-3]。然而,數(shù)字信號處理涉及到的理論較抽象,算法復(fù)雜,不易理解。如何以可視化的方式將數(shù)字信號處理的基本運算和典型算法形象進行展現(xiàn)是一個重要課題。
目前,普遍采用基于MATLAB圖形用戶界面(Graphical User Interface, GUI)設(shè)計開發(fā)數(shù)字信號處理仿真平臺。但開發(fā)的功能主要基于最基本的信號產(chǎn)生、運算、頻譜分析、FIR濾波器和IIR濾波器的設(shè)計,缺乏工程實際案例的引入及功率譜估計和自適應(yīng)濾波等常用算法[4-11]。本文基于工程實際案例,采用MATLAB GUI開發(fā)出數(shù)字信號處理仿真平臺,可以用通俗、直觀的圖形來表現(xiàn)各種數(shù)字信號以及其處理過程,包括信號產(chǎn)生、信號的基本運算、卷積計算、CZT、FFT、IIR濾波器、FIR濾波器,并引入實際工程應(yīng)用中常用的功率譜估計以及自適應(yīng)濾波算法,使本身抽象難懂的理論知識變得可視化,從而更加容易理解和掌握。
圖形用戶界面開發(fā)環(huán)境(Graphical User Interface Development Environment, GUIDE)是MATLAB軟件中專為GUI設(shè)計的向?qū)гO(shè)計器[12]。圖形用戶界面作為交互式的MATLAB用戶可視化工具,運用圖形用戶界面生成的操作界面可以使用戶直觀地進行可視化操作,而無需瀏覽繁冗的代碼,提高了易讀性,能快速獲取信息[13-14]。
基于MATLAB GUI開發(fā)的數(shù)字信號處理仿真平臺包括1個系統(tǒng)主界面和9個系統(tǒng)子界面,其中每個子界面中都可以進行參數(shù)選擇和結(jié)果顯示,如圖1所示。
圖1 平臺界面總體框圖Figure 1. Overall block diagram of platform interface
平臺設(shè)計采用自頂而下的設(shè)計方法,先設(shè)計主界面,再設(shè)計子界面。在Command窗口中輸入guide,即可進入創(chuàng)建GUI平臺界面,選取Blank GUI,點擊確定后,會進入fig界面。在該界面中通過設(shè)計按鈕、坐標區(qū)、可編輯文本框、靜態(tài)文本等GUI工具,并以此產(chǎn)生回調(diào)函數(shù)。通過對參數(shù)進行修改,建立GUI平臺。主界面由9個按鍵組成,每個按鍵對應(yīng)著數(shù)字信號處理仿真平臺的一個知識點,每個按鍵由一個Callback回調(diào)函數(shù)來調(diào)用相關(guān)算法或者濾波器的子界面,進行相關(guān)算法的計算與使用。
“數(shù)字信號處理”仿真平臺基于MATLAB GUI實現(xiàn),該仿真平臺能夠?qū)崿F(xiàn)的應(yīng)用包括信號產(chǎn)生、信號基本運算、卷積計算、Chirp-z變換(CZT)、FFT計算、功率譜估計、IIR濾波器設(shè)計、FIR濾波器設(shè)計以及自適應(yīng)濾波算法?!皵?shù)字信號處理”仿真平臺的主界面如圖2所示。
圖2 數(shù)字信號處理仿真平臺主界面Figure 2. Main interface of digital signal processing simulation platform
信號的產(chǎn)生界面中,包含了數(shù)字信號處理常見的信號,例如三角波、方波、單位階躍信號、Sa抽樣信號、正弦信號、余弦信號、實指數(shù)信號、隨機信號等,可單擊其中所需要產(chǎn)生的信號按鈕,生成對應(yīng)波形。信號產(chǎn)生的子界面如圖3所示。
圖3 信號產(chǎn)生子界面Figure 3. Sub-interface of signal generation
在信號基本運算子界面中,可以在序列1模塊和序列2模塊中自由選擇抽樣序列、單位階躍序列、實指數(shù)序列、正弦序列。通過修改相關(guān)參數(shù)可獲得需要的信號波形,計算方式包括序列相乘、序列相加、序列反折、序列倒相。本界面利用MATLAB相關(guān)函數(shù)簡化了計算過程,直觀地得到序列基本運算的結(jié)果。圖4為正弦序列和單位階躍序列進行序列相乘的結(jié)果。
圖4 信號基本運算子界面Figure 4. Sub-interface of signal basic operation
在卷積計算子界面中,可以在信號1和信號2中選取三角波、方波、階躍信號、Sa抽樣信號、正弦信號、余弦信號、實指數(shù)信號等信號中的兩個進行卷積運算。卷積方式可選線性卷積、圓周卷積和補零法求線性卷積。卷積后的結(jié)果可以直觀顯示出來,讓使用者淺顯易懂地掌握線性卷積和圓周卷積的特點,三角波和Sa抽樣信號進行線性卷積的結(jié)果如圖5所示。
圖5 卷積計算子界面Figure 5.Sub-interface of convolution calculation
Chirp-z變換(CZT)子界面中,可以通過修改相關(guān)參數(shù)獲得所需波形,并顯示出原始信號、幅頻響應(yīng)、相頻響應(yīng)圖像。從而將抽象難懂的CZT用頻響函數(shù)表示出來,有助于更好地理解和掌握CZT算法。CZT變換的原始信號及其幅頻響應(yīng)和相頻響應(yīng)如圖6所示。
圖6 CZT子界面Figure 6.Sub-interface of CZT
FFT子界面如圖7所示,示例輸入信號為兩個疊加的正弦信號,并加入高斯白噪聲,輸入采樣頻率和采樣時間,點擊“確定”按鍵可獲得信號功率以及相關(guān)波形、幅頻響應(yīng)和相頻響應(yīng)。
圖7 FFT子界面Figure 7. Sub-interface of FFT
功率譜估計是數(shù)字信號處理的重要內(nèi)容之一[15],在功率譜估計子界面中,可以選定經(jīng)典功率譜和現(xiàn)代功率譜估計方法。其中,經(jīng)典功率譜估計方法有相關(guān)圖法、周期圖法、平均周期圖法和加窗平均周期圖法等,現(xiàn)代功率譜估計方法有Burg算法、MUSIC算法、特征向量法等。為比較不同的功率譜估計算法,分別采用周期圖法和Burg算法對加噪信號進行分析,其功率譜分別如圖8和圖9所示。通過對比圖8和圖9可以看出,采用周期圖法的經(jīng)典功率譜估計方差較大,譜分辨率較差,采用Burg算法的現(xiàn)代功率譜估計的譜分辨率較高。
圖8 周期圖法估計功率譜子界面Figure 8.Sub-interface of power spectrum estimation based on periodogram method
圖9 Burg算法估計功率譜子界面Figure 9.Sub-interface of power spectrum estimation based on Burg algorithm
典型的IIR濾波器有巴特沃斯濾波器(Butterworth Filter)、切比雪夫I型濾波器(Chebyshev I Filter)、切比雪夫II型濾波器(Chebyshev II Filter)、橢圓濾波器(Ellipse Filter)等。在設(shè)計IIR濾波器時,首先根據(jù)實際需求選擇合適的濾波器類型,并確定濾波器的相關(guān)參數(shù),點擊幅頻響應(yīng)、相位響應(yīng)、沖激響應(yīng)、階躍響應(yīng)、零極點圖,可得到對應(yīng)的濾波器的相關(guān)波形。以巴特沃斯低通濾波器設(shè)計為例,其幅頻響應(yīng)如圖10所示。
圖10 IIR濾波器設(shè)計子界面Figure 10.Sub-interface of IIR filter
采用窗函數(shù)法設(shè)計FIR濾波器,可以選取的窗類型有矩形窗(Rectangle Window)、三角形窗(Bartlett Window)、漢寧窗(Hanning Window)、哈明窗(Hamming Window)等典型窗,根據(jù)設(shè)計需要選擇合適的窗函數(shù)及相關(guān)參數(shù)即可得到所需的濾波器。以哈明窗(Hamming Window)為例設(shè)計的FIR高通濾波器,其幅頻響應(yīng)如圖11所示。
圖11 FIR濾波器設(shè)計子界面Figure 11.Sub-interface of FIR filter
自適應(yīng)濾波算法包括線性自適應(yīng)算法和非線性自適應(yīng)算法,其中線性自適應(yīng)算法在實際中應(yīng)用更廣泛。自適應(yīng)濾波算法主要有兩類,分別是基于最小均方誤差準則、最陡下降法的LMS自適應(yīng)濾波算法和基于最小二乘法的RLS自適應(yīng)濾波算法[16]。對于加噪的聲音信號,以LMS自適應(yīng)濾波算法為例,其原始信號、加噪后的信號、采用LMS濾波后的信號的時域波形和頻譜結(jié)果如圖12所示。由圖12可以看出,加噪后的聲音信號經(jīng)過LMS算法濾波后能夠較好地濾除噪聲。
圖12 自適應(yīng)濾波器設(shè)計子界面Figure 12.Sub-interface of adaptive filter
基于MATLAB GUI設(shè)計了數(shù)字信號處理仿真平臺,引入實際工程案例作為示例,以交互式的方式將數(shù)字信號處理的基本運算和典型算法直觀、方便地演示出來,實現(xiàn)的功能有信號產(chǎn)生、基本運算、卷積計算、CZT、FFT、功率譜估計、IIR濾波器、FIR濾波器、自適應(yīng)濾波,對于理解和掌握數(shù)字信號處理的常用運算和典型算法具有一定的意義。在下一步的工作中,將在數(shù)字信號處理MATLAB GUI仿真平臺中進一步充實實際工程案例,為從事信號與信息處理工作的科研人員提供參考。