嵌入式音频处理基础
版權所有權歸卿萃科技,轉載請注明出處
作者:卿萃科技ALIFPGA
原文地址:卿萃科技FPGA極客空間 微信公眾號
聲音是什么:
聲音是一種通過空氣或者其他介質傳播的縱向波。聲音具有兩種屬性:振幅和頻率。
聲波的振幅是指對壓強變化的度量。以分貝(dB)為測量單位。人類能夠聽到的最小的聲波振幅稱為“聽覺閾值”,用0dBSPL來表示,這里的SPL是Sound Pressure Level的縮寫,指聲波壓強級別。在這個SPL尺度上,參考壓強定義為20微帕斯卡(uPa)。假定壓強的變化為x,則 dBSPL的一般表達式為:
dBSPL=20*log(xuPa/20uPa)
各種常見聲音的分貝值
從上表可以看出,人類可以忍受并能夠聽到的聲音范圍是120dB。因此所有工程設計上的音頻系統都可以使用120dB作為動態范圍的上限。
聲音的另一個重要特征是頻率,單位是赫茲(Hz)?;蛘哒f是每秒鐘的周期數 。人類可聽到的聲音,頻率范圍是20Hz-20000Hz。
實際上,人類最敏感的頻率范圍是2-4KHz。在有損音頻壓縮算法中利用了兩種有用的現象,這就是時間屏蔽和頻率屏蔽。
在實踐屏蔽中,高的音調可以淹沒幾乎同時發生的低音調。當某一頻率的高音調渲染一些無法聽到的附近頻率的聲音時會發生頻率屏蔽。
音頻信號
為了產生一個表示聲波的模擬信號,必須使用轉換器將機械的壓強能量轉換為電能量。即,麥克風。
由于麥克風可以將聲音轉換為電壓,所以需要使用一種新的分貝刻度來描述聲波的振幅。這個刻度稱為dBV。以1V作為基準參考點。描述電壓x和dBV之間的關系等式如下:
dBV=20*log(xVOLTS/1.0VOLTS)
另一種模擬分貝刻度以0.775V作為參考電壓,單位符號是dBu。
模擬與數字音頻信號之間轉換
將模擬信號數字化,可以通過模數轉換器(ADC)來實現。將數字信號模擬話可以通過數模轉化器(DAC)來實現。許多音頻系統實際上是一種全雙工媒體處理流程,所以在一個包中既有ADC和DAC,這個包稱為“音頻解碼器”(audio codec)。
所有的A/D和D/A轉換都應遵循香濃-奈奎斯特(Shannon-Nyquist)采樣定律。簡單的說。這個定律規定,對模擬信號的采樣頻率必須大于信號中最高頻率成分的兩倍,只有這樣才能在后面的D/A轉換中對信號進行恢復。
(a) 用40KHz的頻率去采樣20KHz的信號可以正確捕捉到原始信號。
(b) 用30KHz的頻率去采樣20KHz的信號會出現混淆信號。
一般重建音樂信號時采用的最低采樣頻率為44.1KHz。在許多高品質的系統中,采用的48KHz的采樣頻率。
常用的采樣頻率
音頻應用中常用的數字表示方法為脈沖編碼調制(Pulse-Code-Modulated,PCM)信號。在這種表示方法中,每個采樣周期用一個數字電平對模擬信號的幅度進行編碼。得到的數字波形是一組采樣自輸入模擬波形的近似值。由于所有A/D轉換器的分辨率都是有限的,所以在數字音頻系統中,A/D轉換器帶來的量化噪聲是不可避免的。
舉例:
音頻ADC AD1871功能框圖
多媒體處理器ADSP-BF533與AD1871之間的無粘合連接
IIS是一種簡單的三線串行接口,可以用來傳輸立體聲數據。包含一根時鐘線、一根數據線和一根左右聲道同步線,用來選擇當前正在傳輸的數據幀是左聲道還是右聲道。
本質上講,IIS總線是一種時分復用串行流,具有兩個活動通道。時分復用是一種在一個無力鏈接上傳輸多個通道數據的方法。
詳細使用方法不在介紹,SPI總線不再詳細介紹。
PWM輸出:
可以使用另一種類型的調制方法,稱為脈沖寬度調制(Pulse-Width Modulation,PWM)。用這種方式驅動輸出電路不需要任何DAC,這是一種降低成本的方案。
在PCM中,每個采樣周期都要對幅值進行編碼,而在PWM信號中,描述幅值的占空比。PWM信號可以用通用的I/O引腳來產生,或者也可以直接由專門的PWM定時器驅動。
為使PWM音頻達到很好的質量,PWM載波的頻率至少應該是信號帶寬的12倍,定時器的精度應該是16位。隨著高速處理器的快速發展,PWM傳送更高的音頻頻譜也是有可能的。
PWM數據流必須經過低通濾波,以便移出高頻載波。在驅動揚聲器的放大電路中經常這么做。在低成本應用中,聲音質量不是很重要,PWM數可以用來充當低通濾波器過濾調高頻載波。
PWM信號
連接器:
各種音頻連接器
音頻系統動態范圍和精度:
各種音頻系統動態范圍的比較
上述動態范圍數字的意義:
音頻系統中一些重要術語之間的關系
人耳的動態范圍(也就是人耳能夠聽到的最大聲音和最小聲音之比)大約是120dB。在一些存在噪聲的系統中,動態范圍的定義是最大的信號電平與最小的噪聲之比,即動態范圍(dB)=信號峰值(dB)-噪聲最低限度(dB)
SNR—信噪比(Signal-to-Noise Ratio,SNR)。在模擬系統中,這個術語是指名義信號與噪聲最低限度之間的比值,線路電平(line level)是指名義 操作電平。在專業設備中,名義電平一般為1.228Vrms(電壓有效值)。轉換為分貝是+4dBu。動態余量(headroom)是指名義線路電平與峰值電平之間的差值,在峰值電平處開始發生信號的失真。在數字系統中,信噪比定義稍有不同,它直接定義為動態范圍。
6dB規則:
這個規則對于動態范圍與計算字寬之間的關系非常重要,公式如下:動態范圍(dB)=6.02n+1.76=6n dB,這個公式的意義在于,數據位數每增加一位,動態范圍增加6dB。注意的是,6dB規則并沒有考慮音頻系統中的模擬子系統,所以輸入和輸出端的轉換器帶來的影響必須進行單獨考慮。
6dB規則表示,使用的數據位寬越大,則系統的品質越高,實際上,切實可行的選擇并不多。絕大多數適合于嵌入式多媒體處理的設備主要使用3種字寬:16位、24位和32位。
各種定點體系結構下的動態范圍
音頻的數字格式:
用于音頻處理的兩類主要的處理器結構分別是定點型和浮點型。定點型處理器用來處理整數和小數算法,通常本地支持16位、24位和32位。浮點型處理器則具有更強的性能,本地支持32位和64位浮點數據類型。浮點型處理器通常在成本和功耗上比定點型處理器高,而絕大多數系統必須在品質與工程成本之間作一個平衡。
當忽略量化誤差時,對于理想的16位96dB的SNR系統各種字寬額外比特的分配
當存在量化誤差時,對于理想的16位96dB的SNR系統各種字寬額外比特的分配
運算方法:
定點運算
浮點運算
詳細算法這里不做介紹。
音頻處理方法:
數據輸入到處理器內核:
一般而言,與音頻編解碼器相連的處理器通常使用DMA將數據從編解碼器接口傳輸到處理器內部的存儲器中。這樣的數據傳輸在后臺進行的,無需處理器干預。處理器唯一的開銷是設置DMA序列,當數據緩存或者發送完數據后處理中斷。
塊處理與采樣處理:
采樣處理和塊處理是兩種處理數字音頻數據的方法。在基于采樣的方法中,處理器在數據可用時立即進行處理。這種情況下,每次采樣期間都會有些處理開銷。許多濾波器都是利用這種方法實現的,它們要求的延遲非常小。
另一種方法是塊處理,利用一定深度的緩存先將數據存儲起來,然后送到處理器進行處理。這種方法比采樣處理更加有效。一方面,塊處理極大的減少了每次采樣時調用處理函數的開銷,另一方面,許多嵌入式處理有多個ALU單元,可以并行計算 一個塊的數據。
雙緩存:
基于塊處理系統中,一般利用DMA在處理器內核與設備之間傳輸數據,這時必須要有雙緩存來分別處理DMA和處理器內核的數據。這樣做是為了避免處理器內核與獨立于處理器的DMA同時訪問相同的數據,從而帶來數據一致性問題。
數據流處理的雙緩存方案
具體詳細過程不再贅述。
濾波與算法:
有限脈沖響應濾波器
無線脈沖響應濾波器
快速傅里葉變換
音頻壓縮:
音頻壓縮技術指的是對原始數字音頻信號流(PCM編碼)運用適當的數字信號處理技術,在不損失有用信息量,或所引入損失可忽略的條件下,降低(壓縮)其碼率,也稱為壓縮編碼。它必須具有相應的逆變換,稱為解壓縮或解碼。音頻信號在通過一個編解碼系統后可能引入大量的噪聲和一定的失真。
音頻編解碼器分為無損編解碼器和有損編解碼器。無損編解碼器是指壓縮后的數據可以被完全恢復,恢復后的數據與原始輸入信號完全一致。無損編解碼器計算量比較大,可以將音頻信號的比特率降低大約一半。有損編解碼器可以將音頻信號壓縮的更多,從有損音頻流解碼得到的音頻信號非常接近于原始信號,但 有些信息在編碼過程中就損失掉了。
各種音頻編解碼器
MP3是一種音頻壓縮技術,其全稱是動態影像專家壓縮標準音頻層面3(Moving Picture Experts Group Audio Layer III),簡稱為MP3。它被設計用來大幅度地降低音頻數據量。利用 MPEG Audio Layer 3 的技術,將音樂以1:10 甚至 1:12 的壓縮率,壓縮成容量較小的文件,而對于大多數用戶來說重放的音質與最初的不壓縮音頻相比沒有明顯的下降。
AAC(Advanced Audio Coding),中文名:高級音頻編碼,出現于1997年,基于MPEG-2的音頻編碼技術。由Fraunhofer IIS、杜比實驗室、AT&T、Sony等公司共同開發,目的是取代MP3格式。2000年,MPEG-4標準出現后,AAC重新集成了其特性,加入了SBR技術和PS技術,為了區別于傳統的MPEG-2 AAC又稱為MPEG-4 AAC。
AC-3是杜比公司開發的新一代家庭影院多聲道數字音頻系統。杜比定向邏輯系統是一個模擬系統。它的四個聲道是從編碼后的兩個聲道分解出來的,因此難免有分離度不佳、信噪比不高,對環繞聲缺乏立體感,并且環繞聲的頻帶窄等缺點。AC(Audio Coding)指的是數字音頻編碼,它拋棄了模擬技術,采用的是全新的數字技術。
WMA(Windows Media Audio),它是微軟公司推出的與MP3格式齊名的一種新的音頻格式。由于WMA在壓縮比和音質方面都超過了MP3,更是遠勝于RA(Real Audio),即使在較低的采樣頻率下也能產生較好的音質。一般使用Windows Media Audio編碼格式的文件以WMA作為擴展名,一些使用Windows Media Audio編碼格式編碼其所有內容的純音頻ASF文件也使用WMA作為擴展名。
RealAudio(即時播音系統)是Progressive Networks公司所開發的軟體系統。是一種新型流式音頻 Streaming Audio文件格式。它包含在 RealMedia中,主要用于在低速的廣域網上實時傳輸音頻信息。有了RealAudio這套系統一般使用者只要自備多媒體個人電腦、14.4kbps數據機(它最低只占用14.4kbps的網路頻寬)和PPP撥接帳號,就可以線上點播轉播站或是聆聽站臺所提供的即時播音。
Ogg全稱應該是OGG Vorbis是一種新的音頻壓縮格式,類似于MP3等現有的音樂格式。但有一點不同的是,它是完全免費、開放和沒有專利限制的。OGG Vorbis有一個很出眾的特點,就是支持多聲道,隨著它的流行,以后用隨身聽來聽DTS編碼的多聲道作品將不會是夢想。
Vorbis 是這種音頻壓縮機制的名字,而Ogg則是一個計劃的名字,該計劃意圖設計一個完全開放性的多媒體系統。目前該計劃只實現了OggVorbis這一部分。
FLAC中文可解釋為無損音頻壓縮編碼。FLAC是一套著名的自由音頻壓縮編碼,其特點是無損壓縮。不同于其他有損壓縮編碼如MP3 及AAC,它不會破壞任何原有的音頻資訊,所以可以還原音樂光盤音質。2012年以來它已被很多軟件及硬件音頻產品(如CD等)所支持。
總結
- 上一篇: 怎么才能让面馆生意越来越好 其中确实有不
- 下一篇: 各种音频编码方式的对比