1. 程式人生 > >Audio CODEC 基本知識及應用

Audio CODEC 基本知識及應用

轉自https://blog.csdn.net/BHJ1119/article/details/81533342

 

一、DAC 部分
 DAC 部分的框圖:


◆ 數字音訊介面:
1、I2S 介面
        I2S(Inter-IC Sound Bus)是飛利浦公司為數字音訊裝置之間的音訊資料傳輸而制定的一種匯流排標準。在飛利浦公司的I2S 標準中,既規定了硬體介面規範,也規定了數字音訊資料的格式。I2S 有3 個主要訊號:

        資料是2 的補碼形式, MSB 在前。傳送端在時鐘訊號BCLK 的上升沿或下降沿開始傳輸資料, 接收端的在時鐘的第一個邊沿鎖存資料。字選線LRCK 決定傳輸哪個聲道(左、右)的資料;

        LRCK 傳送會在傳輸一個數據之前傳送一個時鐘,也就是資料要比位時鐘延遲一位傳送。有時為了使系統間能夠更好地同步,還需要另外傳輸一個訊號MCLK,稱為主時鐘,也叫系統時鐘,一般是取樣頻率的256 倍。資料傳輸時 MSB或 LSB 均可在前。資料字的長度不固定,可以高達28 位。資料字的同步可以在時鐘的上升沿或下降沿。主裝置提供BCLK 和LRCK 訊號。主裝置可以是傳送端,也可以是接收端,還可以是控制器。I2S 匯流排可用於DAC 或DSP。

        I2S 也可以用於傳輸單聲道資料,例如單聲道錄音,可以經過I2S 傳輸,可以選擇任一個聲道傳輸。

        上述3 線介面,由於只有一條資料線,所以是單向資料傳輸介面。絕大部分應用,只需要單向傳輸資料,所以都能滿足需要。在某些應用中,也可以增加一條資料線,變成雙向資料傳輸介面。
        隨著技術的發展,在統一的 I2S 介面下,出現了多種不同的資料格式。根據SDATA 資料相對於LRCK 和BCLK 的位置不同,分為左對齊(較少使用)、I2S格式(即飛利浦規定的格式)和右對齊(也叫日本格式、普通格式)。這些不同的格式見圖2、3、4。

 

硬體連線圖5、6。

2、PCM 介面
PCM 介面和I2S 介面的硬體連線完全一樣,不同的是資料格式。只要晶片可以支援,這兩種介面能夠相容。

3、SPDIF 介面
        它是(Sony/Philips Digital InterFace)SONY、PHILIPS 家用數字音訊介面的簡稱,可以傳輸線性PCM 流和Dolby Digital、DTS 這類環繞聲壓縮音訊訊號。它只有兩條線分別不同方向傳輸:Tx 和Rx。SPDIF 從傳輸介質上來分為同軸和光纖兩種,其實它們可傳輸的訊號是相同的,只不過是載體不同,介面和連線外觀也有差異。但光訊號傳輸是今後流行的趨勢,其主要優勢在於無需考慮介面電平及阻抗問題,介面靈活且抗干擾能力更強。

◆ 低音增強——Bass Boost:
        用來設定低音表現力。利用Bass Boost 的音效,可以在音樂回放時得到低音增強的效果,使的音樂更具震撼力。它一般有4 種值可選:高、中、低和無增強。

◆ 數字音量控制器Digital Volume Control:
        用來調節輸出音量。調節它可以同時改變耳機輸出、揚聲器輸出的音量。區別於模擬音量控制,模擬音量控制是在DAC 進行數模轉換以後,再通過改變輸出PGA 的增益來改變音量。


◆ 數字去加重濾波器——Digital De-emphasis Filter:
什麼是Pre-emphasis 和De-emphasis?
        Pre-emphasis 就是在錄音的時候將高頻訊號放大,放音時再把訊號用同樣的倍率縮小以還原波形(De-emphasis),在模擬錄音的時代,這個技巧的主要用途是作為提高訊噪比。例如廣播發送時將頻率1500Hz to 2000Hz 以上以每八度音6dB的倍率提高訊號,使用同樣的原理。在數字的領域,Pre-emphasis 的主要用意在於降低量化失真,因為一般的音樂訊號高頻段往往振幅比較小,而且越高的頻率振幅越小,所以從PCM 取樣的原理中我們可以發現這些小振幅會被分配到較少數的bits 來記錄,這樣有效描述振幅的數字就變小了,與原波型的誤差就變大了,因此我們使用Pre-emphasis 的技巧先增加高頻振幅再取樣來降低高頻量化失真。使用這功能的音樂CD 非常少見,推測是因為Pre-emphasis 和De-emphasis 這一來一回的計算,反而造成了更大的失真。

◆ 均衡器( EQ)與音效
        均衡器的作用是在整個音樂頻寬範圍內改變音樂的頻響特性。以WM8980的五邊帶EQ為例,它把音樂頻寬分為5段,分別為0~105Hz段、300Hz段、850Hz段、2.4KHz段、6.9~20KHz段,每一段可以有-12dB~+12dB共25種增益。

        利用EQ 可以實現各種音效,即MP3 不同的聲音播放效果,不同的EQ 模式帶給聽使用者不同的聲音播放效果。

        目前的MP3 的數字音效模式一般為六種,分加是CLASSIC(古典音樂模式)、POP(流行音樂模式)、JAZZ(爵士樂模式)、ROCK(搖滾樂模式)、NOMAL
(普通模式)和AUTO(自動改變模式)。


◆ 取樣率轉換器——Sample Rate Converter(SRC)
        這是一個在CODEC中常見的模組。它在音效卡中最常見,聲卡里的CODEC如果是AC'97 CODEC,則前面一定要有一個SRC的過程。SRC是AC'97規範約定的音效卡需要經過的一個處理過程,即將所有訊號重新轉換成一個統一的48KHz取樣
率輸出。SRC如果進行了非整數倍的轉換的話,比如44.1KHz→48KHz,會有較大的噪聲或者諧波出現,這些噪聲因轉換器的質量高低、演算法好壞而定,不優秀的演算法會比較嚴重的影響聽感。

        SRC的作用就是改變訊號的取樣率,我們舉一個例子幫助大家瞭解SRC。

        我們假設三角形是一秒時間長度的一個波,取樣率為3Hz,現在我們需要將取樣率SRC 到4Hz,我們唯一能作的就是時間軸等分出4 個點,取這個點垂直線和三角形邊交匯處的值,這個過程就是重取樣,結果變成了一個梯形。在波形圖中,垂直的軸對應波的能量值,這意味著波的訊號強度變弱了,出現了衰減。這個例子可以說明非整數倍的頻率轉換將改變波形,改變是不可避免的,SRC還會導致一些其他問題,例如互調失真加劇等。(注:為了圖解方便,圖形的使用並不規範,三角形和梯形不能表示一個完整的波)

        需要說明的是顯而易見對於整數倍,比如22.05KHz 到44.1KHz 或者48KHz到96KHz,SRC 並不會對音質產生影響。

        常見的音效卡都支援44.1kHz 和48kHz 的訊號輸入,而這2 種取樣率不是整數倍關係,如果同時支援這2 種取樣率輸出的話,音效卡上需要2 顆晶振。分別為11.2896 MHz 和12.288MHz(或者為他們整數倍的頻率),否則只能是儘量接近44.1K 或者48K。

        而通過SRC 後,輸出的取樣率一般固定在48kHz,這樣音效卡可以節省一顆晶振,降低了成本。

        在有些音樂晶片內部,採用的固定轉換頻率的DAC,例如YMU788,所以內部就有SRC模組。

        SRC也會有其他的用途,例如不同取樣率音樂之間的混音。混音是指將來自多個音源的音訊結合成一個單一的聲音流,這是一項基本的音訊處理過程。在模擬音訊領域,只要簡單地將訊號疊加即可。而對於數字音訊,如果各訊號的取樣率一致,也將採用這一過程。如果各訊號是在不同時刻採集的,那麼就不能直接疊加訊號了。通過將某一訊號轉換為另一訊號的取樣率,可以解決這一問題。一旦樣本的取樣時刻統一,每個時刻的樣本值就能進行簡單地疊加,形成混音輸出了。生成的訊號可以用於更進一步的數字處理。


◆ 數字濾波器——Digital Filter
        數字濾波器的作用是執行超取樣(Oversampling)工作。超取樣採用的關鍵技術,就是插值(interpolation)。所謂插值就是在兩個原有資料中增加多個數據以填補間隔空白,現在常見的有4 倍插值和8 倍插值。4倍插值也就是在兩個資料中間增加3 個,8 倍則7。這裡的過取樣不要和錄音時的取樣混淆起來,這裡根據一定的演算法,對數字訊號進行運算,然後增加取樣點。如何插值有各種技術,可以說得天花亂墜,在此不做評論。常見的CODEC 中採用的是最簡單的線形插值算髮。1 和5 之間,如果以平均值演算法做4 倍插值,很容易得出插補2、3、4。數字濾波器後面的DAC,有插值資料就必須要有轉換,4 倍插值後的DAC 轉換頻率就要有4×44.1=176.4Khz,8 倍則352.8Khz。

        負責進行插值運算的處理速度要快,不然必定無法將這些資料處理妥當,造成失真。所以並不是取樣倍數越多就越好,這還要看處理器的運算能力夠不夠才行。


        超取樣用在D/A 中能帶來很大好處。我們知道對於一個取樣頻率為44.1KHz的離散訊號序列,它的功率譜密度分佈是頻率間隔為44.1KHz,單側頻寬為20KHz 的一簇簇"雙邊帶"譜線,而我們所需要的僅僅是中心頻率為0 的那半個邊帶,其他的全是噪聲,這就是為什麼在D/A 後面一定要跟一個低通濾波器的原因,該濾波器也叫做"抗混疊濾波器"(anti-aliasing filter)。

        對於上面這個譜,由於譜線簇相鄰很近,需要過渡特性十分陡峭,類似於下圖的低通濾波器才能保證足夠的帶外噪聲衰減。這樣的濾波器特性在實用工程上根本無法做到。

        如果採用超取樣,比如說×8 倍,那麼相鄰譜線簇的頻率間隔就不再是44.1KHz,而是44.1×8=352.8KHz,這樣就允許採用較低階的,簡單的低通濾波器,在有限的成本下同時滿足信噪比,帶內波動,相位特性等諸多要求。

        過取樣本身不會對量化精度(位元數)產生任何影響,原來是16bit 過取樣後還是16bit,但它會改變訊號功率譜密度在頻率軸上的分佈。


◆ 取樣率轉換和超取樣的區別:
        在數字訊號處理領域,凡根據相鄰兩個或多個樣值而人為增加相關樣值的處理稱為插值(interpolation)。得到的樣值序列並不一定要與內插前的樣值序列在取樣率上成整數倍關係。所以,事實上取樣率的提高本身就是資料內插的自然結果。
       

        取樣率轉化可以提升和降低取樣頻率,而過取樣只是提升取樣率;取樣率轉化不一定是取樣率成整數倍的提高,而過取樣則是。

        取樣率轉換和過取樣的目的有所不同。前者是為了把各種不同取樣率的音源轉換為統一的取樣率,方便接受各種不同音源如CD,DAT,DVD 等等;而後者是以拉開譜線簇之間的頻率間隔,減少混疊噪聲和簡化後續低通濾波器為目的。

二、ADC 部分

 

這裡介紹的主要是針對麥克風輸入通道,模擬線路輸入與此類似,不做介紹。
◆可程式設計增益放大器(PGA)
PGA 的增益可以設定。它有兩種工作模式:固定增益模式、自動增益調節模式。如果使用錄音的ALC 功能,則PGA 必須工作在自動增益調節模式。
◆ 輸入增益BOOST
PGA的增益是步進值很小的增益,可用於細調。而BOOST是用於粗調的增益,如果PGA的增益足夠大仍然音量不夠,就可以使用BOOST。但是使用了BOOST,
噪聲會稍稍變大。
◆ ADC Digital Filter
主要作用是將超取樣(Oversampling)的資料轉換為正常的取樣率的資料。很多ADC都是ΣΔADC,一般使用×4倍或×8倍超取樣,而數字音訊介面傳輸的資料是正常的取樣率的音訊資料,所以要使用數字濾波器進行取樣率的轉換。
◆自動電平控制——Automatic Lever Control (ALC)
        該模組使用一個電平適時檢測電路來對ADC的輸出訊號幅度進行測量,然後根據它來控制可程式設計增益放大器(PGA),改變其增益來使來實現錄音音量的平衡。
        錄音的時候音源可能會時遠時近,聲音可能會時大時小。預先設定一個目標電平(target lever),我們希望錄音的電平總是等於目標電平。當輸入的聲音訊號幅度太大,超過目標電平時,就降低PGA增益;當輸入的聲音訊號幅度太小,低於目標電平時,就提高PGA的增益。
ALC模組的框圖結構如圖所示:

ALC操作如圖18所示。注意:使用ALC操作和不使用ALC操作的區別就是,使用ALC時,PGA的增益是可以變化的,有一個固定的目標電平;不使用ALC時,PGA的增益是固定的,沒有目標電平。

 

--------------------- 作者:大繁至簡 來源:CSDN 原文:https://blog.csdn.net/BHJ1119/article/details/81533342?utm_source=copy 版權宣告:本文為博主原創文章,轉載請附上博文連結!