<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 模擬技術 > 設計應用 > 使用現(xiàn)成SoC實現(xiàn)的高質量PDM麥克風接口

          使用現(xiàn)成SoC實現(xiàn)的高質量PDM麥克風接口

          作者: 時間:2016-10-16 來源:網(wǎng)絡 收藏

          什么是PDM,它在我的麥克風中起什么作用?

          本文引用地址:http://www.ex-cimer.com/article/201610/308030.htm

          PDM指脈沖密度調制,一種用來調節(jié)雙電平信號的格式之一,即在k概率下處于一種狀態(tài),在1-k概率下則處于另一種狀態(tài)。如果狀態(tài)分別以1和0來表示,那么可視為某種“邏輯”信號,該信號值為k,可以是表示任意高精度的實數(shù)。

          在脈沖密度調制中,信號活動以同步到某時鐘(需要由解碼器提供)的脈沖形式存在。至少在理論上,這些脈沖的等寬與時鐘間隔相同,且信號值基本上要么為高電平要么為低電平。這些脈沖的瞬時密度即為所需信號的編碼,50%=無活動,高于50%=正壓,低于50%=負壓。調制信號的頻率分量一般遠低于時鐘頻率,比如麥克風的音頻。

          其他可用任意高精度分數(shù)k來表達的在1和0之間交替的信號類型有:PWM,即脈沖寬度調制(此時改變的是1和0部分的相對寬度)和PFM。PFM不是意大利前衛(wèi)搖滾樂隊,而是一種通過修改連續(xù)等寬脈沖的頻率(F)來調整其平均值的方法。讀者可以練習計算F參數(shù)值。

          現(xiàn)在不知讀者有沒有注意到我們已經(jīng)暗示了答案。對許多應用來說,如果信號是由一串不斷改變密度、寬度或頻率的脈沖直接組成,那會相當麻煩。這樣的信號中存在過多的高頻寄生信號。不過如果用足夠長的時間來求得這樣的脈沖序列的平均值,就可以減輕這種變化造成的影響。

          在PDM輸出麥克風內部,可以發(fā)現(xiàn)一個小型ADC IC(調制器),其用于將MEMS傳感器輸出的模擬信號轉換為PDM信號流。這種眾所周知的音頻轉換器技術所生成的信號,其低頻頻譜接近所需音頻信號,而高頻寄生部分的頻率在某個拐點頻率之上隨頻率上升快速升高,基本落在最終產(chǎn)品需要使用的音頻頻率范圍之外。

          在所有商用PDM麥克風中,噪聲頻率以每倍頻超過24dB的速率陡增。圖1顯示了用于PDM應用的ADC的典型輸出頻譜。該PDM信號流的噪聲密度在100kHz~300kHz頻率范圍內比在1kHz~3kHz頻率范圍內要大80dB(相當于增加了10000倍)。

          圖1:PDM輸出麥克風中轉換器的典型輸出噪聲頻譜

          由于調制器的這種噪聲頻譜快速上升的特征,所以我們不能僅限于平均處理。平均只是實現(xiàn)正確濾波這一過程中最起碼的一步。要成功地充分消除這種高頻噪聲,使之不至于導致任何問題,需要采取比平均更有確定性的措施。那就需要一種適當?shù)臑V波器!可以看到,在典型PDM接口使用的簡單平均法和高效率濾波方法之間,有著驚人的相似之處。

          PDM接口的作用是什么?

          簡言之,濾波器。雙電平信號(在音頻域也稱1比特信號)能夠通過快速改變其在時域上的屬性,表達低頻信號的微小變化。如果要消除全部這些高速時域噪聲,就需要采取另一種用雙電平信號表達微小變化的方法,即以幅度表達。換言之,在代碼域中而不是在時域中。

          那么接下來就把PDM雙電平音頻信號轉換為PCM(脈沖代碼調制)多電平音頻信號。過去曾認為使用16位提供的65536個電平即足以表達高質量音頻信號。但現(xiàn)在實際上每個人都希望用24位表達,即在理論上把信號幅度范圍分為將近1,700萬個電平。雖然很少有模擬系統(tǒng)能夠足夠低噪聲地真正實現(xiàn)這樣的分辨率。

          PDM麥克風的時鐘速率比一般期望的音頻采樣率要高得多。大多數(shù)PDM麥克風的時鐘頻率(即脈沖頻率)為1MHz~3MHz。PDM前端采集的音頻帶寬一般為該頻率的百分之一,基本沒有噪聲,故要讓整個音頻帶寬處于低噪水平,需要的時鐘頻率應超過2MHz。

          那么如果1個引腳要3MHz時鐘,那么24個引腳是不是要24MHz時鐘呢?答案是不需要。如果濾波功能足夠強大,能夠消除足夠多的寄生高頻噪聲,就可以在濾波器輸出端進行降采樣操作,這樣24位輸出字只會出現(xiàn)在“有規(guī)律”的音頻采樣率上。典型的抽取因數(shù)為64倍,這樣在3.072MHz頻率下1位輸入信號就會轉換為頻率為48ksps的24位輸出信號。由于降采樣抽取因數(shù)(64)高于“位增長因數(shù)”(24),實際每秒發(fā)生的數(shù)據(jù)位轉換次數(shù)有所下降,雖然并非刻意為之。

          從實際工程設計的角度來看,典型PDM麥克風應有電源引腳、接地引腳,當然還需要時鐘輸入引腳、數(shù)據(jù)輸出引腳和通道選擇引腳。根據(jù)通道選擇引腳的狀態(tài),麥克風的輸出在時鐘信號處于低電平或高電平狀態(tài)為活躍狀態(tài),在另一狀態(tài)下處于高阻抗。這種聰穎的設計意味著可以用一根話筒線多路復用兩個麥克風,這樣立體聲PDM接口僅需兩根線纜,即時鐘輸出線纜和一根同時支持兩個聲道的數(shù)據(jù)返回線。任何使用這種類型的數(shù)字麥克風接口的解決方案都會自動解復用出現(xiàn)在輸入數(shù)據(jù)線上的兩個信號。

          目前的PDM接口解決方案

          近年來,音頻轉換器芯片制造商在自己的旗艦“移動編解碼器”上紛紛推出PDM(或數(shù)字)麥克風輸入。這種全集成芯片,可提供包羅一切的從麥克風到耳機的完整信號路徑。這對此類廠商來說,易如反掌。因為音頻ADC的工作原理是生成1位或數(shù)位高采樣率輸入信號,然后“抽取”輸出信號降低采樣率。所以采用PDM麥克風可以理想地充分發(fā)揮設備上原有邏輯電路的效益。

          所以如果系統(tǒng)已經(jīng)準備采用全功能正價音頻編解碼器,這或許是一種不錯的做法。是否美中不足呢?帶有數(shù)字麥克風輸入功能的編解碼器的選擇范圍受限,所以如果不需要PDM,就有可能不能獲得某種良好功能或優(yōu)惠價格。此時得到的只是廠商已經(jīng)內置的濾波功能。對此功能難以用自己的濾波器系數(shù)重新編程,來微調頻率響應或音頻組延遲的各種特性。

          如果系統(tǒng)設計稍微偏離常規(guī),就會受到?jīng)]有現(xiàn)成可用器件的制約。如果一定要用,首先應拿到一份內容相當廣泛的濾波器基礎性能說明文檔,其中包括數(shù)頁的頻率響應圖。至少能看到要用的是什么樣的器件。但可能發(fā)生的情況是,一旦選定,這種IC又會以比管理層預想的速度更快地從新設計推薦產(chǎn)品中消失。

          如果想要把此項功能更多地交給系統(tǒng)中的主處理器來完成,可能會得到微處理器廠商提供的應用指南和代碼庫。中端32位微處理器足以勝任PDM的處理和濾波需求,雖然需要仔細查看是否還要把微處理器用于其他工作。

          毫無疑問,這種濾波功能對一般的嵌入式微控制器來說是個難題。不僅如此,實時運算還要求緩沖區(qū)大小、中斷時延及其它處理器任務的調度得到良好控制。

          這明顯需要經(jīng)驗豐富的編程人員才能完成。需要的代碼是專用的,庫文件是封閉的“黑匣子”式的,需要嚴格優(yōu)化的目標代碼、在編譯器中手動編譯且無法修改。如果庫文件不支持選定的抽取比例和輸出頻率組合,就難以進行調整。例如,如果發(fā)現(xiàn)很難支持相當標準的44.1ksps音頻速率,就必須采用48ksps。這種情況會造成某些手機制造商不滿。對此事我們不作評論。

          此外,很難對處理路徑的性能進行詳細的診斷檢查。微控制器廠商在交付高質量音頻解決方案方面一貫聲名狼藉(請參閱關于USB音頻系統(tǒng)的《謹慎選擇USB音頻微控制器:測試臺上的驚險故事》)。

          所以一般來說不得不干脆相信信號的音頻內容會得到良好的處理。如果只是設計具有某種語音識別能力的小配件,這算不上什么問題。但如果要設計的是用于高質量應用的先進超小型麥克風,就會陷入信噪比泥潭而無法自拔。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();