Matlab課程設(shè)計_第1頁
Matlab課程設(shè)計_第2頁
Matlab課程設(shè)計_第3頁
Matlab課程設(shè)計_第4頁
Matlab課程設(shè)計_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、課 程 設(shè) 計 任 務(wù) 書1設(shè)計目的:(1)通過本課程設(shè)計的學(xué)習(xí),學(xué)生將復(fù)習(xí)所學(xué)的數(shù)字信號處理知識,使課堂學(xué)習(xí)的理論知識應(yīng)用于實踐,通過本課程設(shè)計的實踐使學(xué)生具有一定的實踐操作能力;(2)掌握Matlab語言的編程方法,能熟練運用;(3)通過Matlab實踐的課程設(shè)計,掌握設(shè)Matlab數(shù)字信號處理系統(tǒng)的思維方法和基本開發(fā)過程。2設(shè)計內(nèi)容和要求(包括原始數(shù)據(jù)、技術(shù)參數(shù)、條件、設(shè)計要求等):一、學(xué)習(xí)Matlab編程及仿真1、熟悉Matlab的運行環(huán)境;2、學(xué)會并掌握Matlab圖形編程;3、根據(jù)所設(shè)計系統(tǒng)的需要會合理設(shè)定需完成系統(tǒng)的各項參數(shù);4、根據(jù)所設(shè)計系統(tǒng)的需要,優(yōu)化程序設(shè)計最優(yōu)系統(tǒng)。二、實

2、踐設(shè)計要求:1、根據(jù)所選題目,設(shè)計實現(xiàn)系統(tǒng)的原理框圖。2、編寫Matlab程序,給出系統(tǒng)不同節(jié)點輸出波形。3、每人寫出設(shè)計報告。三、參考題目題目1:語音信號分析通過計算機錄制一段語音信號,分析該語音信號。1、分析該信號的頻譜特性;2、采用IIR進行降噪;3、根據(jù)FIR進行降噪;4、對信號進行斷句分割。5、求信號的均值、方差;6、求信號的自相關(guān)系數(shù);7、求信號的窗(1秒、2秒)能量;8、求信號的窗(1秒、2秒)自相關(guān)分析9、采用平均幅度差函數(shù)(AMDF法)提取求信號的基音周期、譜估計;10、根據(jù)數(shù)字特征對信號進行斷句分割。注:每個同學(xué)可以選擇1和2、1和3、1和4、5和6、5和7、5和8、5和9

3、、5和10的一組作為題目,8名同學(xué)完成該題目。題目2:傅里葉變換設(shè)計自己設(shè)計傅里葉變換函數(shù)(不能使用Matlab函數(shù));題目3:數(shù)獨游戲設(shè)計1、 根據(jù)數(shù)獨游戲規(guī)則,設(shè)計數(shù)獨判斷程序;2、 自動生成數(shù)獨表;3、 根據(jù)輸入給出輸出;注:2個同學(xué)一組。題目4:Matlab繪圖界面設(shè)計1、設(shè)計GUI界面;2、通過下拉菜單選擇繪制正弦、正切信號;3、通過編輯框輸入命令,根據(jù)命令繪制信號;4、通過按鈕在圖形中輸出標注(標題、各軸名稱);注:1個同學(xué)一組。題目5:Matlab信號分析界面設(shè)計1、設(shè)計GUI界面;2、通過按鈕輸入信號;3、對信號進行頻譜分析;4、輸出信號的頻譜;注:1個同學(xué)一組。題目6:Mat

4、lab信號濾波分析界面設(shè)計1、設(shè)計GUI界面;2、通過按鈕輸入信號;3、對信號進行低通、高通、帶通分析(FIR、IIR、巴特沃斯、切比雪夫);4、輸出處理信號的結(jié)果、頻譜;注:每個同學(xué)選擇一個濾波器,4名同學(xué)完成該題目。題目7:Matlab智能信號發(fā)生器1、輸出方波、矩形波、三角波和正弦波信號;2、輸出隨時間變化頻率的信號;3、輸出隨時間變化幅值的信號4、輸出隨時間變化斜率的等幅值的信號;5、輸出處理信號的結(jié)果、頻譜;注:每個同學(xué)選擇一種信號,4名同學(xué)完成該題目。題目8:Matlab方程組求解數(shù)值計算設(shè)計1、設(shè)計GUI界面;2、通過按鈕選擇計算方法,表格錄入數(shù)據(jù);3、對錄入數(shù)據(jù)判斷是否可算,實

5、現(xiàn)算法如高斯-賽德爾、列主元消去法、高斯消元法等;4、輸出計算結(jié)果、誤差;注:每個同學(xué)選擇一種算法,4名同學(xué)完成該題目。題目9:Matlab插值求解數(shù)值計算設(shè)計1、設(shè)計GUI界面;2、通過按鈕選擇計算方法,表格錄入數(shù)據(jù);3、對錄入數(shù)據(jù)判斷是否可算,實現(xiàn)算法如三次樣條插值、拉格朗日插值、牛頓插值等;4、輸出計算結(jié)果、誤差;注:每個同學(xué)選擇一種算法,4名同學(xué)完成該題目。題目10:Matlab哈弗曼編碼設(shè)計1、設(shè)計GUI界面;2、通過按鈕選擇計算方法,表格錄入數(shù)據(jù);3、對錄入數(shù)據(jù)實現(xiàn)算法哈弗曼信源編碼;4、輸出計算結(jié)果、編碼效率;注:1名同學(xué)完成該題目。題目11:Matlab費諾編碼設(shè)計1、設(shè)計GU

6、I界面;2、通過按鈕選擇計算方法,表格錄入數(shù)據(jù);3、對錄入數(shù)據(jù)實現(xiàn)費諾信源編碼;4、輸出計算結(jié)果、編碼效率;注:1名同學(xué)完成該題目。題目12:Matlab卷積碼編碼解碼設(shè)計1、設(shè)計GUI界面;2、通過按鈕選擇計算方法,錄入數(shù)據(jù);3、對錄入數(shù)據(jù)實現(xiàn)算法卷積碼信道編碼;4、輸出計算結(jié)果、編碼效率;注:一個同學(xué)設(shè)計算法、一個同學(xué)設(shè)計算法分析,2名同學(xué)完成該題目。題目13:Matlab文本內(nèi)容加密解密算法設(shè)計1、設(shè)計GUI界面輸入文本文件內(nèi)容;2、對文本內(nèi)容采用字符顛倒的順序加密;3、密碼字典設(shè)計、解密算法設(shè)計;4、輸出結(jié)果。注:每個同學(xué)選擇一種算法,2名同學(xué)完成該題目。題目14:Matlab加噪信號

7、發(fā)生器1、輸出理想信號如方波、矩形波、三角波和正弦波信號(參數(shù)可調(diào));2、輸出高斯噪聲信號(參數(shù)可調(diào));3、輸出理想信號與噪聲信號疊加后信號4、輸出處理信號的結(jié)果、計算信噪比;注:每個同學(xué)選擇一種信號,5名同學(xué)完成該題目。題目15:Matlab信號參數(shù)計算1、編寫一個長度為100的隨機信號,信號在區(qū)間-5,5中均勻、泊松、正態(tài)分布;2、測量該序列的均值,方差,最大值,最小值;3、計算其相關(guān)函數(shù)。注:每個同學(xué)選擇一種信號,2名同學(xué)完成該題目。題目16:基于蒙特卡羅模擬方法的信號分析1、隨機產(chǎn)生信號,信號在區(qū)間-5,5中泊松、正態(tài)、分布;2、設(shè)計蒙特卡羅函數(shù);3、采用蒙特卡羅模擬方法對設(shè)計的信號進

8、行分析;4、并輸出結(jié)果;注:每個同學(xué)選擇一種分布信號,3名同學(xué)完成該題目。題目17:Matlab信號分解1、編寫一個由3不同特征組成信號(相位、頻率、幅度);2、對信號疊加白噪聲;3、分析信號的頻譜、功率譜;4、測量該序列的均值,方差,最大值,最小值;5、設(shè)計濾波器,分解3個信號。注:1名同學(xué)完成該題目。題目18:Matlab信號參數(shù)分析1、設(shè)計指數(shù)、瑞利、韋泊分布的信號;2、設(shè)計3個頻率組合的信號;3、疊加上述信號;4、分析上述信號的頻譜。注:1名同學(xué)完成該題目。題目19:Matlab動態(tài)移動小球繪圖1、設(shè)計三塊磁鐵構(gòu)成的磁力線圖;2、設(shè)計一個紅色小球沿磁力線移動;3、通過鍵盤控制小球移動的

9、速度;4、通過鼠標滾輪控制小球在不同的磁力線移動。注:每名同學(xué)選擇上述題目中的1個,4名同學(xué)完成該題目。題目20:Matlab動態(tài)繪圖1、設(shè)計不同頻率組成的信號;2、分析信號的頻譜; 3、動態(tài)繪制信號;4、輸出信號的分析結(jié)果。注:1名同學(xué)完成該題目。3設(shè)計工作任務(wù)及工作量的要求包括課程設(shè)計計算說明書(論文)、圖紙、實物樣品等:(1) 要求設(shè)計組的每個成員都要了解設(shè)計的要求和整體思路;(2) 每個題目小組的同學(xué)各完成一份設(shè)計說明書,突出各自的工作內(nèi)容;(3) 要求有正確的運行結(jié)果及結(jié)果分析。課 程 設(shè) 計 任 務(wù) 書4主要參考文獻:l 譚浩強.C程序設(shè)計(第二版).清華大學(xué)出版社.1999年12

10、月l 袁志祥.數(shù)據(jù)結(jié)構(gòu)(c語言版)例題詳解與課程設(shè)計指導(dǎo)第二版. 中國科學(xué)技術(shù)大學(xué)出版社出版l 譚浩強.C語言程序設(shè)計題解與上機指導(dǎo).清華大學(xué)出版社.2000年11月l 陳朔鷹, 陳英主.C語言程序設(shè)計習(xí)題集(第二版).人民郵電出版社.2003年2月l 田淑清.C語言程序設(shè)計輔導(dǎo)與習(xí)題集.中國鐵道出版社.2000年1月l 王明泉.信號與系統(tǒng).科學(xué)出版社.2010年6月5設(shè)計成果形式及要求:每個子題目小組提供詳細的設(shè)計說明書一份設(shè)計說明書中包含:1、關(guān)鍵詞解釋,設(shè)計方案基本原理;2、軟件框圖;3、調(diào)試過程、設(shè)計結(jié)果、設(shè)計分析;4、附錄軟件源代碼6工作計劃及進度:2016年12月5日 2016年1

11、2月5日:學(xué)習(xí)Matlab有關(guān)編程方法;2016年12月6日 2016年12月8日:在指導(dǎo)教師指導(dǎo)下實現(xiàn)程序設(shè)計;2016年12月8日 2016年12月9日:撰寫課程設(shè)計說明書; 2016年12月9日:答辯。學(xué)科部主任審查意見: 簽字: 年 月 日目 錄1、 題目說明-12、 設(shè)計主要模塊-23、 功能分析-24、 程序源代碼-35、 運行調(diào)試結(jié)果-116、 收獲及體會-13 1、 題目說明 1、數(shù)獨游戲設(shè)計要求 在9*9的大九宮格內(nèi),已給定若干數(shù)字,其他宮位留白。玩家需要自己按照邏輯推敲出剩下的空格里面是什么數(shù)字。 必須滿足的條件:每一行與每一列都有1到9的數(shù)字,每個小九宮格里也有1到9的數(shù)

12、字,并且每一個數(shù)字在每行,每列都只能出現(xiàn)一次,既不能 重復(fù)也不能少。 每個數(shù)獨游戲都可以根據(jù)給定的數(shù)字為線索,推算解答出來。 2、matlab軟件介紹 基本介紹:ATLAB(矩陣實驗室)是MATrix LABoratory的縮寫,是一款由美國The MathWorks公司出品的商業(yè)數(shù)學(xué)軟件。MATLAB是一種用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計算的高級技術(shù)計算語言和交互式環(huán)境。除了矩陣運算、繪制函數(shù)/數(shù)據(jù)圖像等常用功能外,MATLAB還可以用來創(chuàng)建用戶界面及與調(diào)用其它語言(包括C,C+和FORTRAN)編寫的程序。 盡管MATLAB主要用于數(shù)值運算,但利用為數(shù)眾多的附加工具箱(Tool

13、box)它也適合不同領(lǐng)域的應(yīng)用,例如控制系統(tǒng)設(shè)計與分析、圖像處理、信號處理與通訊、金融建模和分析等。另外還有一個配套軟件包Simulink,提供了一個可視化開發(fā)環(huán)境,常用于系統(tǒng)模擬、動態(tài)/嵌入式系統(tǒng)開發(fā)等方面。 編程環(huán)境:MATLAB由一系列工具組成。這些工具方便用戶使用MATLAB的函數(shù)和文件,其中許多工具采用的是圖形用戶界面。包括MATLAB桌面和命令窗口、歷史命令窗口、編輯器和調(diào)試器、路徑搜索和用于用戶瀏覽幫助、工作空間、文件的瀏覽器。隨著MATLAB的商業(yè)化以及軟件本身的不斷升級,MATLAB的用戶界面也越來越精致,更加接近Windows的標準界面,人機交互性更強,操作更簡單。而且新版

14、本的MATLAB提供了完整的聯(lián)機查詢、幫助系統(tǒng),極大的方便了用戶的使用。簡單的編程環(huán)境提供了比較完備的調(diào)試系統(tǒng),程序不必經(jīng)過編譯就可以直接運行,而且能夠及時地報告出現(xiàn)的錯誤及進行出錯原因分析。 圖形處理:MATLAB自產(chǎn)生之日起就具有方便的數(shù)據(jù)可視化功能,以將向量和矩陣用圖形表現(xiàn)出來,并且可以對圖形進行標注和打印。高層次的作圖包括二維和三維的可視化、圖象處理、動畫和表達式作圖。可用于科學(xué)計算和工程繪圖。新版本的MATLAB對整個圖形處理功能作了很大的改進和完善,使它不僅在一般數(shù)據(jù)可視化軟件都具有的功能(例如二維曲線和三維曲面的繪制和處理等)方面更加完善,而且對于一些其他軟件所沒有的功能(例如圖

15、形的光照處理、色度處理以及四維數(shù)據(jù)的表現(xiàn)等),MATLAB同樣表現(xiàn)了出色的處理能力。同時對一些特殊的可視化要求,例如圖形對話等,MATLAB也有相應(yīng)的功能函數(shù),保證了用戶不同層次的要求。另外新版本的MATLAB還著重在圖形用戶界面(GUI)的制作上作了很大的改善,對這方面有特殊要求的用戶也可以得到滿足。3、 題目要求根據(jù)數(shù)獨游戲規(guī)則設(shè)置數(shù)獨判斷程序。自動生成數(shù)獨表。根據(jù)輸入數(shù)字給出輸出,輸入錯誤時給出提示。2、 設(shè)計主要模塊 數(shù)獨游戲 數(shù)獨游戲主要組成部分解決數(shù)獨問題程序 界面設(shè)計生成及判斷程序3、 功能分析游戲主要功能包括:游戲的初始化,自動生成數(shù)獨表。根據(jù)選擇的游戲難度不同產(chǎn)生給出數(shù)字數(shù)目

16、不同的數(shù)獨表。當發(fā)生填寫錯誤時會給出提示。提供作弊功能,可以給出部分答案提示。根據(jù)讀者需要可以生成答案。4、 程序源代碼function sudoku(varargin) % sudoku % % Sudoku GUI for Matlab% if nargin=0, h_main=openfig(mfilename,new); centerfig(h_main); handles=guihandles(h_main); guidata(h_main,handles); initialize(handles);else if nargin1, feval(varargin1,varargin2

17、:end) else feval(varargin1) endend %-function initialize(handles) set(handles.sudoku,buttondownfcn,sudoku(highlight,guidata(gcbo),0),keypressfcn,sudoku(keypress,guidata(gcbo);axes(handles.axes1);claset(handles.axes1,nextplot,add); h_text=;h_field=;for i=1:9, for j=1:9, ix=sub2ind(9 9,i,j); h_field(i

18、x)=fill(-1 0 0 -1+i,-1 -1 0 0+j,w,buttondownfcn,sudoku(highlight,guidata(gcbo), num2str(ix) ); h_text(ix)=text(i-0.5,j-0.5,fontunits,normalized,fontsize,0.07,horizontalalignment,center,buttondownfcn,sudoku(highlight,guidata(gcbo), num2str(ix) ); endend setappdata(handles.sudoku,h_text,h_text);setapp

19、data(handles.sudoku,h_field,h_field); for i=0:3:9, h=plot(0 9,i i,k-); set(h,linewidth,2.5); h=plot(i i,0 9,k-); set(h,linewidth,2.5);end hlbox=plot(0 1 1 0 0,0 0 1 1 0,r-);set(hlbox,linewidth,3,visible,off); axis(-0.03 9.03 -0.03 9.03);axis equalaxis off s=zeros(9);setappdata(handles.sudoku,s,s);se

20、tappdata(handles.sudoku,s0,s);setappdata(handles.sudoku,ss,s);setappdata(handles.sudoku,hlbox,hlbox)setappdata(handles.sudoku,selected,0)setappdata(handles.sudoku,t0,clock);setappdata(handles.sudoku,cheated,0); %-function create_sudoku(handles) t=timer(timerfcn,waitbar(mod(etime(clock,t0)/60,1),hwb)

21、,period,1 . ,startfcn,hwb=waitbar(0,請稍候.,windowstyle,modal);t0=clock; . ,stopfcn,delete(hwb),executionmode,fixedrate);start(t);n=get(handles.create_slider,value); s,ss=sudoku_construct(n); h_text=getappdata(handles.sudoku,h_text);for i=1:9, for j=1:9, ix=sub2ind(9 9,i,j); if s(ix)=0, str=; else str=

22、num2str(s(ix); end set(h_text(ix),string,str,color,black); endendstop(t);delete(t); setappdata(handles.sudoku,s,s);setappdata(handles.sudoku,s0,s);setappdata(handles.sudoku,ss,ss);setappdata(handles.sudoku,t0,clock);setappdata(handles.sudoku,cheated,0);%-function highlight(handles,ix); hlbox=getappd

23、ata(handles.sudoku,hlbox); if ix0, i,j=ind2sub(9 9,ix); set(hlbox,xdata,i+-1 0 0 -1 -1,ydata,j+-1 -1 0 0 -1,visible,on);else set(hlbox,visible,off);end setappdata(handles.sudoku,hlbox,hlbox)setappdata(handles.sudoku,selected,ix) %-function keypress(handles); ix=getappdata(handles.sudoku,selected);s0

24、=getappdata(handles.sudoku,s0);s=getappdata(handles.sudoku,s);key=get(handles.sudoku,currentcharacter); if ix0 & ismember(double(key),28:31), i,j=ind2sub(9 9,ix); if double(key)=28, i=i-1; elseif double(key)=29, i=i+1; elseif double(key)=30, j=j-1; else j=j+1; end if i=1 & i=1 & j0, t_str=num2str(t_

25、h) 小時 ; end if t_m0, t_str=t_str num2str(t_m) 分鐘 ; end t_str=t_str num2str(t_s) 秒; cheated=getappdata(handles.sudoku,cheated); if cheated, t_str=t_str ,但是你作弊了!; end h=msgbox(你解決這道數(shù)獨題用了 t_str,太棒了!,modal); uiwait(h); end else set(h_field(ind),facecolor,1 0.8 0.8); drawnow; pause(1); set(h_field(ind),f

26、acecolor,white); set(h_text(ix),string,); endend %-function rok,ind=rulesok(s,i,j) ix=sub2ind(size(s),i,j);ix1=sub2ind(size(s),i*ones(1,9),1:9);ix1=ix1(find(ix1=ix);ix2=sub2ind(size(s),1:9,j*ones(1,9);ix2=ix2(find(ix2=ix); if i=3, xv=1:3;elseif i=6, xv=4:6;else xv=7:9;end if j=3, yv=1:3;elseif j=6,

27、yv=4:6;else yv=7:9;end x,y=meshgrid(xv,yv); ix3=sub2ind(size(s),x(:),y(:);ix3=ix3(find(ix3=ix); rok = (any(s(ix)=s(ix1) | any(s(ix)=s(ix2) | any(s(ix)=s(ix3); if nargout=2, ind=; i=find(ismember(s(ix1),s(ix); ind=ind ix1(i); i=find(ismember(s(ix2),s(ix); ind=ind ix2(i); i=find(ismember(s(ix3),s(ix);

28、 ind=ind ix3(i);end %-function hint(handles); s=getappdata(handles.sudoku,s);h_field=getappdata(handles.sudoku,h_field); s1=sudokusolve(s,0,1); ix=find(s1-s);set(h_field(ix),facecolor,0.8 1 0.8);waitforbuttonpressset(h_field(ix),facecolor,white);setappdata(handles.sudoku,cheated,1); %-function solve

29、_number(handles); s=getappdata(handles.sudoku,s);h_field=getappdata(handles.sudoku,h_field);h_text=getappdata(handles.sudoku,h_text); s1=sudokusolve(s,0,1); ix=find(s1-s);ix=ix(randperm(length(ix); s(ix(1)=s1(ix(1);set(h_text(ix(1),string,num2str(s1(ix(1),color,0.5*1 1 1)setappdata(handles.sudoku,s,

30、s);set(h_field(ix(1),facecolor,0.8 1 0.8);waitforbuttonpressset(h_field(ix(1),facecolor,white);setappdata(handles.sudoku,cheated,1); %-function solve_step(handles); s=getappdata(handles.sudoku,s);h_field=getappdata(handles.sudoku,h_field);h_text=getappdata(handles.sudoku,h_text); s1=sudokusolve(s,0,

31、1); ix=find(s1-s); s(ix)=s1(ix);for i=1:length(ix), set(h_text(ix(i),string,num2str(s1(ix(i),color,0.5*1 1 1);endsetappdata(handles.sudoku,s,s);set(h_field(ix),facecolor,0.8 1 0.8);waitforbuttonpressset(h_field(ix),facecolor,white);setappdata(handles.sudoku,cheated,1); %-function solve_all(handles); s=getappdata(handles.sudoku,s);h_field=getappdata(handles.sudoku,h_field);h_text=getappdata(handl

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論