




已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
為了使PWM音頻達到相當好的質(zhì)量,PWM的載波頻率應(yīng)該至少12倍于信號的帶寬,而且定時器的分辨率即占空比的間隔時間應(yīng)該有16位。由于載波頻率的需求,傳統(tǒng)PWM音頻電路曾經(jīng)被用于窄帶音頻,比如超重低音。但是,利用目前的高速處理器,就可以擴展到更寬的音頻譜。PWM流必須經(jīng)過低通濾波,以去除高頻載波。這通常是用驅(qū)動揚聲器的放大器電路來完成。D類放大器已經(jīng)被成功地用于這種結(jié)構(gòu)。當不需要放大時,一個低通濾波器就足以用作輸出級。在一些低成本應(yīng)用中,聲音的品質(zhì)不是那么重要,就可以把PWM流與揚聲器直接相連。在這樣的系統(tǒng)中,揚聲器紙盆的機械慣性充當了濾除載波頻率的低通濾波器。音頻轉(zhuǎn)換器的簡要背景音頻ADC完成A/D轉(zhuǎn)換可以有許多種方法。一個傳統(tǒng)的方法是逐次逼近的方案,該方案使用一個比較器對模擬輸入信號與一連串中間D/A轉(zhuǎn)換輸出之間的比較結(jié)果進行檢測,然后得到最后的結(jié)果。但目前的大多數(shù)ADC都是轉(zhuǎn)換器。這種轉(zhuǎn)換器不是使用逐次逼近的方法來產(chǎn)生很高的分辨率,而是使用了1位的ADC。為了對這個減少了的量化等級數(shù)進行補償,這些轉(zhuǎn)換器在比NYQUIST頻率高得多的頻率下進行過采樣操作。把這些過采樣的1位樣點流轉(zhuǎn)換成一個較低速率、較高分辨率的樣點流是使用這些轉(zhuǎn)換器內(nèi)部的數(shù)字濾波模塊完成的,目的是為了適應(yīng)傳統(tǒng)PCM流的處理。例如,一個16位441KHZ的ADC可以用64倍的過采樣率,產(chǎn)生一個速率為28224MHZ的1位樣點流。然后用一個數(shù)字抽取濾波器把這個超級采樣的樣點流轉(zhuǎn)換成一個速率等于441KHZ的16位樣點流。由于對模擬信號的過采樣操作,ADC放寬了對用來限制輸入信號帶寬的模擬低通濾波器的性能要求。這些轉(zhuǎn)換器還具有將輸出噪聲分布在比傳統(tǒng)轉(zhuǎn)換器更寬的頻譜內(nèi)的優(yōu)點。正如圖3B中的框圖所指出的,AD1871ADC與BLACKFIN處理器可無縫連接。電路的模擬部分被簡化了,因為在這個討論中只有數(shù)字信號才是重要的。AD1871的過采樣率由外部晶振提供。圖中的處理器有2個串行端口SPORT和一個SPI端口,用于連接AD1871。被配置成I2S模式的SPORT是與AD1871進行數(shù)據(jù)連接的端口,而SPI端口用作控制連接。I2S協(xié)議是由PHILIPSNXP半導體為音頻信號的數(shù)字傳輸而開發(fā)的一個標準。該標準使音頻設(shè)備制造商所生產(chǎn)的器件可以相互兼容。確切地說,I2S是一種用于傳輸立體聲數(shù)據(jù)的3線串行接口。正如圖4A中所示,它規(guī)定了位時鐘中、數(shù)據(jù)線下和左右同步線上,而左右同步線用來選擇當前正在傳送的數(shù)據(jù)幀是左聲道的還是右聲道的。從本質(zhì)上講,I2S是一個帶有兩個活動聲道的時分復用TDM串行流。TDM是一種通過一條物理鏈路傳輸超過一個聲道比如左聲道與右聲道的方法。在AD1871電路結(jié)構(gòu)中,當對SPORT時鐘RSCLK和幀同步RFS線進行驅(qū)動時,ADC可以降低它從外部晶振接收到的12288MHZ采樣率。該配置保證了采樣和數(shù)據(jù)傳輸是同步的。SPI接口,如圖4B所示,是MOTOROLA為了使主處理器可以與各種數(shù)字器件相連而設(shè)計的。這個在SPI主設(shè)備與SPI從設(shè)備之間的接口由一條時鐘線SCK、兩條數(shù)據(jù)線MOSI和MISO和一條從設(shè)備選擇SPISEL線組成。其中一條數(shù)據(jù)線由主設(shè)備MOSI驅(qū)動,而另一條由從設(shè)備MISO驅(qū)動。在圖3B的例子中,處理器的SPI端口是無縫地與AD1871的SPI模塊相連接的。圖4A數(shù)據(jù)信號由AD1871使用I2S協(xié)議進行傳送BSPI3線接口用于控制AD1871帶有獨立SPI控制端口的音頻編解碼器允許主處理器在運行中修改ADC的設(shè)置。除了靜音和增益控制外,其中一個確實很有用的ADC如AD1871設(shè)置是對節(jié)電模式的設(shè)置能力。對于電池供電的應(yīng)用來說,這通常是一個本質(zhì)功能。DAC與編解碼器將音頻DAC與主處理器相連接與我們才討論過的與ADC連接的過程完全一樣。在一個同時使用ADC和DAC的系統(tǒng)中,同一個支持雙向傳輸?shù)拇卸丝诳梢酝瑫r連接這兩者。但是,如果您正在考慮全雙工音頻,那么您最好采用一個可以同時完成模擬數(shù)字轉(zhuǎn)換和數(shù)字模擬轉(zhuǎn)換的單芯片音頻編解碼器。這樣的編解碼器的一個很好的選擇是ADI公司的AD1836,它有三個立體聲DAC和兩個立體聲ADC,而且可以通過多種串行協(xié)議進行通訊,包括I2S。在本文中,我們講到了將音頻轉(zhuǎn)換器與嵌入式處理器進行連接的一些基本內(nèi)容。在本文的第二部分,我們將敘述音頻數(shù)據(jù)在存儲和處理時的格式。我們將特別回顧在選擇數(shù)據(jù)字長時的折衷方法。這是很重要的,因為這決定了所用的數(shù)據(jù)類型,而且,如果希望獲得的質(zhì)量等級太高而某個特定器件達不到的時候,也可以避免選擇某些處理器。此外,數(shù)據(jù)字長的選擇有助于在增加動態(tài)范圍和增加處理能力之間的折衷選擇。音頻功能在嵌入式媒體處理中起到關(guān)鍵性的作用。雖然一般來說,音頻處理比視頻處理占用較少的處理能力,但它們具有相同的重要性。本文共包括三個部分,在第一部分中,我們將探討數(shù)據(jù)是如何從各種音頻轉(zhuǎn)換器DAC和ADC傳送給嵌入式處理器的。在這之后,我們將探討一些經(jīng)常用于連接音頻轉(zhuǎn)換器的外圍接口標準。模擬與數(shù)字音頻信號之間的轉(zhuǎn)換采樣所有的A/D與D/A轉(zhuǎn)換都應(yīng)該遵循SHANNONNYQUIST采樣定理。簡言之,該定理規(guī)定了模擬信號在被采樣時的速率NYQUIST采樣率必需等于或超過它的帶寬NYQUIST頻率的兩倍,以便可以在最后的D/A轉(zhuǎn)換中進行信號重構(gòu)。低于NYQUIST采樣率的采樣將產(chǎn)生混疊,而這種混疊是那些超過NYQUIST頻率的頻率分量在低頻區(qū)的鏡像疊影。如果我們?nèi)∫粋€帶寬限制在020KHZ范圍內(nèi)的音頻信號,并在220KHZ40KHZ頻率下進行采樣,那么NYQUIST定理就能確保我們可以對原來的信號進行完美重構(gòu)而不會有任何信號損失。但是,對這個020KHZ帶限信號用任何低于40KHZ的采樣率進行采樣時,將會由于混疊而產(chǎn)生失真。圖1示出低于NYQUIST采樣率的采樣如何使信號表示得不正確。在40KHZ頻率下采樣時,20KHZ的信號被正確地表示圖1A。但是,同樣的20KHZ正弦波,當在30KHZ頻率下采樣時,實際上看起來像是原始正弦波在一個較低頻率上的混疊圖1B。圖1A用40KHZ對20KHZ信號進行采樣可以正確地捕捉到原始信號。B用30KHZ對同一個20KHZ信號進行采樣所捕捉到的是一個被混疊了的信號低頻重影然而,沒有一個實際系統(tǒng)是正好用兩倍的NYQUIST頻率進行采樣的。例如,把一個信號限制于一個指定的頻帶內(nèi)要使用模擬低通濾波器,但這些濾波器從來就不是理想濾波器。因此,通常用來還原音樂的最低采樣率是441KHZ而不是40KHZ,而且許多高質(zhì)量系統(tǒng)是用48KHZ進行采樣的,以捕捉到020KHZ范圍內(nèi)更加逼真的聽覺感受。由于語音信號只是我們可以聽到的頻率范圍的一小部分,所以4KHZ以下的能量就足以使還原的語音信號能夠聽得懂?;谶@個原因,電話應(yīng)用中通常只使用8KHZ的采樣率24KHZ。表1歸納了我們所熟悉的一些系統(tǒng)的采樣率。表1常用的采樣率PCM輸出音頻信號最常用的數(shù)字表示是PCM脈沖編碼調(diào)制信號。在這種表示中,對每個采樣周期內(nèi)的一個模擬幅度用一個數(shù)字量進行編碼。這樣得到的數(shù)字波形是一個用來近似地表示輸入模擬波形的由抽取點組成的矢量。所有A/D轉(zhuǎn)換器的分辨率都是有限的,所以轉(zhuǎn)換器引入了數(shù)字音頻系統(tǒng)所固有的量化噪聲。圖2示出模擬正弦波的PCM表示圖2A,它是用一個理想的A/D轉(zhuǎn)換器進行轉(zhuǎn)換的,圖中的量化操作顯現(xiàn)為一種“階梯效應(yīng)”圖2B。您可以看到,較低的分辨率導致了對原始波形的較差的表示圖3C。圖2A一個模擬信號B數(shù)字化之后的PCM信號C使用較少位數(shù)精度進行數(shù)字化之后的PCM信號作為一個數(shù)值例子,讓我們假設(shè)用一個24位A/D轉(zhuǎn)換器對一個模擬信號進行采樣,而這個模擬信號的范圍從2828V到2828V5656的峰峰值。24位有22416777216個量化等級。因此,有效的電壓分辨率為5656V/167772163371NV。在本文的第二部分,我們將看到編解碼器的分辨率如何影響音頻系統(tǒng)的動態(tài)范圍。PWM輸出脈寬調(diào)制PWM是不同于PCM的另一種調(diào)制方法,它可以直接驅(qū)動輸出電路而無需任何DAC的幫助。這在需要低成本的解決方案時特別有用。在PCM中,對每個采樣周期內(nèi)的幅度進行一次編碼,而在PWM信號中描述幅度的是占空比。PWM信號可以通過通用I/O引腳產(chǎn)生,或者可以用許多處理器中都有的專用PWM定時器來直接驅(qū)動。為了使PWM音頻達到相當好的質(zhì)量,PWM的載波頻率應(yīng)該至少12倍于信號的帶寬,而且定時器的分辨率即占空比的間隔時間應(yīng)該有16位。由于載波頻率的需求,傳統(tǒng)PWM音頻電路曾經(jīng)被用于窄帶音頻,比如超重低音。但是,利用目前的高速處理器,就可以擴展到更寬的音頻譜。PWM流必須經(jīng)過低通濾波,以去除高頻載波。這通常是用驅(qū)動揚聲器的放大器電路來完成。D類放大器已經(jīng)被成功地用于這種結(jié)構(gòu)。當不需要放大時,一個低通濾波器就足以用作輸出級。在一些低成本應(yīng)用中,聲音的品質(zhì)不是那么重要,就可以把PWM流與揚聲器直接相連。在這樣的系統(tǒng)中,揚聲器紙盆的機械慣性充當了濾除載波頻率的低通濾波器。音頻轉(zhuǎn)換器的簡要背景音頻ADC完成A/D轉(zhuǎn)換可以有許多種方法。一個傳統(tǒng)的方法是逐次逼近的方案,該方案使用一個比較器對模擬輸入信號與一連串中間D/A轉(zhuǎn)換輸出之間的比較結(jié)果進行檢測,然后得到最后的結(jié)果。但目前的大多數(shù)ADC都是轉(zhuǎn)換器。這種轉(zhuǎn)換器不是使用逐次逼近的方法來產(chǎn)生很高的分辨率,而是使用了1位的ADC。為了對這個減少了的量化等級數(shù)進行補償,這些轉(zhuǎn)換器在比NYQUIST頻率高得多的頻率下進行過采樣操作。把這些過采樣的1位樣點流轉(zhuǎn)換成一個較低速率、較高分辨率的樣點流是使用這些轉(zhuǎn)換器內(nèi)部的數(shù)字濾波模塊完成的,目的是為了適應(yīng)傳統(tǒng)PCM流的處理。例如,一個16位441KHZ的ADC可以用64倍的過采樣率,產(chǎn)生一個速率為28224MHZ的1位樣點流。然后用一個數(shù)字抽取濾波器把這個超級采樣的樣點流轉(zhuǎn)換成一個速率等于441KHZ的16位樣點流。由于對模擬信號的過采樣操作,ADC放寬了對用來限制輸入信號帶寬的模擬低通濾波器的性能要求。這些轉(zhuǎn)換器還具有將輸出噪聲分布在比傳統(tǒng)轉(zhuǎn)換器更寬的頻譜內(nèi)的優(yōu)點。在本文的第2部分中,我們首先對動態(tài)范圍與精度的論題進行探討,然后再對數(shù)據(jù)格式進行深入的討論,因為數(shù)據(jù)格式是與音頻處理相關(guān)的。動態(tài)范圍與精度您也許已經(jīng)見到過DB的規(guī)范,這是在目前市場上用于描述各種產(chǎn)品而隨處可見的。表1列出了幾種產(chǎn)品以及它們的信號質(zhì)量,以DB為單位。表1各種音頻系統(tǒng)的動態(tài)范圍比較那么,這些數(shù)值究竟代表什么意思呢讓我們從確定一些定義來開始。把圖1作為對下列基本規(guī)范的“仿制數(shù)據(jù)手冊CHEATSHEET”的一個參考信號。圖1音頻系統(tǒng)中一些重要術(shù)語之間的關(guān)系人耳的動態(tài)范圍最響的信號電平與最安靜的信號電平之比值約為120DB。在存在噪聲的系統(tǒng)中,動態(tài)范圍被描述為最大信號電平與本底噪聲之間的比值。這就是說,動態(tài)范圍DB峰值電平DB本底噪聲DB純模擬系統(tǒng)中的本底噪聲來自系統(tǒng)本身的電特性。建立在模擬系統(tǒng)之上的數(shù)字音頻信號也會從ADC和DAC中獲得噪聲,而且還可以從模擬數(shù)據(jù)采樣過程所產(chǎn)生的量化誤差中獲得噪聲。另一個重要的術(shù)語是信噪比SNR。在模擬系統(tǒng)中,信噪比的意思是標稱信號對于本底噪聲的比值,其中的“線電平”是標稱工作電平。對于專業(yè)設(shè)備,標稱電平通常為1228VRMS,這可以轉(zhuǎn)換為4DBU。余量是標稱電平與峰值電平之間的差值,峰值電平指開始出現(xiàn)信號失真的電平。數(shù)字系統(tǒng)中的SNR定義有些不同,即SNR被定義為動態(tài)范圍?,F(xiàn)在,有了對動態(tài)范圍的理解,我們就可以開始討論動態(tài)范圍在實際中有怎樣的用途。不做冗長的推導,讓我們簡單介紹一下什么是6DB規(guī)則。這個規(guī)則是動態(tài)范圍與計算字長之間關(guān)系的關(guān)鍵所在。完整的公式推導在式1中說明,但這里使用了簡便的表示法,意思是每增加1位的精度,將使動態(tài)范圍增加6DB。應(yīng)該注意,這個6DB的規(guī)則并沒有考慮到音頻設(shè)計中的模擬子系統(tǒng),所以,輸入端和輸出端的傳感器的非理想性必須另作考慮。動態(tài)范圍DB602N1766NDB其中N精度位的數(shù)目式16DB規(guī)則“6DB規(guī)則”指出,使用的位數(shù)越多,我們能獲得的系統(tǒng)質(zhì)量就越高。但實際上,只有少數(shù)幾個真正可用的選擇。大多數(shù)適用于嵌入式媒體處理的器件有三種字長形式16位、24位和32位。表2總結(jié)了這三類處理器的動態(tài)范圍。由于我們在討論6DB規(guī)則,所以有必要對語音信號中常被使用的非線性量化方法進行一些討論。電話質(zhì)量的線性PCM編碼需要12位的精度。但是,我們的耳朵對小幅度時音頻信號變化的敏感度要超過大幅度時。因此,電話通訊中使用的線性PCM采樣方法的位數(shù)用得過多。A律和律壓擴標準中使用的對數(shù)量化只用8位精度就達到了12位PCM的質(zhì)量等級。為了使我們的生活更加方便,有些處理器廠商已經(jīng)把A律和律壓擴標準做到了器件的串行端口中。這使處理器內(nèi)核無需進行對數(shù)計算。在查看了表2之后,我們又一次回想起人耳的動態(tài)范圍約為120DB?;谶@個原因,16位數(shù)據(jù)的表示法對于高質(zhì)量音頻并不是太合適。因此,供應(yīng)商引入了對16位系統(tǒng)的動態(tài)范圍進行擴展的24位處理器。這些24位的系統(tǒng)從C編譯器的觀點來看有點不標準,所以近年來的許多音頻設(shè)計使用了32位的處理方式。表2各種定點架構(gòu)的動態(tài)范圍選擇了正確的處理器并不是萬事大吉了,因為一個音頻系統(tǒng)的總體質(zhì)量是由“達到最低質(zhì)量”元件的等級所決定的。除了處理器外,整個系統(tǒng)還包括像話筒和揚聲器這樣的一些模擬元件,以及使信號在模擬域與數(shù)字域之間變換的轉(zhuǎn)換器。模擬域超出了這次討論的范圍,而音頻轉(zhuǎn)換器則涉及到了數(shù)字域。假設(shè)您想使用AD1871進行音頻采樣。轉(zhuǎn)換器的數(shù)據(jù)手冊中把它解釋為一個24位的轉(zhuǎn)換器,但它的動態(tài)范圍不是144DB,而是105DB。其原因是轉(zhuǎn)換器不是一個完美無缺的系統(tǒng),而供應(yīng)商只給出了有用的動態(tài)范圍。如果您真的想把AD1871與24位處理器相連,那么,您整個系統(tǒng)的SNR將為105DB。本底噪聲將達到144DB105DB39DB。圖2是這一情況的圖形表示。但是,在數(shù)字音頻系統(tǒng)中還有另一個組件我們還沒有討論處理器內(nèi)核內(nèi)的計算。圖2一個音頻系統(tǒng)的SNR由最弱元件的SNR構(gòu)成使數(shù)據(jù)經(jīng)過處理器的計算單元會潛在地引入各種誤差。其中之一就是量化誤差。這種誤差可以在一連串導致數(shù)據(jù)值被截取或舍入向上或向下的計算中產(chǎn)生。例如,一個16位處理器可以對一個16位數(shù)據(jù)組成的向量作加法,然后把結(jié)果存入一個擴展字長的累加器中。但是,當累加器中的數(shù)值最終被寫入到一個16位數(shù)據(jù)寄存器中時,其中的有些位會被截去。可以看一下圖3,看看計算誤差是如何影響到實際系統(tǒng)的。對于一個理想的16位A/D轉(zhuǎn)換器圖3A,信噪比應(yīng)該是16X696DB。如果不存在量化誤差,那么,16位計算足以把SNR保持在96DB。而24位和32位系統(tǒng)將分別把8位和16位置于本底噪聲以下的動態(tài)范圍中。從本質(zhì)上看,這些額外的數(shù)位是被浪費掉了。圖3A在一個理想的16位96DBSNR系統(tǒng)中,不同字長計算時的額外數(shù)位的分配,其中忽略了量化誤差B在一個理想的16位96DBSNR系統(tǒng)中,不同字長計算時的額外數(shù)位的分配,其中存在量化誤差但是,所有的數(shù)字音頻系統(tǒng)都確實要引入舍入和截取誤差。如果我們可以量化這個誤差,如確定為18DB或3位,那么很清楚,16位計算對于維持96DB的系統(tǒng)SNR是不夠的圖3B。解釋這一點的另一個方法是,有效的本底噪聲被提高了18DB,因而總的SNR就降低到了96DB18DB78DB。這導致的結(jié)論是,在本底噪聲以下的額外數(shù)位有助于解決量化中出現(xiàn)的麻煩事。音頻的數(shù)據(jù)格式在處理器內(nèi)部有許多種表示數(shù)據(jù)的方法。音頻處理中使用的兩種主要的處理器架構(gòu)是定點與浮點。定點處理器設(shè)計成用整數(shù)和分數(shù)進行運算,通常固有地支持16位、24位或32位的數(shù)據(jù)。浮點處理器提供非常好的性能,并固有地支持32位或64位的浮點數(shù)據(jù)類型。但是,這些浮點處理器一般成本比較高,而且比相應(yīng)的定點處理器消耗更多的功率,因而所有的實際系統(tǒng)都必須在質(zhì)量和工程成本之間尋求一個平衡點。定點運算執(zhí)行定點運算的處理器一般對信號使用二進制補碼表示法。定點格式可以表示有符號和無符號的整數(shù)和分數(shù)。在定點處理器上使用有符號的分數(shù)格式是在數(shù)字信號處理中最常見的。整數(shù)與分數(shù)格式的差別在于二進制小數(shù)點的位置。對于整數(shù),二進制小數(shù)點是在最低位的右邊;而對于分數(shù),通常把它們的小數(shù)點放在符號位的右邊。圖4A表示了整數(shù)和分數(shù)的格式。圖4A分數(shù)和整數(shù)格式BIEEE75432位單精度浮點格式雖然定點的規(guī)則簡化了數(shù)值操作且節(jié)省了存儲器,但同時也存在動態(tài)范圍和精度之間的折衷。在需要保持很高分辨率同時又要使用很大數(shù)值范圍的應(yīng)用場合,就需要使用一個可以根據(jù)幅值和指數(shù)而移動的小數(shù)點。浮點運算使用浮點格式就可以在同一系統(tǒng)中表示非常大和非常小的數(shù)。浮點數(shù)與有理數(shù)的科學記數(shù)法十分相似。浮點數(shù)是用尾數(shù)和指數(shù)描述的。尾數(shù)確定了精度,而指數(shù)控制著動態(tài)范圍。有一個標準管理著數(shù)字機的浮點運算。這個標準叫IEEE754圖4A;對于32位浮點數(shù)可以歸納如下。第31位MSB,最高位是符號位,它的0表示符號為正,它的1表示符號為負。從第30位到第23位是表示2的整次冪的指數(shù)字段EXP_FIELD,并以127作為偏移量。最后,第22位到第0位表示分數(shù)的尾數(shù)MANTISSA。隱藏位一般是指在小數(shù)點的左邊有一個1。32位的IEEE浮點數(shù)的值可以用下面的等式來表示1SIGN_BIT1MANTISSA2EXP_FIELD127依靠8位的指數(shù)和23位的尾數(shù),IEEE754達到了動態(tài)范圍和精度之間的一個平衡。而且,IEEE浮點庫還包括了對于像、0和NAN不是一個數(shù)等附加特性的支持表3表示了從常用的浮點和定點類型可以達到的最小數(shù)和最大數(shù)。表3各種數(shù)據(jù)格式的動態(tài)范圍比較在16位架構(gòu)上的仿真正如我們在前面解釋的,16位處理并不能為高質(zhì)量音頻提供足夠的SNR,但這并不是說您不應(yīng)該選用16位處理器作為音頻系統(tǒng)。例如,用一個32位的浮點機把一個算法編寫成保持原來32位數(shù)據(jù)風格的程序,是比較容易的;但一個16位處理器也可以通過非常低成本的仿真而保持32位的完整性。圖5示出了為一個嵌入式算法選擇數(shù)據(jù)類型時的一些可能性。圖5根據(jù)一個應(yīng)用的目標,可以有許多滿足系統(tǒng)要求的數(shù)據(jù)類型在本節(jié)的余下部分,我們將描述如何在一個16位定點機上實現(xiàn)浮點和32位擴展精度定點格式的功能。在定點處理器上的浮點仿真在大多數(shù)的16位定點處理器上,IEEE754浮點功能是通過對C/C或匯編語言的庫調(diào)用而提供的。這些庫通過使用定點乘法和運算邏輯而對所需的浮點處理進行仿真。這種仿真需要額外的處理周期來完成。但是,當定點處理器內(nèi)核的時鐘進入到500MHZ1GHZ范圍時,在對符合IEEE754的浮點運算進行仿真時需要的額外周期就不那么重要了。為了降低計算的復雜性,可以使用IEEE754的“松弛”版。這意味著浮點運算并不會實現(xiàn)像和NAN這樣一些標準特性。進一步的優(yōu)化是對尾數(shù)和指數(shù)使用一個更為本機化的類型。舉個例子,ADI公司的BLACKFIN定點處理器架構(gòu)具有一個由十六個16位寄存器組成的寄存器組,而這個寄存器組還可以用作8個32位寄存器。在這種配置下,每個內(nèi)核時鐘周期內(nèi),兩個32位寄存器可以從全部四個半寄存器中獲取操作數(shù)。為了優(yōu)化BLACKFIN寄存器組的使用,可以使用一種雙字的格式。這樣,一個字16位被保留為用作指數(shù),而另一個字16位則保留給分數(shù)部分使用。雙精度定點仿真對于許多應(yīng)用來說,16位定點數(shù)據(jù)是不夠的,如果使用仿真浮點運算,那么計算量又太大。對于這些應(yīng)用,擴展精度定點仿真也許足以滿足系統(tǒng)的要求。使用一個高速定點處理器將確保有效降低所需的計算量。音頻中兩個常用的擴展精度格式是32位和31位定點表示。32位精確仿真32位運算是16位定點處理器的自然軟件擴展。對于那些32位寄存器組可以分為16位的兩半而進行存取的處理器來說,這些兩半的寄存器可以合起來用于表示一個32位定點數(shù)。BLACKFIN處理器的硬件結(jié)構(gòu)允許單周期32位加法和減法。例如,當一個32位乘法采用累加器迭代操作時像我們馬上就要討論的有些算法情況,我們只需用3個周期內(nèi)的16位乘法就可以實現(xiàn)32位的精度。兩個32位操作數(shù)R0和R1中的每一個都可以分為16位的兩半R0H/R0L和R1H/R1L。從圖6可以容易看出,在使用16位乘法器的指令組合來對32位乘法R0XR1進行仿真的時候,我們需要下面的操作圖6用16位操作實現(xiàn)32位乘法四次16位乘法以產(chǎn)生四個32位結(jié)果1R1LXR0L2R1LXR0H3R1HXR0L4R1HXR0H三次操作以保持在最終結(jié)果中數(shù)位的位置符號表示右移。由于我們正在做分數(shù)運算,所以結(jié)果是163131X131262,帶有一個冗余的符號位。在大多數(shù)情況下,這個結(jié)果可以截取到131,以便裝入一個32位數(shù)據(jù)寄存器。因此,乘法的結(jié)果應(yīng)該以符號位為基準,或者以最大有效位為基準。這樣,那些最右邊的最小有效位可以在截取操作時被安全地截取。1R1LXR0L322R1LXR0H163R1HXR0L16一個32位乘法的最終表達式R1LXR0L32R1LXR0H16R1HXR0L16R1HXR0H在BLACKFIN架構(gòu)中,這些指令可以并行執(zhí)行,以實現(xiàn)在三個周期內(nèi)完成一次32位乘法的有效速率。31位精確仿真我們可以把最高要求31位精度的定點乘法的計算時間減少到2個周期。這個技術(shù)對于音頻系統(tǒng)特別有吸引力,因為音頻系統(tǒng)通常至少需要24位的表示法,而32位的精度也許有些過分。使用“6DB規(guī)則”,31位的精確仿真仍然保持了大約186DB的動態(tài)范圍,即使考慮了所有的量化效應(yīng)之后,這仍然具有非常充裕的余量。從圖6中的乘法框圖來看,很明顯的一點是,最小有效位半字的乘法R1LXR0L對最終的結(jié)果沒有太大的貢獻。事實上,如果把結(jié)果截取為131,那么這個乘法只影響到131結(jié)果的最低位。對于許多應(yīng)用來說,由這一位引起的精度損失是通過減少一次16位乘法、一次移位和一次加法以加速32位乘法而得以平衡的。31位精確乘法的表達式為R1LXR0HR1HXR0L16R1HXR0H在BLACKFIN架構(gòu)中,這些指令可以并行執(zhí)行,以實現(xiàn)在2個周期內(nèi)完成一次32位乘法的有效速率。所以,這是音頻處理中使用的數(shù)據(jù)格式的“獨家新聞”。在本文的最后一部分,我們將介紹開發(fā)嵌入式音頻應(yīng)用的一些策略,主要聚焦于常用算法中的數(shù)據(jù)傳輸和構(gòu)建模塊。音頻處理方法把數(shù)據(jù)送入處理器內(nèi)核把數(shù)據(jù)送入處理器內(nèi)核有若干種方法。例如,一個前臺程序可以對一個串行端口中的新數(shù)據(jù)進行查詢,但這種傳輸方式在嵌入式媒體處理器中是不常用的,因為這樣會降低內(nèi)核的使用效率。取而代之的是,與音頻編解碼器相連的處理器一般用DMA引擎把數(shù)據(jù)從編解碼器的數(shù)據(jù)口就像一個串行口傳輸?shù)教幚砥骺捎玫哪硞€存儲空間內(nèi)。這種數(shù)據(jù)傳輸是以后臺操作的形式完成的,無需處理器內(nèi)核的干預。這里的唯一開銷是對DMA序列的設(shè)定以及一旦數(shù)據(jù)緩沖區(qū)的接收或發(fā)送完成之后對中斷的處理。塊處理與樣點處理樣點處理和塊處理是處理數(shù)字音頻數(shù)據(jù)的兩種方法。在樣點處理的方法中,只要樣點一出現(xiàn),處理器就處理這個樣點。這里,在每個采樣周期中的處理操作都會有開銷。許多濾波器例如FIR和職,將在下面敘述是以這樣的方式實現(xiàn)的,因為這種方式的有效延遲會很低。另一方面,塊處理是基于把數(shù)據(jù)傳送到處理函數(shù)之前對特定長度緩沖區(qū)的填充。有些濾波器是用塊處理的方式實現(xiàn)的,因為這樣比樣點處理方式更有效。其中要說明的一點是,塊處理方法大大降低了針對每個樣點而調(diào)用處理函數(shù)的開銷。而且,許多嵌入式處理器包含有多個ALU,可以對數(shù)據(jù)塊進行并行操作。另外,有些算法從本質(zhì)上就是以塊處理方式操作的。其中一個大家都知道的是傅里葉變換以及它的實際使用的形式,快速傅里葉變換,或稱FFT,這種算法接受時域數(shù)據(jù)塊或空間域SPATIAL數(shù)據(jù)塊,然后把這些數(shù)據(jù)塊轉(zhuǎn)換成頻域表示。雙緩沖在基于塊處理的、使用DMA與處理器內(nèi)核進行數(shù)據(jù)傳遞的系統(tǒng)中,必須使用雙緩沖,以便在DMA傳輸和內(nèi)核之間進行仲裁。這會使處理器內(nèi)核和獨立于內(nèi)核的DMA引擎不會在同一時間對同一數(shù)據(jù)進行訪問,避免了數(shù)據(jù)一致性問題。為了對長度為N的緩沖區(qū)的處理進行改進,我們簡單地產(chǎn)生一個長度為2N的緩沖區(qū)。對于一個雙向系統(tǒng),必須生成兩個長度為2XN的緩沖區(qū)。如圖1A中所示,處理器內(nèi)核正在對IN1緩沖區(qū)進行處理,并將結(jié)果存儲在OUT1緩沖區(qū)中,而DMA引擎此時正在對IN0進行填充,并對OUT0中的數(shù)據(jù)進行傳輸。圖1B指出,一旦DMA引擎完成對雙緩沖區(qū)左邊半個的操作之后,它就開始把數(shù)據(jù)傳送到IN1,并從OUT1取出數(shù)據(jù),而此時的處理器內(nèi)核正在處理來自IN0的數(shù)據(jù),并填入OUT0。這個結(jié)構(gòu)有時被稱為“乒乓式緩沖”,因為處理器內(nèi)核來回地對雙緩沖區(qū)的左右兩半進行處理。應(yīng)該注意到,在實時系統(tǒng)中,串行端口的DMA或者另一個與音頻采樣率關(guān)聯(lián)的外圍設(shè)備的DMA規(guī)定了時序預算?;谶@個原因,塊處理算法必須以這樣的方式進行優(yōu)化,即它的執(zhí)行時間要小于或等于DMA對雙緩沖區(qū)的一半進行數(shù)據(jù)傳輸所需的時間。二維2DDMA當數(shù)據(jù)通過像12S這樣的數(shù)據(jù)鏈路傳輸時,它可能會包含多個聲道。這些聲道可以全是從一條數(shù)據(jù)線上通過復用而輸入到同一個串行端口的。在這種情況下,2DDMA可以用來對數(shù)據(jù)進行解交織,從而使每個聲道在存儲器中是線性分配的??梢钥匆幌聢D2中對這一安排的圖示,其中從左右聲道來的樣點被解復用到兩個分離的數(shù)據(jù)塊。這個自動數(shù)據(jù)安排對于那些使用塊處理的系統(tǒng)是極其有用的?;静僮髟谝纛l處理中有三個基本的構(gòu)建模塊。它們是加法操作、乘法操作和時間延遲。許多更復雜的效果和算法可以用這三個基本操作來實現(xiàn)。加法器顯而易見的任務(wù)是把兩個信號加在一起。乘法可以用于提升或衰減音頻信號。在大多數(shù)媒體處理器中,可以在一個周期內(nèi)完成多次加法和乘法操作。時間延遲有點復雜。在許多音頻算法中,當前的輸出取決于過去的輸入和輸出之間的組合。這種延遲效果是用延遲線實現(xiàn)的,而延遲線只不過是存儲器中用來保持過去數(shù)據(jù)的一個數(shù)組。例如,一個回聲算法可以對每個聲道保持500MS的輸入樣點。當前輸出值可以用當前輸入值與稍微衰減的過去樣點進行相加后得到。如果音頻系統(tǒng)是基于樣點的處理方式,那么程序設(shè)計人員可以簡單地跟蹤一個輸入指針和一個輸出指針兩者之間保持500MS樣點數(shù)的間隔,并且在每個采樣周期之后增加這兩個指針。由于延遲線要被隨后的各組數(shù)據(jù)重復使用,因此,輸入與輸出指針將需要從延遲線緩沖區(qū)的末尾回繞到起始端。在C/C中,這通常是在指針增加操作時再附帶一次求模操作完成的。對于那些支持循環(huán)緩沖見圖3的處理器來說,這個回繞操作不會增加額外的處理周期。在這種情況下,一個循環(huán)緩沖區(qū)的起始位置和長度必須只提供一次。在處理過程中,軟件增加或減少緩沖區(qū)內(nèi)的當前指針,如果當前的指針位置落在緩沖區(qū)的兩個端點之外,則由硬件使指針回繞到緩沖區(qū)的起始位置。如果沒有這個自動地址生成功能,程序設(shè)計人員就必須手動地保持對緩沖區(qū)的跟蹤,因而會浪費有用的處理周期。由延遲線結(jié)構(gòu)可以引出一個叫做梳狀濾波器的重要的音頻構(gòu)建模塊,它本質(zhì)上是一個帶有反饋的延遲線。當多個梳狀濾波器同時使用的時候,可以產(chǎn)生混響的效果。信號的產(chǎn)生在有些音頻系統(tǒng)中,也許需要合成一個信號例如一個正弦波。泰勒級數(shù)的函數(shù)近似法可以用來對三角函數(shù)進行仿真。而且,用均勻隨機數(shù)發(fā)生器來產(chǎn)生白噪聲是很容易的。但是,合成的方法也許并不適用于某些給定系統(tǒng)的處理預算。在具有充足存儲器的定點系統(tǒng)中,您可以取而代之地使用查表的方法來產(chǎn)生信號。這樣做的負面效應(yīng)是占用了寶貴的存儲器資源,所以,作為一種折衷考慮,可以使用混合的方法。例如,您可以存儲一個不太精細的函數(shù)表,以節(jié)省通過2DDMA進行采樣解交織存儲器。在運行時,準確的值可以用插值的方法從函數(shù)表中提取出來,而插值操作比使用泰勒級數(shù)近似法的時間大為縮短。這個混合法提供了在計算時間和存儲器資源之間的很好的平衡。濾波與算法音頻系統(tǒng)中的數(shù)字濾波器被用來對指定頻帶內(nèi)的聲波能量進行衰減或提升。最常用的濾波器形式是高通、低通、帶通和點阻。這些濾波器中的任何一種都有兩種實現(xiàn)方法。這就是有限沖擊響應(yīng)FIR濾波器和無限沖擊響應(yīng)IIR濾波器,而且它們組成了搭建像參數(shù)均衡器和圖示均衡器那樣更復雜的濾波算法的構(gòu)建模塊。有限沖擊響應(yīng)FIR濾波器FIR濾波器的輸出是由當前和過去輸入之和確定的,而其中的每個輸入樣點首先要乘以一個濾波器系數(shù)。示于圖4A中的FIR求和公式,也叫做“卷積”,是信號處理中最重要的操作之一。在這個公式的句法中,X為輸入向量,Y為輸出向量,而H為濾波器系數(shù)。圖4
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高職就業(yè)指導與創(chuàng)業(yè)教育
- 2024年太陽能空調(diào)系統(tǒng)項目資金需求報告代可行性研究報告
- 2025年安徽滁州市新型工業(yè)科技投資發(fā)展有限公司招聘筆試參考題庫含答案解析
- 湖南省長沙市2025年八年級下學期語文期末試題及答案
- 愛情長河的航程
- 2025年中國蝶型球閥市場調(diào)查研究報告
- 2025年中國茶葉罐項目投資可行性研究報告
- 2025年中國自吸離心水泵項目投資可行性研究報告
- 2025年中國肉用仔雞濃縮飼料項目投資可行性研究報告
- 2025年中國終端通訊產(chǎn)品市場現(xiàn)狀分析及前景預測報告
- 臨床血液學檢驗技術(shù)-其他白細胞疾病
- DBJ-T 13-195-2022 燒結(jié)煤矸石實心磚和多孔磚(砌塊) 應(yīng)用技術(shù)標準
- FZ/T 21009-2015短毛條
- 最新臭氧氧化技術(shù)專業(yè)知識講座課件
- 電力拖動自動控制系統(tǒng)-運動控制系統(tǒng)(第5版)習題答案
- 心血管疾病康復治療課件
- 海運提單填制練習
- 幼兒園童話劇“拔蘿卜”劇本
- 常用H型鋼理論重量表格
- 中學自主招生考試物理試題
- 四川大學-劉龍飛-畢業(yè)答辯PPT模板
評論
0/150
提交評論