如何使用音訊編解碼器,在嵌入式系統中更輕鬆達到最佳音訊效能
資料提供者:DigiKey 北美編輯群
2021-02-17
許多設計人員會為其微控制器架構嵌入式系統設計納入音訊編解碼器,以期增加高傳真性音訊。如此一來,必須瞭解如何針對這些應用調整音訊編解碼器。若沒有為應用進行微調,即使有良好的編解碼器和揚聲器,還是可能會輸出平坦或品質不良的音訊。原因在於每款揚聲器都有其自身的頻率響應,因此編解碼器必須經過微調,以符合揚聲器的特性,同時必須考量播放的音訊類型,以及其所需的響應。
進行音訊回播系統的微調,並非採用硬體濾波,而是運用音訊編解碼器內建的數位濾波模塊。每個編解碼器都有這種模塊,能讓開發人員使用高通、低通、帶通濾波器為輸出進行濾波。這能謹慎微調揚聲器的響應,甚至於依需求進行調整。
本文以 AKM Semiconductor 的編解碼器為範例,討論編解碼器的內建數位音訊模塊。也將說明一些微調編解碼器的秘訣和訣竅,有助於開發人員加速其音訊回播開發作業,同時提升系統聲音品質。
瞭解揚聲器頻率響應特性
《如何挑選並使用適合嵌入式音訊回饋檔的音訊編解碼器及微控制器》一文中說明為系統選擇並添加編解碼器的基礎知識。下一步是使用此編解碼器,取得最佳的音訊輸出。
數種不同因素會影響系統的音訊輸出。這些因素包含:
- 揚聲器的外殼
- 揚聲器的安裝方式
- 播放的音訊頻率
- 揚聲器的頻率響應
開發人員仔細考量這些因素後,會瞭解到微調只有在最終生產階段中才有用。的確,系統可以採用印刷電路板和外罩外的揚聲器進行微調,但我們不能預期揚聲器安裝在外殼時,也可利用這些相同的微調參數。
若機械團隊已適當設計系統外殼和安裝方式,開發人員需要注意的主要特性就是揚聲器的頻率響應。每個揚聲器有不同的特性和響應曲線。即使揚聲器具有相同零件編號,也常會有些微不同的頻率響應;製造商通常只會提供典型頻率響應曲線。舉例而言,圖 1 顯示 CUI Devices 的 GC0401K 8 Ω、1 W 揚聲器的頻率響應曲線。GC0401K 的額定頻率為 390 Hz 至 20 kHz。
圖 1:CUI Devices 的 GC0401K 8 Ω、1 W 揚聲器,額定頻率為 390 Hz 至 20 kHz。 (圖片來源:CUI Devices)
揚聲器的額定頻率通常為響應曲線相對平坦的區域。仔細解讀圖 1,可看到 GC0401K 的頻率響應在約 350 Hz 時開始平坦,並且維持相對平坦到至少 9 kHz。高頻的曲線有些下降,但還是維持穩定至 20 kHz。
CUI Devices 的 GF0668 有不同的揚聲器頻率響應 (圖 2)。此揚聲器較大一點,並且可以輸出 3 W,此頻率響應額定值介於 240 Hz 至 20 kHz。此揚聲器的頻率略低於 GC0401K,但請注意,在指定範圍內的曲線相對平坦,有一些峰值和谷值。
圖 2:CUI Devices 的 GF0668 8 Ω、3 W 揚聲器的頻率響應,顯示其額定頻率為 240 Hz 至 30 kHz 的原因。(圖片來源:CUI Devices)
最後我們來看 Soberton Inc. 的 SP-2804Y 揚聲器的頻率響應 (圖 3)。SP-2804Y 是 500 mW 揚聲器,其頻率響應範圍為 600 Hz 至 8 kHz。依物理定律,揚聲器越小就越難以回應低頻。這表示若開發人員不將低頻濾除,而是試著以這些頻率驅動揚聲器,可能會造成粗糙的聲音或音調缺陷,而非清晰的聲音。
請注意,在 10 kHz 左右,也有一個明顯的下降。因此,此揚聲器的額定頻率只到 8 kHz,即使此揚聲器可以針對一些應用用途達到 20 kHz 。
圖 3:Soberton Inc. 的 SP-2804Y 8 Ω、0.5 W 揚聲器的頻率響應,顯示其適用於 600 Hz 至 8 kHz 的頻率。在 10 kHz 有一個下降,但針對一些應用還是可以用於 20 kHz。(圖片來源:CUI Devices)
查看各款揚聲器的頻率響應,可以明確瞭解到,由於揚聲器不應驅動一些頻率,因此需要一些濾波和微調作業。例如,在這些揚聲器上試圖驅動 4 Hz 的低音音調可能會在較高頻率注入時導致持續振動,造成大量聲音失真。
解析音訊數位濾波模塊
過去採用的方法之一,是在揚聲器前置放硬體濾波器以進行微調,除去不需要的頻率。例如,500 Hz 的高通濾波器可以避免低於 500 Hz 的頻率進入揚聲器。另一方面,可以使用低通濾波器移除任何高於 15 kHz 的音訊音調。在我個人的經驗中,若女性的聲音搭配在高頻率可有效使用的小型揚聲器,該揚聲器會產生高音調的咽音。謹慎的選擇頻率,可以避免失真,並且得到更清楚的音訊。
雖然可以使用外接濾波器,但成本和佔用空間都會增加。因此,更實際的方式是使用音訊編解碼器內建的數位濾波器模塊。
AKM Semiconductor 的 AK4637 24 位元音訊編解碼器含數位濾波器模塊方塊圖 (圖 4 灰底)。
圖 4:AK4637 音訊編解碼器具有單聲道揚聲器輸出,提供音訊播放及錄音功能。亦含有內部音訊區塊,可用來對進出的音訊進行濾波,以改善音訊傳真度。(圖片來源:AKM Semiconductor)
此例中的數位濾波器模塊包含幾種不同濾波能力:
- 高通濾波器 (HPF2)
- 低通濾波器 (LPF)
- 四頻帶等化器 (4-Band EQ)
- 自動位準控制 (ALC)
- 單頻帶等化器 (1-Band EQ)
不需同時啟用所有功能。開發人員可以選擇所需功能,啟用或停用該模塊,或將麥克風或回播音訊繞過。但真正的問題是,如何為音訊編解碼器進行計算及編程?
如何計算和編程數位濾波器的參數
在多數音訊應用中,高通濾波器用於移除較低頻率,低通濾波器用於排除較高頻率。等化器可以用於平滑化頻率響應曲線或強調特定音調。如何確切選擇設定不在本文探討的範圍內。本文會討論如何計算並編程與這些參數相關的值,並採用 AKM 的 AK4637 為例。
首先,建議先查看規格書。此例中,第 7 和第 8 頁顯示此編解碼器所有重要的暫存器圖。第一眼可能會讓人有些不安,因為此部分共有 63 個暫存器。不過,其中多數暫存器都用於控制數位音訊模塊。例如,暫存器 0x22 至 0x3F 控制等化器。暫存器 0x19 至 0x1C 控制高通濾波器,0x1D 至 0x20 則控制低通濾波器。
開發人員通常無法只指定一個頻率輸入至編解碼器。而是利用濾波器方程式計算濾波器係數,接著進行編程至編解碼器暫存器,以便針對頻率建立濾波器。例如,若要使用數位濾波器模塊建立 600 Hz 高通濾波器,可使用方程式 1:
圖 5:顯示 AK4637 數位濾波器模塊中,計算高通濾波器係數所需的方程式。(圖片來源:AKM Semiconductor)
開發人員會識別所需的截止頻率 fc,在此例中為 600 Hz。音訊取樣頻率 fs 通常為 48 kHzM,但會依應用而異。接著會將這些數值套入方程式,計算係數 A 和 B,然後透過 I2C,在編解碼器暫存器啟用時寫入。低通濾波器和其他數位模塊功能也使用同樣的流程,但通常因為具有不同轉移函數,因此需要採用自身的一組方程式 (請參照個別規格書)。
微調音訊編解碼器的秘訣與訣竅
音訊編解碼器內的數位濾波器模塊常具有彈性且功能強大。即使是低成本的音訊編解碼器也能為開發人員提供產生高專真度音訊的工具。不過,在產品中音訊編解碼器畢竟只是其中一部份。若要順利微調音訊編解碼器,開發人員應謹記幾個「秘訣與訣竅」:
- 確保揚聲器針對應用,安裝在合適的外殼上。完美的回播系統會因為不適當設計的揚聲器遭受破壞。
- 在系統還沒完整組裝至其產品預計配置時,不要微調編解碼器音訊濾波器模塊。因為微調參數可能會改變。
- 依據將播放的音訊,選擇頻率範圍。例如,吉他、鋼琴、語音所需的頻率設定可能會不同。
- 使用數位平衡模塊補償揚聲器的頻率響應。有些頻率可能聽起來就是會比較大聲或清晰,需要經過衰減,也有些頻率則可能需要放大。
- 使用測試音調,評估系統的頻率響應。可從網際網路找到多種音調的 mp3 檔案,用以瞭解音訊回播系統的頻率響應,以及數位濾波器模塊的作業方式。
- 將濾波器模塊配置儲存在快閃記憶體或 EEPROM 中,以便在生產時針對系統間差異進行設定。
開發人員若遵循這些「秘訣和訣竅」,便可在試著微調其音訊回播系統時省下很多時間與麻煩,並且確保上市時達到預期的音訊特性。
結論
在嵌入式系統中加入音訊編解碼器不表示就能為最終使用者提供最佳音效。每個音訊系統都需要謹慎微調。可使用外接濾波器進行微調,不過音訊編解碼器即已內建數位濾波和平衡能力。如文中所述,這些能力可以為揚聲器饋入最適宜的頻率。設計人員若仔細分析和運用濾波器設定,便可打造清晰的音訊,達到最終使用者對裝置的預期。

聲明:各作者及/或論壇參與者於本網站所發表之意見、理念和觀點,概不反映 DigiKey 的意見、理念和觀點,亦非 DigiKey 的正式原則。