嵌入式音頻處理基礎(二)

2020-12-13 電子產品世界

  在本文的第2部分中,我們首先對動態範圍與精度的論題進行探討,然後再對數據格式進行深入的討論,因為數據格式是與音頻處理相關的。

本文引用地址:http://www.eepw.com.cn/article/88167.htm

動態範圍與精度

  您也許已經見到過dB的規範,這是在目前市場上用於描述各種產品而隨處可見的。表1列出了幾種產品以及它們的信號質量,以dB為單位。

表1  各種音頻系統的動態範圍比較

  那麼,這些數值究竟代表什麼意思呢?讓我們從確定一些定義來開始。把圖1作為對下列基本規範的「仿製數據手冊(cheat sheet)」的一個參考信號。


圖1  音頻系統中一些重要術語之間的關係

  人耳的動態範圍(最響的信號電平與最安靜 的信號電平之比值)約為120 dB。在存在噪聲的系統中,動態範圍被描述為最大信號電平與本底噪聲之間的比值。這就是說,

  動態範圍(dB)=峰值電平(dB)—本底噪聲(dB)

  純模擬系統中的本底噪聲來自系統本身的電特性。建立在模擬系統之上的數字音頻信號也會從ADC和DAC中獲得噪聲,而且還可以從模擬數據採樣過程所產生的量化誤差中獲得噪聲。

  另一個重要的術語是信噪比(SNR)。在模擬系統中,信噪比的意思是標稱信號對於本底噪聲的比值,其中的「線電平」是標稱工作電平。對於專業設備,標稱電平通常為1.228 Vrms,這可以轉換為+4 dBu。餘量是標稱電平與峰值電平之間的差值,峰值電平指開始出現信號失真的電平。數字系統中的SNR定義有些不同,即SNR被定義為動態範圍。

  現在,有了對動態範圍的理解,我們就可以開始討論動態範圍在實際中有怎樣的用途。不做冗長的推導,讓我們簡單介紹一下什麼是6 dB規則。這個規則是動態範圍與計算字長之間關係的關鍵所在。完整的公式推導在式1中說明,但這裡使用了簡便的表示法,意思是每增加1位的精度,將使動態範圍增加6 dB。應該注意,這個6 dB的規則並沒有考慮到音頻設計中的模擬子系統,所以,輸入端和輸出端的傳感器的非理想性必須另作考慮。

  動態範圍(dB)= 6.02n + 1.76 ≈ 6n dB
  其中n =精度位的數目
  式1:6 dB規則

  「6 dB規則」指出,使用的位數越多,我們能獲得的系統質量就越高。但實際上,只有少數幾個真正可用的選擇。大多數適用於嵌入式媒體處理的器件有三種字長形式:16位、24位和32位。表2總結了這三類處理器的動態範圍。

  由於我們在討論6 dB規則,所以有必要對語音信號中常被使用的非線性量化方法進行一些討論。電話質量的線性PCM編碼需要12位的精度。但是,我們的耳朵對小幅度時音頻信號變化的敏感度要超過大幅度時。因此,電話通訊中使用的線性PCM採樣方法的位數用得過多。A律和μ律壓擴標準中使用的對數量化只用8位精度就達到了12位PCM的質量等級。為了使我們的生活更加方便,有些處理器廠商已經把A律和μ律壓擴標準做到了器件的串行埠中。這使處理器內核無需進行對數計算。

  在查看了表2之後,我們又一次回想起人耳的動態範圍約為120 dB。基於這個原因,16位數據的表示法對於高質量音頻並不是太合適。因此,供應商引入了對16位系統的動態範圍進行擴展的24位處理器。這些24位的系統從C編譯器的觀點來看有點不標準,所以近年來的許多音頻設計使用了32位的處理方式。

表2  各種定點架構的動態範圍

  選擇了正確的處理器並不是萬事大吉了,因為一個音頻系統的總體質量是由「達到最低質量」元件的等級所決定的。除了處理器外,整個系統還包括像話筒和揚聲器這樣的一些模擬元件,以及使信號在模擬域與數字域之間變換的轉換器。模擬域超出了這次討論的範圍,而音頻轉換器則涉及到了數字域。

  假設您想使用AD1871進行音頻採樣。轉換器的數據手冊中把它解釋為一個24位的轉換器,但它的動態範圍不是144 dB,而是105 dB。其原因是轉換器不是一個完美無缺的系統,而供應商只給出了有用的動態範圍。

  如果您真的想把AD1871與24位處理器相連,那麼,您整個系統的SNR將為105dB。本底噪聲將達到144dB-105dB=39dB。圖2是這一情況的圖形表示。但是,在數字音頻系統中還有另一個組件 我們還沒有討論:處理器內核內的計算。


圖2  一個音頻系統的SNR由最弱元件的SNR構成

  使數據經過處理器的計算單元會潛在地引入各種誤差。其中之一就是量化誤差。這種誤差可以在一連串導致數據值被截取或捨入(向上或向下)的計算中產生。例如,一個16位處理器可以對一個16位數據組成的向量作加法,然後把結果存入一個擴展字長的累加器中。但是,當累加器中的數值最終被寫入到一個16位數據寄存器中時,其中的有些位會被截去。

  可以看一下圖3,看看計算誤差是如何影響到實際系統的。對於一個理想的16位A/D轉換器(圖3a),信噪比應該是16 x 6 = 96 dB。如果不存在量化誤差,那麼,16位計算足以把SNR保持在96 dB。而24位和32位系統將分別把8位和16位置於本底噪聲以下的動態範圍中。從本質上看,這些額外的數位是被浪費掉了。


圖3 (a)在一個理想的16位96 dB SNR系統中,不同字長計算時的額外數位的分配,
其中忽略了量化誤差  (b) 在一個理想的16位96 dB SNR系統中,
不同字長計算時的額外數位的分配,其中存在量化誤差

  但是,所有的數字音頻系統都確實要引入捨入和截取誤差。如果我們可以量化這個誤差,如確定為18dB(或3位),那麼很清楚,16位計算對於維持96dB的系統SNR是不夠的(圖3b)。解釋這一點的另一個方法是,有效的本底噪聲被提高了18dB,因而總的SNR就降低到了96dB -18dB = 78dB。這導致的結論是,在本底噪聲以下的額外數位有助於解決量化中出現的麻煩事。

音頻的數據格式

  在處理器內部有許多種表示數據的方法。音頻處理中使用的兩種主要的處理器架構是定點與浮點。定點處理器設計成用整數和分數進行運算,通常固有地支持16位、24位或32位的數據。浮點處理器提供非常好的性能,並固有地支持32位或64位的浮點數據類型。但是,這些浮點處理器一般成本比較高,而且比相應的定點處理器消耗更多的功率,因而所有的實際系統都必須在質量和工程成本之間尋求一個平衡點。

相關焦點

  • 音頻處理晶片有哪些?九大音頻處理晶片詳細介紹
    音頻處理晶片在影響音效卡的功能和性能的因素中,音頻處理晶片往往佔了最主要的位置,特別是現在的3D音效音效卡,其算法和處理過程都由主晶片來完成。 驊訊C-Media 2004年驊訊(C-Media )在與瑞昱(Realtek)達成收購協議之後,便將AC97、HD Audio板載音頻晶片技術轉讓給Realtek並且完全退出板載音效卡領域,開始主攻中高端音頻處理晶片
  • 嵌入式及物聯網基礎實驗系統
    摘 要:針對目前高校嵌入式人才培養難度大的問題,將開源創客平臺Arduino引入嵌入式實驗教學中,研製了嵌入式及物聯網基礎實驗系統,3年的實驗教學表明:實驗系統降低了嵌入式學習的門檻和難度,在嵌入式人才培養教學過程中發揮了重要作用。
  • 【音頻信號處理專欄】【1】音頻算法學習路徑介紹
    接下來介紹下,學習音頻信號處理的一些技術路徑。音頻信號處理專欄就這麼開始啦!做音頻算法也7年了,非常慶幸在讀研期間就確定了方向,儘早切入了這個行業。這些年主要工作集中在前處理方面,不少比較年輕的同志,或者是剛剛開始研究生生涯的同學,會問到我:「如何學習音頻算法?」,「要看些什麼書。」,「需要具備學習的知識?」。
  • 關於嵌入式系統的分類與特點
    美國著名未來學家尼葛洛龐帝99年1月訪華時預言,4~5年後嵌入式智能(電腦) 工具將是PC和網際網路之後最偉大的發明。我國著名嵌入式系統專家沈緒榜院士98年11月在武漢全國第11次微機學術交流會上發表的《計算機的發展與技術》一文中,對未來10年以嵌入式晶片為基礎的計算機工業進行了科學的闡述和展望。
  • 學嵌入式開發難嗎_學好嵌入式開發需要多久
    ,若軟硬體基礎不好,特別是作業系統級軟體功底不深,則可能不適於此行。   學嵌入式開發難嗎_應該學些什麼   對於零基礎的人,嵌入式學習如何入門呢?   二、單片機   掌握proteus仿真,不買硬體也可以學習。學習單片機,一是掌握單片機的各種資源,二是掌握常用元器件和總線。   三、嵌入式作業系統   學習嵌入式系統,如linux或者wince下的編程,這些對以後做應用的編程很有幫助。應該對作業系統有所了解,這對你對硬體和軟體的理解,絕對有很大的幫助。
  • 嵌入式系統的面面觀
    簡而言之,是含有處理器的專用軟硬體系統,具有自主的信息處理能力( 信息裝備)。從系統的角度定義:嵌入式系統是設計完成複雜功能的硬體和軟體,並使 其緊密耦合在一起的計算機系統。術語嵌入式反映了這些系統通常是更大系統中的一個完整的部分,稱為嵌入的系統。嵌入的系統中可以共存多個嵌入式系統。
  • 嵌入式作業系統是什麼_嵌入式作業系統有哪些
    VxWorks具有可裁剪微內核結構;高效的任務管理;靈活的任務間通訊;微秒級的中斷處理;支持POSIX 1003.1b實時擴展標準;支持多種物理介質及標準的、完整的TCP/IP網絡協議等。   然而其價格昂貴。由於作業系統本身以及開發環境都是專有的,價格一般都比較高,通常需花費10萬元人民幣以上才能建起一個可用的開發環境,對每一個應用一般還要另外收取版稅。
  • 嵌入式系統測試題(附詳細解析)
    A)  支持實時處理 B)  低功耗 C)  高主頻 D)  集成了測試電路【解析】:嵌入式系統中的CPU一般具有4個特點:1)支持實時處理;2)低功耗;3)結構可擴展;4)集成了測試電路。因此,該題選C。
  • 嵌入式+AI,嵌入式工程師的前景如何?
    說起嵌入式,其官方定義為:IEEE(國際電氣和電子工程師協會)的定義—嵌入式系統是「控制、監控或者輔助設備、機器和車間運行的裝置」。這主要是從應用上加以定義的,從中可以看出嵌入式系統是軟體和硬體的綜合體,還可以涵蓋機械等附屬裝置。
  • 嵌入式系統課程的教與學
    本課程的主要任務是學習嵌入式系統基本理論及其應用,學習嵌入式系統的組成及應用的知識;培養分析與設計嵌入式系統的基本能力;培養自學、分析問題和解決問題的能力,以及認真負責的工作態度和嚴謹細緻的工作作風。二、理論教學基本要求學生學完本課程後,應達到如下要求:1.熟悉嵌入式系統的基本概念;掌握ARM微處理器體系結構的基礎知識。
  • 十年資深嵌入式大神:教你真正好學的嵌入式開發學習路線
    那麼這份嵌入式linux學習路線分享給大家。 4、A53開發板介紹、設備使用、A53開發板與電腦通信、交叉編譯 GUI圖形界面開發 1、常用控制項——button、label、text edit等 2、常用布局方式——水平布局、垂直布局、固定布局、網格布局、相對布局等 3、常用事件及信號處理技術——信息回調、滑鼠、鍵盤事件等 4、時間編程、數據存儲、繪圖機制、定時器處理
  • 嵌入式系統測試題40道附詳細解析
    A)  支持實時處理 B)  低功耗 C)  高主頻 D)  集成了測試電路【解析】:嵌入式系統中的CPU一般具有4個特點:1)支持實時處理;2)低功耗;3)結構可擴展;4)集成了測試電路。因此,該題選C。
  • 我的單片機轉嵌入式Linux之路
    本科畢業,一手還不錯的牌被浪輸了(電賽3個省一、一等獎學金、三好學生、校優秀實習生等),基礎不夠紮實也沒好好準備,錯過了秋招,去不了心儀大廠,春招將就去了一家國企。一年後發現情況不妙(軟體崗,竟沒代碼可寫),感覺自己不但沒有進步,反而對一些東西感到陌生了,警醒之下裸辭。
  • 嵌入式SQL中處理多條記錄的結果集
    嵌入式SQL中處理多條記錄的結果集時,採用的是遊標機制。因此,SQL DML語句在嵌入使用時,要注意是否使用了遊標機制。不 需要遊標的SQL DML操作在嵌入式SQL中,不用遊標的SQL DML語句主要包括以下幾種。查詢結果 為單記錄的SELECT語句。非CURRENT形式的UPDATE語句。非CURRENT形式的DELETE語句。INSERT語句。
  • 嵌入式課程學習大綱分享,零基礎入門嵌入式技術
    嵌入式課程學習都要學哪些呢?現在培訓機構很多,想要知道嵌入式的課程內容,今天就分享一份千鋒嵌入式的學習大綱給大家,希望想對於想進入嵌入式的同學有一定的認知和了解。1、常用控制項——button、label、text edit等 2、常用布局方式——水平布局、垂直布局、固定布局、網格布局、相對布局等 3、常用事件及信號處理技術——信息回調、滑鼠、鍵盤事件等 4、時間編程、數據存儲、繪圖機制、定時器處理、多任務處理等 3、嵌入式Linux高級程序設計 嵌入式Linux
  • 嵌入式學習培訓要學多久?嵌入式學習哪些內容?
    以手機為例,典型的嵌入式產品,我們看看上面集成了多少模塊:觸控螢幕、LCD、USB、WiFi、4G等無線通信、音視頻編解碼IP、DDR、存儲控制器、3D/2D加速、GPS、指紋識別、NFC、DMA、G-sensor各種傳感器.......。隨著嵌入式的火熱,參加嵌入式培訓的很越來越多,嵌入式學習培訓要學多久呢?對於嵌入式的學習一般都是4-6個月的時間。
  • 基於Nagle算法的嵌入式TCP協議
    隨著嵌入式系統的發展,在嵌入式系統中實現網絡連接已成為研究熱點,廣泛使用的廉價8/ 16 位嵌入式處理器的性能不足與網絡協議的複雜構成了尖銳的矛盾。
  • 嵌入式空調濾網怎麼拆 嵌入式空調漏水怎麼辦
    嵌入式空調與普通空調最大區別就是嵌入式空調的安裝形式。那麼,嵌入式空調濾網怎麼拆?嵌入式空調漏水怎麼辦呢?下面我們一同前去了解一下。 嵌入式空調是許多辦公大樓都會選擇的空調之一。嵌入式空調與普通空調最大區別就是嵌入式空調的安裝形式。那麼,嵌入式空調濾網怎麼拆?嵌入式空調漏水怎麼辦呢?下面我們一同前去了解一下。
  • 嵌入式系統串口傳輸int float型數據的處理
    在做嵌入式系統通信時往往會用到串口,包括嵌入式系統將數據傳輸給PC,或者是嵌入式系統之間進行數據傳輸,這時候就會遇到發送數據的問題。我們知道單片機通過串口發送數據時往往是一次一個字節(8位),如果傳輸char(8位)型數據則很好辦,只需要直接發送就可以了,但是在發送int型數據和float型數據時就會稍微有些複雜。
  • ARM嵌入式工控電腦的作業系統是怎樣的
    ARM嵌入式工控電腦的常用作業系統有Linux和Windows CE,這兩種作業系統在界面和操作上對用戶都是比較友好的,所以受到了ARM嵌入式工控電腦行業的青睞。目前將Linux的內核移植在ARM嵌入式工控電腦上,可使用更多的Linux功能。無論是對於企業伺服器還是對於嵌入式系統,Linux都是一個巨大的進步。對高端的機器來說,新特性針對的是性能改進、可擴展性、吞吐率,以及對 SMP 機器 NUMA 的支持。 對於ARM嵌入式工控電腦領域,添加了新的體系結構和處理器類型--包括對那些沒有硬體控制的內存管理方案的 MMU-less 系統的支持。