? ? 電子琴設(shè)計原理
樂曲都是由一連串的音符組成,按照樂曲的樂譜依次輸出這些音符所對應(yīng)的頻率,就可以在揚(yáng)聲器上連續(xù)地發(fā)出各個音符的音調(diào)。為了準(zhǔn)確地演奏出一首樂曲,僅僅讓揚(yáng)聲器能夠發(fā)出聲音是遠(yuǎn)遠(yuǎn)不夠的,還必須準(zhǔn)確地控制樂曲的節(jié)奏,即每個音符的持續(xù)時間。由此可見,樂曲中每個音符的發(fā)音頻率以及音符持續(xù)的時間是樂曲能夠連續(xù)演奏的兩個關(guān)鍵因素。
樂曲的12平均率規(guī)定:每2個八度音之間的頻率要相差1倍,比如簡譜中的中音2與高音2。在2個八度音之間,又可分為12個半音。另外,音符A(簡譜中的低音5)的頻率為392Hz,音符E到F之間、B到C之間為半音,其余為全音。由此可以計算出簡譜中從低音
1至高音1之間每個音符的頻率。簡譜音名與頻率對應(yīng)關(guān)系如圖2-1所示:
產(chǎn)生各音符所需的頻率使用一分頻器來實(shí)現(xiàn),由于各音符對應(yīng)的頻率多為非整數(shù),而分頻系數(shù)又不能為小數(shù),所以必須將計算得到的分頻數(shù)四舍五入取整數(shù)。若分頻器時鐘頻率過低,則由于分頻系數(shù)過小,四舍五入取整數(shù)后的誤差較大;若時鐘頻率過高,雖然誤差變小,但分頻數(shù)將會變大。在實(shí)際的設(shè)計中應(yīng)綜合考慮這兩方面的因素,在盡量減小頻率誤差的前提下取合適的時鐘頻率。實(shí)際上,只要各個音符間的相對頻率關(guān)系不變,演奏出的樂曲聽起來都不會走調(diào)。
設(shè)計的音樂電子琴選取12MHZ的系統(tǒng)時鐘頻率。在數(shù)控分頻器模塊,首先對時鐘頻率進(jìn)行12分頻,得到1MHZ的輸入頻率,然后再次分頻得到各音符的頻率。由于數(shù)控分頻器輸出的波形是脈寬極窄的脈沖波,為了更好的驅(qū)動揚(yáng)聲器發(fā)聲,在到達(dá)揚(yáng)聲器之前需要均衡占空比,從而生成各音符對應(yīng)頻率的對稱方波輸出。這個過程實(shí)際上進(jìn)行了一次二分頻,頻率變?yōu)樵瓉淼亩种患?.5MHZ。
因此,分頻系數(shù)的計算可以按照下面的方法進(jìn)行。以中音1為例,對應(yīng)的頻率值為523Hz,它的分頻系數(shù)應(yīng)該為:
至于其他音符,可由上式求出對應(yīng)的分頻系數(shù),這樣利用程序可以很輕松地得到相應(yīng)的樂聲。
各音名對應(yīng)的分頻系數(shù)如圖2-2所示:
音符的持續(xù)時間須根據(jù)樂曲的速度及每個音符的節(jié)拍數(shù)來確定。因此,要控制音符的音長,就必須知道樂曲的速度和每個音符所對應(yīng)的節(jié)拍數(shù)。如果將全音符的持續(xù)時間設(shè)為1s的話,那么一拍所應(yīng)該持續(xù)的時間為0.25秒,則只需要提供一個4HZ的時鐘頻率即可產(chǎn)生四分音符的時長。
至于音長的控制,在自動演奏模塊,每個樂曲的音符是按地址存放的,播放樂曲時按4HZ的時鐘頻率依次讀取簡譜,每個音符持續(xù)時間為0.25秒。如果樂譜中某個音符為三拍音長,那又該如何控制呢?其實(shí)只要在3個連續(xù)地址存放該音符,這時就會發(fā)三個0.25秒的音長,即持續(xù)了三拍的時間,通過這樣一個簡單的操作就可以控制音長了。
2.2.1分頻模塊設(shè)計方法
方法一:使用加法計數(shù)器。在計數(shù)器值小于分頻系數(shù)值時,保持分頻的時鐘信號不變,當(dāng)計數(shù)器加到分頻系數(shù)值時,令分頻時鐘信號發(fā)生跳變,同時將零設(shè)為此時的計數(shù)器值,這樣分頻時鐘信號就會再次發(fā)生跳變。但是這種占空比不等于50%的信號是無法驅(qū)動實(shí)驗板上的揚(yáng)聲器發(fā)聲的。
方法二:使用減法計數(shù)器,計數(shù)器的數(shù)值由分頻系數(shù)值向下遞減,在減為零時跳變并重新賦值,原理與第一種類似。
方法三:先對時鐘脈沖進(jìn)行分頻得到1MHZ的脈沖,然后按照輸入的分頻系數(shù)對1MHZ的再次分頻,得到所需的音符頻率,最后在音調(diào)輸出時再進(jìn)行二分頻,將脈沖展開能夠直接得到占空比為50%的分頻信號,將脈沖展寬,使揚(yáng)聲器有足夠發(fā)生功率。在思索一番后,最終確定了這一個方案,相比較與以上兩種實(shí)現(xiàn)方法,這種方法的好處在于能夠直接得到占空比為50%的分頻信號。
評論
查看更多