掌握數字聲音合成技術(shù):設計您自己的吉他合成器

發(fā)布時(shí)間:2014-5-19 14:28    發(fā)布者:eechina
關(guān)鍵詞: 數字聲音 , 聲音合成 , 合成器
作者: Sree Harsha Angara

數字聲音合成技術(shù)總讓我這個(gè)業(yè)余愛(ài)好者感到著(zhù)迷。一個(gè)有關(guān)Karplus-Strong吉他合成技術(shù)的維基網(wǎng)頁(yè)更加激發(fā)了我的興趣。它吸引我的地方是這種合成器設計非常簡(jiǎn)單。下面是來(lái)自維基網(wǎng)頁(yè)的圖形(圖1):


圖1:來(lái)自維基的K-S方框圖

網(wǎng)頁(yè)另外指出延遲L可按以下簡(jiǎn)單公式?jīng)Q定音調音質(zhì),



式中的濾波器系數決定音調的‘粘性’。

突發(fā)噪聲?就是這樣嗎?肯定不對!不可能就這么簡(jiǎn)單!與所有業(yè)余愛(ài)好者一樣,我立馬開(kāi)始著(zhù)手實(shí)施。寫(xiě)代碼只用了幾個(gè)小時(shí),然后我把DAC輸出連接到示波器?梢钥闯雠c諧波疊加后大致呈正弦曲線(xiàn),但是無(wú)法確定聽(tīng)起來(lái)會(huì )是什么樣。

在一陣翻箱倒柜之后,我連接了一對舊耳機。我沒(méi)太高期望,大家都知道:對于初次嘗試的項目來(lái)說(shuō),要么是一無(wú)所獲,要么是背運情況下會(huì )看到它冒出一縷白煙(我寧愿把這看成是芯片的靈魂升入虛空)。在確實(shí)聽(tīng)到像撥弄吉他發(fā)出的聲音之時(shí)著(zhù)實(shí)讓我吃了一驚。

似乎有點(diǎn)對路了。先提醒一下,下面要講到數學(xué)了。

分析:

讓我們更深入地看看下圖2:


圖2: K-S方框圖–注釋

合成器的輸出是低通濾波器輸出與突發(fā)噪聲的簡(jiǎn)單求和。在下面所有公式中,下標‘n’均為當前取樣。



經(jīng)過(guò)一番處理之后我們可以得到一個(gè)龐大的表達式:



好在通過(guò)利用Excel掃描頻率ω很容易就能求出幅值響應。

取樣速率設為44.1ksps(這是可掃描整個(gè)聽(tīng)覺(jué)范圍的最小值)。

如果從式1生成200Hz音調,延遲‘L’則為44100/200 = 220.5。

由于我們的延遲為數字式,因此選擇220這個(gè)接近值。我隨意選擇10KHz的低通濾波器極點(diǎn)值入手。此極點(diǎn)頻率可確定上述‘a(chǎn)’與‘b’的值。


圖3:頻率響應

我們可以根據此響應明確看出我們是否傳輸寬帶噪聲信號(而我寧愿將其視為能量散布全部頻率的信號),而您看到的輸出是200Hz基頻,隨后是2x、3x、4x…諧波。這基本上就是實(shí)際吉他彈奏時(shí)的表現:基頻隨后是伴生泛音。


圖4:吉他泛音

另一個(gè)值得注意的有趣現象是:當把濾波器極推向更低頻率時(shí)會(huì )抑制更高階諧波,同時(shí)音調也變得更‘純凈’。但是,聲音聽(tīng)起來(lái)不太像吉他,而是很像音調很快消失的鼓聲。


圖5:不同截止頻率的頻率響應

另外有趣的是改變?yōu)V波器截止頻率時(shí)音調頻率會(huì )發(fā)生輕微偏移;l附近的偏移不太明顯,但是更高階諧波由于與低通濾波器相關(guān)的相位損失而開(kāi)始更顯著(zhù)地偏移。

以下是在156Hz附近彈奏E調時(shí)獲得的實(shí)際DSO波形的快速截屏。


圖6:E調波形采集——156Hz的基頻


圖7:E調FFT——156Hz的基頻

頻率峰值的分布符合預期;盡管幅度跌落與理論計算不一致,但是整體圖像十分匹配。

實(shí)現:

實(shí)現方案完全在賽普拉斯半導體公司的PSoC5LP混合信號SoC內部完成。為了更加有趣,通過(guò)采用幾個(gè)能夠在觸摸時(shí)彈奏不同音調的觸摸按鈕,我在系統中增加了一個(gè)用戶(hù)界面。


圖8:系統級方框圖

采用CY8CKIT-050開(kāi)發(fā)套件、用于觸摸按鈕的擴充板和我從臥室‘暫借’的幾個(gè)精致的揚聲器,整個(gè)系統配置大致如下:


圖9:吉他合成器配置
Speaker output:揚聲器輸出;developer kit + expansion board:開(kāi)發(fā)套件 + 擴充板


圖10:細節展示
5 strings of a guitar:吉他的5跟弦;analog output to speaker:到揚聲器的模擬輸出;slider changes chords of guitar:滑片可改變吉他的和弦。

總結:

Karplus-Strong合成器可能是最簡(jiǎn)單的合成器編碼算法,但是其輸出音質(zhì)出人意料地不錯,即使是僅采用8位DAC(其嚴格來(lái)說(shuō)對于音頻再現而言有點(diǎn)功率不足)。唯一的缺陷是演奏低頻音調時(shí)我們需要數值非常大的緩沖器。例如,演奏100Hz信號需要441緩沖器,取樣速率為44.1Ksps。如果我們希望添加多個(gè)同時(shí)弦時(shí)就會(huì )帶來(lái)問(wèn)題,而且代碼大小也成問(wèn)題。

此外,加入PSoC的靈活性也會(huì )帶來(lái)眾多新的選擇,如:采用I2S接口把信號輸出到標準音頻DAC。將合成代碼轉移到數字濾波模塊(DFB)可以釋放主核,從而可以添加任何其它計算密集型進(jìn)程。

本文地址:http://selenalain.com/thread-129494-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页