(數理方程)Matlab模擬琴絃振動發聲並顯示振動圖像(matlab)_人工智能

1、 物理模型建立

由課題問題可轉化爲實際數理問題,即典型弦振動問題,一根均勻弦兩端分別在x=0以及x=L處固定,設初始速度爲零,初始時刻弦的形狀爲一拋物線,拋物線的頂點爲(L/2,h),討論其弦振動的具體問題。<注:初值設定方式不收限制,但是不能全爲零,否則無運動,在此以此初值是便於進一步的公式推導>
(L爲弦長)

2、相關原理推導

2.1弦振動方程推導

由第一節所得出的物理實際問題可列出下列方程:
在這裏插入圖片描述
分離變量法:
u(x,t)=T(t)X(x)
代入原方程得:
在這裏插入圖片描述
求解可得:在這裏插入圖片描述在這裏插入圖片描述

將初始條件:代入得 在這裏插入圖片描述
且Cn等於:在這裏插入圖片描述
因此:在這裏插入圖片描述
至此,我們公式原理推導完畢,得出了弦振動的函數表達式:在這裏插入圖片描述

2.2琴絃發音原理推導

經過多個文獻的學習得出,小提琴聲音是通過把琴絃的振動經過琴碼傳遞到共鳴體,使得共鳴腔體產生共振,帶動箱內外空氣振動而產生的,而弦的振動則來源於琴弓與琴絃的相互作用。小提琴發聲產生的振動大致分爲弦的振動、琴碼的振動和共鳴箱的振動三種,在此我們僅研究琴絃的振動,正是因此我們所仿真出來的發音效果會帶來一定的偏差,請諒解。琴絃振動分爲橫振動、縱振動、扭轉振動和倍頻振動,根據課題要求與實際運算難度,在此我們只研究橫振動。
橫振動,將弦挑離其平衡位置再放掉,弦就開始做一個扁紗錠型的振動,它的振幅限制在兩條明確的曲線之內。弦的橫振動頻率,可以用泰勒公式來表達,即
在這裏插入圖片描述 其中 a=√(F/ρ)
式中f爲弦的振動頻率,ρ、F、l,依次爲弦的線密度、拉力和長度。且看出橫振動頻率與弦長成反比,與張力的平方根成正比,與絃線的密度的平方根成反比。

3、 相關參數的確立

有效琴絃長度L:《小提琴製作藝術》【英】克里斯.約翰遜,羅伊.考特諾爾著一書中講到安裝琴頸時琴頸站位與琴身站位比例爲2比3,即F孔兩個小缺口下口325毫米處。在此我們定弦長L=325mm=0.325m<注:此處我們選用的是4/4M尺寸的小提琴,即成人常用小提琴>
琴絃拉力F:由下表1可得H311型號E-Mi弦拉力爲18.6磅。
在這裏插入圖片描述
表1琴絃參數
因此我們定爲18.6磅= 8.436kg= 82.6728N
琴絃線密度:已知E-Mi鋼弦的密度爲7.8g/cm3=7800kg/m3,E弦直徑爲0.276mm則半徑爲0.138mm=0.000138m,由公式線密度=密度x琴絃的橫截面積得,E弦的線密度是4.67x10^-4kg/m
至此,我們得到參數:L=0.325m,F=82.6728N,ρ線=4.67x10^-4kg/m

4、 運算檢驗與修正

首先判斷基頻,利用公式 將第三節的參數代入得
在這裏插入圖片描述
647Hz近似等於題乾的標準基頻660Hz,證明了我們數據的有效性與可靠性,在此我們做一下微小修正將拉力F從82.6728N改爲86N可使基頻調整至660Hz標準。
至此,修正後的參數爲:L=0.325m,F=86N,ρ線=4.67x10^-4kg/m

5、Matlab仿真檢驗,習題解答

5.1 Matlab仿真琴絃發音

我們將利用matlab將振動函數與相關參數結合仿真出實際聲音通過測量設備鑑別頻率,過程如下見圖5.1:
在這裏插入圖片描述
圖5.1
測量結果如下見圖5.2:
在這裏插入圖片描述
圖5.2
因實際測量存在誤差經多次測量去平均後得出matlab仿真發音頻率確實爲660Hz,在此需要關注圖5.1代碼31行與32行,由於2.2提到小提琴發聲並不是單純的琴絃振動所以僅僅模擬出琴絃函數聲音偏差太大,在此我們用32行的典型振動函數並附上我們特定的參數僅用以進行發聲判斷,後期的圖像處理我們仍將採用準確的弦振動方程得出的函數。
至此我們的理論階段已基本完成可以進行更深度的探討,下面開始習題的解答。

5.2 習題解答

習題1,當小提琴的發音爲高八度A音(2x440Hz)時,弦長是多少?由題幹可得多個變量要控制不變,僅僅允許弦長的變化,同時由公式
在這裏插入圖片描述
得當f從660Hz變化到880Hz時,弦長L要變爲原來的3/4,即弦長從0.325m變爲0.325mx0.75=0.24375m。我們進行仿真驗證結果如下見圖5.3:
圖5.3
頻率測定結果如下見圖5.4:
在這裏插入圖片描述
圖5.4
第一問完成。
習題2,音準受哪些因素影響,影響多大?
又前幾節的發音函數可知,理論上講音準受弦長、拉力與線密度影響。<實際上還要考慮我們在matlab中的抽樣頻率,即時間序列,但現實生活中不用>該問題要用到我們在學到的誤差傳遞公式即可輕鬆得出,見下圖5.5所示:
在這裏插入圖片描述
圖5.5
因此,
∆f/f=∆L/L+1/2∙∆F/F+1/2∙∆ρ/ρ
第二題解決。
習題3,檢驗自己在發生多大的設計誤差是能聽得出來。
該題,我們認爲無論你改變哪個量最後都影響的基頻f因此,通過改變f的大小來多次試驗判斷音準的變化。經過三位組員500hz-700hz,700hz-900hz,900hz-1000hz且每次變化5Hz我們得出以下數據見表1。
判斷音準 頻率界值(Hz)
Do 500-575
Ra 575-640
Mi 640-685
Fa 685-750
So 750-850
La 850-950
Xi 950-1000
表一:音頻辨別表
習題4,時間序列取值間隔應注意哪些問題,爲什麼?
首先,時間序列的起點與終點即振動發音的起點與終點,不難理解我們最好要講起點設爲0s以後均可,因爲理想情況下無阻力一直在振動,但是終點理論上講要比起點大1/20K秒即可,因爲人耳可聽頻率爲20Hz-20KHz,但是由於matalab軟件仿真不完全等同於現實問題,因此,經試驗時間長度必須大於等於0.002秒纔可以聽出不同聲音。<我們推測這一數值和電腦硬件性能也有很大關係,因爲這影響着matlab其內部的算力>
至於採樣頻率,它當然越高越好,因爲離散點越密集越像連續圖像真實性越高,當然那樣運算量也越大,經測驗5kHz的採樣率僅能達到人們講話的聲音質量。11kHz的採樣率是播放小段聲音的最低標準,是CD音質的四分之一。22kHz採樣率的聲音可以達到CD音質的一半,目前大多數網站都選用這樣的採樣率。
44kHz的採樣率是標準的CD音質,可以達到很好的聽覺效果。由於電腦運算量強大,在此我們完全可以把採樣頻率設置爲100kHz來仿真。

6、拓展與延伸

6.1 調絃、按指與迷之神奇的a
每一根琴絃的空弦都對應各自的振動頻率(決定音是否準),所謂的調絃,即在演奏前調整弦的拉力鬆緊和扭轉也就是改變變量拉力F,當然也可以更換材料即改變變量線密度ρ。
按指可以認爲是控制聲音的發聲與停止,(其實並未停止),當按下琴絃時,拉力瞬間增大,設想如果拉力無窮大那麼就不存在橫振動了,所以在按下琴絃時聲音變小,阻力增大,如果及時恢復,聲音也可近似恢復,但是按壓時間過長就已經停止振動了,有必要說一下,按指在小提琴演奏中是常見的一種指法可以發出美妙的顫音。
迷之神奇的a a=√(F/ρ)
通過單位的量綱可得a的單位爲m/s即速度單位,且通過查找文獻得出,a爲振動的傳播速度。
6.2 圖像與動畫
我們用2.1節所推導的函數放入相關參數進行matlab仿真效果圖如下所示:
點擊下方圖標即可播放,如無法播放根目錄附有gif文件。

波形圖與強度對比圖如下見圖6.1圖6.2:
在這裏插入圖片描述
圖6.1
在這裏插入圖片描述
圖6.2
最後附上一首matlab製作的一閃一閃亮晶晶以此結束。(點擊圖標打開播放)

7、代碼

在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述

最後,如果有問題請在評論去留言我會及時回覆!謝謝

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章