課程設(shè)計(jì)--dsp原理及應(yīng)用_第1頁
已閱讀1頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、<p>  課 程 設(shè) 計(jì) 報(bào) 告</p><p>  課程設(shè)計(jì)名稱: DSP原理及應(yīng)用 </p><p><b>  目 錄</b></p><p><b>  1.前言1</b></p><p>  2.課程設(shè)計(jì)引言2</p><p>  2.1課程設(shè)計(jì)

2、題目2</p><p>  2.2 課程設(shè)計(jì)目的2</p><p>  2.3 課程設(shè)計(jì)內(nèi)容和要求2</p><p>  2.3.1課程設(shè)計(jì)內(nèi)容2</p><p>  2.3.2 課程設(shè)計(jì)要求2</p><p>  2.4工作進(jìn)度安排及分工3</p><p>  2.4.1進(jìn)度安排

3、3</p><p>  2.4.2分工情況3</p><p><b>  3.基本原理4</b></p><p>  3.1 Matlab介紹4</p><p>  3.2螳螂算法及單目測(cè)距原理4</p><p>  3.2.1 螳螂算法4</p><p>  3

4、.2.2單目測(cè)距6</p><p>  4.GUI Design11</p><p>  5.測(cè)試結(jié)果及代碼14</p><p>  5.1 測(cè)試結(jié)果14</p><p>  5.2 實(shí)驗(yàn)代碼16</p><p>  6.總結(jié)和展望21</p><p><b>  7.參

5、考文獻(xiàn)23</b></p><p><b>  1.前言</b></p><p>  曾幾何時(shí),汽車對(duì)很多家庭來說是不敢想象的。但隨著社會(huì)生產(chǎn)力的發(fā)展和經(jīng)濟(jì)水平的大幅度提高,百姓的收入日益增加,解決了溫飽問題的家庭開始奔向小康,表現(xiàn)最明顯的是交通工具的升級(jí)換代:一些家庭開始購買汽車作為代步工具。 </p><p>  針

6、對(duì)汽車擁擠的現(xiàn)狀,設(shè)計(jì)一種反應(yīng)快,穩(wěn)定性好而且經(jīng)濟(jì)實(shí)用的汽車防撞測(cè)距儀對(duì)當(dāng)今汽車行駛安全現(xiàn)狀勢(shì)在必行。汽車防撞測(cè)距儀是一種向駕駛員報(bào)警的裝置,此汽車防撞測(cè)距儀能在汽車行駛和倒車過程中自動(dòng)檢測(cè)障礙物,然后通過超聲波測(cè)距原理測(cè)出汽車與障礙物之間的距離,并將距離顯示出來。當(dāng)汽車與障礙物之間的距離達(dá)到極限時(shí),系統(tǒng)發(fā)出聲光報(bào)警,達(dá)到提醒司機(jī)防止撞車的目的。</p><p>  隨著社會(huì)經(jīng)濟(jì)發(fā)展的不斷進(jìn)步,汽車的數(shù)量逐年增加

7、,汽車擁擠的現(xiàn)狀不可避免,而在汽車擁擠的情況下,惡性事故屢屢發(fā)生,時(shí)刻威脅著人們的安全。我國交通事故的年死亡人數(shù)遠(yuǎn)高于他國,分別是美國的2.3倍、德國的18.4倍、日本的13.4倍。當(dāng)現(xiàn)代家庭充分的享受汽車帶來方便的同時(shí),也為此付出了沉重的代價(jià)。據(jù)統(tǒng)計(jì),我國自2010年至2010年,已有150多萬人死于道路交通事故,其中大部分的道路交通事故為汽車追尾碰撞事故。面對(duì)當(dāng)今這種現(xiàn)狀,設(shè)計(jì)出一種反應(yīng)快,穩(wěn)定性好而且經(jīng)濟(jì)實(shí)用的汽車防撞測(cè)距儀勢(shì)在必

8、行。 </p><p>  防撞預(yù)警自動(dòng)測(cè)量技術(shù)應(yīng)運(yùn)而生,尤其非接觸式測(cè)量技術(shù)發(fā)展卓越。在大多情況下,測(cè)量與障礙物之間的距離是不能夠接觸到障礙物的,在這種時(shí)候就會(huì)用到非接觸式測(cè)量設(shè)備。</p><p>  無人駕駛車用激光標(biāo)定螳螂防撞算法的仿真,是高檔汽車防撞技術(shù)一部分,該系統(tǒng)是防止汽車碰撞的一種高科技智能裝置,它能夠通過雷達(dá)發(fā)現(xiàn)前方車輛、行人等其他障礙物,一旦通過微型處理器分析

9、對(duì)汽車安全構(gòu)成威脅就會(huì)發(fā)出警報(bào)提醒駕駛員同時(shí)采取相應(yīng)的制動(dòng)措施有效規(guī)避碰撞事故的發(fā)生,最大限度保障人和車的安全。</p><p><b>  2.課程設(shè)計(jì)引言</b></p><p><b>  2.1課程設(shè)計(jì)題目</b></p><p>  無人駕駛車用激光標(biāo)定螳螂防撞算法的仿真</p><p>

10、  2.2 課程設(shè)計(jì)目的 </p><p>  本課程是為通信工程專業(yè)本科生開設(shè)的必修課,結(jié)合學(xué)生的專業(yè)方向的理論課程,充分發(fā)揮學(xué)生的主動(dòng)性,使學(xué)生掌握應(yīng)用MATLAB 等仿真軟件建立基于激光與可見光的無人駕駛車防撞系統(tǒng),鞏固理論課程內(nèi)容,規(guī)范文檔的建立,培養(yǎng)學(xué)生的創(chuàng)新能力,并能夠運(yùn)用其所學(xué)知識(shí)進(jìn)行綜合的設(shè)計(jì),鼓勵(lì)2人一組。</p><p>  DSP的課程設(shè)計(jì)是對(duì)自適應(yīng)DSP控制原理與應(yīng)

11、用等系統(tǒng)仿真軟件、課程學(xué)習(xí)的綜合檢驗(yàn),配合理論課的教學(xué),讓學(xué)生親自參加設(shè)計(jì)、仿真、驗(yàn)證DSP系統(tǒng)的高級(jí)處理與控制原理、Applications等方面的關(guān)鍵知識(shí)點(diǎn)。</p><p>  2.3 課程設(shè)計(jì)內(nèi)容和要求</p><p>  2.3.1課程設(shè)計(jì)內(nèi)容</p><p>  在WINDOWS環(huán)境下,用MATLAB搭建圖像處理軟件,一位同學(xué)負(fù)責(zé)GUI的建設(shè),一位同學(xué)負(fù)

12、責(zé)后臺(tái)算法的建立,用手機(jī)預(yù)先拍好的激光標(biāo)定圖片序列構(gòu)建虛擬前進(jìn)過程,并播報(bào)與障礙物的距離,類似螳螂三單眼三維超高速“DMA”算法。</p><p>  2.3.2 課程設(shè)計(jì)要求</p><p><b>  要求:</b></p><p>  熟悉Matlab的GUI Design。</p><p>  熟悉Matlab的

13、Image邊框Process</p><p>  用手機(jī)與激光筆采集樣板圖序列</p><p>  Simulate電子PTZ功能</p><p>  用兩點(diǎn)定位計(jì)算報(bào)告第三點(diǎn)的距離</p><p>  如果時(shí)間多余再做如下試驗(yàn)箱互動(dòng)</p><p>  Connect with the TI board to mak

14、e warning sound </p><p>  User must be able to control the PTZ.</p><p>  2.4工作進(jìn)度安排及分工</p><p><b>  2.4.1進(jìn)度安排</b></p><p>  Day 1: 圖書館查閱資料,思考總體設(shè)計(jì)方案, 熟悉軟件的編程環(huán)境,

15、推薦的參考資料有:</p><p>  《MATLAB工程仿真》</p><p>  《MATLAB/SIMULINK系統(tǒng)建模與仿真實(shí)例分析》</p><p>  《TMS320C55x DSP Library Programmer’s Reference》</p><p>  Day 2: 總體設(shè)計(jì)方案的確定與設(shè)計(jì)</p>&

16、lt;p>  Day 3: 各部分的具體實(shí)現(xiàn)</p><p>  Day 4: 程序調(diào)試并程序注釋</p><p>  Day 5: 整理完成設(shè)計(jì)報(bào)告</p><p><b>  2.4.2分工情況</b></p><p>  繆敏同學(xué)負(fù)責(zé)Matlab的GUI Design和圖片的采集。</p>&

17、lt;p>  夏秋萍同學(xué)負(fù)責(zé)Matlab程序的編寫和修改。</p><p>  夏秋萍同學(xué)和繆敏同學(xué)共同負(fù)責(zé)課程設(shè)計(jì)報(bào)告的撰寫。</p><p><b>  3.基本原理</b></p><p>  3.1 Matlab介紹</p><p>  MATLAB是美國MathWorks公司出品的商業(yè)數(shù)學(xué)軟件,用于算法開

18、發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計(jì)算的高級(jí)技術(shù)計(jì)算語言和交互式環(huán)境,主要包括MATLAB和Simulink兩大部分。</p><p>  MATLAB是matrix&laboratory兩個(gè)詞的組合,意為矩陣工廠(矩陣實(shí)驗(yàn)室)。是由美國mathworks公司發(fā)布的主要面對(duì)科學(xué)計(jì)算、可視化以及交互式程序設(shè)計(jì)的高科技計(jì)算環(huán)境。它將數(shù)值分析、矩陣計(jì)算、科學(xué)數(shù)據(jù)可視化以及非線性動(dòng)態(tài)系統(tǒng)的建模和仿真等諸多強(qiáng)大功能集

19、成在一個(gè)易于使用的視窗環(huán)境中,為科學(xué)研究、工程設(shè)計(jì)以及必須進(jìn)行有效數(shù)值計(jì)算的眾多科學(xué)領(lǐng)域提供了一種全面的解決方案,并在很大程度上擺脫了傳統(tǒng)非交互式程序設(shè)計(jì)語言(如C、Fortran)的編輯模式,代表了當(dāng)今國際科學(xué)計(jì)算軟件的先進(jìn)水平。</p><p>  MATLAB和Mathematica、Maple并稱為三大數(shù)學(xué)軟件。它在數(shù)學(xué)類科技應(yīng)用軟件中在數(shù)值計(jì)算方面首屈一指。MATLAB可以進(jìn)行矩陣運(yùn)算、繪制函數(shù)和數(shù)據(jù)、

20、實(shí)現(xiàn)算法、創(chuàng)建用戶界面、連接其他編程語言的程序等,主要應(yīng)用于工程計(jì)算、控制設(shè)計(jì)、信號(hào)處理與通訊、圖像處理、信號(hào)檢測(cè)、金融建模設(shè)計(jì)與分析等領(lǐng)域。</p><p>  MATLAB的基本數(shù)據(jù)單位是矩陣,它的指令表達(dá)式與數(shù)學(xué)、工程中常用的形式十分相似,故用MATLAB來解算問題要比用C,F(xiàn)ORTRAN等語言完成相同的事情簡捷得多,并且MATLAB也吸收了像Maple等軟件的優(yōu)點(diǎn),使MATLAB成為一個(gè)強(qiáng)大的數(shù)學(xué)軟件。在

21、新的版本中也加入了對(duì)C,F(xiàn)ORTRAN,C++,JAVA的支持。</p><p>  3.2螳螂算法及單目測(cè)距原理</p><p>  3.2.1 螳螂算法</p><p>  在所有的動(dòng)物當(dāng)中,螳螂躲避攻擊對(duì)象的反應(yīng)速度最快,主要是因?yàn)轶氩坏袕?fù)眼還有單眼,當(dāng)攻擊對(duì)象的影像從復(fù)眼進(jìn)入單眼時(shí),單眼負(fù)責(zé)觀察目標(biāo)變大的速度,隨時(shí)通知中樞神經(jīng)逃避目標(biāo)。根據(jù)以上原理,我們

22、選擇了含有96個(gè)CPU與ARM處理器的芯片,96個(gè)CPU完成復(fù)眼的功能,ARM處理器完成單眼的功能。</p><p>  視覺幾何計(jì)算規(guī)避原理圖如圖1:</p><p><b>  圖1</b></p><p>  復(fù)眼CPU提供徑向畸變校正后的圖像image(t)和image(t-1),單眼提供features(t-1),同時(shí)負(fù)責(zé)提取feat

23、ures(t),如果feature沒有變化,則表示幾何視覺距離不變,如果feature有變化,進(jìn)行motion檢測(cè),進(jìn)行三角幾何計(jì)算,同時(shí)標(biāo)定聚合最終位置。</p><p>  計(jì)算機(jī)視覺的基本任務(wù)可以歸結(jié)到測(cè)量、識(shí)別和重建。為進(jìn)行視覺計(jì)算,必須首先獲得空間坐標(biāo)系與圖象坐標(biāo)系之間的變換關(guān)系,即為攝象機(jī)建立適當(dāng)?shù)哪P筒⑶蠼馄鋮?shù)。模型和參數(shù)的準(zhǔn)確程度直接影響視覺計(jì)算的精度。而視覺計(jì)算的魯棒性和可靠性、對(duì)源數(shù)據(jù)及計(jì)算

24、條件的誤差的容忍度、計(jì)算的代價(jià)等,都對(duì)算法是否能在實(shí)際中應(yīng)用有深刻的影響。</p><p>  三維視覺三角幾何計(jì)算原理圖如圖2</p><p><b>  圖2</b></p><p>  陰影部分為電子眼的光學(xué)軸長(A),B表示障礙的大小與位置,A、B的大小可以根據(jù)需要用軟件在飛行現(xiàn)場(chǎng)進(jìn)行長、寬、高的冪比例關(guān)系校準(zhǔn)與自標(biāo)定。</p&g

25、t;<p>  當(dāng)單眼在5幀圖像里看到變化超過δ=10個(gè)像素,斷定目標(biāo)有變化,復(fù)眼的速度是每秒30幀,變化是用最小均方差的方法計(jì)算的。計(jì)算公式如下:</p><p>  常用的自動(dòng)規(guī)避方法有雷達(dá),超聲波,紅外線或激光。每種方法都有他各自的優(yōu)缺點(diǎn)。雷達(dá)缺點(diǎn)是由于主動(dòng)發(fā)射電磁波,容易暴露自身,成為對(duì)方反輻射導(dǎo)彈的目標(biāo),另外也容易被干擾,只要對(duì)方采取電子對(duì)抗措施,如使用電子干擾或發(fā)射干擾彈,就無法正常工作

26、。超聲波測(cè)距的優(yōu)點(diǎn)是比較耐臟污,即使傳感器上有塵土,只要沒有堵死就可以測(cè)量,可以在較差的環(huán)境中使用,所以倒車?yán)走_(dá)多半使用超聲波,缺點(diǎn)是精度較低,且成本較高。紅外測(cè)距的優(yōu)點(diǎn)是便宜,易制,安全,缺點(diǎn)是精度低,距離近,方向性差。激光測(cè)距的優(yōu)點(diǎn)是精確,缺點(diǎn)是需要注意人體安全,且制做的難度較大,成本較高,而且光學(xué)系統(tǒng)需要保持干凈,否則將影響測(cè)量。所以我們決定選擇普通可見光低照度感光傳感器作為我們的測(cè)距方法。不但可以測(cè)量距離還可以識(shí)別跟蹤目標(biāo)。&l

27、t;/p><p><b>  3.2.2單目測(cè)距</b></p><p>  車輛的安全系統(tǒng)是智能交通系統(tǒng)的重要組成部分,在危險(xiǎn)預(yù)警系統(tǒng)、防撞系統(tǒng)等方面發(fā)揮著重要的作用,測(cè)距技術(shù)則是實(shí)現(xiàn)這一系統(tǒng)的關(guān)鍵部分。目前,可用于汽車測(cè)距主要有超聲波測(cè)距、毫米波雷達(dá)測(cè)距、激光測(cè)距和視覺測(cè)距這四類方式,除去只適合短距離測(cè)距的超聲波方式,與少則幾千,動(dòng)輒上萬的雷達(dá)或激光測(cè)距儀器相比,視覺

28、測(cè)距在成本設(shè)備方面有很大的價(jià)格優(yōu)勢(shì)。目前應(yīng)用于智能車輛的視覺系統(tǒng)根據(jù)攝像機(jī)的多少一般分為兩種:采用多個(gè)攝像機(jī)的立體視覺系統(tǒng)及采用單個(gè)攝像機(jī)的單目視覺系統(tǒng)。立體視覺雖然對(duì)于恢復(fù)深度信息及確定景物距離比較容易,測(cè)量精度高,但是計(jì)算速度較慢,成本較大,同時(shí)圖像配準(zhǔn)這一難題的存在缺大大限制了它的應(yīng)用。單目視覺系統(tǒng)的方法簡潔快速,具有更快的圖像處理速度和更好的控制實(shí)時(shí)性,也具有很好的研究和應(yīng)用前景。</p><p><

29、;b>  反轉(zhuǎn)透視測(cè)距模型</b></p><p>  攝像機(jī)采集圖像的過程是從三維歐拉空間到二維歐拉空間的幾何變換過程??紤]單目攝像機(jī)測(cè)距的幾何變換過程,如果用I表示三維的現(xiàn)實(shí)空間而用W表示圖像空間,則圖像采集過程是從I到W的過程。測(cè)距過程可以被視為這一過程的逆過程,如圖1所示 ,車距測(cè)量可以認(rèn)為是利用圖像空間W = {u,v}中的數(shù)據(jù) ,在一 定 的 先 驗(yàn) 條 件 下 計(jì) 算 現(xiàn) 實(shí) 空

30、間I ={x,y,z}中 的 一 個(gè) 平 面S ={(x, y,o)∈W }上的數(shù)據(jù)過程。</p><p>  獲得了目標(biāo)車輛底端在圖像空間中的縱坐標(biāo) u ,還需要獲得采集圖像的條件和對(duì)于圖像場(chǎng)景描述的假設(shè)。如果包括試點(diǎn)及攝像機(jī)的位置,由攝像機(jī)在現(xiàn)實(shí)空間中的位置 l,d,h表示;視圖方向由攝像機(jī)中心軸與標(biāo)準(zhǔn)軸的夾角和來表示;攝像機(jī)的孔徑張角 2α ;攝像機(jī)清晰度 m× n。以上參數(shù)值可通過測(cè)量或間接計(jì)算

31、獲得圖3。</p><p><b>  圖3</b></p><p>  m× n射線從攝像機(jī)到外界空間,獲得圖像空間中 (u, v)點(diǎn)的射線在實(shí)際間中的角度由θ(u)和 (v)來確定。</p><p>  其中 u、v 是I空間中的坐標(biāo), u = 0, 1,2,Κ Κ,m?1;v=0,1,2,ΚΚ,n?1。另外,地面上一點(diǎn)P在S平面

32、內(nèi)到攝像機(jī)的地面距離可以通過下一距離公式計(jì)算:</p><p>  綜合上述因素,得到前車距離的計(jì)算公式:</p><p>  該模型利用射線角度的關(guān)系建立離圖像空間I中的坐標(biāo)值u, v與現(xiàn)實(shí)空間平面 S = {( x, y,o) ∈W }的數(shù)據(jù)之間的關(guān)系。因此 , 獲得圖像中車輛的像素坐標(biāo)就可以計(jì)算出車輛在S平面中的實(shí)際位置圖4。</p><p><b>

33、;  圖4</b></p><p>  如果攝像機(jī)攝像中心軸與世界坐標(biāo)系中的 x 軸平行,則和值均為0,計(jì)算過稱亦可簡化為:</p><p>  基于幾何關(guān)系的投影模型和攝像機(jī)標(biāo)定的測(cè)距算法</p><p>  圖像采集是將客觀世界的三維場(chǎng)景投影到CCD攝像機(jī)(采集器)的二維像平面(CCD光敏矩陣表面)上,這個(gè)投影一般采用幾何透視變換來描述,其依據(jù)小孔成

34、像模型來描述此透視變換,如圖5所示。</p><p>  圖5 (a)CCD布置示意圖 (b)距離測(cè)量幾何模型</p><p>  其中, f 為CCD攝像機(jī)的有效焦距;</p><p>  α 為CCD攝像機(jī)的俯仰角度;</p><p>  h 為CCD攝像機(jī)的安裝高度(鏡頭中ixndao地面的高度);</p><

35、p>  ()為光軸與像平面的焦點(diǎn),作為像平面坐標(biāo)系的原點(diǎn),一般取為 (0,0);</p><p>  (x, y)為路面上一點(diǎn)P在像平面上的投影坐標(biāo)(圖3)。在這里,點(diǎn)P就是檢測(cè)出的前方車輛底部陰影的一點(diǎn)。則根據(jù)幾何關(guān)系得到點(diǎn)P與鏡頭中心的水平距離d的計(jì)算公式如下:</p><p>  (3) 基于逆投影變換的測(cè)距算法</p><p>  約束條件:(1)因高

36、速公路坡度較小,故可假設(shè)高速公路坡度相同。車道沒有太大的彎道,在圖像檢測(cè)范圍內(nèi),基本呈直道;</p><p>  (2)拍攝位置固定,攝像頭垂直于地面,拍攝角度不變。</p><p>  在本模型中,車間距離需要通過攝像圖像來得到,即從圖像信息出發(fā),解求三維環(huán)境匯總物體的空間位置、形狀、面積、長度等幾何信息,這就要建立物體點(diǎn)和像點(diǎn)之間的關(guān)系,需要建立適當(dāng)?shù)淖鴺?biāo)系。由這3個(gè)坐標(biāo)系之間的三角形

37、相似關(guān)系可以導(dǎo)出:當(dāng)焦距 f一定時(shí),實(shí)際空間中兩車間距與圖像前方車輛處的車道寬度的乘積為一常數(shù)。</p><p>  距離遠(yuǎn)近的不同,前車在圖中的成像大小也不一樣,距離越遠(yuǎn),成像越小,距離越近,成像越大,任意兩次測(cè)量的距離值與成像大小成反比關(guān)系,即:</p><p>  其中: d'和d ''分別為兩次測(cè)量的距離(單位:米), w' 和 w' 

38、9;為兩次測(cè)量圖像中的車寬(單位:像素)。</p><p>  若已知像大小為W ,則可根據(jù) D = d'×w'/W或 D = d' '×w''/W,求得此時(shí)的距離D。從式中可知, d '× w '=d''×w''是個(gè)常量,記為測(cè)量系數(shù) q,這里 ,可以通過多次測(cè)量時(shí)記錄的和和,

39、求出</p><p>  因此,距離公式可定義為: D = qW。</p><p>  式中: D為所求距離(單位:米);</p><p>  W為圖中車的寬度(單位:像素);</p><p><b>  q 為測(cè)量系數(shù)。</b></p><p>  4.GUI Design</p>

40、<p>  1、Open a New GUI in the GUIDE Layout Editor</p><p>  1. Start GUIDE by typing guide at the MATLAB prompt</p><p>  2. In the GUIDE Quick Start dialog box, select the Blank GUI (Defau

41、lt) template, and then click OK</p><p>  3. Display the names of the GUI components in the component palette:</p><p>  a. Select File > Preferences > GUIDE.</p><p>  b. Select

42、 Show names in component palette.</p><p>  c. Click OK.</p><p>  3、Layout the Simple GUIDE GUI</p><p>  Add, align, and label the components in the GUI.</p><p>  1. Add

43、 the three push buttons to the GUI. Select the push button tool from the component palette at the left side of the Layout Editor and drag it into the layout area. Create three buttons, positioning them approximately as s

44、hown in the following figure.</p><p>  5、Label the Push Buttons</p><p>  Each of the three push buttons specifies a plot type: surf, mesh, and contour. This topic shows you how to label the butt

45、ons </p><p>  with those options.</p><p>  1. Select View > Property Inspector.</p><p>  2. In the layout area, click the top push button.</p><p>  3. In the Propert

46、y Inspector, select the String property, and then replace the existing value with the word Start.</p><p>  4. Click outside the String field. The push button label changes to Start.</p><p>  6、S

47、ave the GUI Layout</p><p>  When you save a GUI, GUIDE creates two files, a FIG-file and a code file. The FIG-file, with extension .fig, is a binary file that contains a description of the layout. The code f

48、ile, with extension .m, contains MATLAB functions that control the GUI </p><p><b>  behavior.</b></p><p>  1. Save and activate your GUI by selecting Tools > Run.</p><p

49、>  2. GUIDE displays a dialog box displaying: "Activating will save changes to your figure file and MATLAB code. Do you wish to continue?</p><p>  Click Yes.</p><p>  3. GUIDE opens a Sa

50、ve As dialog box in your current folder and prompts you for a FIG-file name.</p><p>  4. Browse to any folder for which you have write privileges, and then enter the file name simple_gui for the FIG-file. GU

51、IDE saves both the FIG-file and the code file using this name.</p><p>  5. If the folder in which you save the GUI is not on the MATLAB path, GUIDE opens a dialog box, giving you the option of changing the c

52、urrent folder to the folder containing the GUI files, or adding that folder to the top or bottom of the MATLAB path.</p><p><b>  5.測(cè)試結(jié)果及代碼</b></p><p><b>  5.1 測(cè)試結(jié)果</b><

53、;/p><p>  打開源文件,運(yùn)行文件,出現(xiàn)下圖:</p><p>  單擊“start”按鈕,運(yùn)行程序。下圖為第一張圖片(障礙物3m遠(yuǎn))的運(yùn)行結(jié)果</p><p>  下圖為第二張圖片(障礙物2m遠(yuǎn))的運(yùn)行結(jié)果</p><p>  下圖為第三張圖片(障礙物1m遠(yuǎn))的運(yùn)行結(jié)果</p><p><b>  5.2

54、 實(shí)驗(yàn)代碼</b></p><p>  function varargout = untitled(varargin)</p><p>  % UNTITLED M-file for untitled.fig</p><p>  % UNTITLED, by itself, creates a new UNTITLED or raises th

55、e existing</p><p>  % singleton*.</p><p><b>  %</b></p><p>  % H = UNTITLED returns the handle to a new UNTITLED or the handle to</p><p>  %

56、the existing singleton*.</p><p><b>  %</b></p><p>  % UNTITLED('CALLBACK',hObject,eventData,handles,...) calls the local</p><p>  % function named CALL

57、BACK in UNTITLED.M with the given input arguments.</p><p><b>  %</b></p><p>  % UNTITLED('Property','Value',...) creates a new UNTITLED or raises the</p>

58、<p>  % existing singleton*. Starting from the left, property value pairs are</p><p>  % applied to the GUI before untitled_OpeningFunction gets called. An</p><p>  % unrec

59、ognized property name or invalid value makes property application</p><p>  % stop. All inputs are passed to untitled_OpeningFcn via varargin.</p><p><b>  %</b></p><p

60、>  % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one</p><p>  % instance to run (singleton)".</p><p><b>  %</b></p><p>  

61、% See also: GUIDE, GUIDATA, GUIHANDLES</p><p>  % Copyright 2002-2003 The MathWorks, Inc.</p><p>  % Edit the above text to modify the response to help untitled</p><p>  % Last Modi

62、fied by GUIDE v2.5 11-Jun-2015 09:09:57</p><p>  % Begin initialization code - DO NOT EDIT</p><p>  gui_Singleton = 1;</p><p>  gui_State = struct('gui_Name', mfilenam

63、e, ...</p><p>  'gui_Singleton', gui_Singleton, ...</p><p>  'gui_OpeningFcn', @untitled_OpeningFcn, ...</p><p>  'gui_OutputFcn', @untitled_OutputFcn, ...

64、</p><p>  'gui_LayoutFcn', [] , ...</p><p>  'gui_Callback', []);</p><p>  if nargin && ischar(varargin{1})</p><p>  gui_State.gui_Callback =

65、 str2func(varargin{1});</p><p><b>  end</b></p><p>  if nargout</p><p>  [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});</p><p><b>  els

66、e</b></p><p>  gui_mainfcn(gui_State, varargin{:});</p><p><b>  end</b></p><p>  % End initialization code - DO NOT EDIT</p><p>  % --- Executes just

67、before untitled is made visible.</p><p>  function untitled_OpeningFcn(hObject, eventdata, handles, varargin)</p><p>  % This function has no output args, see OutputFcn.</p><p>  %

68、hObject handle to figure</p><p>  % eventdata reserved - to be defined in a future version of MATLAB</p><p>  % handles structure with handles and user data (see GUIDATA)</p><p

69、>  % varargin command line arguments to untitled (see VARARGIN)</p><p>  % Choose default command line output for untitled</p><p>  handles.output = hObject;</p><p>  % Update

70、handles structure</p><p>  guidata(hObject, handles);</p><p>  % UIWAIT makes untitled wait for user response (see UIRESUME)</p><p>  % uiwait(handles.figure1);</p><p>

71、  % --- Outputs from this function are returned to the command line.</p><p>  function varargout = untitled_OutputFcn(hObject, eventdata, handles) </p><p>  % varargout cell array for returning

72、 output args (see VARARGOUT);</p><p>  % hObject handle to figure</p><p>  % eventdata reserved - to be defined in a future version of MATLAB</p><p>  % handles structure wit

73、h handles and user data (see GUIDATA)</p><p>  % Get default command line output from handles structure</p><p>  varargout{1} = handles.output;</p><p>  % --- Executes on button pre

74、ss in pushbutton1.</p><p>  function pushbutton1_Callback(hObject, eventdata, handles)</p><p>  [filename,pathname]=uigetfile({'*.jpg';'*bmp';'*.gif'},'')

75、;</p><p>  %§§+</p><p>  str=[pathname filename];</p><p><b>  %</b></p><p>  im1=imread(str);</p><p>  %

76、axes</p><p>  axes(handles.axes1);</p><p>  imshow(im1);</p><p>  % hObject handle to pushbutton1 (see GCBO)</p><p>  % eventdata reserved - to be defined

77、 in a future version of MATLAB</p><p>  % handles structure with handles and user data (see GUIDATA)</p><p>  % --- Executes on button press in pushbutton2.</p><p>  function pus

78、hbutton2_Callback(hObject, eventdata, handles)</p><p>  [filename,pathname]=uigetfile({'*.jpg';'*bmp';'*.gif'},'');</p><p>  %§§+

79、</p><p>  str=[pathname filename];</p><p><b>  %</b></p><p>  im2=imread(str);</p><p>  %axes</p><p>  axes(handles.axe

80、s2);</p><p>  imshow(im2);</p><p>  % hObject handle to pushbutton2 (see GCBO)</p><p>  % eventdata reserved - to be defined in a future version of MATLAB</p><p>  

81、% handles structure with handles and user data (see GUIDATA)</p><p>  % --- Executes on button press in pushbutton3.</p><p>  function pushbutton3_Callback(hObject, eventdata, handles)</p&

82、gt;<p>  [filename,pathname]=uigetfile({'*.jpg';'*bmp';'*.gif'},'');</p><p>  %§§+</p><p>  str=[pathname filename];

83、</p><p><b>  %</b></p><p>  im3=imread(str);</p><p>  %axes</p><p>  axes(handles.axes3);</p><p>  imshow(im3);</p>&l

84、t;p>  % hObject handle to pushbutton3 (see GCBO)</p><p>  % eventdata reserved - to be defined in a future version of MATLAB</p><p>  % handles structure with handles and user data (se

85、e GUIDATA)</p><p>  % --- Executes on button press in pushbutton7.</p><p>  function pushbutton7_Callback(hObject, eventdata, handles)</p><p><b>  for n=1:3</b></p>

86、;<p>  A=imread([int2str(n),'.jpg']); %§</p><p>  axes(handles.axes4);</p><p>  % cut small</p><p>  Irows = size(A,1); % Find the l

87、ines vertical</p><p>  Icolumns = size(A,2); % Fine lines horizontal</p><p>  for m=1:100</p><p>  scal=1-m/600;</p><p>  rowscutend = round(Irows*scal);

88、 % after the cut row</p><p>  columnscutend = round(Icolumns*scal); % after the cut column</p><p>  rowscuthead = Irows-round(Irows*scal); % after the cut row</p>&

89、lt;p>  columnscuthead = Icolumns-round(Icolumns*scal); % after the cut column</p><p>  Acut = A(rowscuthead:rowscutend,columnscuthead:columnscutend,:); </p><p>  pause(0.02);

90、 % After cut</p><p><b>  if n==1</b></p><p>  sca=3*scal</p><p><b>  end</b></p><p><b>  if n==2</b></p>

91、<p>  sca=2*scal</p><p><b>  end</b></p><p><b>  if n==3</b></p><p>  sca=1*scal</p><p><b>  end</b></p><p>  digi

92、ts(5);</p><p>  sca1=sca+0.0001;</p><p>  imshow(Acut);title(['距離障礙物距離',num2str(sca1),'m']);</p><p><b>  end</b></p><p>  f(n)=getframe;&l

93、t;/p><p>  pause(0.05);</p><p><b>  end</b></p><p>  % hObject handle to pushbutton7 (see GCBO)</p><p>  % eventdata reserved - to be defined in a future v

94、ersion of MATLAB</p><p>  % handles structure with handles and user data (see GUIDATA)</p><p>  % --- Executes during object creation, after setting all properties.</p><p>  func

95、tion axes1_CreateFcn(hObject, eventdata, handles)</p><p>  % hObject handle to axes1 (see GCBO)</p><p>  % eventdata reserved - to be defined in a future version of MATLAB</p><p&g

96、t;  % handles empty - handles not created until after all CreateFcns called</p><p>  % Hint: place code in OpeningFcn to populate axes1</p><p>  % --- Executes on button press in pushbutton8.

97、</p><p>  function pushbutton8_Callback(hObject, eventdata, handles)</p><p>  % hObject handle to pushbutton8 (see GCBO)</p><p>  % eventdata reserved - to be defined in a futur

98、e version of MATLAB</p><p>  % handles structure with handles and user data (see GUIDATA)</p><p><b>  6.總結(jié)和展望</b></p><p>  在大三下學(xué)期的時(shí)候我們開設(shè)了DSP處理及應(yīng)用這門課,**老師幽默風(fēng)趣的演講風(fēng)格,謙虛謹(jǐn)

99、慎的實(shí)驗(yàn)態(tài)度讓我們班同學(xué)對(duì)這門課有了不同的認(rèn)識(shí),**老師的知識(shí)認(rèn)知視角獨(dú)特,總能將一個(gè)枯燥乏味的知識(shí)點(diǎn)用一種新穎的方式介紹給我們。這門課和之前學(xué)習(xí)的數(shù)字信號(hào)極其相似,我們編寫代碼使用的軟件是MATLAB,以前對(duì)Matlab的感覺不太好,兩節(jié)課有打不完的代碼,自己也沒學(xué)會(huì)什么,連打字速度也沒有得到相應(yīng)提升,但是經(jīng)過這兩個(gè)星期的課程設(shè)計(jì),自己不僅學(xué)到了更多的Matlab應(yīng)用知識(shí),更多的是自己能夠親手去設(shè)計(jì)一個(gè)程序的成就感。</p>

100、;<p>  本次課程設(shè)計(jì)為時(shí)一周,以無人駕駛汽車為實(shí)驗(yàn)對(duì)象,在螳螂算法的基礎(chǔ)之上,圍繞障礙物信息識(shí)別與處理算法以及系統(tǒng)的實(shí)現(xiàn)展開本次的課程設(shè)計(jì)。時(shí)光匆匆,一周的時(shí)間過的很快,由于時(shí)間問題,我們的實(shí)驗(yàn)也做得很匆忙。</p><p>  這次的課程設(shè)計(jì)是無人駕駛車用激光標(biāo)定螳螂防撞算法的仿真,它培養(yǎng)我們綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn)、提出、分析和解決實(shí)際問題,鍛煉實(shí)踐能力,對(duì)實(shí)際工作能力進(jìn)行具體訓(xùn)練和考察。課

101、程設(shè)計(jì)的第一天,我和小伙伴分別確定了自己的任務(wù),一個(gè)構(gòu)建GUI圖像,一個(gè)根據(jù)圖像編寫相關(guān)內(nèi)容,確定了自己的任務(wù)以后我們開始尋找相關(guān)書籍來確定自己整體設(shè)計(jì)走向,我們?cè)趫D書館借閱了《MATLAB工程仿真》一書,在此之前我們還用老師提供的程序模版運(yùn)行了一遍,整體效果不錯(cuò),但是純英文模版讓我們著實(shí)費(fèi)了些勁,下課之后和小伙伴研究了下借閱的書,理解起來還是有一定難度的。第二天的課程設(shè)計(jì)開始了,我們決定先著手實(shí)驗(yàn),將拍好的照片放入構(gòu)建的GUI圖像中,

102、過程中一直有些小錯(cuò)誤無法改正,后來詢問同學(xué)查看課本,圖像總算是可以運(yùn)行了,但是效果不太理想,本是測(cè)距的程序,但是只有圖像框在不斷變小。課程設(shè)計(jì)的第三天,經(jīng)過老師及同學(xué)的幫助改正了圖框的不斷變化,開始研究如何和在程序中加入螳螂算法,老師給的資料中提到了相關(guān)知識(shí)但不全面,正當(dāng)我們一籌莫展時(shí)**老師說我們班有位同學(xué)編寫的螳螂算法可以運(yùn)行,我們班同學(xué)一擁而上,果然,那位同學(xué)編寫的螳螂算法是成功的,我</p><p>  

103、通過這次課程設(shè)計(jì),我初步學(xué)習(xí)了Matlab軟件中GUI的使用。剛開始無從下手,通過學(xué)習(xí)**老師給我們的相關(guān)資料,粗淺的了解了螳螂算法的原理,咨詢小伙伴,攏集了一些信息后,學(xué)習(xí)了GUI的圖形構(gòu)建并建立起了GUI圖形平臺(tái)。不斷地實(shí)踐,終于得出了結(jié)果。每一次取得一些小小的進(jìn)步,我都打心底里感覺到快樂??梢哉f更加了解了這個(gè)軟件,從不懂到懂,很有成就感。</p><p>  其實(shí),最初的時(shí)候我對(duì)于這次的課程設(shè)計(jì)也很茫然,不

104、知道該如何下手,然后我聽從老師的建議,在網(wǎng)絡(luò)上找了很多相關(guān)資料,通過自己的比對(duì)和觀察學(xué)習(xí),才對(duì)這次的課程設(shè)計(jì)有了一定的想法。通過這次的課程設(shè)計(jì),我對(duì)DSP有了更為感性而深入的認(rèn)識(shí),對(duì)DSP有了一定的興趣,也懂得了借鑒網(wǎng)絡(luò)資源和多問多翻書的重要性。通過這次的課程設(shè)計(jì),我在今后的學(xué)習(xí)中,會(huì)更加注意實(shí)踐與理論的結(jié)合,提高自己的動(dòng)手能力和操作能力。</p><p>  結(jié)束了五天的課程設(shè)計(jì),我們似乎明白了很多,下學(xué)期**

105、老師依舊會(huì)帶我們的專業(yè)課,我想那也會(huì)是一段精彩的學(xué)習(xí)歷程,以后在Matlab方面的學(xué)習(xí)中,我要更加學(xué)會(huì)如何去鉆研,如何去堅(jiān)持,如何去思考。相信在**老師的帶領(lǐng)下,我們班同學(xué)一定會(huì)更加懂得如何去用Matlab軟件編寫自己想要的程序。最后,感謝**老師和同學(xué)們對(duì)我們組的多方面的幫助。</p><p><b>  7.參考文獻(xiàn)</b></p><p>  [1]《MATLA

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論