振蕩信號的“包絡”是一條平滑的曲線,概述了其極端情況。我們可以使用這樣的包絡來幫助我們控制音頻反應產物。
您可能還記得我以前與MEGEQ7相關的專欄文章“與MSGEQ7一起使用的最佳MEMS麥克風”,我們把事情留在了懸崖峭壁上。
我們的想法是,我們要創建動態范圍大的音頻無反應的工件。讓我們假設工件的輸出包括閃爍的三色LED(在我的項目中,這是一個相當安全的假設)。如果環境安靜,那么理想情況下,只需在房間的一半處單擊手指或輕聲說話,即可觸發明顯的響應。或者,如果我們被喧鬧的音樂轟炸,那么,不是所有的LED都飽和到全開狀態,而是如果系統可以繼續以有意義的方式響應,那就太好了。
帶有自動增益控制的MAX9814我們最后要看的麥克風是基于Maxim基于MAX9814的駐極體麥克風放大器,帶有自動增益控制(AGC)突破板(BOB),Adafruit的價格僅為7.95美元。該BOB的一個小問題是它輸出具有1.25V直流偏置的2V峰峰值(Vpp)信號,如下所示。
典型的MAX9814輸出(來源:Max Maxfield,來自picture.com)
之所以會出現此問題,是因為我們使用的MSGEQ7音頻頻譜分析儀芯片更喜歡300 mVpp信號。在我們解決了這個辦法是一個分壓器添加到MSGEQ7的輸入。
我們接下來要考慮的是,除了MAX9814的AGC功能之外,MAX9814 BOB還具有一個主GAIN輸入。使用此輸入,我們的Arduino(或您選擇的微控制器)可以指示BOB將其主增益設置為60 dB(1,000),50 dB(?316)或40 dB(100)。為了知道如何以及何時執行此操作,Arduino必須了解正在發生的事情。因此,除了將MAX9814 BOB的輸出饋送到分壓器的輸入之外,我們還建議通過未定義的“黑匣子”(我們稱為“電路?”)饋送它。在通往Arduino模擬輸入之一(下圖中的輸入A2)的途中。
擬議的MAX9814 BOB和MSGEQ7實現(資料來源:Max Maxfield)
這里的想法是我們需要某種方式讓Arduino計算出來自麥克風BOB的信號有多響。如果BOB設置為40 dB,并且其輸出在一段時間內處于低電平(實際持續時間待定),那么Arduino可以決定將增益提高到50 dB或60 dB。相比之下,如果BOB設置為60 dB,并且其輸出在一段時間內處于全開狀態,則Arduino可以決定將增益降至50 dB或40 dB。
那么Arduino如何確定發生了什么呢?好吧,我們可以替換“電路?”用一條簡單的線進行阻止,然后在軟件中完成所有這些操作。如果假設我們在代碼中將模擬引腳A2稱為“ PinMicBob”,則可以執行以下操作:
aSig = analogRead(PinMicBob);
aSig = abs(aSig - DC_OFFSET);
在這種情況下,DC_OFFSET先前已定義為256,等于Arduino模擬輸入上的1.25 V,其中0-V至5-V模擬值映射到0至1023的數字等效值。執行后,這將導致Arduino從如下所示波形中的某處“看到”一個樣本:
已處理的MAX9814輸出(來源:Max Maxfield,來自picture.com的波形)
這里的問題是僅憑一個樣本是不夠的。Arduino可以在大聲序列的中間隨機擊中一個狹窄的傾角,也可以在另外一段安靜的音樂中發生的狹窄尖峰中擊中一個較高的值。
這里的一種解決方案是在一定時間范圍內進行一系列采樣。根據我們要執行的操作(即,我們試圖產生的效果),我們可以查找采樣期間發生的最小值和最大值,或者可以計算平均值,或者…有很多事情我們可以在這里做。
一方面,我喜歡在軟件中做事的想法,因為它消除了對其他組件的需求,并且使事情在進行過程中易于更改。另一方面,我喜歡使用Arduino Nano,Uno和Mega板,但是它們的8位處理器僅在16 MHz上運行,如果我們將它們負擔過多的任務,它們可能很快就會耗盡精力。因此,另一種基于硬件的解決方案將取代我們的“電路”。帶有“包絡”生成電路的模塊,如下所述。
包絡生成電路
在物理學和工程學中,振蕩信號的“包絡”是一條平滑的曲線,概述了其極端情況。因此,包絡概括了恒定振幅的概念。因此,我們要做的是創建一個電路,將來自麥克風BOB的音頻信號作為輸入,然后輸出對應于上包絡線的電壓,如下所示:
原始波形,帶有上,下包絡線(頂部)和僅上包絡線(底部)(來源:Max Maxfield,來自picture.com)
請記住,上面的插圖只是我在Visio中放在一起的東西-實際版本可能看起來略有不同。我們想要的是選擇用于創建電路的組件值,以使其響應速度足夠慢,以平滑任何窄的正向或負向尖峰,同時仍然設法快速響應,從而為我們提供“感覺”發生的事情。
我之前已經說過,我會再說一遍:我是一名行業的數字硬件設計工程師,所以搖擺不定的模擬信號和電路會使我不知所措。因為我不喜歡被搞亂了(我不像年輕時那樣我曾經是),我就打電話給我EEWeb專家密友彼得“Traneus雷克斯”安德森來幫助反彈一些想法左右。
彼得開始嘗試“使用電容器和兩個二極管的半波倍頻器”,但我開始感到頭暈,因此我們決定最簡單的選擇是將單個二極管用作半波整流器,然后再使用RC過濾器,如下所示(已選擇組件標識符R3a,R3b,R3c和C3的名稱,以便它們不會與我們之前的任何電路發生沖突):
音頻包絡發生器的擬議實現方式(來源:Max Maxfield)
現在,請記住,MAX9814 BOB輸出上的直流偏置為1.25V。1N4001二極管上的壓降為1.1 V,因此即使沒有音頻信號,二極管的輸出也將為1.25 V-1.1 V = 0.15 V,因此,這是電容器要充電的基值。
高于DC偏置的任何音頻信號都將通過由電阻器R3a和電容器C3形成的RC濾波器為電容器充電。同時,當音頻信號的強度下降時,電阻器R3c用于使電容器放電。最后但并非最不重要的一點是,我們添加了電阻R3b以保護Arduino的輸入。
結合使用我們的MAX9814 BOB和我們的包絡生成電路,我們期望看到的信號將被呈現給Arduino的模擬輸入,看起來應該像下面這樣:
信號源為MAX9814 BOB的包絡發生器的輸出(來源:Max Maxfield)
當然,如果需要,我們可以消除軟件中殘留的0.15-VDC偏置。另外,如果需要,我們可以在軟件中重新縮放信號(盡管這樣做沒有任何意義)。
當然,我們仍然會在信封中看到“峰值”和“谷”,因此我們可能希望通過每毫秒左右的采樣來保持“滾動平均值”,但至少所有“ spikey”都具有已被刪除。
因此,我敢打賭,您想問一下我們如何得出信封生成器中顯示的組件值。實際上,這非常容易,而且絲毫沒有讓我感到疲倦。這種工作方式是我對彼得說的:“我們應該使用哪些組件值?”他回答說:“讓我們從1kΩ的R3a和R3b,100kΩ的R3C,0.47μF的C3開始,看看我們如何去那里-我們以后可以隨時對其進行調整。”我不了解您,但我很難對這樣一個合理的論點提出異議。
那么接下來會發生什么呢?
顯而易見的下一步是將電路實際放在一起-包括分壓器和包絡發生器在內的整個enchilada-看看會發生什么(不要忘記,MSGEQ7需要更多的電阻和電容,如我在“MSGEQ7技巧和竅門”列):
完整的辣醬玉米餅餡(來源:Max Maxfield)
一如既往的問題是,我迫切需要時間。令人高興的是,來自孟加拉國達卡的EEWeb社區成員Nazmul Hasan也正在玩這種事情(我們一直在交換想法和建議的電子郵件)。
納茲穆爾(Nazmul)從Adafruit訂購了MAX9814 BOB,他很樂意進行一些實驗,包括在包絡發生器中試用組件值,并捕獲示波器的屏幕??截圖,以向我們展示其余情況。
時間充裕……
您還記得我的“用愛迪生燈泡點亮您的言語”專欄嗎?我的想法是,我希望能夠將愛迪生燈泡的強度調節為語音的函數(使用聲卡或我自己講話)。好吧,我只是在想這個包絡發生器會提供一個很好的起點-我可以使用Arduino來監視包絡并驅動控制電路,但現在恐怕這個事不宜人了(太多有趣的事情了)要做的事情,沒有足夠的時間來全部完成)。
同時,我認為構建一個集成了MEGEQ7和包絡發生器功能的小型電路板將是很棒的。可能是我們還在其中添加了MAX9814 BOB功能。這樣,我們將擁有一塊單板,可以與我們選擇的微控制器一起使用,以在將來驅動我們所有的音頻反應工件。
編輯
-
放大器
+關注
關注
143文章
13640瀏覽量
214375 -
mems
+關注
關注
129文章
3968瀏覽量
191208 -
麥克風
+關注
關注
15文章
646瀏覽量
54993 -
振蕩信號
+關注
關注
0文章
24瀏覽量
7311
發布評論請先 登錄
相關推薦
FAN3850A麥克風前置放大器的典型應用
用于FAN3850A麥克風前置放大器的典型應用立體聲麥克風電路
使用NODEMCU ESP8266和MAX9814駐極體麥克風模塊,如何將音頻樣本流式傳輸到服務器?
如何使用NodeMCU v3 ESP8266和MAX9814麥克風連續錄制?
MAX9814中文資料pdf
MAX9814 具有AGC和低噪聲麥克風偏置電路的麥克風放大
![<b class='flag-5'>MAX9814</b> 具有AGC和低噪聲<b class='flag-5'>麥克風</b>偏置<b class='flag-5'>電路</b>的<b class='flag-5'>麥克風</b><b class='flag-5'>放大</b>](https://file1.elecfans.com//web2/M00/A5/3B/wKgZomUMN3-ALxA6AAAtkCY7XaE329.gif)
MAX9814麥克風放大器的數據手冊免費下載
![<b class='flag-5'>MAX9814</b><b class='flag-5'>麥克風</b><b class='flag-5'>放大器</b>的數據手冊免費下載](https://file.elecfans.com/web1/M00/86/28/o4YBAFx8l1SAUTfdAACM-S920Cc867.png)
評論