精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用MSGEQ7音頻頻譜分析儀芯片

電子設計 ? 來源:eeweb ? 作者:Max Maxfield ? 2021-05-20 15:05 ? 次閱讀

關于使用MSGEQ7音頻頻譜分析儀芯片的所有您想知道(但又害怕問到)的信息

多年來,我已經在幾欄中討論過使用MSGEQ7頻譜分析儀芯片的問題,但是我仍然收到問題,因此我認為將所有相關信息集中到一個位置可能是個好主意。

音頻響應項目

首先,讓我們進行場景設置。假設我們想創建一些對聲音有反應的東西,例如我當前的Audio-Reactive Box項目。您可能還記得,這涉及到一個裝有假真空管的小假古董手提箱。這些燈管將使用三色LED聚寶盆從下面照亮。下圖反映了剛安裝完電子管后盒子的狀態-下一步是在電子設備上工作(我將在以后的專欄中進行討論)。

如果我們希望我們的項目(在這種情況下為盒子)對外部聲音做出反應,那么我們將需要一個麥克風。此類項目的一個很好的解決方案是MEMS駐極體麥克風(一種基于靜電電容的麥克風),并在分線板(BOB)上配有一個小型放大器

選項1:將音頻輸入到MCU中(不進行FFT)

一種選擇是將麥克風BOB的輸出直接輸入到微控制器(MCU)上的模擬輸入。對于我的大多數項目,我喜歡使用廉價而快樂的Arduino Nano,Uno或Mega MCU開發板。盡管這些在性能上都受到一些限制(8位數據總線,16MHz時鐘,各種內存以及不同數量的輸入/輸出引腳),但我真的很喜歡這些小技巧。

pIYBAGCmB7WADqRtAAAiedz6rWA122.png

將音頻信號直接饋送到MCU(來源:Max Maxfield)

觀察到我已經顯示了七個從MCU發出的LED(或LED串)。實際上,由于我們將要使用基于WS2812的NeoPixels,它們可以菊花鏈連接在一起并且可以單獨控制,因此我們可以用單個引腳驅動所有LED,但是顯示7串字符串將使事情變得更加清晰。

理想情況下,對于此設置,麥克風BOB的輸出應具有2.5V的DC偏置和5V的pp(峰峰值)擺幅,這與Arduino Nano / Uno / Mega的電源匹配(一個選項這是來自Adafruit的具有可調增益的MAX4466)。Arduino使用10位模數轉換器ADC)。這意味著當我們對音頻信號執行AnalogRead()函數時,Arduino會將0至5V之間的輸入電壓映射為0至1023之間的整數值。

現在,您可能在想,由于我們的LED要求控制值的范圍是0到255,所以這意味著我們需要將ADC的0到1023的值映射到LED的0到255的等效值,但是還不止這些這很復雜。假設我們從5Vpp正弦波開始,如下圖(a)所示:

o4YBAGCmB8GAUZCyAAHJrsoEd3c274.png

處理正弦波(來源:Max Maxfield)

在這種情況下,如果我們在一定數量的讀數上對樣本取平均值,則最終的平均值為511。問題是,如果我們要對4Vpp信號中的多個樣本取平均值,我們將獲得相同的511值。一個3Vpp信號,或者…您明白了。

因此,我們需要做的第一件事就是校正信號,如上面的(b)所示。我們可以使用一個簡單的公式來做到這一點,如下所示:如果數字樣本的值等于或大于512,我們將其保持原樣。如果它的值為511或更低,則將其從1,023中減去。接下來,我們需要消除直流偏置,這是通過從每個值中減去511來實現的,如上面的(c)所示。

最后,我們需要將0到511的值映射到LED所需的0到255的值,如上面的(d)所示。我們可以使用Arduino的map()函數來實現這一點。另外,我們可以簡單地將0到511的值除以2,或者將它們向右移一位,這兩者將具有相同的效果。(如果BOB的輸出具有不同的DC偏置和/或較小的pp擺幅-例如1.25V的DC偏置和2Vpp擺幅,則可以在軟件中適當地重新縮放/預處理信號。)

使用上述基本設置,每次采樣時,我們可以從音頻信號中收集到的唯一信息就是其當前幅度。關于驅動我們的LED,我們可以利用這些信息做幾件事。例如,我們可以用相同的顏色驅動所有LED,同時根據音頻信號的幅度改變它們的強度。或者,我們可以將所有LED完全驅動,同時根據音頻信號的幅度改變它們的顏色。而且,當然,我們可以結合使用這些技術。

記住我們正在設想七串(組)LED,另一種可能性是將音頻信號分成七個“振幅帶”。每次采樣信號時,我們都會決定要點亮哪些LED。如果信號落入最低振幅帶,我們可以簡單地點亮第一串LED。如果信號落入下一個振幅帶,我們可以僅驅動第二串LED,或者我們可以決定同時驅動第一串和第二串LED。依此類推,直到信號落入最高振幅帶,此時我們只能驅動第七串LED,或者我們可以決定驅動所有的LED。而且,當然,我們還可以嘗試各種琴弦的振幅和顏色。

選項2:使用FFT軟件將音頻輸入到MCU中

如果我們決定將音頻信號分成單獨的頻段,事情將變得越來越有趣。例如,在這種情況下,我們可以使用底鼓的節拍來控制一組LED,而另一組可以響應較高的頻率,例如一分錢的汽笛聲。

盡管隨著年齡的增長,我們聽到較高頻率的能力會下降,但是人類的正常聽力范圍會覆蓋20到20,000Hz之間的頻率。假設我們將0到20,000Hz的范圍分成以63Hz,160Hz,400Hz,1,000Hz,2,500Hz,6,250Hz和16,000Hz為中心的七個重疊頻段,如下所示:

pIYBAGCmB-iARavrAADN7-VHQqQ663.png

將音頻信號劃分為七個頻段(來源:Max Maxfield)

在這種情況下,我們可以使用七個頻帶的幅度來控制七組LED的強度和/或顏色,但是如何從麥克風BOB的音頻信號中提取該頻帶信息呢?

不錯,一種選擇是使用在MCU上運行的軟件算法來實現FFT(快速傅立葉變換)功能。此功能可用于將我們的信號從其原始時域形式轉換為頻域中的相應表示形式。

o4YBAGCmB_OAQIZFAAAovgyaHBc873.png

將音頻信號直接饋送到運行SW FFT的MCU(來源:Max Maxfield)

軟件(SW)FFT可能需要計算,但是如果您真的想走這條路,可以使用許多Arduino FFT庫(有關更多信息,請參見Adafruit的Piccolo Music Visualizer項目)。

說實話,如果我想使用軟件FFT的,我可能會使用一個32位Teensy 3.2(72MHz的的Cortex-M4型)或Teensy 3.6(基于的Cortex-M4F-180MHz的)單片機開發板從PJRC,以及出色的音頻FFT庫。但是,我個人更喜歡使用硬件(HW)FFT替代方案,如下所述。

選項#3:通過MSGEQ7音頻頻譜分析儀提供音頻
讓我們從建議的系統的高級視圖開始。在這種情況下,來自麥克風BOB的輸出被饋入一個名為MSGEQ7的漂亮的8針小芯片,該芯片由一家名為Mixed Signal Integration的公司創建。該音頻頻譜分析儀芯片可與3.3V和5V MCU配合使用,將音頻信號劃分為前面討論的七個頻段,并以一種易于我們的MCU輕松訪問的形式顯示與這些頻段相關的幅度數據。稍后)。

pIYBAGCmB_-APyyYAAAutchUEZ0926.png

通過MSGEQ7硬件FFT饋送音頻信號(來源:Max Maxfield)

這種方法的最好之處在于,它可以消除您(和您的MCU)的所有辛苦工作。您要做的就是從MSGEQ7訪問頻帶幅度數據,然后決定如何使用它來驅動LED。

非常重要:該MSGEQ7數據表是不是很有益,因為人們可能希望,但它意味著該裝置預計有0.3Vpp(即300mVpp)擺動的音頻輸入。這意味著您必須相應地選擇麥克風。我將在以后的專欄中討論不同的麥克風替代品。就目前而言,我只是注意到我的好友史蒂夫·曼利(Steve Manley)已成功將MSGEQ7與來自SparkFun的男生和女歌手的INMP401 MEMS麥克風BOB配合使用(該視頻的鏈接在本專欄的稍后部分將展示史蒂夫的解決方案)。據說該BOB“在話筒保持臂長并以正常的對話音量進行通話時,具有約200mV的峰峰值輸出。”

介紹MSGEQ7
因此,我們來介紹一下MSGEQ7本身。通孔(LTH)和表面貼裝技術(SMT)封裝都提供這種小流氓。LTH版本可從SparkFun獲得,價格僅為4.95美元(也提供MSGEQ7 BOB;我們將在短期內返回這些內容)

pIYBAGCmCAqAPTPnAAC2Kl_84JY148.png

8針MSGEQ7頻譜分析儀芯片和引腳排列(來源:Max Maxfield)

觀察到只有一個DATA_OUT信號,那么我們如何使用它來訪問與七個頻段關聯的數據?為了回答這個問題,我們需要考慮一下MSGEQ7內部的框圖,如下所示:

pIYBAGCmCBaAeS5BAAFON8AD-9Q562.png

MSGEQ7框圖(來源:Max Maxfield)

這種工作方式是,我們使用來自MCU的兩個數字輸出來驅動RESET和STROBE信號,并且使用MCU上的模擬輸入來從DATA_OUT信號中讀取值。首先,我們在RESET信號上使用一個正向脈沖來告知MSGEQ7,我們正在準備訪問其數據,然后在STROBE信號上使用一系列的七個負向脈沖來讀取與這七個頻率相關的數據樂隊。此數據表示為0V至5V之間的模擬電壓(對于3.3V供電的MCU /系統,則為0V至3.3V),如果是Arduino及其10位ADC,則將轉換為0到1023之間的整數值。

pIYBAGCmCCeAa07oAAIU2QrPyMA248.png

MSGEQ7時序圖(來源:Max Maxfield)

當然,我們會反復進行此操作,從MSGEQ7讀取數據,然后使用此數據來決定我們希望如何驅動LED。下面是一個示例Arduino函數,用于訪問此數據并將其存儲在7個元素的整數數組中,這些整數稱為bands []:

o4YBAGCmCDSABseDAAG-JSd6h6U417.png

觀察到我并沒有費心在兩個對RESET信號進行脈沖的digitalWrite()語句之間添加延遲,因為它被指定為最小值為100ns(0.1us),該最小值很小,以至于它被固有的延遲所淹沒。函數調用自己。

MSGEQ7電路圖和分支電路板

如果計劃使用單個MSGEQ7處理單個(單聲道)音頻流,則要使用的電路圖如下所示:

pIYBAGCmCEKAXb4IAAE9wmDlMmQ890.png

具有單聲道輸入的單個MSGEQ7(來源:Max Maxfield)

觀察到C2顯示為0.1uF(該電容器可消除輸入音頻信號中的任何DC偏置)。官方MSGEQ7數據手冊中的等效電容器顯示為0.01uF,但這是不正確的。

如果您希望使用單個MSGEQ7來處理雙(立體聲)音頻流,則可以通過添加一個額外的22KΩ電阻來修改上圖的輸入,如下所示:

o4YBAGCmCE6AP-myAACU_VkMnNE230.png

支持立體聲輸入的單個MSGEQ7(來源:Max Maxfield)

與自己進行接線相反,您可以從eBay購買MSGEQ7 BOB。售價$ 15.95加上運費,這雖然有點貴,但這確實意味著您可以實地工作。需要注意的一點是,默認情況下,它將附帶5針接頭連接器和立體聲插孔。如果您愿意,賣方將保留這些附件,但您下訂單時必須要求。

正如您在本視頻中看到的那樣,在Cunning Chronograph中實現音樂模式時,我使用了一個帶有雙輸入的MSGEQ7。

在這種情況下,與使用麥克風不同,我直接從iPod的耳塞/耳機插孔中喂入了MSGEQ7。相比之下,正如您在本視頻中看到的那樣,我的好友史蒂夫·曼利(Steve Manley)使用我們之前簡要提到的SparkFun的INMP401 MEMS麥克風BOB在他的狡猾計時碼表中駕駛了MSGEQ7。

當然,對于某些事情(例如我的BADASS顯示器),您想要實現真正的立體聲功能。在這種情況下,您可以使用兩個MSGEQ7芯片來處理左右聲道的音頻流(您可以使用MCU的單個輸出來驅動兩個MSGEQ7上的RESET引腳;類似地,您可以使用單個輸出來驅動STROBE引腳)。

通過觀看BADASS顯示器早期原型的視頻,您可以更好地了解所有這些工作原理

編輯:hfy

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • led
    led
    +關注

    關注

    241

    文章

    23136

    瀏覽量

    658466
  • mcu
    mcu
    +關注

    關注

    146

    文章

    16992

    瀏覽量

    350311
收藏 人收藏

    評論

    相關推薦

    使用MSGEQ7頻譜分析儀的技巧和竅門

    ”和“使用MSGEQ7音頻頻譜分析儀時的噪聲處理”。 您可能還記得,MSGEQ7是一款便宜的八針設備,可以接收音頻信號并將其分成與以63 Hz,160 Hz,400 Hz,1,000
    的頭像 發表于 05-20 14:50 ?7789次閱讀

    頻頻譜分析儀、矢量信號分析儀及實時頻譜分析儀的工作原理及差異

    掃頻式頻譜分析儀是傳統頻域測量儀器,是傳統結構的掃描調諧超外差頻譜分析儀,掃頻頻譜分析儀的出現使得工程師在幾十年前就能夠進行頻域測量。
    的頭像 發表于 02-22 14:53 ?1736次閱讀
    掃<b class='flag-5'>頻頻譜分析儀</b>、矢量信號<b class='flag-5'>分析儀</b>及實時<b class='flag-5'>頻譜分析儀</b>的工作原理及差異

    如何用Pico示波器做音頻頻譜分析

    頻譜分析儀的分類有哪些?如何用Pico示波器做音頻頻譜分析
    發表于 05-08 09:00

    什么是頻譜分析儀

    什么是頻譜分析儀 頻譜分析儀的英文全稱:Spectrum Analyzer 頻譜分析儀系統主要的功能是在頻域里顯示輸入信號的頻譜特性.
    發表于 11-26 11:20 ?4654次閱讀

    頻譜分析儀原理

    頻譜分析儀原理 頻譜分析儀基本原理實現框圖
    發表于 11-26 11:26 ?4638次閱讀

    Bird微波射頻頻譜分析儀分析

    手持式射頻頻譜分析儀 Bird微波SignalHawk?系列手持式頻譜分析儀搭配了一個緊湊型和經濟實惠的封裝形式一流的功能模塊。Bird微波SignalHawk?系列分析儀具備相對高度便攜式
    發表于 11-10 15:28 ?778次閱讀

    MSGEQ7 一起使用的最佳 MEMS 麥克風

    的提示和技巧”和“使用 MSGEQ7 音頻頻譜分析儀時處理噪音”。 您可能還記得,MSGEQ7 是一款便宜且令人愉悅的八針設備,它接受音頻信號并將其分成與以 63 Hz、160 Hz、
    發表于 07-30 16:29 ?1464次閱讀
    與 <b class='flag-5'>MSGEQ7</b> 一起使用的最佳 MEMS 麥克風

    使用MSGEQ7和32x8 NeoPixel的頻譜分析儀

    電子發燒友網站提供《使用MSGEQ7和32x8 NeoPixel的頻譜分析儀.zip》資料免費下載
    發表于 11-02 14:58 ?4次下載
    使用<b class='flag-5'>MSGEQ7</b>和32x8 NeoPixel的<b class='flag-5'>頻譜分析儀</b>

    實時音頻頻譜分析儀開源分享

    電子發燒友網站提供《實時音頻頻譜分析儀開源分享.zip》資料免費下載
    發表于 12-29 11:54 ?9次下載
    實時<b class='flag-5'>音頻頻譜分析儀</b>開源分享

    頻頻譜分析儀的結構框圖

      頻譜分析儀的功能是要分辨輸入信號中各個頻率成份并測量各頻率成份的頻率和功率。為完成以上功能,在掃描-調諧頻譜分析中采用超外差方式,它能提供寬的頻率覆蓋范圍,同時允許在中頻(IF)進行信號處理。圖1是超外差式掃頻頻譜分析儀的結
    的頭像 發表于 12-30 11:24 ?2224次閱讀
    掃<b class='flag-5'>頻頻譜分析儀</b>的結構框圖

    2x16頻段音頻頻譜分析儀

    電子發燒友網站提供《2x16頻段音頻頻譜分析儀.zip》資料免費下載
    發表于 02-13 16:36 ?1次下載
    2x16頻段<b class='flag-5'>音頻頻譜分析儀</b>

    使用Arduino制作32波段音頻頻譜分析儀/可視化

    電子發燒友網站提供《使用Arduino制作32波段音頻頻譜分析儀/可視化.zip》資料免費下載
    發表于 06-25 15:49 ?6次下載
    使用Arduino制作32波段<b class='flag-5'>音頻頻譜分析儀</b>/可視化<b class='flag-5'>儀</b>

    頻譜分析儀的使用方法

    頻譜分析儀的使用方法? 頻譜分析儀是一種用于測量電子信號頻譜的儀器,廣泛應用于通信、無線電、音頻等領域。它可以分析信號的頻率、幅度、相位等參
    的頭像 發表于 09-19 16:03 ?2196次閱讀

    頻頻譜分析儀與實時頻譜分析儀的區別

    在電子測量領域中,頻譜分析儀是一種至關重要的工具,它能夠幫助工程師和技術人員精確地測量和分析信號的頻譜特性。傳統的頻譜分析儀,如掃頻頻譜分析儀
    的頭像 發表于 05-13 18:04 ?1595次閱讀

    頻頻譜分析儀的工作原理和基本結構

    頻頻譜分析儀,作為電子測量領域的重要工具,其重要性不言而喻。本文將對掃頻頻譜分析儀進行全面深入的解析,包括其定義、工作原理、基本結構以及在實際應用中的優勢和局限性。通過本文的介紹,讀者將能夠全面了解掃頻頻譜分析儀的相關知識,為
    的頭像 發表于 05-13 18:07 ?1356次閱讀