PSoC 6評測第四篇-錄音與放音
- [導(dǎo)讀]
- 寫上一篇關(guān)于EInk的文章的時候,就想著要寫這一篇了.因為作者本人除了喜歡閱讀之外,還比較喜歡音樂.也喜歡聽也喜歡唱K,故此對音頻相關(guān)的技術(shù)也較為感興趣,至于水平只能說稍知一二.看到這個CY8CKIT開發(fā)套件上帶有數(shù)字麥克風,就動了心思.本文使用開發(fā)板子上的資源做一個簡單的錄音與放音實驗,研究一下相關(guān)知識.
概述
圖 PSoC 6與耳機
寫上一篇關(guān)于EInk的文章的時候,就想著要寫這一篇了.因為作者本人除了喜歡閱讀之外,還比較喜歡音樂.也喜歡聽也喜歡唱K,故此對音頻相關(guān)的技術(shù)也較為感興趣,至于水平只能說稍知一二.看到這個CY8CKIT開發(fā)套件上帶有數(shù)字麥克風,就動了心思.本文使用開發(fā)板子上的資源做一個簡單的錄音與放音實驗,研究一下相關(guān)知識.
錄音理論與實踐
錄音方面,簡單來講就是將聲音信號定時采集成數(shù)字信號以備后述處理.最常見的當然是駐極體的麥克風:
圖 駐極體音頻采集參考電路
采集出來的信號叫做PCM,數(shù)學原理上就一個一維數(shù)組,其單元對應(yīng)每個時刻的聲音震動的幅度.播放時將其恢復(fù)為介質(zhì)振動即可還原當初的聲音.
信號大致這種樣子:
圖 PCM信號參考例子
注意:上述信號為CY8CKIT板子通過PDM采樣轉(zhuǎn)換為PCM的實際例子
至于采樣率,采樣深度,壓縮算法等等,感興趣的同學可以找一找本人之前發(fā)的系列貼子,因為內(nèi)容較多在此不一一照搬過來了.
今天要使用的錄音器件并非駐極體麥克風,而是一個PDM格式的麥克風SPK0838HT4H-B,原理圖:
圖 數(shù)字麥克風原理圖
這種麥克風出來的信號并非直接的PCM, 而是所謂的PDM信號,類似于下圖所示:
圖 PDM信號參考例子
簡單來講,PDM信號就是1 bit的ADC采樣出來的結(jié)果.
之所以使用PDM,不使用PCM輸出,理論上有很多依據(jù).簡而言之,是因為聲音在介質(zhì)中傳播是縱向傳輸,亦即傳播方向與振動方向是相同的,故此用脈沖密度能比脈沖幅度更忠實地反映真實的情形.當然這種麥克風還有其余的優(yōu)點,如體積比駐極體的麥克風小很多,功耗也更低,穩(wěn)定性,一致性之類的參數(shù)都要強不少.目前的趨勢是駐極體形式的麥克風逐步被這種麥克風取代,如智能手機中都是使用這種麥克風.
由于采集進來的第一手數(shù)據(jù)為PDM形式,故此需要首先將其轉(zhuǎn)換為PCM格式以便進一步的處理與播放.處理的方法一般是通過軟件抽樣+濾波,Cypress的PSoC 6器件的方式較為特殊,可以使用UDB資源對PDM進行硬件解碼轉(zhuǎn)換為PCM信號,省去軟件上的處理.此處在后文詳述.
放音理論與實踐
對于PCM信號,播放起來較為直觀,直接將其輸出到DAC,再經(jīng)過可選的濾波/放大,輸出到放音設(shè)備即可播放.
但是很多微型控制器沒有DAC外設(shè),此時可以通過PWM+低通濾波器來模擬DAC進行播放.這也是所謂的D類放大器的原理.
圖 PWM+濾波器模擬DAC
這兩種方法本文都會使用,DAC與PWM分別作為一個通道進行輸出.
頂層設(shè)計與硬件連接
圖 頂層設(shè)計
其中有三個模塊(PDM_PCM,VDAC,UART)有Prototype水印,表示該模塊只是做演示之用,還沒有到達能應(yīng)用到產(chǎn)品的成熟度.本文也的確是僅僅作演示之用,故此可以不加理會.
首先看PDM_PCM模塊幾個參數(shù)的計算:
最終想要達到的采樣率為8KHz, Sinc抽樣率為64, HFClk1計算為16.384MHz.
下面的Audio Timer用作播放更新,故此也設(shè)定為8 KHz產(chǎn)生一次ISR:
- 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!
網(wǎng)友評論
- 聯(lián)系人:巧克力娃娃
- 郵箱:board@21ic.com
- 我要投稿
-
歡迎入駐,開放投稿
-
人均百萬?英偉達中國員工收入曝光! 2024-08-29
-
《黑神話:悟空》玩家硬盤升級攻略:提升游戲體驗,暢享3A大作 2024-08-29
-
數(shù)睿數(shù)據(jù)參加《系統(tǒng)與軟件工程 低代碼開發(fā)平臺通用技術(shù)要求》國家標準編制 2024-08-29
- NRF52810藍牙數(shù)字耳機找人定制
預(yù)算:¥30005天前
- 125KW模塊式PCS軟硬件外包開發(fā)
預(yù)算:¥1100000015小時前
- 12V汽車啟動電源項目BMS設(shè)計
預(yù)算:¥50000023小時前
- 數(shù)據(jù)可視化軟件 開發(fā)
預(yù)算:¥5000023小時前
- PLC項目調(diào)試修改
預(yù)算:¥100001天前
- 起動電機控制器開發(fā)
預(yù)算:¥1100001天前