24小時(shí)聯(lián)系電話(huà):18217114652、13661815404
中文
- 您當前的位置:
- 首頁(yè)>
- 電子資訊>
- 技術(shù)專(zhuān)題>
- 嵌入式應用的音頻設計...
技術(shù)專(zhuān)題
嵌入式應用的音頻設計簡(jiǎn)介
嵌入式應用的音頻設計簡(jiǎn)介
嵌入式應用程序通常需要再現聲音。無(wú)論您需要簡(jiǎn)單的提示、鈴聲、鈴聲還是音樂(lè )剪輯,能夠重現預先錄制的音頻都可以極大地增強許多嵌入式應用程序的 UI(用戶(hù)界面)。
請注意,本文的目的不是討論什么聽(tīng)起來(lái)可以接受,因為音頻“質(zhì)量”是個(gè)人和主觀(guān)的。
音頻數字化基礎
除非聲音是完全合成的,否則原始音頻源是模擬信號。請記住,現實(shí)世界是模擬的。
然而,由于嵌入式系統本質(zhì)上是數字信號,因此必須將模擬信號轉換為數字信號才能進(jìn)行存儲。最后,這種以數字方式存儲和處理的信號必須以模擬形式播放。
數字化音頻信號意味著(zhù)將連續時(shí)間信號轉換為離散樣本序列。最直接影響嵌入式系統中數字音頻存儲和處理的兩個(gè)因素是采樣率和位深度,或用于表示單個(gè)樣本的位數。
對于這兩個(gè)數量,它們越低對系統資源的使用越好。反過(guò)來(lái),這些取決于輸入信號的特性。
采樣率受 Nyquist-Shannon 采樣定理的約束。它指出重現帶限信號所需的最小采樣率(奈奎斯特率)是信號帶寬的兩倍。所以,要想降低信號的采樣率,只需降低信號的帶寬即可。
這一要求并不像乍一看那樣嚴格。盡管音頻信號通常定義為具有 20 Hz 至 20 KHz 的帶寬,但大多數人無(wú)法聽(tīng)到 20 KHz 的音調。
當然,如果音頻輸出換能器、揚聲器系統不能再現如此高的音頻頻率,那么使用能夠適應這個(gè)頻率的采樣率就沒(méi)有什么意義了。
作為參考,普通電話(huà)的音頻帶寬為 400 至 3400 Hz。雖然聲音的保真度并不高,但用戶(hù)仍然可以識別正在說(shuō)的話(huà),甚至可以識別來(lái)電者的聲音。甚至可以通過(guò)電話(huà)播放質(zhì)量相當低但仍可識別的音樂(lè )。
在數字化音頻信號時(shí)要考慮的第二個(gè)因素是位深度。這實(shí)質(zhì)上是用于表示每個(gè)樣本的位數,可能的離散級別的總數為 2 n,其中 n 是位數。
模數轉換器 (ADC) 通常用于此目的。順便說(shuō)一句,請注意,在這種情況下,n 可能不完全是 ADC 規范中規定的位數。
真正的 ADC 具有線(xiàn)性化和量化誤差。運算放大器等輸入信號調節器可能會(huì )引入更多錯誤。
位深度的更好估計是所選 ADC 的有效位數 (ENOB)。該數字將小于或最多等于 ADC 的位寬。
由于通常很難準確計算 ENOB,一個(gè)好的經(jīng)驗法則是簡(jiǎn)單地假設 ENOB 比公布的 ADC 規格少 2 位。
使用這一點(diǎn),假設 12 位 ADC 實(shí)際上是一個(gè)真正的 10 位 ADC。當然,位深越大,數字化錯誤越少。位深度不足會(huì )導致在信號再現中產(chǎn)生稱(chēng)為量化噪聲的效應。此鏈接顯示量化錯誤聽(tīng)起來(lái)像什么。
在嵌入式系統中,內存以字節為單位,因此位深通常是 8 的倍數,例如 8 位或 16 位。因此,即使 ADC 只能進(jìn)行 12 位數字化,每個(gè)樣本也將存儲在下一個(gè)更高的 8 位存儲器中,在本例中為 16 位。
將四個(gè) 12 位樣本存儲為 6 個(gè)字節而不是 8 個(gè)字節需要太多的處理,就像每個(gè) 12 位樣本存儲為 16 位的情況一樣。
預處理和存儲音頻信號
在小型嵌入式系統中,音頻大多以線(xiàn)性脈沖編碼調制(通常稱(chēng)為 PCM)或 WAVeform Audio (WAV) 格式存儲。這兩種格式密切相關(guān),是目前所有用于數字處理和存儲的可用音頻編碼技術(shù)中最簡(jiǎn)單的一種。
PCM 是上一節中描述的技術(shù)。音頻信號以固定間隔進(jìn)行采樣,每個(gè)樣本的寬度為 n 位,其中 n 是位深。
例如,要存儲以 44.1 KHz 和 16 位位深度的 Red Book CD 質(zhì)量采樣的一秒音樂(lè ),每個(gè)通道需要 705600 字節的數據;立體聲的兩倍。WAV 格式只是帶有附加信息(如播放列表、提示點(diǎn)等)的 PCM 信息。因此,它比原始 PCM 數據稍大。
如果由于硬件限制而無(wú)法接受此存儲要求,則有多種方法可以減小存儲數據的大小。一種是將音頻以壓縮格式存儲,例如 MP3。還可以使用多種其他格式,具有無(wú)損或有損壓縮。
如前所述,這些通常不用于小型嵌入式系統,因為壓縮算法可能非常復雜。在這種情況下,可以使用外部 MP3 硬件解碼器。
但是,如果系統有足夠的處理能力和內存,例如Raspberry Pi 4,則在固件中運行MP3解碼是非??尚械?。
如果源以模擬格式提供,則可以采用模擬壓縮技術(shù)來(lái)降低信號的動(dòng)態(tài)范圍,并采用模擬濾波器來(lái)降低帶寬。
通過(guò)減少信號的動(dòng)態(tài)范圍,可以為每個(gè)樣本使用較低的位深度,而不會(huì )引入過(guò)多的量化噪聲。
另一方面,限制帶寬允許降低采樣率。這兩者都有助于減少給定聲音剪輯的存儲要求。如果聲音再現端本來(lái)就不能再現原始信號,這將是非常有效的。
例如,如果揚聲器不能產(chǎn)生高于 10 KHz 的信號,那么將輸入信號頻率分量保持在該頻率以上就沒(méi)有什么意義了。
現在,如果信號已經(jīng)是數字形式,那么可以使用此處提供的 Audacity 等軟件包來(lái)壓縮和重新采樣該信號。
即使信號最初以模擬格式提供,這也有效。在這種情況下,信號可以先在桌面聲卡上數字化,然后進(jìn)行處理以降低帶寬和采樣率。
輸出音頻
根據硬件的不同,存儲的音頻可以作為模擬信號輸出,也可以以數字形式輸出,以進(jìn)一步處理成實(shí)際聲音。
在第一種情況下,PCM 音頻可以通過(guò)數模轉換器或 DAC 進(jìn)行處理。如果存儲格式已經(jīng)在 PCM 中,則在將其發(fā)送到 DAC 之前不需要進(jìn)一步處理。
否則,在 MP3 音頻等情況下,必須先將其轉換為 PCM。輸出是信號的模擬表示。要獲得原始模擬信號,需要對 DAC 輸出進(jìn)行低通濾波以去除采樣時(shí)鐘。
這通常通過(guò)無(wú)源或有源模擬濾波器來(lái)實(shí)現。使用 DAC 的問(wèn)題之一是,如果信號是立體聲,則需要兩個(gè) DAC,每個(gè)都有自己的低通濾波器。
一些微控制器有 一個(gè) I 2 S 接口而不是內置 DAC。I 2 S 或 Inter-IC Sound 專(zhuān)門(mén)設計用于傳輸音頻信號,并且通信是單向的,與聽(tīng)起來(lái)有些相似的 I 2 C 通信協(xié)議相反。
它使用三線(xiàn)鏈路傳輸立體聲信號。左右通道實(shí)際上是按順序發(fā)送的,具體取決于字選擇線(xiàn)的狀態(tài),如下圖 1 所示。 I 2 S 通信協(xié)議的有趣特性之一包括 SCK 時(shí)鐘頻率不是特定的定義。
每個(gè)通道傳輸的比特數也沒(méi)有具體定義。這允許在傳輸任何采樣率和位深度的 PCM 音頻時(shí)具有相當大的靈活性。順便說(shuō)一下,由于這種靈活性,I 2 S 還被用于傳輸除聲音之外的其他類(lèi)型的數據。
圖1 - I 2 S 信令方案
音頻播放
因為聲音本質(zhì)上是模擬的,所以再現聲音的換能器,本質(zhì)上是揚聲器,也是一個(gè)必須用模擬信號驅動(dòng)的模擬組件。
無(wú)論模擬信號是來(lái)自 DAC 還是解碼的 I 2 S 數字流,它都太弱而無(wú)法產(chǎn)生任何顯著(zhù)幅度的聲音。因此,需要放大器來(lái)驅動(dòng)換能器。
音頻放大器分為兩大類(lèi):模擬或數字。模擬放大器進(jìn)一步分為 A 類(lèi)或 AB 類(lèi)類(lèi)型,而數字音頻放大器通常稱(chēng)為 D 類(lèi)放大器。
如果放大器設計良好,A 類(lèi)的主要優(yōu)點(diǎn)是低失真。在不涉及太多細節的情況下,A 類(lèi)放大器依賴(lài)于晶體管始終偏置在其線(xiàn)性工作點(diǎn)的輸出級。
對于晶體管來(lái)說(shuō),這是具有最線(xiàn)性放大特性的狀態(tài)。不幸的是,這也是晶體管持續耗散功率的狀態(tài),無(wú)論信號是否存在。A 類(lèi)放大器通常使用分立晶體管實(shí)現,通常不用于嵌入式應用。
AB 類(lèi)放大器依賴(lài)于采用兩個(gè)晶體管或兩組并聯(lián)晶體管、雙極晶體管或 MOSFET 的輸出級。一個(gè)晶體管在輸入的正極部分導通,而另一個(gè)在輸入的負極部分導通。
在無(wú)輸入信號期間,晶體管的導通很小,因此浪費的功率很小。嵌入式系統中使用的 AB 類(lèi)放大器通常采用芯片形式,很少使用所有分立元件來(lái)實(shí)現。
在嵌入式應用中最廣泛使用的音頻功率放大器類(lèi)型是 D 類(lèi)類(lèi)型。首先,輸入信號被轉換為脈寬調制或 PWM 信號。在此方案中,輸入信號以規則但非常短的間隔進(jìn)行采樣。
在每個(gè)這樣的間隔期間,輸出完全打開(kāi)或完全關(guān)閉,打開(kāi)與關(guān)閉的比率與特定采樣間隔開(kāi)始時(shí)的采樣輸入信號的幅度成正比。結果輸出是代表輸入模擬信號的可變寬度的開(kāi)/關(guān)信號流。
當它被饋送到晶體管(通常是 MOSFET)時(shí),其輸出將在 PWM 信號的開(kāi)/關(guān)轉換之后處于截止或飽和模式。由于處于飽和或截止狀態(tài)的晶體管耗散的功率非常小,這使得 D 類(lèi)放大器非常高效。
換句話(huà)說(shuō),對于給定的功率輸出,該放大器的尺寸將比之前描述的類(lèi)型小得多。這就是 D 類(lèi)音頻功率放大器廣泛用于嵌入式系統的原因。
請注意,D 類(lèi)放大器的輸出端需要一個(gè)模擬低通濾波器以去除采樣頻率分量。由于這個(gè)頻率通常很高,濾波器的尺寸可以做得很小。
也有同時(shí)具有I 2 S接口和D類(lèi)功率放大器的單芯片。這款 TI 芯片就是一個(gè)例子。還有一些便宜的、現成的模塊,例如這個(gè)。
對于揚聲器本身,最常見(jiàn)的選擇是電動(dòng)揚聲器。
圖 2 – Boss Audio DD3600 D 類(lèi)單聲道放大器內部
輸出音頻信號在線(xiàn)圈中產(chǎn)生磁場(chǎng),磁場(chǎng)反過(guò)來(lái)與永磁體相互作用,使線(xiàn)圈移動(dòng)。線(xiàn)圈實(shí)際上連接在一個(gè)隔膜上,該隔膜取代了它周?chē)目諝?,從而產(chǎn)生了聲音。它們以不同的尺寸和功率處理能力存在。
此外,由于設計單個(gè)揚聲器來(lái)處理整個(gè)音頻范圍并不容易,因此高保真系統通常有兩種不同的揚聲器類(lèi)型來(lái)分別處理整個(gè)音頻頻譜的低端和高端。這些揚聲器分別稱(chēng)為低音揚聲器和高音揚聲器。