Matlab音樂合成實驗報告(共13頁)_第1頁
Matlab音樂合成實驗報告(共13頁)_第2頁
Matlab音樂合成實驗報告(共13頁)_第3頁
Matlab音樂合成實驗報告(共13頁)_第4頁
Matlab音樂合成實驗報告(共13頁)_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、課程設計音樂合成實驗報告專 業(yè): 測控技術與儀器 班 級: 測控11-2 班 姓 名: 谷曉峰 學 號: 11034010219 指導教師: 賀婷 廣東石油化工學院計算機與電子信息學院信號與系統(tǒng)課程設計 -利用matlab合成音樂一、實驗目的1. 熟悉MATLAB的軟件和語言指令的使用; 2. 學習利用MATLAB進行連續(xù)信號的時域、頻域分析; 3. 熟悉抽樣信號與連續(xù)信號的區(qū)別。二、實驗內容1請根據畫心片斷的簡譜和“十二平均律”計算出該片斷中各個樂音的頻率,在MATLAB 中生成幅度為1抽樣頻率為8kHz 的正弦信號表示這些樂音。請用sound 函數(shù)播放每個樂音,聽一聽音調是否正確。最后用這

2、一系列樂音信號拼出畫心片斷,注意控制每個樂音持續(xù)的時間要符合節(jié)拍,用sound 播放你合成的音樂,聽起來感覺如何?并用圖顯示生成的音樂信號。相關知識: 畫心完整曲譜,實驗時從中隨機截取幾節(jié)用于編程。 利用十二平均律計算頻率以及相關音樂知識。如圖1,其中,相當于的二次諧波,二者是倍頻的關系。從A到A1共有12個鍵,7個白色鍵,5個黑色鍵。中間這些頻率值得計算規(guī)律為相鄰音倍乘系數(shù)。即,別的依次類推。圖1 鋼琴鍵盤圖1中各鍵對應的頻率如下表:FbGGbAAbBBC1bD1D1bE1E1174.61184.99196207.65220233.08246.94261.63277.18293.66311.

3、13329.63F1bG1G1bA1A1bB1B1C2bD2D2bE2E2349.23369.99392415.30440466.16493.88523.25554.36587.33622.25659.25D調名與音名對應:1234567D1E1F1G1A1B1C1D2bG表示的F升高半音,在樂譜中用#表示?;蛘逩降低半音,用b表示。樂譜這中的4/4表示每小節(jié)有四拍,一個1/4音符的持續(xù)時間為一拍,一拍大概0.5s左右。eg:y=0*t; %初始化y(t0.25)=sin(440*2*pi*t(t0.25); %第一個音 5,持續(xù)時間0.25s y(0.25t&t0.5)=sin(392*2*

4、pi*t(0.25t&t0.5); %第二個音3,持續(xù)時間0.25ssound(y,8000) %播放音樂 三實驗步驟 3.1音樂合成根據畫心第一小節(jié)的簡譜和十二平均律計算出該小節(jié)每個樂音的頻率,在MATLAB中生成幅度為1,抽樣頻率為8kHz的正弦信號表示這些樂音,用sound播放合成的音樂。由圖可知畫心的曲調定為D,即1=D,對應的頻率為293.66Hz,據此可以計算出其他樂音的頻率,一次類推計算出第一小節(jié)各樂音對應的頻率為:樂音533212253頻率440349.23349.23329.63293.66329.63329.63440349.23樂音533213563頻率440349.23

5、349.23329.23293.66349.23440493.88349.23樂音53321217頻率440349.23349.23329.63293.66329.63293.66277.96在確定了各樂音的頻率之后需要確定每個樂音的持續(xù)時間。每小節(jié)有兩拍,一拍的時間是0.5s,因此各樂音的持續(xù)時間為:樂音533212253時間0.250.250.50.250.250.50.250.251.5樂音533213563時間0.250.250.50.250.250.50.250.251.5樂音53321217時間0.250.250.50.250.250.50.250.25而在MATLAB中表示樂音所

6、用的抽樣頻率為fs=8000Hz,也就是所1s鐘內有8000個點,抽樣點數(shù)的多少就可表示出每個樂音的持續(xù)時間的長短。用一個行向量來存儲這段音樂對應的抽樣點,在用sound函數(shù)播放即可。根據以上分析在MATLAB中編寫如下程序:sound_1_1.mclear;clc;fs=8000; %抽樣頻率f=440 349.23 349.23 329.63 293.66 329.63 329.63 440 349.23 440 349.23 349.23 329.63 293.66 349.23 440 493.88 349.23 440 349.23 349.23 329.63 293.66 329.

7、63 293.66 277.96; %各個樂音對應的頻率time=fs*0.25,0.25,0.5,0.25,0.25,0.5,0.25,0.25,1.5,0.25,0.25,0.5,0.25,0.25,0.5,0.25,0.25,1.5,0.25,0.25,0.5,0.25,0.25,0.5,0.25,0.25; %各個樂音的抽樣點數(shù)N=length(time); %這段音樂的總抽樣點數(shù)east=zeros(1,N); %用east向量來儲存抽樣點n=1;for num=1:N %利用循環(huán)產生抽樣數(shù)據,num表示樂音編號t=1/fs:1/fs:time(num)/fs; %產生第num個樂音

8、的抽樣點east(n:n+time(num)-1)=sin(2*pi*f(num)*t); %抽樣點對應的幅值 n=n+time(num);end sound(east,8000) %播放音樂在MATLAB中運行sound_1_1.m,播放出了畫心的第一段,但是可以聽出效果很不好,只能聽出具有畫心的調子而已。3.2除噪音,加包絡最簡單的包絡為指數(shù)衰減。最簡單的指數(shù)衰減是對每個音乘以因子,在實驗中首先加的是的衰減,這種衰減方法使用的是相同速度的衰減,但是發(fā)現(xiàn)噪音并沒有完全消除,播放的音樂效果不是很好,感覺音樂起伏性不強。于是采用不同速度的衰減,根據樂音持續(xù)時間的長短來確定衰減的快慢,樂音持續(xù)時間

9、越長,衰減的越慢,持續(xù)時間越短,衰減的越快。在1.1程序的基礎上加上包絡,編寫如下程序:sound_1_21.mclear;clc;fs=8000; %抽樣頻率f=440 349.23 349.23 329.63 293.66 329.63 329.63 440 349.23 440 349.23 349.23 329.63 293.66 349.23 440 493.88 349.23 440 349.23 349.23 329.63 293.66 329.63 293.66 277.96; %各個樂音對應的頻率time=fs*0.25,0.25,0.5,0.25,0.25,0.5,0.25

10、,0.25,1.5,0.25,0.25,0.5,0.25,0.25,0.5,0.25,0.25,1.5,0.25,0.25,0.5,0.25,0.25,0.5,0.25,0.25; %各個樂音的抽樣點數(shù)N=length(time); %這段音樂的總抽樣點數(shù)east=zeros(1,N); %用east向量來儲存抽樣點n=1;for num=1:N %利用循環(huán)產生抽樣數(shù)據,num表示樂音編號t=1/fs:1/fs:time(num)/fs; %產生第num個樂音的抽樣點baoluo=zeros(1,time(num); %為存儲包絡數(shù)據的向量for j=1:time(num) if (j0.2*

11、time(num) y=7.5*j/time(num); else if(j0.333*time(num) y=-15/4*j/time(num)+9/4; else if(j0.666*time(num) y=1; else y=-3*j/time(num)+3; end end end baoluo(j)=y;end east(n:n+time(num)-1)=sin(2*pi*f(num)*t).*baoluo(1:time(num); %給第num個樂音加上包絡 n=n+time(num);endsound(east,8000) %播放音樂plot(east)播放后可以聽出噪音已經消除

12、,同時因為不同時長的樂音衰減的快慢不一樣,音樂聽起來更有起伏感,下圖是加包絡后的east圖像。3.3改變程序,實現(xiàn)3.2中的音樂升高和降低一個八度升高一個八度即每個樂音的頻率都提高一倍,變?yōu)樵瓉淼?被;降低一個八度即每個樂音的頻率都減小一倍,變?yōu)樵瓉淼?/2。因此最簡單的辦法是將存儲樂音頻率的向量每個元素改變?yōu)?或1/2倍。即將程序中的即將程序中的f=440 349.23 349.23 329.63 293.66 329.63 329.63 440 349.23 440 349.23 349.23 329.63 293.66 349.23 440 493.88 349.23 440 349.2

13、3 349.23 329.63 293.66 329.63 293.66 277.96;改為f=440 349.23 349.23 329.63 293.66 329.63 329.63 440 349.23 440 349.23 349.23 329.63 293.66 349.23 440 493.88 349.23 440 349.23 349.23 329.63 293.66 329.63 293.66 277.96; *2;或f=440 349.23 349.23 329.63 293.66 329.63 329.63 440 349.23 440 349.23 349.23 329

14、.63 293.66 349.23 440 493.88 349.23 440 349.23 349.23 329.63 293.66 329.63 293.66 277.96; /2;將上述音樂上高半個音階,即將頻率變?yōu)樵瓉淼模?.06)倍,可以利用resamlpe函數(shù)對原來的數(shù)據點進行重采樣來實現(xiàn)east=resample(east,100,106);因為resample進行重新采樣后會使每個樂音的持續(xù)時間改變,但是因為升高半個音階,頻率改變不大,所以每個音的持續(xù)時間是基本不變的。升高一個八度:fs=8000; %抽樣頻率f=440 349.23 349.23 329.63 293.66

15、329.63 329.63 440 349.23 440 349.23 349.23 329.63 293.66 349.23 440 493.88 349.23 440 349.23 349.23 329.63 293.66 329.63 293.66 277.96; %各個樂音對應的頻率time=fs*0.25,0.25,0.5,0.25,0.25,0.5,0.25,0.25,1.5,0.25,0.25,0.5,0.25,0.25,0.5,0.25,0.25,1.5,0.25,0.25,0.5,0.25,0.25,0.5,0.25,0.25; %各個樂音的抽樣點數(shù) N=length(tim

16、e); %這段音樂的總抽樣點數(shù) east=zeros(1,N); %用east向量來儲存抽樣點n=1;for num=1:N %利用循環(huán)產生抽樣數(shù)據,num表示樂音編號 f=f*2t=1/fs:1/fs:time(num)/fs; %產生第num個樂音的抽樣點east(n:n+time(num)-1)=sin(2*pi*f(num)*t); n=n+time(num);endsound(east,8000) %播放音樂運行得到圖像為:降低一個八度:fs=8000; %抽樣頻率 f=440 349.23 349.23 329.63 293.66 329.63 329.63 440 349.23

17、440 349.23 349.23 329.63 293.66 349.23 440 493.88 349.23 440 349.23 349.23 329.63 293.66 329.63 293.66 277.96; %各個樂音對應的頻率time=fs*0.25,0.25,0.5,0.25,0.25,0.5,0.25,0.25,1.5,0.25,0.25,0.5,0.25,0.25,0.5,0.25,0.25,1.5,0.25,0.25,0.5,0.25,0.25,0.5,0.25,0.25; %各個樂音的抽樣點數(shù) N=length(time); %這段音樂的總抽樣點數(shù)east=zeros

18、(1,N); %用east向量來儲存抽樣點n=1;for num=1:N %利用循環(huán)產生抽樣數(shù)據,num表示樂音編號 f=f/2t=1/fs:1/fs:time(num)/fs; %產生第num個樂音的抽樣點east(n:n+time(num)-1)=sin(2*pi*f(num)*t); n=n+time(num);endsound(east,8000) %播放音樂plot(east)運行得到圖像為:在3.2的音樂中加入諧波在1.2的音樂中加上二、三、四次諧波,基波幅度為1,高次諧波幅度分別為0.2、0.3、0.1。只需將1.2程序改為sound_1_4.m fs=8000; %抽樣頻率f=

19、440 349.23 349.23 329.63 293.66 329.63 329.63 440 349.23 440 349.23 349.23 329.63 293.66 349.23 440 493.88 349.23 440 349.23 349.23 329.63 293.66 329.63 293.66 277.96; %各個樂音對應的頻率time=fs*0.25,0.25,0.5,0.25,0.25,0.5,0.25,0.25,1.5,0.25,0.25,0.5,0.25,0.25,0.5,0.25,0.25,1.5,0.25,0.25,0.5,0.25,0.25,0.5,0.

20、25,0.25; %各個樂音的抽樣點數(shù)N=length(time); %這段音樂的總抽樣點數(shù) east=zeros(1,N); %用east向量來儲存抽樣點n=1;for num=1:N %利用循環(huán)產生抽樣數(shù)據,num表示樂音編號t=1/fs:1/fs:time(num)/fs; %產生第num個樂音的抽樣點baoluo=zeros(1,time(num); %為存儲包絡數(shù)據的向量for j=1:time(num) if (j0.2*time(num) y=7.5*j/time(num); else if(j0.333*time(num) y=-15/4*j/time(num)+9/4; else if(j0.666*time(num) y=1; else y=

溫馨提示

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

評論

0/150

提交評論