學數字聲音合成技術,DIY屬於自己的吉他合成器
發布時間:2014-05-12 責任編輯:sherryyu
【導讀】henduorendouxihuandanjita,keshiwomendoushiyongdexianchengdejitahechengqi,meibanfatuchuzijidegexing。benwenjiangdaoyiweidashizijixuexidaoshulianzhangwoshuzishengyinhechengjishu,ranhouzijishejichushuyuzijidejitahechengqi。shibushihengaoduandaqishangdangci?xiamiansuizhexiaobianlaikankanshiruheDIY設計屬於自己獨一無二的吉他合成器的?
數字聲音合成技術總讓我這個業餘愛好者感到著迷。一個有關Karplus-Strong吉他合成技術的維基網頁更加激發了我的興趣。它吸引我的地方是這種合成器設計非常簡單。下麵是來自維基網頁的圖形(圖1):

式中的濾波器係數決定音調的‘粘性’。
突發噪聲?就是這樣嗎?肯定不對!不可能就這麼簡單!與所有業餘愛好者一樣,我立馬開始著手實施。寫代碼隻用了幾個小時,然後我把DAC輸出連接到示波器。可以看出與諧波疊加後大致呈正弦曲線,但是無法確定聽起來會是什麼樣。
在一陣翻箱倒櫃之後,我連接了一對舊耳機。我沒太高期望,大家都知道:對於初次嚐試的項目來說,要麼是一無所獲,要麼是背運情況下會看到它冒出一縷白煙(我寧願把這看成是芯片的靈魂升入虛空)。在確實聽到像撥弄吉他發出的聲音之時著實讓我吃了一驚。
似乎有點對路了。先提醒一下,下麵要講到數學了。
分析:
讓我們更深入地看看下圖2:


經過一番處理之後我們可以得到一個龐大的表達式:

好在通過利用Excel掃描頻率ω很容易就能求出幅值響應。
取樣速率設為44.1ksps(這是可掃描整個聽覺範圍的最小值)。
如果從式1生成200Hz音調,延遲‘L’則為44100/200 = 220.5。
由於我們的延遲為數字式,因此選擇220這個接近值。我隨意選擇10KHz的低通濾波器極點值入手。此極點頻率可確定上述‘a’與‘b’的值。

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

另一個值得注意的有趣現象是:當把濾波器極推向更低頻率時會抑製更高階諧波,同時音調也變得更‘純淨’。但是,聲音聽起來不太像吉他,而是很像音調很快消失的鼓聲。

圖5:不同截止頻率的頻率響應
另(ling)外(wai)有(you)趣(qu)的(de)是(shi)改(gai)變(bian)濾(lv)波(bo)器(qi)截(jie)止(zhi)頻(pin)率(lv)時(shi)音(yin)調(tiao)頻(pin)率(lv)會(hui)發(fa)生(sheng)輕(qing)微(wei)偏(pian)移(yi)。基(ji)頻(pin)附(fu)近(jin)的(de)偏(pian)移(yi)不(bu)太(tai)明(ming)顯(xian),但(dan)是(shi)更(geng)高(gao)階(jie)諧(xie)波(bo)由(you)於(yu)與(yu)低(di)通(tong)濾(lv)波(bo)器(qi)相(xiang)關(guan)的(de)相(xiang)位(wei)損(sun)失(shi)而(er)開(kai)始(shi)更(geng)顯(xian)著(zhu)地(di)偏(pian)移(yi)。
[page]
以下是在156Hz附近彈奏E調時獲得的實際DSO波形的快速截屏。

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

圖7:E調FFT——156Hz的基頻
頻率峰值的分布符合預期;盡管幅度跌落與理論計算不一致,但是整體圖像十分匹配。
[page]
實現:
實現方案完全在賽普拉斯半導體公司的PSoC5LP混合信號SoC內部完成。為了更加有趣,通過采用幾個能夠在觸摸時彈奏不同音調的觸摸按鈕,我在係統中增加了一個用戶界麵。

圖8:係統級方框圖
采用CY8CKIT-050開發套件、用於觸摸按鈕的擴充板和我從臥室‘暫借’的幾個精致的揚聲器,整個係統配置大致如下:

圖9:吉他合成器配置
[page]
Speaker output:揚聲器輸出;developer kit + expansion board:開發套件 + 擴充板

圖10:細節展示
5 strings of a guitar:吉他的5跟弦;analog output to speaker:到揚聲器的模擬輸出;slider changes chords of guitar:滑片可改變吉他的和弦。
總結:
Karplus-Strong合成器可能是最簡單的合成器編碼算法,但是其輸出音質出人意料地不錯,即使是僅采用8位DAC(其嚴格來說對於音頻再現而言有點功率不足)。唯一的缺陷是演奏低頻音調時我們需要數值非常大的緩衝器。例如,演奏100Hz信號需要441緩衝器,取樣速率為44.1Ksps。如果我們希望添加多個同時弦時就會帶來問題,而且代碼大小也成問題。
此外,加入PSoC的靈活性也會帶來眾多新的選擇,如:采用I2S接口把信號輸出到標準音頻DAC。將合成代碼轉移到數字濾波模塊(DFB)可以釋放主核,從而可以添加任何其它計算密集型進程。
相關閱讀:
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 芯科科技Tech Talks與藍牙亞洲大會聯動,線上線下賦能物聯網創新
- 冬季續航縮水怎麼辦?揭秘熱管理係統背後的芯片力量
- 從HDMI 2.1到UFS 5.0:SmartDV以領先IP矩陣夯實邊緣計算基石
- 小空間也能實現低噪供電!精密測量雙極性電源選型指南,覆蓋小功率到大電流全場景
- 直擊藍牙亞洲大會 2026:Nordic 九大核心場景演繹“萬物互聯”新體驗
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
風力渦輪機
風能
風扇
風速風向儀
風揚高科
輔助駕駛係統
輔助設備
負荷開關
複用器
伽利略定位
幹電池
幹簧繼電器
感應開關
高頻電感
高通
高通濾波器
隔離變壓器
隔離開關
個人保健
工業電子
工業控製
工業連接器
工字型電感
功率表
功率電感
功率電阻
功率放大器
功率管
功率繼電器
功率器件




