基于MATLAB的數(shù)字電子琴的設(shè)計與實現(xiàn)_第1頁
基于MATLAB的數(shù)字電子琴的設(shè)計與實現(xiàn)_第2頁
基于MATLAB的數(shù)字電子琴的設(shè)計與實現(xiàn)_第3頁
基于MATLAB的數(shù)字電子琴的設(shè)計與實現(xiàn)_第4頁
基于MATLAB的數(shù)字電子琴的設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

《DSP技術(shù)及應(yīng)用》課程設(shè)計報告電子信息工程學(xué)院《DSP技術(shù)及應(yīng)用》課程設(shè)計報告題目:基于MATLAB的數(shù)字電子琴的設(shè)計與實現(xiàn)專業(yè)班級:通信工程專業(yè)二〇一三年六月十三日MATLAB中產(chǎn)生不同頻率的正弦單頻信號。存用戶輸入的音階:用戶輸入音階后,在GUI窗口中會有對應(yīng)的音符顯示,點擊保存,即可將這些字符保存為一個,txt文件。加載音階:選擇打開加載音符,點擊暫停播放,即可將之前保存好的音符進行播放。產(chǎn)生數(shù)字信號:對應(yīng)不同的按鍵產(chǎn)生不同的正弦數(shù)字信號。波形線束:通過不同的信號,畫出不同的信號的時域與頻域圖。驅(qū)動聲卡:發(fā)出聲音。四、軟件流程Matlab是一個具有數(shù)值分析、科學(xué)數(shù)據(jù)可視化以及非線性動態(tài)系統(tǒng)的建模和仿真等功能的工程實用軟件。本文介紹了一種使用GUI工具箱,用Matlab實現(xiàn)虛擬數(shù)字信號發(fā)生器的設(shè)計。并在此基礎(chǔ)上,利用聲卡,實現(xiàn)了簡易的數(shù)字電子琴。具體軟件流程如下:(1)搭建GUI界面圖形用戶界面(GraphicalUserInterface,簡稱GUI,又稱圖形用戶接口)是指采用圖形方式顯示的計算機操作用戶界面。Matlab環(huán)境下的圖形用戶界面(GUI)是由窗口、光標、按鍵、菜單、文字說明等對象(Objects)構(gòu)成的一個用戶界面。用戶通過一定的方法(如鼠標或鍵盤)選擇、激活這些圖形對象,使計算機產(chǎn)生某種動作或變化。做好的GUI界面分別如圖2、圖3所示:圖2圖3編寫.M文件搭建好GUI界面后,點擊“保存”按鈕,系統(tǒng)將自動生成M文件與Fig文件各一個,并且M文件內(nèi)部已經(jīng)按照GUI界面中組件的類別,分別自動生成了相應(yīng)的模塊調(diào)用函數(shù)。根據(jù)需需要,我們對生成的各個函數(shù)進行補充,完成函數(shù)功能的實現(xiàn)及各個函數(shù)的調(diào)用關(guān)系。本次實驗主要對控件的回調(diào)函數(shù)(callback)下寫入相應(yīng)的程序,該程序相當(dāng)于一個將前后面板連接起來的紐帶,在數(shù)字信號生成中作用很大。主要源程序文件如下:信號產(chǎn)生部分:globalnglobalm;globalyc;b=[-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]c=b(t);f=440*2^((c+m)/12);%C調(diào)D調(diào)改變mfs=10*fx=0:(1/fs):ycswitchyccase0.25d=-4case0.5d=-2case1d=-2switchncase3y=exp(d*x).*sin(2*pi*f*x)+0.2*exp(d*x).*sin(2*pi*f*3*x)+0.3*exp(d*x).*sin(2*pi*f*3*x)+0.4*exp(d*x).*sin(2*pi*f*4*x)+0.5*exp(d*x).*sin(2*pi*f*5*x)case1y=sin(2*pi*f*x)case2y=exp(d*x).*sin(2*pi*f*x)end繪圖部分:subplot(2,1,1)plot(x,y);axis([0,yc,-2,2])xlabel('時間/s')ylabel('幅度')gridon;subplot(2,1,2)Y=abs(fft(y))plot(Y)xlabel('頻率/Hz')ylabel('幅度')gridon%axis([0,yc,-2,2]);wavplay(y,fs,'async');五、調(diào)試分析在軟件設(shè)計過程中遇到了許多困難,以下選擇幾點主要的進行分析說明:1、校徽的顯示問題:由于本作品想添加?;?,創(chuàng)建了一個axes坐標,但是始終在該坐標上無法顯示我們預(yù)設(shè)好的?;請D片。解決方案:在圖片顯示子函數(shù)imshow后加上要顯示的坐標,即可將圖片顯示在于設(shè)置的坐標上。2、音階的保存:將輸入的音符進行保存為txt文本文件時,保存時是按字符串格式保存的,再次加載時,卻是按照字符進行加載,到時要回刪一個音階時,將之前所有以保存的音階會全部刪除。解決方案:讀數(shù)據(jù)時,使用大括號,使數(shù)據(jù)為一個cell型數(shù)組。3、GUI背景設(shè)置問題:為了美化界面,我們想到使用背景圖片,但是由于MATLAB中沒有該加載背景圖片的功能,因此始終無法加載圖片解決方案:經(jīng)過上網(wǎng)搜尋方案,想到在GUI界面中建一個坐標覆蓋整個界面,然后圖片加載到該坐標中,使bringback功能將該圖片作為背景。4、在EDIT窗口中顯示字符問題:開始設(shè)想在一個EDIT窗口中實時顯示按下的音階,但是始終無法實現(xiàn)該功能解決方法:使用MATLAB中的set與get函數(shù),最終的以實現(xiàn)。設(shè)計總結(jié)通過本次實驗,掌握了GUI界面的搭建,對matlab中常見的函數(shù)有了深刻的認識。在學(xué)習(xí)中發(fā)現(xiàn)matlab是個很強大的軟件,可惜自己對它的認識太少,以后還得自己學(xué)習(xí)。同時,這次制作數(shù)字電子琴,通過晚上查找資料,也對一些音律方面的知識有很多的認識,在實驗過程中,存在著很多問題,在韓萍老師及何煒琨老師的悉心指導(dǎo)下,最終一個一個解決了,通過這次試驗,自己獲益匪淺。七、參考文獻[1]鄭君里.信號與系統(tǒng)(第二版),高等教育出版社,2005[2]

溫馨提示

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

評論

0/150

提交評論