畢業(yè)設(shè)計(論文)基于圖形交互式的信號處理CAI軟件的設(shè)計開發(fā)_第1頁
畢業(yè)設(shè)計(論文)基于圖形交互式的信號處理CAI軟件的設(shè)計開發(fā)_第2頁
畢業(yè)設(shè)計(論文)基于圖形交互式的信號處理CAI軟件的設(shè)計開發(fā)_第3頁
畢業(yè)設(shè)計(論文)基于圖形交互式的信號處理CAI軟件的設(shè)計開發(fā)_第4頁
畢業(yè)設(shè)計(論文)基于圖形交互式的信號處理CAI軟件的設(shè)計開發(fā)_第5頁
已閱讀5頁,還剩78頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目 錄中文摘要i英文摘要ii1 緒論11.1 問題提出及研究意義11.2 設(shè)計的基本內(nèi)容12 系統(tǒng)設(shè)計工具簡介22.1 matlab概述22.2 圖形用戶界面(gui)設(shè)計32.2.1 創(chuàng)建gui的步驟32.2.2 gui編程72.2.3 gui的設(shè)計流程和設(shè)計原則72.2.4 控件的使用83 系統(tǒng)總體設(shè)計思路103.1 系統(tǒng)總體設(shè)計的步驟103.2 系統(tǒng)總體設(shè)計的結(jié)構(gòu)104 系統(tǒng)圖形用戶界面設(shè)計124.1 圖形用戶界面外觀設(shè)計124.1.1 控件對象124.1.2 控件屬性的設(shè)置134.1.3 窗口屬性的設(shè)置134.1.4 菜單的設(shè)計154.2 圖形用戶界面控件編程154.2.1 輸入函數(shù)1

2、54.2.2 輸出函數(shù)164.2.3 回調(diào)函數(shù)175 系統(tǒng)用戶界面的實現(xiàn)175.1 引導(dǎo)模塊175.1.1 回調(diào)函數(shù)的編寫175.1.2 界面功能185.2系統(tǒng)說明模塊185.3 主界面模塊195.3.1 回調(diào)函數(shù)的編寫195.3.2 界面功能205.4 基本信號的產(chǎn)生模塊205.4.1 回調(diào)函數(shù)編寫的基本原理205.4.2 界面功能225.4.3 界面使用演示235.5 序列基本計算模塊255.5.1 回調(diào)函數(shù)編寫的基本原理255.5.2 界面功能265.5.3 界面使用演示265.6 數(shù)據(jù)采集模塊275.6.1 回調(diào)函數(shù)編寫的基本原理275.6.2 界面功能285.6.3 界面使用演示28

3、5.7 卷積模塊295.7.1 回調(diào)函數(shù)編寫的基本原理295.7.2 界面功能305.7.3 界面使用演示305.8 傅里葉變換模塊325.8.1 回調(diào)函數(shù)編寫的基本原理325.8.2 界面功能335.8.3 界面使用演示335.9 z變換模塊355.9.1 回調(diào)函數(shù)編寫的基本原理355.9.2 界面功能365.9.3 界面使用演示375.10 濾波器設(shè)計模塊405.10.1 回調(diào)函數(shù)編寫的基本原理405.10.2 界面功能425.10.3 界面使用演示43結(jié)束語49致 謝50參考文獻(xiàn)51附 錄51基于圖形交互式的信號處理cai軟件的設(shè)計開發(fā)摘要信號與系統(tǒng)是電子信息工程專業(yè)的一門基礎(chǔ)課程,由于

4、它內(nèi)容繁多、概念抽象、設(shè)計復(fù)雜等,使得學(xué)生在學(xué)習(xí)時常常感到厭煩,難以理解和掌握。為了使學(xué)生們打好專業(yè)課基礎(chǔ),提高學(xué)習(xí)興趣,特用matlab設(shè)計了一個信號處理的實驗軟件。該實驗軟件共有16個實驗,各個實驗都可以在實驗界面中通過輸入相應(yīng)的參數(shù),觀察到實驗結(jié)果和圖形,以便于學(xué)生們通過實驗加深對課程中概念和原理的理解。matlab是一種交互式、面向?qū)ο蟮某绦蛟O(shè)計語言,其結(jié)構(gòu)完整、具有優(yōu)良的移植性。更重要的是它在數(shù)字信號處理方面具有強大的功能。因此本設(shè)計采用matlab的圖形用戶界面設(shè)計功能,設(shè)計各個實驗界面。本實驗軟件在matlab7.1環(huán)境下可以成功運行,只需將系統(tǒng)默認(rèn)路徑改為此實驗軟件的所在路徑即

5、可。本實驗系統(tǒng)可以完成基本信號的產(chǎn)生、卷積、傅里葉變換、z變換、濾波器的設(shè)計等實驗。關(guān)鍵字 交互式/圖形用戶界面/信號處理based on graph interactive signal processing cai software design developmentabstractsignal and system is a basic curriculum in the electric information specialty. because the various content, abstract concept, complex design and so on. the

6、 students frequently feel dull with difficulty understanding and grasping. in order to make the students have a good basic and enhance the study interest of students, put forward developing an experimental software based on signal processing. the signal processing software includes six-teen experime

7、nts, each experiment can be completed in the experimental interface, enter the corresponding experimental parameter, then can obtain the output of corresponding graph and data, which can make the students have better understanding in concept and principle.matlab is an interactive mode and object lan

8、guage. it has complete construction and transplant well. especially it have strong power in the digital signal processing. so the design adopts the design function of the graphic user interface in matlab to design each experiment. the experimental system runs successfully under the matlab7.1 environ

9、ment, only need to alter the acquiescing in path to the path of the signal processing software. the experimental system can complete the experiments of basic signal generation, convolution, fourier transformation, z transformation, filter design and so on.key words interactive mode ,graphic user int

10、erface ,signal processing 1 緒論1.1 問題提出及研究意義隨著計算機技術(shù)和信息科學(xué)的飛速發(fā)展,數(shù)字信號處理已經(jīng)發(fā)展成為一門獨立的學(xué)科并成為信息科學(xué)的重要組成部分,在語音處理、圖像處理、雷達(dá)、航空航天、地質(zhì)勘探、通信、生物醫(yī)學(xué)工程等眾多領(lǐng)域得到廣泛的應(yīng)用。信號處理類課程主要介紹離散信號與離散系統(tǒng)分析的基本理論,包括離散傅里葉變換、數(shù)字濾波器的設(shè)計、數(shù)字信號處理的實現(xiàn)等內(nèi)容。通過本課程的學(xué)習(xí),要求學(xué)生掌握信號處理的基本理論、基本方法和基本技能,為后繼學(xué)習(xí)和應(yīng)用信號處理技術(shù)奠定基礎(chǔ)。眾所周知matlab的信號處理工具箱(signal processing toolbox)

11、覆蓋了經(jīng)典信號處理理論的大多數(shù)內(nèi)容,是一個非常優(yōu)秀的算法研究和輔助設(shè)計工具。但是依靠matlab工具箱仍然不能直接地完成對信號的分析處理,它需要經(jīng)過一系列的程序編寫后方能進(jìn)行。所以使用者必須有一定的理論基礎(chǔ)和實踐經(jīng)驗,但并非所有使用者都學(xué)習(xí)過matlab。為了使那些未學(xué)過matlab的學(xué)生同樣能方便地進(jìn)行信號的分析與處理,也為了對信號的分析與處理更加方便快捷、更加高效實用,設(shè)計了基于matlab的信號處理實驗系統(tǒng)。將matlab的數(shù)字信號處理工具箱、圖形用戶界面(gui)設(shè)計和數(shù)字信號處理的基礎(chǔ)知識有機地結(jié)合起來,在簡要闡明函數(shù)原理和算法的基礎(chǔ)上,給出了詳細(xì)的函數(shù)使用說明,再通過具體的實驗實例

12、,進(jìn)一步加深了學(xué)生對信號處理理論原理的理解,適合于學(xué)生對知識的學(xué)習(xí)和掌握。1.2 設(shè)計的基本內(nèi)容本設(shè)計為基于信號處理的實驗軟件系統(tǒng)的開發(fā),是利用matlab的可視化圖形用戶界面(gui)工具和信號處理知識,設(shè)計實驗系統(tǒng)的圖形用戶界面的總體結(jié)構(gòu),能夠用于完成相關(guān)的信號處理實驗。本設(shè)計主要完成以下功能:(1)信號處理實驗系統(tǒng)能夠完成以下信號處理實驗:序列的基本計算、基本信號的產(chǎn)生、數(shù)據(jù)采集、卷積、傅里葉變換、z變換以及fir和iir濾波器的設(shè)計。 (2) 具有數(shù)據(jù)輸入輸出、圖形輸出、數(shù)據(jù)修改和文件保存、打印等功能。(3) 界面可視性強,操作簡單方便,結(jié)果直觀易懂、便于分析。(4) 系統(tǒng)易于擴展新的

13、實驗,以不斷豐富信號處理系統(tǒng)的內(nèi)容。2 系統(tǒng)設(shè)計工具簡介2.1 matlab概述 matlab是一種高效的工程計算言語,它將計算、可視化和編程等功能集于一個易于使用的環(huán)境。在matlab環(huán)境中描述問題及編制求解問題的程序時,用戶可以按照符合人們科學(xué)思維的方式和數(shù)學(xué)表達(dá)習(xí)慣的語言形式來書寫程序。其典型應(yīng)用主要包括以下幾個方面:l 數(shù)學(xué)計算;l 算法開發(fā);l 數(shù)據(jù)采集;l 系統(tǒng)建模和仿真;l 數(shù)據(jù)分析和可視化;l 科學(xué)和工程繪圖;l 應(yīng)用軟件開發(fā)(包括用戶界面)。matlab是一個交互式系統(tǒng)(寫程序與執(zhí)行命令同步),其基本的數(shù)據(jù)元素是沒有維數(shù)限制的陣列。這使得用戶可以解決很多工程技術(shù)上的問題,特別

14、是那些包含了矩陣和向量的公式的計算。采用matlab編制解決上述問題的程序比用采用只支持標(biāo)量和非交互式的編程語言(c語言和fortan語言)更加方便。matlab的一個重要特色就是它有一套程序擴展系統(tǒng)和一組稱之為工具箱(toolboxes)的特殊應(yīng)用子程序。工具箱是matlab函數(shù)的子程序庫,每一個工具箱都是為某一類學(xué)科專業(yè)和應(yīng)用而定制的,主要包括信號處理、控制系統(tǒng)、神經(jīng)網(wǎng)絡(luò)、模糊邏輯、小波分析和系統(tǒng)仿真等方面的應(yīng)用。matlab系統(tǒng)由以下5個主要部分組成,下面具體進(jìn)行介紹。開發(fā)環(huán)境:由一系列工具組成。這些工具方便用戶使用matlab的函數(shù)和文件,其中的許多工具采用的是圖形用戶界面。包括mat

15、lab桌面和命令窗口、歷史命令窗口、編輯器和調(diào)試器、路徑搜索和用于瀏覽幫助、工作空間、文件的瀏覽器。matlab數(shù)學(xué)函數(shù)庫:這是一個包含大量計算算法的集合,這些函數(shù)包括從最簡單最基本的函數(shù)(如加法、正弦等)到諸如矩陣的特征向量、快速傅里葉變換等復(fù)雜的函數(shù)。matlab語言:這是一個高級的矩陣/陣列語言,它包括控制語句、函數(shù)、數(shù)據(jù)結(jié)構(gòu)、輸入輸出和面向?qū)ο蟮木幊烫攸c。用戶可以在命令窗口中將輸入語句與執(zhí)行命令同步,也可以先編寫好一個較大的復(fù)雜的應(yīng)用程序(m文件)后再一起進(jìn)行。圖形處理:用matlab可以將向量和矩陣用圖形表現(xiàn)出來,并且可以對圖形進(jìn)行標(biāo)注和打印。高層次的作圖包括二維和三維數(shù)據(jù)可視化、圖

16、像處理、動畫和表達(dá)式作圖,低層次的作圖包括定制圖形的顯示和為用戶的matlab應(yīng)用程序建立的圖形用戶界面。matlab應(yīng)用程序接口(api):這是一個庫,它允許用戶編寫可以和matlab進(jìn)行交互的c或fortan語言程序。2.2 圖形用戶界面(gui)設(shè)計gui是實現(xiàn)人機交互的中介,可以通過它實現(xiàn)數(shù)據(jù)輸入、處理和輸出。matlab提供了一個專門的gui設(shè)計工具guide。使用該工具,可以快速完成gui設(shè)計任務(wù)。2.2.1 創(chuàng)建gui的步驟matlab圖形用戶界面開發(fā)環(huán)境(guide)提供了一系列創(chuàng)建圖形用戶界面(gui)的工具。這些工具極大地簡化了gui設(shè)計和生成的過程??梢杂胓uide完成下

17、面的任務(wù)。(1) 輸出gui;(2) 使用guide輸出編輯器,可以通過單擊和拖拉gui控件很容易地創(chuàng)建gui;(3) gui編程;(4) guide自動生成一個控制gui如何操作的m文件。該文件初始化gui并包含一個所有g(shù)ui回調(diào)(用戶單擊gui控件時執(zhí)行的命令)的框架。使用m文件編輯器,可以向回調(diào)中添加代碼,運行相關(guān)函數(shù)。2.2.1.1 啟動guide在命令窗口中鍵入guide或通過文件新建gui,啟動guide顯示如圖2-1所示圖2-1 “guide quick start”對話框打開“guide quick start”對話框,利用guide模板創(chuàng)建新的gui,或者打開已經(jīng)存在的gui

18、。在本設(shè)計中選擇blank gui(default)后,單擊“ok”按鈕,在輸出編輯器中打開gui。2.2.1.2 輸出編輯器在guide中打開gui以后,它顯示在輸出編輯器中。它是所有g(shù)uide工具的控制面板。圖2-2顯示了空白gui模板的輸出編輯器。圖2-2 輸出編輯器可以通過拖拉控件輸出gui,這些控件位于輸出編輯器左側(cè)的工具箱中,有按鈕、彈出式菜單和坐標(biāo)軸等多種。例如把一個按鈕和一個坐標(biāo)軸拖拉到輸出區(qū)域,效果如圖2-3所示。雙擊此控件可以設(shè)置其基本屬性。圖2-3 在輸出編輯器中拖放控件2.2.1.3 菜單編輯器菜單系統(tǒng)的設(shè)置可以通過菜單編輯器來完成。選擇guide的tools菜單中的m

19、enu editor選項或單擊工具條中的按鈕。該菜單編輯器如圖2-4所示。圖2-4 菜單編輯器在菜單編輯器中:圖標(biāo)是新建菜單,是新建子菜單;和用來將菜單向左移和右移;和是將菜單項上移和下移;是刪除菜單項。 “l(fā)abel”欄用來填寫菜單項的名稱,如果在前面加“&”符號則加快捷鍵,當(dāng)運行時第一個字母會加下劃線,以方便用戶快速激活菜單項;“tag”是標(biāo)記;“separator above the item”是分隔符;“check mark this item”是初值是否已選;“enable this item”是此項有效;“callback”欄用于輸入回調(diào)函數(shù)?;卣{(diào)函數(shù)是字符串,可以包含任何matl

20、ab的合法指令和m文件名,回調(diào)的作用是將字符串用“eval”執(zhí)行,以實現(xiàn)菜單的功能。2.2.1.4 運行g(shù)ui從“tools”菜單選擇“run”選項或單擊按鈕,運行g(shù)ui。這時將生成兩個文件.m文件和.fig文件,在輸出編輯器外顯示功能gui。效果如圖2-5所示。圖2-5 gui界面(.fig文件)2.2.1.5 gui的fig文件和m文件guide把gui保存在兩個文件中,它們在第一次保存或運行時生成。一個是fig文件,擴展名為.fig,它包含對gui和gui控件的完整描述;另一個是m文件,擴展名為.m,它包含控制gui的代碼,包括其控件的回調(diào)。這兩個文件與gui顯示和編程任務(wù)相對應(yīng)。在界面

21、編輯器中創(chuàng)建gui時,內(nèi)容保存在m文件中;對gui編程時,內(nèi)容保存在m文件中。設(shè)計好gui以后,可以用m文件編輯器編寫gui的m文件。guide會在第一次保存或運行g(shù)ui時生成這個文件。這個gui的m文件會初始化gui,并在gui顯示屏幕上顯示以前包含的代碼來完成任務(wù)。初始情況下,每個回調(diào)都只包含一個函數(shù)定義行,然后用m文件編輯器添加代碼來完成函數(shù)的編寫。單擊輸出編輯器工具條上的圖標(biāo)打開m文件。圖2-6顯示了gui界面.m文件。圖2-6 gui界面(.m文件)2.2.2 gui編程在輸出編輯器中g(shù)ui的屬性設(shè)置以后,下一步工作就是編程。其主要內(nèi)容包括:(1) 創(chuàng)建gui的m文件;(2) 打開g

22、ui的m文件;(3) 在回調(diào)間共享數(shù)據(jù);通過將數(shù)據(jù)保存到matlab handles結(jié)構(gòu)中,可以實現(xiàn)回調(diào)間的數(shù)據(jù)共享。gui中的所有控件使用同一個handles結(jié)構(gòu)。它會傳遞一個輸入變量給guide生成的所有回調(diào)函數(shù)??梢栽谌魏位卣{(diào)函數(shù)中獲取handles結(jié)構(gòu)中的數(shù)據(jù),因為hobject和handles是guide生成的所有回調(diào)函數(shù)的輸入變量。(4) 在初始化函數(shù)中添加代碼;(5) 在回調(diào)函數(shù)中添加代碼; 這些回調(diào)函數(shù)有的是針對窗口而言的,還有的是針對具體控件而言的,學(xué)會了回調(diào)函數(shù)的編寫將有助于高效編寫matlab圖形用戶界面程序2.2.3 gui的設(shè)計流程和設(shè)計原則2.2.3.1 gui的設(shè)

23、計流程gui開發(fā)設(shè)計的一般流程圖如圖2-7所示:開 始任務(wù)定義草圖設(shè)計設(shè)計檢測編寫代碼代碼檢測結(jié)束圖2-7 開發(fā)設(shè)計流程圖從圖中可以看出,整個開發(fā)過程分為兩部分:設(shè)計階段和實現(xiàn)階段。創(chuàng)造性的勞動是在設(shè)計階段進(jìn)行的,開發(fā)文檔便是對這些思想的記錄,因此,設(shè)計者不要忽視設(shè)計階段。另外,開發(fā)流程不是單向進(jìn)行的,有時有一個反復(fù)的過程。后面會遇到一些無法解決的問題,因此需要對前面做局部調(diào)整。這種反復(fù)過程是正常開發(fā)無法避免的。嚴(yán)格按照上述流程進(jìn)行開發(fā)帶來的一個好處是,開發(fā)者能夠從整體上把握設(shè)計,制定出合適的策略來解決問題。2.2.3.2 gui設(shè)計的原則由于要求不同,設(shè)計出來的界面也是千差萬別的。但是,自從

24、人們開始設(shè)計圖形界面以來,界面設(shè)計的評判標(biāo)準(zhǔn)并沒有太大的變化。簡單地說,一個好的界面應(yīng)遵循的標(biāo)準(zhǔn)可以用九個字來概括:簡潔性、一致性、熟悉性。簡潔性意味著界面簡單明了,直接清晰。用戶可以很快提取對自己有用的信息。一致性意味著設(shè)計系統(tǒng)的各個環(huán)節(jié)應(yīng)遵從統(tǒng)一的、簡單的規(guī)則,保證不出現(xiàn)例外的情況。熟悉性意味著系統(tǒng)設(shè)計時盡量保持與該類流行界面相似,比如vc的對話框風(fēng)格,視圖的風(fēng)格、matlab的figure風(fēng)格。這樣用戶操作起來就容易上手,誤操作率比較低。以上三點,就是要求在設(shè)計整個過程中貫穿以人為本的設(shè)計理念,設(shè)計者應(yīng)該經(jīng)??紤]以下兩個問題:一是用戶在沒有熟悉界面之前,完成一個操作需要多長時間?二是用戶

25、在熟悉界面后,完成一個普通操作需要多長的時間?總之,便于用戶操作是最重要的。2.2.4 控件的使用除了菜單外,控件也是很重要的界面組成部分,常用的控件包括命令按鈕、單選按鈕、開關(guān)按鈕、復(fù)選框、文本框、靜態(tài)文本、滾動條、框架、列表框、彈出式菜單和坐標(biāo)軸。各控件的具體功能如表2-8所示。表2-8控件的功能控件名property name功能命令按鈕pushbutton最常用的控件,用于相應(yīng)用戶的鼠標(biāo)單擊,按鈕上有說明文字說明其作用開關(guān)按鈕togglebutton當(dāng)單擊時會凹凸?fàn)顟B(tài)切換單選按鈕rodiobutton當(dāng)單擊時會用黑白點切換,總是成組出現(xiàn),多個單選按鈕互斥,一組中只有一個被選中復(fù)選框ch

26、eckbox當(dāng)單擊時會用“”切換,有選中、不選中和不確定等狀態(tài),總是成組出現(xiàn),多個復(fù)選框可同時選用文本框edittext可任意輸入和編輯單行和多行文字,并顯示出來靜態(tài)文本statictext用于顯示文字信息,但不接受輸入滾動條slider可以用圖示的方式顯示在一個范圍內(nèi)數(shù)值的大概值范圍,用戶可以移動滾動條改變數(shù)值框架frame將一組控件圍在框架中,用于裝飾界面列表框listbox顯示下拉文字列表,用戶可以從列表中選擇一項或多項彈出式菜單pop-up menu相當(dāng)于文本框和列表框的組合,用戶可以從下拉列表中選擇坐標(biāo)軸axes用于繪制坐標(biāo)軸創(chuàng)建控件以后,需要對控件的屬性進(jìn)行設(shè)置,以達(dá)到設(shè)計所需的功

27、能。大部分控件都有以下屬性:sting屬性:用于顯示在控件上的字符串,起說明或提示作用。callback屬性:回調(diào)函數(shù),和菜單的一樣。enable屬性:表示該控件有效,如果“on”則表示有效,如果“off”則表示無效。tooltipstring屬性:當(dāng)鼠標(biāo)放在控件上時顯示提示信息,為字符串。字體屬性:包括fontname,fontsize等。tag屬性:控件的標(biāo)記,用于識別控件。3 系統(tǒng)總體設(shè)計思路3.1 系統(tǒng)總體設(shè)計的步驟在本系統(tǒng)的設(shè)計中,界面布局設(shè)計采用自底向上的設(shè)計方法,即先設(shè)計各個實驗子界面再設(shè)計主界面,最后設(shè)計引導(dǎo)界面。各個回調(diào)函數(shù)的編寫順序也是采用自底向上的設(shè)計方法,即先編制各個實

28、驗子界面的回調(diào)函數(shù),再編寫主界面和引導(dǎo)界面的回調(diào)函數(shù),其設(shè)計的具體步驟如下:(1) 運用matlab的圖形用戶界面(gui)設(shè)計方法,設(shè)計整個實驗系統(tǒng)的開始引導(dǎo)界面、實驗主界面及其實現(xiàn)信號處理課程中具體實驗的各個子界面; (2) 分別編寫各個子界面的各個控件對象的回調(diào)函數(shù),來實現(xiàn)控件相應(yīng)控制功能,達(dá)到直接通過界面上各個控件就可以控制數(shù)據(jù)的輸入輸出,并可以方便的對實驗結(jié)果的數(shù)據(jù)及其圖形讀取和分析;(3) 編寫主界面的回調(diào)函數(shù),將各個實驗子界面整合在信號處理系統(tǒng)實驗主界面中,即通過主界面就可以進(jìn)入任何一個實驗子界面進(jìn)行實驗;(4) 編寫開始引導(dǎo)界面的回調(diào)函數(shù),實現(xiàn)從引導(dǎo)界面直接進(jìn)入主界面進(jìn)行實驗,

29、從而形成一個完整的實驗系統(tǒng)。3.2 系統(tǒng)總體設(shè)計的結(jié)構(gòu)本實驗系統(tǒng)總共包括十個模塊:引導(dǎo)模塊、主模塊、簡介模塊、基本信號的產(chǎn)生模塊、序列基本計算模塊、數(shù)據(jù)采集模塊、卷積模塊、傅里葉變換模塊、z變換模塊、濾波器設(shè)計模塊。有些實驗界面模塊下面又有下一級實驗界面模塊,如基本信號的產(chǎn)生模塊下有基本離散信號的產(chǎn)生界面和基本連續(xù)信號的產(chǎn)生界面;卷積模塊下有離散信號的卷積界面和連續(xù)信號的卷積界面;傅里葉變換模塊下有基本序列的傅里葉變換界面和有限序列的傅里葉變換界面;z變換模塊下有有限長序列的z變換模塊和z變換的應(yīng)用模塊,其中有限長序列的z變換模塊下有序列的z變換界面和序列的逆z變換界面,z變換的應(yīng)用模塊下有解

30、差分方程界面和系統(tǒng)函數(shù)及輸入求輸出界面;濾波器設(shè)計模塊下面還有fir濾波器設(shè)計模塊和iir濾波器設(shè)計模塊,其中fir濾波器模塊又包含fir濾波器線性的判斷實驗界面、窗函數(shù)的頻率響應(yīng)實驗界面和fir濾波器的設(shè)計實驗界面,iir濾波器模塊又包含完全iir濾波器的設(shè)計實驗界面和典型iir濾波器實驗界面。系統(tǒng)的總體設(shè)計結(jié)構(gòu)圖,如圖3-1所示。引導(dǎo)界面主界面基本信號的產(chǎn)生序列的基本運算數(shù)據(jù)采集卷積傅里葉變換z變換濾波器的設(shè)計fir濾波器的設(shè)計iir濾波器的設(shè)計典型濾波器的設(shè)計完全濾波器的設(shè)計窗函數(shù)的頻率響應(yīng)fir濾波器的設(shè)計fir濾波器線性的判斷有限長序列的z變換z變換的應(yīng)用序列的z變換序列的逆z變換求

31、解差分方程系統(tǒng)函數(shù)和輸入求輸出基本序列的傅里葉變換有限序列的傅里葉變換連續(xù)信號的卷積離散信號的卷積基本連續(xù)信號的產(chǎn)生基本離散信號的產(chǎn)生圖3-1 系統(tǒng)的總體設(shè)計結(jié)構(gòu)圖4 系統(tǒng)圖形用戶界面設(shè)計本實驗軟件系統(tǒng)的設(shè)計是在matlab 7.1環(huán)境下進(jìn)行的,利用matlab的圖形用戶界面設(shè)計工具gui來進(jìn)行整個系統(tǒng)的設(shè)計。對于基于matlab圖形用戶界面的設(shè)計,它的設(shè)計過程非常類似于vb的編程過程,本實驗系統(tǒng)的設(shè)計工程可以分為以下兩個部分:(1) 圖形用戶界面外觀設(shè)計:主要是通過對話框、按鈕、文本框等許多工具的使用,設(shè)計出一個圖形用戶界面,同時也應(yīng)清楚這個圖形界面的功能是什么,即在圖形界面上的操作會引起什

32、么樣的響應(yīng)。(2) 圖形用戶控件編程:用戶將根據(jù)在外觀設(shè)計階段所確定的圖形界面的功能,針對各個不同的圖形對象,來編寫能夠?qū)崿F(xiàn)該功能的回調(diào)函數(shù)及進(jìn)行相應(yīng)的屬性設(shè)置,確保這個圖形界面能夠完成所希望的功能.4.1 圖形用戶界面外觀設(shè)計在matlab命令窗口中輸入guide,或在matlab主菜單中點擊file菜單中的new選項,選擇其中的gui命令,就可以顯示圖形用戶界面的設(shè)計模板??偣灿兴膫€模板,本實驗系統(tǒng)的設(shè)計中使用默認(rèn)模板(blank gui)。選定設(shè)計模版后,單擊ok,即進(jìn)入gui界面設(shè)計環(huán)境。4.1.1 控件對象本設(shè)計中用到的控件對象有以下幾個:靜態(tài)文本框(static text)、可編輯

33、文本框(editable text)、框架(frame)、列表框(list box)、彈出式菜單(pop-up menu)、命令按鈕(push button)幾種。需要哪個控件就在相應(yīng)的控件單擊鼠標(biāo)左鍵,然后再設(shè)計窗口中需要放置的位置單擊鼠標(biāo)左鍵,即可完成放置。下面分別介紹各個控件在本實驗系統(tǒng)設(shè)計中的具體用途。靜態(tài)文本框用來靜態(tài)顯示文本字符串,在本設(shè)計中用于顯示其它控件的說明信息,用來幫助說明其它控件的用途等,還有用作顯示數(shù)據(jù)輸出。可編輯文本框用于進(jìn)行數(shù)據(jù)的輸入及輸出,可進(jìn)行單行或多行輸入及輸出,并且可以對數(shù)據(jù)進(jìn)行修改。列表框用于用戶從中選擇相應(yīng)的實驗選項進(jìn)行實驗,當(dāng)選項比較多時,本設(shè)計采用了

34、列表框,只要單擊其中一個選項,就可以執(zhí)行相應(yīng)的操作并得出相應(yīng)的結(jié)果。彈出式菜單用于用戶從中選擇互相不同的實驗選項進(jìn)行實驗,當(dāng)用戶選中其中的一個表項并單擊時,該表項就會出現(xiàn)在信息顯示框中,就可以執(zhí)行相應(yīng)的操作并得出相應(yīng)的結(jié)果。命令按鈕當(dāng)界面執(zhí)行的功能比較單一時,直接采用命令按鈕,只有單擊該按鈕,就可以執(zhí)行相應(yīng)的操作并得出相應(yīng)的結(jié)果??蚣転榱俗層脩艚缑婵雌饋韺哟畏置?,容易被用戶理解,把作用相關(guān)的一組控件用框架框起來。坐標(biāo)軸用于實驗結(jié)果圖形的輸出顯示。本實驗系統(tǒng)設(shè)計中,放置好的所有界面基本布局,是輸入位于窗口的右上方,輸出位于窗口的右下方,圖形的輸出位于窗口的左邊。4.1.2 控件屬性的設(shè)置本實驗系

35、統(tǒng)設(shè)計中的主要修改以下幾種控件的屬性: backgroundcolor 設(shè)置控件的背景顏色; frontname 設(shè)置控件的字體; frontsize 設(shè)置控件的字體大?。?froegroundcolor 設(shè)置控件的字體顏色; string 設(shè)置控件上顯示的文本串; tag 標(biāo)記控件的名字,在進(jìn)行程序設(shè)計時,可以利用該名字來指定控件; units 設(shè)置控件的大小,控件與圖形窗口的距離等單位; callback 定義控件對象的控制動作,設(shè)計時設(shè)它為%automatic,來使系統(tǒng)自動產(chǎn)生回調(diào)函數(shù),以便函數(shù)的編寫;max與min 在可編輯文本框中,設(shè)置max-min1,從而可編輯文本框可以進(jìn)行多行輸

36、入輸出;在列表框中設(shè)置max-min=ns)&(n2=ns)&(n3=ne);實指數(shù)序列x(n)=,;matlab實現(xiàn):x4=an4;% n4為序列的區(qū)間正弦序列x(n)=sin(),matlab實現(xiàn):x5=sin(sw*n5);% n5為序列的區(qū)間余弦序列x(n)=cos(),matlab實現(xiàn):x6=cos(cw*n6);% n6為序列的區(qū)間復(fù)指數(shù)序列matlab實現(xiàn):x7=exp(sigma+complex_w*j)*n7);% n7為序列的區(qū)間周期序列x(n)=x(n+n),其中,n為序列的周期。matlab實現(xiàn):xx=x*ones(1,n);x8=(xx(:);% n8為序列的區(qū)間基本

37、離散信號的產(chǎn)生的主要的回調(diào)函數(shù)見附錄中函數(shù)disperse.m。5.4.2 界面功能此模塊包括兩個實驗界面,基本連續(xù)信號產(chǎn)生界面和基本離散信號的產(chǎn)生界面。(1)基本連續(xù)信號的產(chǎn)生界面:可以產(chǎn)生單位沖激函數(shù)、單位階躍函數(shù)、復(fù)指數(shù)函數(shù)幾種連續(xù)信號。只需在信號的時間區(qū)間的編輯框中輸入信號顯示區(qū)間、脈沖寬度dt編輯框中輸入脈沖寬度(同時作為時間間隔),在信號的突變點編輯框中輸入信號的突變點(用于單位沖激函數(shù)和單位階躍函數(shù)信號的突變點),在頻率和相位框輸入相應(yīng)的參數(shù),然后從下拉菜單中選擇相應(yīng)的信號選項,就可以在輸出框中輸出相應(yīng)數(shù)據(jù),在圖形框中輸出相應(yīng)的圖形。(2)基本離散信號的產(chǎn)生界面:可以產(chǎn)生單位脈沖

38、序列、單位階躍序列、矩形序列、實指數(shù)序列、正弦序列、余弦序列、復(fù)指數(shù)序列、周期序列幾種離散信號。只需在輸入框中輸入相應(yīng)信號的各種控制參數(shù),然后從下拉菜單中選擇相應(yīng)的信號選項,就可以在輸出框中輸出相應(yīng)數(shù)據(jù),在圖形框中輸出相應(yīng)的圖形。5.4.3 界面使用演示(1) 基本連續(xù)信號的產(chǎn)生界面演示下面以信號區(qū)間為0:6,信號產(chǎn)生的時間間隔為0.25,頻率為10,相位為-0.5的復(fù)指數(shù)函數(shù)信號的產(chǎn)生為例,來進(jìn)行演示。具體操作:在“信號的時間區(qū)間”輸入信號顯示的區(qū)間0:6,在“脈沖寬度dt”輸入脈沖寬度0.25(作為信號產(chǎn)生的時間間隔),在“復(fù)指數(shù)函數(shù)頻率”輸入頻率10,在“復(fù)指數(shù)函數(shù)相位”輸入相位-0.5

39、,然后從下拉菜單中選擇復(fù)指數(shù)函數(shù)選項,就可以得到如圖5-4所示的結(jié)果。圖5-4 復(fù)指數(shù)函數(shù)信號的產(chǎn)生演示(2) 基本離散信號的產(chǎn)生界面演示下面以信號區(qū)間為1:10,頻率為5的正弦序列的產(chǎn)生為例來進(jìn)行演示。具體操作:在“信號區(qū)間”輸入信號區(qū)間1:10,在“正弦序列頻率”輸入頻率5,從下拉菜單中選擇“正弦序列”選項,則可得到如圖5-5所示的結(jié)果。圖5-5 正弦序列的產(chǎn)生演示5.5 序列基本計算模塊5.5.1 回調(diào)函數(shù)編寫的基本原理 在數(shù)字信號處理中,對信號所做的基本運算有相加、相乘、信號能量、信號功率、信號的抽樣和、信號的抽樣積等,在此模塊中主要使用matlab中的基本表達(dá)式來實現(xiàn),下面分別介紹:

40、信號加: x(n)=x1(n)+x2(n)matlab實現(xiàn):x=x1+x2;注意:x1和x2序列應(yīng)該具有相同的長度,位置對應(yīng),才能相加。信號乘: x(n)=x1(n)*x2(n)matlab實現(xiàn):x=x1.*x2;改變比例: y(n)=k*x(n)matlab實現(xiàn):y=k*x;信號折疊: y(n)= x(-n)matlab實現(xiàn):y=fliplr(x);函數(shù)fliplr用來實現(xiàn)信號的左右折疊。抽樣和: y=matlab實現(xiàn):y=sum(x(n1:n2);抽樣積: y=matlab實現(xiàn):y=prod(x(n1:n2);信號能量: e=matlab實現(xiàn):ex=sum(abs(x).2);信號功率:

41、px=matlab實現(xiàn):px=sum(abs(x).2)/n;序列基本計算模塊的主要回調(diào)函數(shù)見附錄中函數(shù)operate.m。5.5.2 界面功能序列的基本計算實驗界面,是用于對兩離散序列進(jìn)行以下幾種計算:相加、相乘、改變信號的比例系數(shù)、信號的折疊、抽樣和、抽樣積、信號功率、信號能量。用戶只需在“信號區(qū)間n1”中輸入信號x1的區(qū)間n1,在“信號區(qū)間n2”中輸入信號x2的區(qū)間n2,在輸入框中的下拉菜單中選擇“信號相加”或“信號相乘”選項;或是在比例系數(shù)編輯框輸入相應(yīng)的系數(shù),在輸入框中的下拉菜單中選擇“改變信號的比例”選項;或是在“信號區(qū)”輸入信號區(qū)間n,在“信號x”中輸入信號x,在輸入框中的下拉菜

42、單中選擇“抽樣和”、“抽樣積”、“信號能量”“信號功率”幾項中的任一項。以上的任一操作都可以在輸出框中輸出相應(yīng)的結(jié)果數(shù)據(jù),在圖形窗中輸出原序列圖形和計算結(jié)果圖形。5.5.3 界面使用演示下面以信號4,5,6,2,3,1,9,7,8的抽樣和為例來進(jìn)行演示,信號區(qū)間為0:8。具體操作:在“信號區(qū)間n”中輸入信號x的區(qū)間0:8,在“信號x”中輸入信號x為4,5,6,2,3,1,9,7,8 ,然后在輸入框中的下拉菜單中選擇“抽樣和”選項,即可在輸出框中的 “信號y”中得到抽樣后的信號值45,同時在圖形顯示框中顯示原信號和抽樣后的信號的圖形,如圖5-6所示。圖5-6 序列的抽樣和演示5.6 數(shù)據(jù)采集模塊

43、5.6.1 回調(diào)函數(shù)編寫的基本原理數(shù)字信號處理的對象,是在采樣時鐘的控制之下,通過轉(zhuǎn)換器在一定的采樣率之下對模擬信號進(jìn)行采樣后而得到的。所以在實際工作中,經(jīng)常會遇到采樣率轉(zhuǎn)換的問題。數(shù)據(jù)采集包括上采樣和下采樣(又稱為信號的內(nèi)插和抽取)兩種。l 上采樣信號的上采樣,即將信號x(n)的原采樣頻率增加l倍,得到v(n),即是對x(n)的插值。插值最簡單的方法是在x(n)每相鄰兩個點之間補l-1個零,然后再進(jìn)行低通濾波處理。即信號的插值雖然是零,但經(jīng)過低通濾波后,信號得到了平滑,零值可能不再是零值。用matlab實現(xiàn)上采樣的函數(shù)為inter,格式如下:y=inter(sig,n1),返后回的是將信號的采樣頻率增加到原采樣頻率的n1倍,重采樣后得到序列y的長度是x的n1倍。l 下采樣信號的下采樣,即將信號x(n)的原采樣頻率減少l倍,得到v(n),即是對x(n)的抽樣。抽樣的最簡單的方法是在v(n)每相鄰兩個點之間值設(shè)為零,即用matlab實現(xiàn)下采樣

溫馨提示

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

最新文檔

評論

0/150

提交評論