




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