版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
畢業(yè)設(shè)計(jì)-基于MATLAB的數(shù)字信號處理虛擬實(shí)驗(yàn)仿真平臺(tái)【完整版】(文檔可以直接使用,也可根據(jù)實(shí)際需要修訂后使用,可編輯放心下載)
摘要畢業(yè)設(shè)計(jì)-基于MATLAB的數(shù)字信號處理虛擬實(shí)驗(yàn)仿真平臺(tái)【完整版】(文檔可以直接使用,也可根據(jù)實(shí)際需要修訂后使用,可編輯放心下載)?數(shù)字信號處理?在大專院校的通信類及電子類專業(yè)中是一門非常重要的根底課程,具有內(nèi)容抽象,學(xué)生不容易掌握的特點(diǎn)。另一方面,教師在講授主要些內(nèi)容時(shí)也不方便。針對教學(xué)中存在的這種問題,為了方便教師授課和學(xué)生學(xué)習(xí),使抽象的內(nèi)容形象化,提高學(xué)生的學(xué)習(xí)興趣,本文以MATLAB作為開發(fā)平臺(tái),設(shè)計(jì)了基于MATLAB的數(shù)字信號處理虛擬實(shí)驗(yàn)仿真平臺(tái),改變了傳統(tǒng)的實(shí)驗(yàn)方式,將數(shù)字信號處理的實(shí)驗(yàn)內(nèi)容集中在一個(gè)平臺(tái)上,操作簡單方便,結(jié)果直觀準(zhǔn)確。MATLAB開放的環(huán)境、功能極強(qiáng)的圖形繪制、各種工具箱及其簡單易學(xué)的特點(diǎn),使系統(tǒng)開發(fā)簡單、快捷。本系統(tǒng)采用友好的GUI界面設(shè)計(jì),用簡潔的文字、豐富的畫面將抽象的內(nèi)容展現(xiàn)在學(xué)生面前,提高了學(xué)生的學(xué)習(xí)積極性和主動(dòng)性。關(guān)鍵詞:數(shù)字信號處理;實(shí)驗(yàn)平臺(tái);MATLAB;GUI
ThedesignofdigitalsignalprocessingvirtualexperimentsimulationplatformbasedonMatlabStudent:HuangZhong-ZeTeacher:LiXinAbstract:“DigitalSignalProcessing〞istheimportantfoundationcourseofelectricalandcommunicationsprofessionalsinuniversity,thecontentisveryabstractyandstudentsarenoteasytograsp.Theotherhand,teacherstaughtinsomemaincontentsnotveryconvenient.Againstsuchproblemsexistinteaching,toallowteacherstoteachandstudentstolearn.Soabstractasfigurative,Enhancetheirlearninginterest.ThispaperrepresentsdigitalsignalprocessingvirtualexperimentsimulationplatformusingMatlab.Itchangesthetraditionalteachingmethodsandfocusonthecontentofaplatform.Operationissimpleandconvenient.Resultsisvisualandaccurate.Matlabprovidesanopenenvironment,highlyfunctionalgraphicalrendering.Toolboxanditsfeaturesiseasytolearn,whichmakethesystemdevelopmentsimpleandfast,ThesystemusesafriendlyGUIinterfacedesign,usingsimplelanguage,richpicturewillbedisplayedtheabstractcontentinthefrontofthestudentsandimprovedstudent’slearningenthusiasmandinitiative. Keywords:digitalsignalprocessing;experimentplatform;matlab;gui 目錄摘要 IAbstract II目錄 11引言 21.1課題的背景 21.2 國內(nèi)外研究現(xiàn)狀 21.3課題主要研究內(nèi)容和研究意義 32MATLAB的介紹 42.1MATLAB簡介 42.2MATLAB語言的開展歷程和影響 42.3MATLAB語言的特點(diǎn) 52.4MATLAB的工作環(huán)境 52.5工作環(huán)境的特點(diǎn) 53MATLAB在數(shù)字信號處理教學(xué)中的應(yīng)用 63.1MATLAB的應(yīng)用現(xiàn)狀 63.2MATLAB在?數(shù)字信號處理?教學(xué)中的應(yīng)用 63.3在數(shù)字信號處理教學(xué)實(shí)驗(yàn)中應(yīng)用MATLAB的意義 74數(shù)字信號處理虛擬實(shí)驗(yàn)仿真平臺(tái)設(shè)計(jì)的必要性和可行性 84.1增加MATLAB內(nèi)容的必要性和可行性 84.1.1必要性 8可行性 104.2用MATLAB做數(shù)字信號處理虛擬實(shí)驗(yàn)仿真平臺(tái)的優(yōu)點(diǎn) 104.2.1數(shù)字信號處理課程實(shí)驗(yàn)的教學(xué)現(xiàn)狀 104.2.2強(qiáng)大的作圖功能使抽象的概念一目了然 11利用現(xiàn)代化的教學(xué)手段,增強(qiáng)教學(xué)效果 115基于matlab數(shù)字信號處理虛擬實(shí)驗(yàn)仿真平臺(tái)整體構(gòu)建方案 125.1仿真平臺(tái)應(yīng)用軟件設(shè)計(jì)實(shí)現(xiàn) 12總體結(jié)構(gòu)設(shè)計(jì) 12軟件實(shí)現(xiàn) 136基于matlab的數(shù)字信號處理虛擬實(shí)驗(yàn)仿真平臺(tái)的實(shí)現(xiàn) 146.1界面的設(shè)計(jì)方法 14句柄圖形及圖形用戶界面 146.1.2GUIDE的設(shè)計(jì)過程 146.1.3基于matlab的數(shù)字信號處理虛擬實(shí)驗(yàn)仿真平臺(tái)主界面 156.1.4基于MATLAB數(shù)字信號處理實(shí)驗(yàn)設(shè)計(jì)實(shí)例 19實(shí)驗(yàn)仿真平臺(tái)的特點(diǎn) 257結(jié)論 26致謝 27參考文獻(xiàn) 281引言1.1課題的背景數(shù)字信號處理是應(yīng)用最快、成效最顯著的新科學(xué)之一,廣泛地應(yīng)用在通信、控制、生物醫(yī)學(xué)、遙測遙感、地址勘探、航空航天、自動(dòng)化儀表等領(lǐng)域,國內(nèi)外高校都為相關(guān)專業(yè)的學(xué)生開設(shè)了這門課程。除通信電子信息類的專業(yè)外,計(jì)算機(jī)科學(xué)與技術(shù)、光信息科學(xué)與技術(shù)、地理信息系統(tǒng)、信息平安、生物醫(yī)學(xué)工程、測控技術(shù)與儀器等專業(yè)都在教學(xué)方案中相繼設(shè)置了?數(shù)字信號處理?課程。?數(shù)字信號處理?是一門非常重要的課程,它利用傅立葉變換和Z變換等數(shù)學(xué)方法,闡述了離散信號的特性和時(shí)域離散系統(tǒng),通過對IIR和DIR濾波器的設(shè)計(jì),分析了數(shù)字信號處理的實(shí)現(xiàn)方法。?數(shù)字信號處理?課程的特點(diǎn)是概念多,公式、性質(zhì)的推導(dǎo)和證明繁瑣,還需?信號與系統(tǒng)?等相關(guān)課程的根底,被公認(rèn)為大學(xué)課程中最難的課程之一,學(xué)生對上課內(nèi)容的理解往往跟不上老師授課的進(jìn)度?,F(xiàn)在很多大學(xué)教師在課堂上采用了多媒體教學(xué),多媒體授課具有教學(xué)信息量大,信息傳遞便捷、交互性較強(qiáng)、感官刺激效果好等特點(diǎn)。對于講授?數(shù)字信號處理?課程的老師來說,要提高學(xué)生對這門課的認(rèn)識(shí),可從豐富教學(xué)手段入手,除了考慮制作具有動(dòng)態(tài)效果的幻燈片之外,還可以采用像MATLAB這樣的軟件設(shè)計(jì)多媒體課件,而利用MATLAB強(qiáng)大的數(shù)值計(jì)算和信號處理功能,可以很方便地得到設(shè)計(jì)結(jié)果,并能直觀地分析和比擬濾波器的各項(xiàng)性能指標(biāo)以及各種設(shè)計(jì)方法的優(yōu)劣,為學(xué)生理解算法和簡化運(yùn)算帶來了極大的方便。數(shù)字信號處理是一門以算法為核心的理論性很強(qiáng)的學(xué)科,許多理論都基于比擬抽象和繁瑣的推論和推導(dǎo),本科學(xué)生學(xué)習(xí)這門課程具有一定的困難,所以實(shí)驗(yàn)顯得尤為重要。目前我校的?數(shù)字信號處理?課程共48學(xué)時(shí),其中10學(xué)時(shí)MATLAB軟件編程實(shí)驗(yàn),對理論進(jìn)行驗(yàn)證,可幫助學(xué)生理解與掌握課程中的根本概念,根本分析方法,提高學(xué)生的動(dòng)手能力,科研能力和創(chuàng)新能力。國內(nèi)外研究現(xiàn)狀隨著科學(xué)技術(shù)的開展,傳統(tǒng)的教學(xué)媒體如黑板﹑教科書承載信息的種類和能力都十分有限,遠(yuǎn)遠(yuǎn)滿足不了現(xiàn)代教學(xué)的需要.另一方面學(xué)生理解和接授知識(shí)時(shí)感覺枯燥、難度大.計(jì)算機(jī)技術(shù)的飛速開展和MATLAB軟件的推出,利用計(jì)算機(jī)進(jìn)行輔助教學(xué)這種教學(xué)手段己經(jīng)逐步進(jìn)入課堂教學(xué)領(lǐng)域。MATLAB是數(shù)字信號處理的一個(gè)卓越平臺(tái),具有開放的環(huán)境、功能極強(qiáng)的矩陣運(yùn)算、圖形繪制、數(shù)據(jù)處理、各種工具箱等許多優(yōu)點(diǎn),為系列課的教學(xué)提供了一個(gè)連續(xù)的、有實(shí)用價(jià)值的工具[1]。國外在假設(shè)干年前,就開始把交互式軟件MATLAB用于數(shù)字信號處理的教學(xué),采用易學(xué)易用、功能強(qiáng)大的系統(tǒng)開發(fā)平臺(tái)作為計(jì)算機(jī)輔助教學(xué)軟件。目前,我國數(shù)字信號處理教學(xué)輔助軟件已經(jīng)不少,但是大多采用的VB、VC或使用FLASH動(dòng)畫實(shí)現(xiàn),而采用MATLAB自身的圖形用戶界面設(shè)計(jì),取得了良好的效果,但數(shù)字信號處理實(shí)驗(yàn)平臺(tái)在設(shè)計(jì)過程中還有許多不盡完善的地方,學(xué)生實(shí)驗(yàn)復(fù)雜,還容易出錯(cuò),實(shí)驗(yàn)設(shè)備損壞率較高。1.3課題主要研究內(nèi)容和研究意義根據(jù)我校學(xué)生的實(shí)際情況,考慮到如果采用學(xué)生自己編程的方法,需要學(xué)生熟練掌握一種高級語言和具有一定的軟件編程能力和技巧。本課程教學(xué)的重點(diǎn)不在于提高學(xué)生的編程能力,而是要求學(xué)生掌握數(shù)字信號處理的根本概念,根本方法和根本技能。因此,為了提高教學(xué)效果,激發(fā)學(xué)生的學(xué)習(xí)的興趣,降低實(shí)驗(yàn)本錢,本文基于MATLAB設(shè)計(jì)了一套數(shù)字信號處理虛擬實(shí)驗(yàn)平臺(tái),該平臺(tái)利用MATLAB的圖形用戶界面〔GUI〕設(shè)計(jì)工具,以實(shí)驗(yàn)內(nèi)容為依托,設(shè)計(jì)了與實(shí)驗(yàn)內(nèi)容配套,與課堂教學(xué)相結(jié)合,將實(shí)驗(yàn)內(nèi)容融入教學(xué)過程中,可用于?數(shù)字信號處理?課程的實(shí)驗(yàn)輔助教學(xué)、課堂教學(xué)演示,也可作為學(xué)生課后自學(xué)的輔助工具。實(shí)踐證明,這種教學(xué)實(shí)驗(yàn)輔助軟件起到了良好的效果,提高了同學(xué)們對理論的理解和對內(nèi)容的掌握,并且學(xué)生在使用過程中再進(jìn)行一系列的驗(yàn)證,加深了對所學(xué)內(nèi)容進(jìn)一步的理解和穩(wěn)固。2MATLAB的介紹2.1MATLAB簡介MATLAB是美國Mathworks公司開發(fā)的新一代科學(xué)計(jì)算軟件,是一套高性能的數(shù)值計(jì)算和可視化軟件,功能強(qiáng)大,編程簡單,開放性強(qiáng),廣泛應(yīng)用于計(jì)算機(jī)輔助分析設(shè)計(jì)、仿真、數(shù)據(jù)處理等領(lǐng)域,是當(dāng)今國際上公認(rèn)的在科技領(lǐng)域方面最為優(yōu)秀的應(yīng)用軟件和開發(fā)環(huán)境。在歐美各高等院校,已經(jīng)成為應(yīng)用線性代數(shù)、自動(dòng)控制理論、數(shù)據(jù)統(tǒng)計(jì)、數(shù)字信號處理、時(shí)間序列分析、動(dòng)態(tài)系統(tǒng)仿真、圖像處理等高級課程的根本教學(xué)工具。MATLAB是一種既可交互使用又能解釋執(zhí)行的計(jì)算機(jī)編程語言,使用接近數(shù)學(xué)表達(dá)式的自然化語言,簡單易學(xué),具有可靠的數(shù)值、符號運(yùn)算能力和強(qiáng)大的圖形和可視化功能;此外,MATLAB內(nèi)部包括許多專業(yè)性較強(qiáng)的工具包并與其他高級語言有接口[2]。MATLAB的功能和特點(diǎn)使它具備了對應(yīng)用學(xué)科(特別是邊緣學(xué)科和交叉學(xué)科)的極強(qiáng)適應(yīng)力,并很快成為應(yīng)用學(xué)科計(jì)算機(jī)輔助分析、設(shè)計(jì)、仿真、數(shù)學(xué)乃至科技文字處理不可缺少的根底軟件。2.2MATLAB語言的開展歷程和影響 MathWorks公司于1993年推出MATLAB4.0版本,從此辭別DOS版。4.x版在繼承和開展其原有的數(shù)值計(jì)算和圖形可視能力。1997年仲春,MATLAB5.0版問世,緊接著是5.1、5.2,以及和1999年春的5.3版。 誠然,到1999年底,Mathematica也已經(jīng)升到6.0版,它特別加強(qiáng)了以前欠缺的大規(guī)模數(shù)據(jù)處理能力。但是,就影響而言,至今仍然沒有一個(gè)別的計(jì)算軟件可與MATLAB匹敵。 在歐美大學(xué)里,諸如應(yīng)用代數(shù)、數(shù)理統(tǒng)計(jì)、自動(dòng)控制、數(shù)字信號處理、模擬與數(shù)字通信、時(shí)間序列分析、動(dòng)態(tài)系統(tǒng)仿真等課程的教科書都把MATLAB作為內(nèi)容。在國外MATLAB是攻讀學(xué)位的大學(xué)生、碩士生、博士生必須掌握的根本工具。 在國際學(xué)術(shù)界,MATLAB已經(jīng)被確認(rèn)為準(zhǔn)確、可靠的科學(xué)計(jì)算標(biāo)準(zhǔn)軟件。在許多國際一流學(xué)術(shù)刊物上,都可以看到MATLAB的應(yīng)用。2.3MATLAB語言的特點(diǎn) MATLAB自問世起,就以數(shù)值計(jì)算稱雄。MATLAB進(jìn)行數(shù)值計(jì)算的根本處理單位是復(fù)數(shù)數(shù)組〔或稱陣列〕,并且數(shù)組維數(shù)是自動(dòng)按照規(guī)那么確定的。這一方面使MATLAB程序可以被高度“向量化〞,另方面使用戶易寫易讀。 MATLAB指令是簡單的,但其內(nèi)涵卻遠(yuǎn)遠(yuǎn)超出了普通教科書的范圍,其計(jì)算的快速性、準(zhǔn)確性和穩(wěn)定性都是普通程序所遠(yuǎn)不及的。 數(shù)據(jù)類型的變革,面向?qū)ο缶幊碳夹g(shù)的采用,所產(chǎn)生的影響是廣泛而深層的。這種影響首先表現(xiàn)在MATLAB的自身。 新版MATLAB的控制流新增了多分支結(jié)構(gòu)switch-case、try-catch結(jié)構(gòu)和警告提示指令error、warning,這進(jìn)一步提高了程序的可讀性和運(yùn)行可靠性。 新版的函數(shù)類型大大豐富,適應(yīng)編制和管理復(fù)雜程度不同的程序。而子函數(shù)、私用函數(shù)的增添,使得復(fù)雜函數(shù)比擬容易組織,既提高了軟件的“重用度〞,又防止了眾多內(nèi)存變量名的沖突、龐大工具庫的函數(shù)名沖突。2.4MATLAB的工作環(huán)境 所謂工作環(huán)境是指:幫助系統(tǒng)、工作內(nèi)存管理、指令和函數(shù)管理、搜索路徑管理、操作系統(tǒng)、程序調(diào)試和性能剖析工具等。2.5工作環(huán)境的特點(diǎn)〔1〕大量引入圖形用戶界面〔2〕引入了全方位幫助系統(tǒng)〔3〕M文件編輯、調(diào)試的集成環(huán)境〔4〕Notebook新的安裝方式3MATLAB在數(shù)字信號處理教學(xué)中的應(yīng)用3.1MATLAB的應(yīng)用現(xiàn)狀MATLAB的函數(shù)和命令幾乎可以實(shí)現(xiàn)C或FORTRAN語言的全部功能,用戶不懂C或者FOR2TRAN等高級語言也能開發(fā)出功能強(qiáng)大、界面友好、穩(wěn)定可靠的程序來,開發(fā)周期大大縮短。假設(shè)用戶熟悉C或FORTRAN,MATLAB提供了相應(yīng)的接口,允許相互調(diào)用,因此MATLAB具有較好的開放性。MATLAB的高效編程還表達(dá)在各類學(xué)科的專家在各自的領(lǐng)域用MATLAB編寫的許多準(zhǔn)確、高效的工具箱,工具箱實(shí)際上是對MATLAB進(jìn)行擴(kuò)展應(yīng)用的一系列MATLAB函數(shù)(稱為M文件),供用戶方便地使用,諸如信號處理、圖象處理、控制系統(tǒng)、工程優(yōu)化及神經(jīng)網(wǎng)絡(luò)等工具箱。所以MATLAB逐漸成為涉及數(shù)值分析的各類學(xué)科教學(xué)與科學(xué)研究必不可少的工具。SIMULINK是一個(gè)用來對動(dòng)態(tài)系統(tǒng)進(jìn)行建模、仿真和分析的軟件包,SIMULINK為用戶提供了用方框圖進(jìn)行建模的圖形接口,采用這種結(jié)構(gòu)化模型就像用筆和紙來畫一樣容易。它與傳統(tǒng)的仿真軟件包用微分方程和差分方程建模相比,更具直觀、方便、靈活的優(yōu)點(diǎn)。目前,興旺國家高等院校的工科類學(xué)生都把MATLAB作為必修課,實(shí)驗(yàn)室通常都配備裝有MATLAB的計(jì)算機(jī)供學(xué)生學(xué)習(xí)和研究使用。學(xué)生的許多作業(yè)都可以在計(jì)算機(jī)上完成,這些硬條件為許多課程的教學(xué)帶來了極大的靈活性和便利性。而我國工科類的教學(xué)還未能充分利用MATLAB強(qiáng)大功能,現(xiàn)有的MATLAB書籍大都作為計(jì)算機(jī)應(yīng)用工具書出現(xiàn),未能與具體學(xué)科的教材有機(jī)地結(jié)合起來。3.2MATLAB在?數(shù)字信號處理?教學(xué)中的應(yīng)用?數(shù)字信號處理?是20世紀(jì)60年代以來,隨著大規(guī)模集成電路和計(jì)算機(jī)技術(shù)的開展而迅速開展起來的一門新興學(xué)科。它以精度高、靈活性大、可靠性強(qiáng)、易于大規(guī)模集成等優(yōu)點(diǎn)在通信、雷達(dá)、地震、聲納、遙感和生物醫(yī)學(xué)等領(lǐng)域得到了越來越廣泛的應(yīng)用。它不僅是電子信息、通信類專業(yè)的主干課程,也是工科學(xué)生受益較多的一門課程。數(shù)字信號處理研究的是用數(shù)字的方法,正確快速地處理信號提取各類信息。該課程的特點(diǎn)是理論性強(qiáng),涉及到的數(shù)學(xué)理論、公式很多,知識(shí)面非常廣泛,既討論理論問題,又討論理論的應(yīng)用。該課程內(nèi)容比擬抽象,尤其是課程中的許多章節(jié)的內(nèi)容,需要作圖才能理解有關(guān)概念和原理,學(xué)生學(xué)習(xí)起來難于理解,學(xué)習(xí)的積極性和學(xué)習(xí)質(zhì)量都受到一定影響,教學(xué)質(zhì)量難以提高。我認(rèn)為現(xiàn)有的教材缺乏典型具體的實(shí)例,來全面系統(tǒng)地貫穿這些理論根底知識(shí)。這就使得學(xué)生在學(xué)習(xí)時(shí),一直停留于抽象的、外表的理解,不能與實(shí)際信號處理系統(tǒng)聯(lián)系起來,形成明確的解決問題的思路。鑒于教學(xué)中的這些問題,我認(rèn)為可從如下幾個(gè)方面來著手解決:〔1〕從專業(yè)課程設(shè)置上,建議給通信工程專業(yè)低年級學(xué)生開設(shè)計(jì)算機(jī)應(yīng)用教程,把MATLAB的根底知識(shí)作為此課程的重要內(nèi)容。使得學(xué)生能夠掌握使用MATLAB這類工程計(jì)算軟件的根本技術(shù),包括根本數(shù)學(xué)計(jì)算、矩陣處理、計(jì)算結(jié)果的可視化和符號運(yùn)算等?!?〕現(xiàn)有的?數(shù)字信號處理?教材,應(yīng)適當(dāng)?shù)丶右愿?。課程內(nèi)容應(yīng)緊密結(jié)合當(dāng)前電子信息學(xué)科開展的趨勢,不僅注重理論,而且還要側(cè)重于系統(tǒng)性強(qiáng)、有工程實(shí)際意義的實(shí)例,并且將MATLAB引入教學(xué)中。使得學(xué)生通過典型信號處理系統(tǒng)的數(shù)學(xué)建模、系統(tǒng)性能分析及設(shè)計(jì),真正掌握信號系統(tǒng)理論解決工程問題的一套系統(tǒng)科學(xué)的方法。再次,教師在推動(dòng)MATLAB的教學(xué)應(yīng)用中起著相當(dāng)重要的作用。教師應(yīng)該通過應(yīng)用MATLAB進(jìn)行科研來提高自身的水平,只有通過科研才能深刻理解MATLAB強(qiáng)大的功能及其在工程中的應(yīng)用。這樣講課才能真正做到科研與教學(xué)相長??傊?MATLAB在電子信息領(lǐng)域的應(yīng)用潛力極大,尤其在數(shù)字信號處理課程教學(xué)過程中的應(yīng)用,設(shè)計(jì)一些有典型代表意義的仿真實(shí)驗(yàn),幫助學(xué)生學(xué)習(xí)復(fù)雜的信號處理系統(tǒng)的數(shù)學(xué)模型建立、算法實(shí)現(xiàn)。此外,將MATLAB有效地貫穿于數(shù)字信號處理課程教學(xué)環(huán)節(jié)中,需不斷總結(jié)和積累經(jīng)驗(yàn),只有這樣,才能切實(shí)改良和提高教學(xué)質(zhì)量。3.3在數(shù)字信號處理教學(xué)實(shí)驗(yàn)中應(yīng)用MATLAB的意義由于這門學(xué)科的抽象性,數(shù)字信號處理課程處于一種教難、學(xué)更難的境況中,主要因?yàn)?一方面本課程要求較好的數(shù)學(xué)根底,公式和推導(dǎo)很多,大量的算法適于在計(jì)算機(jī)上實(shí)現(xiàn),對于學(xué)生來說運(yùn)算量大而繁瑣,學(xué)習(xí)者難以親手驗(yàn)證,因而得不到形象化的結(jié)果,使得對理論的理解難以透徹;另一方面,學(xué)生難以把本課程的理論應(yīng)用到實(shí)際當(dāng)中去,解決一些實(shí)際問題,從而無法提高對本課程的學(xué)習(xí)興趣。因此,針對課程教學(xué)中存在的上述問題,設(shè)計(jì)基于Matlab軟件的數(shù)字信號處理課程實(shí)驗(yàn)系統(tǒng),利用Matlab的圖形界面設(shè)計(jì)功能和相應(yīng)的信號處理工具箱,將課程中枯燥的原理、理論及分析方法等內(nèi)容設(shè)計(jì)成一個(gè)完整的交互式實(shí)驗(yàn)演示系統(tǒng),以圖形的方式展示給學(xué)生,一方面直觀地驗(yàn)證了相關(guān)原理、方法的正確性,有助于學(xué)生對抽象理論的理解,另一方面加深了學(xué)生對所學(xué)知識(shí)的理解,更重要的是激發(fā)了學(xué)生的學(xué)習(xí)興趣,又能彌補(bǔ)實(shí)驗(yàn)手段的缺乏,從而到達(dá)提高課堂教學(xué)質(zhì)量目的[3]。4數(shù)字信號處理虛擬實(shí)驗(yàn)仿真平臺(tái)設(shè)計(jì)的必要性和可行性?數(shù)字信號處理?是電子通信類相關(guān)專業(yè)的一門重要專業(yè)根底課程,是本科生后續(xù)課程和研究生課程的根底,它在專業(yè)課程體系中占有重要地位.該課程的主要任務(wù)是通過對數(shù)字信號處理理論知識(shí)的學(xué)習(xí),培養(yǎng)學(xué)生對數(shù)字信號處理系統(tǒng)的分析和設(shè)計(jì)能力、工程實(shí)踐能力和創(chuàng)新能力.課程的特點(diǎn)是:內(nèi)容豐富、理論性強(qiáng)、涉及知識(shí)面廣、信息量大、更新開展快,而且比擬抽象,習(xí)題多、難度大,是具有一定深度和學(xué)習(xí)難度的課程,學(xué)生感到難學(xué),教師難教.顯然面對這樣一門課程,沿用傳統(tǒng)的“課堂講授+驗(yàn)證性實(shí)驗(yàn)〞的教學(xué)方法是無法解決問題的.必須更新觀念,建立一套包括理論講授、計(jì)算機(jī)輔助教學(xué)、實(shí)踐教學(xué)在內(nèi)的全方位的課程教學(xué)新體系,充分調(diào)動(dòng)教師和學(xué)生兩方面的積極性,利用各種教學(xué)方法和手段,全面提高課程的教學(xué)質(zhì)量.4.1增加MATLAB內(nèi)容的必要性和可行性必要性?數(shù)字信號處理?是一門技術(shù)根底課,需要將所學(xué)得理論應(yīng)用到實(shí)踐中去。有必要從一開始就讓學(xué)生以簡單的MATLAB語言學(xué)習(xí)用計(jì)算機(jī)如何建模,如何分析和設(shè)計(jì)函數(shù)等,以強(qiáng)化數(shù)字信號理論的應(yīng)用性,另一方面,MATLAB強(qiáng)大的可視化數(shù)據(jù)處理功能也能夠彌補(bǔ)數(shù)字信號處理理論課程授課時(shí)數(shù)的缺乏。例如,在數(shù)字信號處理理論課程中常采用各種圖形進(jìn)行分析,這些圖形需要分析、計(jì)算、描繪點(diǎn)等過程,常常要花費(fèi)不少的時(shí)間。如果采用MATLAB語言只需一條指令立刻就可以得到。舉例如下:對于定義在離散域的函數(shù),卷積定義為:,通過MATLAB編程就可以實(shí)現(xiàn)兩個(gè)函數(shù)a,b進(jìn)行卷積,卷積在MATLAB中的調(diào)用命令是conv(a,b)。a=input('Typeinthefirstsequence=');b=input('Typeinthesecondsequence=');%輸入?yún)?shù)a,bc=conv(a,b);%a,b進(jìn)行卷積M=length(c)-1;%M的長度n=0:1:M;%n的取值范圍disp('outputsequence=');disp(c)%顯示輸出數(shù)stem(n,c)%畫離散序列數(shù)據(jù)圖xlabel('Timeindexn');ylabel('Amplitude');%X表示抽樣時(shí)間指數(shù),Y軸表示幅度在上面的程序中輸入a=[1,2,3],b=[4,5,6]。a,b進(jìn)行卷積所得結(jié)果如下:圖1卷積結(jié)果對于a=[1,2,3]與b=[4,5,6]的卷積可以通過手算得到結(jié)果:運(yùn)算如下23*4566121851015+4812413222718手算的結(jié)果與MATLAB所得結(jié)果一樣,證明用MATLAB做的結(jié)果是對的,并且MATLAB得到的結(jié)果更直觀,更生動(dòng),更快捷,不需要花費(fèi)時(shí)間。實(shí)踐證明,由于教學(xué)內(nèi)容直觀性增強(qiáng)了,教材中的理論和公式更易于理解,教學(xué)質(zhì)量明顯提高。學(xué)生學(xué)會(huì)使用MATLAB語言之后,也能很容易地利用它繪制出各種圖形,有利于更好地理解數(shù)字信號處理的根本原理和核心概念[4]。增加MATLAB語言內(nèi)容,可以促進(jìn)數(shù)字信號處理理論的教學(xué),提高學(xué)生興趣,增強(qiáng)學(xué)生自己動(dòng)手分析、設(shè)計(jì)系統(tǒng)的能力,而且老師在課堂可以直觀的演示使抽象的理論變成生動(dòng)的圖形界面,而且還可以對系統(tǒng)的穩(wěn)定性進(jìn)行分析使學(xué)生對于這門課程有一個(gè)全新的認(rèn)識(shí)。總之,這將利于培養(yǎng)出知識(shí)面廣、動(dòng)手能力強(qiáng)、綜合素質(zhì)高的學(xué)生。4.1.2可行性MATLAB語言可在目前的各種類型的計(jì)算機(jī)上運(yùn)行,安裝簡易。MATLAB語言比一般的高級語言(如C、FORTAN等)執(zhí)行效率低,而其編程效率與可讀性、可移植性要遠(yuǎn)遠(yuǎn)高于其他高級語言。將MATLAB參加到實(shí)驗(yàn)教學(xué)中,一方面"讓學(xué)生用簡單的MATLAB語言學(xué)習(xí)用計(jì)算機(jī)如何建模"如何分析和設(shè)計(jì)系統(tǒng)等"以強(qiáng)化原理的應(yīng)用性,另一方面MATLAB強(qiáng)大的可視化數(shù)據(jù)處理功能也可以彌補(bǔ)課程授課時(shí)的缺乏"以減少教師繪圖表的麻煩和不精確,還可防止傳統(tǒng)理論教學(xué)中教師在黑板畫圖消耗時(shí)間及手工畫圖的不精確性。在課程中增加MATLAB語言內(nèi)容"可以促進(jìn)電子信息工程的教學(xué)"提高學(xué)生興趣"增強(qiáng)學(xué)生自己動(dòng)手分析MATLAB設(shè)計(jì)系統(tǒng)的能力,MATLAB這將有利于培養(yǎng)知識(shí)面更廣,動(dòng)手能力更強(qiáng),綜合素質(zhì)更高的學(xué)生,數(shù)字信號處理理論教學(xué)與MATLAB語言有機(jī)的結(jié)合"是電子信息領(lǐng)域開展的潮流"也順應(yīng)了通信與電子信息專業(yè)學(xué)生專業(yè)立足點(diǎn)高,知識(shí)更新,綜合素質(zhì)更突出的要求,因此"在數(shù)字信號處理根底課程中增加MATLAB內(nèi)容"不僅使學(xué)生掌握了理論教學(xué)的內(nèi)容"同時(shí)也教學(xué)生一些應(yīng)用理論的手段[5]。4.2用MATLAB做數(shù)字信號處理虛擬實(shí)驗(yàn)仿真平臺(tái)的優(yōu)點(diǎn)4.2.1數(shù)字信號處理課程實(shí)驗(yàn)的教學(xué)現(xiàn)狀現(xiàn)代科學(xué)技術(shù)的迅速開展,促進(jìn)了數(shù)字信號處理理論和技術(shù)的迅速開展,該課程以高等數(shù)學(xué)、工程數(shù)學(xué)、電路分析、信號與系統(tǒng)等課程為根底背景,課程數(shù)學(xué)含量大,概念抽象,數(shù)學(xué)公式推導(dǎo)以及數(shù)學(xué)結(jié)果繁雜難以理解,長期以來一直采用單一的黑板式教學(xué),許多分析結(jié)果只能停留在復(fù)雜的數(shù)學(xué)表達(dá)式上,缺乏直觀表現(xiàn)。學(xué)生在理解和穩(wěn)固教學(xué)內(nèi)容的時(shí)候,經(jīng)常要消耗很大的精力在數(shù)學(xué)計(jì)算和計(jì)算公式的熟練使用上,注重?cái)?shù)學(xué)推倒卻忽略變換過程的本質(zhì),工程概念薄弱,理論與實(shí)際聯(lián)系缺乏。原理、方法與應(yīng)用脫節(jié),達(dá)不到課程本身要求培養(yǎng)學(xué)生綜合應(yīng)用能力的目的,也很難調(diào)動(dòng)學(xué)生學(xué)習(xí)的積極性。隨著教學(xué)改革的深入開展和計(jì)算機(jī)應(yīng)用技術(shù)的普及和提高,利用計(jì)算機(jī)進(jìn)行輔助教學(xué)這種教學(xué)手段己經(jīng)逐步進(jìn)入課堂教學(xué)領(lǐng)域。MATLAB是計(jì)算機(jī)輔助分析與設(shè)計(jì)的一個(gè)卓越平臺(tái),具有開放的環(huán)境、功能極強(qiáng)的矩陣運(yùn)算、圖形繪制、數(shù)據(jù)處理、各種工具箱等許多優(yōu)點(diǎn),為教學(xué)提供了一個(gè)連續(xù)的、有實(shí)用價(jià)值的工具,對系統(tǒng)仿真和穩(wěn)定性分析等課程均可在這個(gè)平臺(tái)上進(jìn)行教學(xué)改革。4.2.2強(qiáng)大的作圖功能使抽象的概念一目了然數(shù)字信號處理課程學(xué)習(xí)離散信號頻域分析,離散富里葉變換快速算法解決信號分析問題,數(shù)字濾波器的設(shè)計(jì)原理和實(shí)現(xiàn)方法,信號譜分析的根本方法,概念抽象,公式多,學(xué)習(xí)起來難度比擬大。MATLAB強(qiáng)大的繪圖功能使得用圖形來驗(yàn)證理論結(jié)果不再是一件繁瑣的事情,直觀、方便。時(shí)域分析法、頻域分析法及狀態(tài)空間分析法用MATLAB均能實(shí)現(xiàn)。4.2.3利用現(xiàn)代化的教學(xué)手段,增強(qiáng)教學(xué)效果教學(xué)硬件設(shè)施的不斷加強(qiáng)和完善,為把計(jì)算機(jī)作為教學(xué)媒體引人課堂提供了條件,在課堂教學(xué)進(jìn)行的過程中,適時(shí)地穿插應(yīng)用計(jì)算機(jī)進(jìn)行演示教學(xué),用簡潔的文字、豐富的畫面、逼真的動(dòng)畫以及聲音等形象直觀地呈現(xiàn)在學(xué)生面前,不僅提高了學(xué)生學(xué)習(xí)本課程的興趣,還使得一些比擬抽象的概念和過去教學(xué)過程中學(xué)生反映難以理解和掌握的內(nèi)容,通過生動(dòng)、形象的方法向?qū)W生說明,使學(xué)生更容易理解和掌握.5基于matlab數(shù)字信號處理虛擬實(shí)驗(yàn)仿真平臺(tái)整體構(gòu)建方案5.1仿真平臺(tái)應(yīng)用軟件設(shè)計(jì)實(shí)現(xiàn)5.1.1總體結(jié)構(gòu)設(shè)計(jì)軟件采用MATLAB開發(fā)平臺(tái),利用其可視化編程能力的圖形用戶界面GUI,按照控制教學(xué)、實(shí)驗(yàn)、應(yīng)用等內(nèi)容,設(shè)計(jì)出相應(yīng)的仿真平臺(tái)應(yīng)用軟件結(jié)構(gòu)圖,如圖2所示.系統(tǒng)主界面由10個(gè)主要子窗體模塊構(gòu)成,分別大綱要求的10個(gè)實(shí)驗(yàn).通過單擊主界面上子模塊相應(yīng)的按鈕即可啟動(dòng)相應(yīng)的子窗體,MATLAB的應(yīng)用程序,以M文件形式出現(xiàn).各軟件模塊主要的功能是實(shí)現(xiàn)教學(xué)大綱要求做的實(shí)驗(yàn)。MATLAB總體結(jié)構(gòu)圖:基于MATLAB的數(shù)字信號處理虛擬實(shí)驗(yàn)仿真平臺(tái)構(gòu)建基于MATLAB的數(shù)字信號處理虛擬實(shí)驗(yàn)仿真平臺(tái)構(gòu)建實(shí)驗(yàn)一MATLAB根本操作實(shí)驗(yàn)二離散信號的時(shí)域運(yùn)算實(shí)驗(yàn)三因果離散線性系統(tǒng)時(shí)域分析實(shí)驗(yàn)四DTFT變換的性質(zhì)及應(yīng)用實(shí)驗(yàn)五Z變換的性質(zhì)及應(yīng)用實(shí)驗(yàn)六離散時(shí)間系統(tǒng)的頻域分析實(shí)驗(yàn)七DFT變換的性質(zhì)及應(yīng)用實(shí)驗(yàn)八數(shù)字低通巴特沃斯濾波器的設(shè)計(jì)實(shí)驗(yàn)九窗函數(shù)設(shè)計(jì)FIR濾波器實(shí)驗(yàn)十基于FFT的圖象壓縮與放大圖2基于MATLAB的數(shù)字信號處理虛擬實(shí)驗(yàn)仿真平臺(tái)構(gòu)建5.1.2軟件實(shí)現(xiàn)要將系統(tǒng)結(jié)構(gòu)圖中的內(nèi)容在用戶界面里表現(xiàn)出來,就必須有參數(shù)輸入、結(jié)果輸出、圖形仿真輸出等,且這些都能進(jìn)行比照分析,因此要求有個(gè)友好、操作簡單、可讀性強(qiáng)、易修改的圖形用戶界面,選擇MATLAB中具有可視化編程能力的圖形界面GUI,將它提供的工具與編程經(jīng)驗(yàn)結(jié)合起來,完成軟件界面的創(chuàng)立.各級界面主要利用向?qū)Ь庉嬈鱃UIDE中提供的控件,利用圖標(biāo)及其對應(yīng)的功能來設(shè)計(jì)友好的交互式界面.使用PropertyInspector修改控件屬性,如背景色、前景色、字體及大小、位置、標(biāo)志、類型等.借助GUI設(shè)計(jì)面板提供的控件布置編輯器“AlignOb-jects〞,很容易的對所選對象進(jìn)行水平、垂直和間隔排列布置.通過圖形界面中控件的操作來完成圖形界面的功能,這些操作是通過函數(shù)代碼的執(zhí)行來完成的.函數(shù)代碼的編制通過編寫回調(diào)函數(shù)時(shí)實(shí)現(xiàn),把函數(shù)代碼放在一個(gè)自定義的M文件中,而在“callback〞中只寫上其文件名.當(dāng)操作該控件時(shí),系統(tǒng)會(huì)自動(dòng)執(zhí)行“callback〞中所要求執(zhí)行的內(nèi)容,將子菜單界面所保存的文件名與主界面的菜單名關(guān)聯(lián)起來,完成相應(yīng)的功能,從而實(shí)現(xiàn)整個(gè)軟件設(shè)計(jì)[6]。
6基于matlab的數(shù)字信號處理虛擬實(shí)驗(yàn)仿真平臺(tái)的實(shí)現(xiàn)6.1界面的設(shè)計(jì)方法6.1.1句柄圖形及圖形用戶界面句柄圖形(HandleGraphics)就是將一個(gè)圖形的每一個(gè)組件都視為一個(gè)對象(Object),每一個(gè)對象都有一個(gè)獨(dú)一無二的“句柄〞(handle),根據(jù)這個(gè)句柄,就可以找到這個(gè)對象(即圖形組件)的各項(xiàng)屬性,并進(jìn)而更改這些屬性,以產(chǎn)生不同的圖形呈現(xiàn)效果。圖形用戶界面GUI(GraphicsUserInterface)是由各種圖形對象,如圖形窗口、圖軸、菜單、按鈕、文本框等構(gòu)建的用戶界面,是人機(jī)交流信息的工具和方法,在該界面內(nèi),用戶可以根據(jù)界面提示完成整個(gè)工程,卻不必去了解工程內(nèi)部是如何工作的。GUI設(shè)計(jì)即可以根本的MATLAB程序設(shè)計(jì)為主,也可以鼠標(biāo)為主利用GUIDE工具進(jìn)行設(shè)計(jì)。利用GUIDE設(shè)計(jì)圖形用戶界面時(shí),可通過GUI應(yīng)用屬性設(shè)置編輯器來設(shè)置對句柄操作的響應(yīng),findobj命令可以獲得所需對象的句柄[7]。6.1.2GUIDE的設(shè)計(jì)過程1〕GUI設(shè)計(jì)工具簡介在GUIDE設(shè)計(jì)環(huán)境中,需要用到的工具有屬性編輯器、控件布置編輯器、菜單編輯器、對象瀏覽器、網(wǎng)格標(biāo)尺設(shè)置編輯器以及GUI應(yīng)用屬性設(shè)置編輯器等。2)屬性編輯器(PropertiesInspector)翻開屬性編輯器的方法有多種,最常用的,選中控件對象以后,點(diǎn)擊工具條上的屬性設(shè)置按鈕,即可翻開屬性編輯器。通過該屬性編輯器來對所選圖形對象設(shè)置相關(guān)屬性。3)控件布置編輯器(AlignmentObjects)在編輯CUI過程中,通過控件布置編輯器可以方便地設(shè)置面板上GUI控件的布局。選中需要對齊的對象,然后選擇工具條上的控件布置按鈕,即可翻開控件布置編輯器。在控件布置編輯器中可以設(shè)置GUI控件水平以及垂直布局,包括對齊方式以及控件間距等。4)對象瀏覽器(ObjectBrowser)在GUI面板中點(diǎn)擊對象瀏覽按鈕可翻開對象瀏覽器,在該瀏覽器中可以方便地顯示出所有的圖形對象,單擊該對象那么可以翻開相應(yīng)的屬性編輯器。5)菜單編輯器(MenuEditor)在GUI面板中點(diǎn)擊菜單編輯按鈕可翻開菜單編輯器,通過菜單編輯器可以為圖形界面添加、設(shè)置和修改菜單項(xiàng),以及為右鍵添加快捷菜單。6)網(wǎng)格標(biāo)尺設(shè)置編輯器(GridandRulers)通過網(wǎng)格標(biāo)尺設(shè)置編輯器,可以在GUI面板中添加網(wǎng)格以及標(biāo)尺,來方便用戶的界面設(shè)計(jì)。選擇GUIDE主菜單中的Tools/GridandRulers即可翻開網(wǎng)標(biāo)尺設(shè)置編輯器。7)GUI應(yīng)用屬性設(shè)置編輯器(GUIDEApplica-tionOptions)通過該編輯器可以設(shè)定GUI界面縮放形式、GUI對句柄操作的響應(yīng)方式,以及定義GUI的保存方式。選擇GUIDE主菜單中的Tools/GUIOptions即可翻開GUI應(yīng)用屬性設(shè)置編輯器。8)GUI設(shè)計(jì)面板GUI設(shè)計(jì)面板是上述GUI設(shè)計(jì)工具應(yīng)用的平臺(tái),如圖1所示,面板上部提供了菜單和常用工具按鈕,左邊提供了多種GUI控件,如按鈕、單項(xiàng)選擇按鈕、復(fù)選框、文本框等。進(jìn)行GUI設(shè)計(jì)時(shí),首先單擊GUI面板左邊所需的控件,然后在右邊的圖形界面編輯區(qū)中再次單擊某一恰當(dāng)?shù)奈恢?這時(shí)將在該位置上為圖形界面添加一相應(yīng)的控件,接下來,通過屬性編輯器和對齊編輯器對各控件設(shè)置相關(guān)屬性和進(jìn)行界面布置,以完善界面功能。圖圖3GUI設(shè)計(jì)界面6.1.3基于matlab的數(shù)字信號處理虛擬實(shí)驗(yàn)仿真平臺(tái)主界面考慮到需要解決數(shù)據(jù)傳遞問題和編寫一些算法,在GUIDE中很難實(shí)現(xiàn),而用m文件可以生成非常復(fù)雜的界面,可以容易實(shí)現(xiàn)在不同窗口尺寸下給對象以適宜的位置,同時(shí)文件創(chuàng)立的對象,可以方便的在handle中存取數(shù)據(jù),因此本主界面的GUI是通過M腳本文件實(shí)現(xiàn)的[8]。利用M函數(shù)文件制作GUI,程序如下:h0=figure('toolbar','none',...'menu','none',...'color',[0,1,1],...'Visible','on','Resize','off',...'NumberTitle','off','HandleVisibility','on',...'position',[19856800500],...'name','基于matlab的數(shù)字信號處理虛擬實(shí)驗(yàn)仿真平臺(tái)');h1=axes('parent',h0,...'position',[0.240.460.70.5],...'visible','on');f=uicontrol('parent',h0,...'style','frame',...'position',[5290455]);f_23=uicontrol('parent',h0,...'style','frame',...'position',[10010660200]);p1=uicontrol('parent',h0,...'style','pushbutton',...'position',[1101604040],...'string','繪圖',...'callback',[...'m=str2num(get(e1,''string''));,',...'n=str2num(get(e2,''string''));,',...'a=get(l1,''value'');,',...'x=m:0.1:n;',...'ifa==1,',...'plot(x,sin(x)),',...'end,',...'ifa==2,',...'plot(x,cos(x)),',...'end,',...'ifa==3,',...'plot(x,exp(x)),',...'end']);p2=uicontrol('parent',h0,...'style','pushbutton',...'position',[700104040],...'string','關(guān)閉',...'callback','close');p3=uicontrol('parent',h0,...'style','pushbutton',...'position',[16016014040],...'string','MATLAB根本操作',...'callback','jibencao');p4=uicontrol('parent',h0,...'style','pushbutton',...'position',[32016014040],...'string','離散信號的時(shí)域運(yùn)算',...'callback','shiyanyi');p5=uicontrol('parent',h0,...'style','pushbutton',...'position',[54016019040],...'string','因果離散線性系統(tǒng)時(shí)域分析',...'callback','shiyaner');p6=uicontrol('parent',h0,...'style','pushbutton',...'position',[11011019040],...'string','DTFT變換的性質(zhì)及應(yīng)用(略)',...'callback',[...'']);p7=uicontrol('parent',h0,...'style','pushbutton',...'position',[32011016040],...'string','Z變換的性質(zhì)及應(yīng)用(略)',...'callback','');p8=uicontrol('parent',h0,...'style','pushbutton',...'position',[54011021040],...'string','離散時(shí)間系統(tǒng)的頻域分析(略)',...'callback','');p9=uicontrol('parent',h0,...'style','pushbutton',...'position',[1106018040],...'string','DFT變換的性質(zhì)及應(yīng)用',...'callback','shiyansan');p10=uicontrol('parent',h0,...'style','pushbutton',...'position',[3206022040],...'string','數(shù)字低通巴特沃斯濾波器的設(shè)計(jì)',...'callback','shiyansi');p11=uicontrol('parent',h0,...'style','pushbutton',...'position',[5606016040],...'string','窗函數(shù)設(shè)計(jì)FIR濾波器',...'callback','shiyanwu');p12=uicontrol('parent',h0,...'style','pushbutton',...'position',[1101022040],...'string','基于FFT的圖象壓縮與放大〔略〕',...'callback','');l1=uicontrol('parent',h0,...'style','listbox',...'position',[103008080],...'string','sin(x)|cos(x)|exp(x)',...'value',1,...'max',0.5,...'min',0);f2=uicontrol('parent',h0,...'style','text',...'string','選擇函數(shù)',...'fontsize',10,...'position',[103808020]);r1=uicontrol('style','radio',...'string','gridon',...'value',0,...'position',[101006020],...'callback',[...'gridon,',...'set(r1,''value'',1);,',...'set(r2,''value'',0)']);r2=uicontrol('style','radio',...'string','gridoff',...'position',[10806020],...'value',1,...'callback',[...'gridoff,',...'set(r2,''value'',1);,',...'set(r1,''value'',0)']);e1=uicontrol('parent',h0,...'style','edit',...'string',0,...'position',[202106020],...'horizontalalignment','right');e2=uicontrol('parent',h0,...'style','edit',...'string','3',...'position',[201506020],...'horizontalalignment','right');t1=uicontrol('parent',h0,...'style','text',...'string','Xfrom',...'fontsize',10,...'position',[202306020],...'horizontalalignment','center');t2=uicontrol('parent',h0,...'style','text',...'string','To',...'fontsize',10,...'position',[201706020],...'horizontalalignment','center');這個(gè)程序運(yùn)行以后就形成了圖4:圖4數(shù)字信號處理虛擬實(shí)驗(yàn)仿真平臺(tái)主界面6.1.4基于MATLAB數(shù)字信號處理實(shí)驗(yàn)設(shè)計(jì)實(shí)例1〕數(shù)字低通巴特沃斯濾波器的設(shè)計(jì)[9]實(shí)驗(yàn)?zāi)康模?掌握IIR數(shù)字濾波器的設(shè)計(jì)方法實(shí)驗(yàn)原理:IIR數(shù)字濾波器的設(shè)計(jì),主要采用間接法,即:首先設(shè)計(jì)出低通模擬濾波器H(S);進(jìn)行頻率變換,將其轉(zhuǎn)換為高通、帶通、帶阻濾波器;再用脈沖響應(yīng)不變法或雙線性變換法從模擬濾波器轉(zhuǎn)換為數(shù)字濾波器。對單極點(diǎn)的N階H(S)用局部展開式:沖激響應(yīng)不變法取H(S)的單階極點(diǎn)Sk的指數(shù)函數(shù)作為H〔Z〕的極點(diǎn)雙線性變換法是用代換H〔S〕中的S得到H(Z),雙線性變換法可完全消除頻率混疊失真但存在非線性頻率失真,而沖激響應(yīng)不變法存在混疊失真。在不同的設(shè)計(jì)階段MATLAB的信號處理工具箱都給出了相應(yīng)的濾波器設(shè)計(jì)函數(shù),這些函數(shù)代表了不同類型的逼近函數(shù)的濾波器,常用的有巴特沃斯濾波器、切比雪夫?yàn)V波器、橢圓濾波器類型。設(shè)計(jì)函數(shù):求最小階數(shù)N的函數(shù)buttord;模擬低通濾波器設(shè)計(jì)函數(shù)buttap;模擬數(shù)字變換函數(shù)-雙線性變換函數(shù)bilinear或脈沖響應(yīng)不變法函數(shù)impinvar;合為一步的數(shù)字濾波器設(shè)計(jì)函數(shù)butter。實(shí)驗(yàn)內(nèi)容:1.設(shè)計(jì)一個(gè)低通巴特沃斯模擬濾波器,繪制濾波器的的幅頻響應(yīng)及零極點(diǎn)圖。指標(biāo)如下:通帶截止頻率:WP=1000HZ,通帶最大衰減:RP=3dB阻帶截止頻率:Ws=2000HZ,阻帶最小衰減:Rs=40dB2.用沖激響應(yīng)不變法和雙線性變換法將一模擬低通濾波器轉(zhuǎn)換為數(shù)字低通濾波器,并圖釋H(S)和H(Z),采樣頻率Fs=1000Hz下面將以?數(shù)字低通巴特沃斯濾波器的設(shè)計(jì)?圖形界面的設(shè)計(jì)作為例子,詳細(xì)表達(dá)用GUIDE如何完成GUI設(shè)計(jì)。在MATLAB命令窗口中輸入guide翻開GUI的快速開發(fā)環(huán)境GUIDE。本軟件的界面包括3個(gè)命令按鈕、1個(gè)位圖格式的圖片、幾個(gè)靜態(tài)文本框和7個(gè)可編輯文本框.單擊GUI面板左邊所需的控件,然后在右邊的圖形界面編輯區(qū)中再次單擊某一恰當(dāng)?shù)奈恢?這時(shí)將在該位置上為圖形界面添加一相應(yīng)的控件,接下來,通過屬性編輯器和對齊編輯器對各控件設(shè)置相關(guān)屬性和進(jìn)行界面布置,以完善界面功能。要改變靜態(tài)文本框的屬性,需首先選中該控件,然后點(diǎn)擊工具條上的屬性設(shè)置按鈕翻開屬性編輯器,當(dāng)然也可通過雙擊的方式翻開屬性編輯器,然后通過該編輯器為靜態(tài)文本框設(shè)置相關(guān)屬性。tring屬性用來設(shè)置控件對象所顯示的內(nèi)容,這里設(shè)置為‘實(shí)驗(yàn)名稱:數(shù)字低通巴特沃斯濾波器的設(shè)計(jì)’,ForegroundColor屬性用來設(shè)置文本框的前景顏色,這里設(shè)置為黑色,控件的位置和大小可通過改變Position屬性中的值來調(diào)整,也可在GUI面板中用鼠標(biāo)拖動(dòng)控件來調(diào)整控件的位置和大小??删庉嬑谋究虻腟tring屬性刪除掉里面的字符,留空;Wp可編輯文本框的Tag屬性可設(shè)置為‘wp’,Ws可編輯文本框的Tag屬性可設(shè)置為‘ws’,同樣設(shè)置其它編輯文本框的Tag屬性,這樣方便用findobj命令來獲得可編輯文本框?qū)ο蟮木浔?。其他控件的屬性也都是如此設(shè)置的。另外,當(dāng)有控件需要對齊時(shí),可以通過對齊編輯器進(jìn)行修正。如圖5所示。圖5編輯狀態(tài)下的界面完成控件布局之后,開始編制回調(diào)程序。在GUI編輯狀態(tài)下用鼠標(biāo)右鍵單擊需要編寫回調(diào)程序的控件,我們右鍵單擊‘作圖1’控件,翻開右鍵快捷菜單從ViewCallbacks中選擇一種回調(diào)方式,翻開MATALB自動(dòng)生成的.m文件,并且系統(tǒng)會(huì)自動(dòng)生成如下語句:functionpushbutton7_Callback(hObject,eventdata,handles)其中,pushbutton7為控件對象的Tag(標(biāo)簽)屬性值,我們即可在該語句下編寫當(dāng)前控件的回調(diào)程序[8]。如下:functionpushbutton7_Callback(hObject,eventdata,handles)%hObjecthandletopushbutton7(seeGCBO)%eventdatareserved-tobedefinedinrsfutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)h=findobj('Tag','wp')h1=findobj('Tag','ws')h2=findobj('Tag','rs')h3=findobj('Tag','rp')wp=str2double(get(h,'String'));wp=str2double(get(h,'string'));ws=str2double(get(h1,'string'));rs=str2double(get(h2,'string'));rp=str2double(get(h3,'string'));%設(shè)置指標(biāo)[N,wn]=buttord(wp,ws,rp,rs,'s');%計(jì)算巴特沃斯低通濾波器的階數(shù)和3dB截止頻率[B,A]=butter(N,wn,'s');%代入N和Wn設(shè)計(jì)巴特沃斯模擬低通濾波器[Z,P,K]=buttap(N);%計(jì)算濾波器的零、極點(diǎn)[h,w]=freqs(B,A,1024);%計(jì)算1024點(diǎn)模擬濾波器頻率響應(yīng)h,和對應(yīng)的頻率點(diǎn)wfigure%巴特沃茲濾波器的幅頻響應(yīng)圖subplot(1,2,1);%分兩個(gè)窗口,幅頻圖在第一個(gè)窗口[N,wn]=buttord(wp,ws,rp,rs,'s');%計(jì)算巴特沃斯低通濾波器的階數(shù)和3dB截止頻率[B,A]=butter(N,wn,'s');%代入N和Wn設(shè)計(jì)巴特沃斯模擬低通濾波器[Z,P,K]=buttap(N);%計(jì)算濾波器的零、極點(diǎn)[h,w]=freqs(B,A,1024);%計(jì)算1024點(diǎn)模擬濾波器頻率響應(yīng)h,和對應(yīng)的頻率點(diǎn)w%畫頻率響應(yīng)幅度圖plot(w,20*log10(abs(h)/abs(h(1))))grid;xlabel('頻率Hz');ylabel('幅度(dB)');%給x軸和y軸加標(biāo)注title('巴特沃斯幅頻響應(yīng)')%給圖形加標(biāo)題axis([0,3000,-40,3]);line([0,2000],[-3,-3]);line([1000,1000],[-40,3]);%繪制巴特沃斯濾波器的極點(diǎn)圖subplot(1,2,2)%在第二個(gè)窗口畫極點(diǎn)圖p=P';q=Z';x=max(abs([p,q]));x=x+0.1;y=x;axis([-x,x,-y,y]);axis('square')plot([-x,x],[0,0]);holdonplot([0,0],[-y,y]);holdonplot(real(p),imag(p),'x')其它的回調(diào)程序詳見附錄。至此完成了界面的設(shè)計(jì),運(yùn)行后如圖6示。MATLAB將把該圖形界面保存于文件shiyansi.fig和shiyansi.m中,其中,圖形文件將保存GUI面板以及相應(yīng)控件、菜單設(shè)計(jì),M文件那么保存程序代碼。圖6運(yùn)行狀態(tài)下的界面在wp、Ws、Rs、Rp輸入框中分別輸入1000、2000、40、3。運(yùn)行作圖1控件,得到數(shù)字低通巴特沃斯濾波器界面如圖7:圖7
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年家具定制居間售后服務(wù)合同3篇
- 二零二五年度奢侈品導(dǎo)購代理合同2篇
- 二零二五年學(xué)校后勤保障中心保潔服務(wù)招標(biāo)合同2篇
- 二零二五年度家電產(chǎn)品代工與貼牌生產(chǎn)合同2篇
- 2025版商業(yè)空場地租賃合同范本-全面服務(wù)保障82篇
- 2025年度物業(yè)公司財(cái)務(wù)內(nèi)部控制與風(fēng)險(xiǎn)管理合同3篇
- 2025年度生態(tài)旅游區(qū)委托代建合同法律性質(zhì)及責(zé)任承擔(dān)解析3篇
- 二零二五年度建筑工地安全文明施工及綠色施工技術(shù)合同
- 二零二五年度按揭車抵押借款合同備案協(xié)議3篇
- 二零二五年度旅游住宿業(yè)短期貸款合同樣本2篇
- 四年級數(shù)學(xué)(除數(shù)是兩位數(shù))計(jì)算題專項(xiàng)練習(xí)及答案
- 2024-2030年鋁合金粉行業(yè)市場現(xiàn)狀供需分析及重點(diǎn)企業(yè)投資評估規(guī)劃分析研究報(bào)告
- 中考字音字形練習(xí)題(含答案)-字音字形專項(xiàng)訓(xùn)練
- 社區(qū)矯正個(gè)別教育記錄內(nèi)容范文
- 常見婦科三大惡性腫瘤的流行及疾病負(fù)擔(dān)研究現(xiàn)狀
- CTD申報(bào)資料撰寫模板:模塊三之3.2.S.4原料藥的質(zhì)量控制
- 植入(介入)性醫(yī)療器械管理制度
- (正式版)JTT 1482-2023 道路運(yùn)輸安全監(jiān)督檢查規(guī)范
- 圍手術(shù)期血糖的管理
- 2024年度醫(yī)療器械監(jiān)督管理?xiàng)l例培訓(xùn)課件
- 2024年民族宗教理論政策知識(shí)競賽考試題庫及答案
評論
0/150
提交評論