matlab怎么合成音乐,使用matlab进行简单音乐合成
使用matlab語言,對音樂進行簡單的頻域上的分析,提取基頻、音高,并進行簡單的音樂合成。
信號與系統
- 綜合實驗之音樂合成
(1) 請根據《東方紅》片斷的簡譜和“十二平均律”計算出該片斷中各個樂音的
頻率,在MATLAB 中生成幅度為1 、抽樣頻率為8kHz 的正弦信號表示這些樂音。請用sound 函數播放每個樂音,聽一聽音調是否正確。最后用這一系列樂音信號拼出《東方紅》片斷,注意控制每個樂音持續的時間要符合節拍,用sound 播放你合成的音樂,聽起來感覺如何? 代碼如下: f =8000;
t2=[0:1/f:1]; t4=[0:1/f:0.5]; t8=[0:1/f:0.25]; omg5=523.35; omg6=587.33; omg2=392; omg1=349.23; omg6l=293.66;
m1=sin(2*pi*omg5*t4); m2=sin(2*pi*omg5*t8); m3=sin(2*pi*omg6*t8); m4=sin(2*pi*omg2*t2); m6=sin(2*pi*omg1*t4); m7=sin(2*pi*omg1*t8); m8=sin(2*pi*omg6l*t8); m9=sin(2*pi*omg2*t2);
m=[m1 m2 m3 m4 m6 m7 m8 m9]; sound(m);
聽的時候發現在相鄰樂音之間有雜音,這是由于相位不連續造成的。
(2) 你一定注意到(1) 的樂曲中相鄰樂音之間有“啪”的雜聲,這是由于相位不
連續產生了高頻分量。這種噪聲嚴重影響合成音樂的質量,喪失真實感。為了消除它,我們可以用圖1.5 所示包絡修正每個樂音,以保證在樂音的鄰接處信號幅度為零。此外建議用指數衰減的包絡來表示。 我采用的是指數衰減的包絡。 代碼如下: f =8000;
t2=[0:1/f:1]; t4=[0:1/f:0.5]; t8=[0:1/f:0.25]; omg5=523.35; omg6=587.33; omg2=392;
總結
以上是生活随笔為你收集整理的matlab怎么合成音乐,使用matlab进行简单音乐合成的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【剑指offer - C++/Java】
- 下一篇: matlab 从 excel读取 日期_