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

MAX9814應(yīng)用電路

MAX9814麥克風(fēng)放大器的數(shù)據(jù)手冊免費(fèi)下載

一個簡單的立體聲駐極體麥克風(fēng)前置放大器電路

基于放大器LM358和駐極體麥克風(fēng)

評論