日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

51DIY音乐频谱显示

發(fā)布時(shí)間:2023/12/29 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 51DIY音乐频谱显示 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

以前,每當(dāng)看到家里的音箱功放上的幾排小燈,隨著播放的音樂(lè)如波浪般跳躍,或者在電腦上打開(kāi)千千靜聽(tīng)這個(gè)音樂(lè)播放軟件時(shí),看到那動(dòng)感的頻譜跟隨音樂(lè)節(jié)奏優(yōu)美的舞動(dòng)著時(shí),不禁思緒萬(wàn)千,要是自己某天能親手用普通的單片機(jī) DIY 這么一個(gè)東東,那將是多么有成就感的事情,至少對(duì)我們電子愛(ài)好者來(lái)說(shuō),這是許多人曾經(jīng)夢(mèng)想過(guò)的。伴隨音箱里傳來(lái)的美妙音樂(lè),原本只能“聽(tīng)”的音樂(lè),現(xiàn)在卻還能“看”,給人帶來(lái)視覺(jué)上的炫酷享受。

本文將帶領(lǐng)你動(dòng)手探究其中的奧秘,讓我們給音樂(lè)賦予一個(gè)完美的視聽(tīng)極限。

一、理論篇

(一)理論基礎(chǔ)概述

1)什么是頻譜?什么是頻譜顯示?

說(shuō)到“頻譜”這個(gè)詞,它好像是一種很神秘的東西,究竟什么是“頻譜”?這便要從波形本身的來(lái)源說(shuō)起。我們知道,一切聲音都是由振動(dòng)產(chǎn)生的。聲音之所以千變?nèi)f化各不相同,是因?yàn)樗鼈兊恼駝?dòng)各不相同。看看琵琶,吉他或者其他的弦類樂(lè)器,可以發(fā)現(xiàn)它的每一根琴弦的直徑都是不一樣的。琴弦越細(xì),音調(diào)也就越高。反之則越低。顯然粗的弦就不如細(xì)的弦振動(dòng)得快或者說(shuō)是振動(dòng)的頻率高。產(chǎn)生音調(diào)高低的不同,就是由于振動(dòng)的頻率不同。很顯然頻率越高,音高也就越高。

頻率的單位是赫茲(簡(jiǎn)寫(xiě)為 Hz),赫茲 (1857-1894),是德國(guó)物理學(xué)家,他發(fā)現(xiàn)了電磁波,為了紀(jì)念他,人們用它的名字來(lái)做為頻率的單位。所謂的一赫茲,就是一秒鐘振動(dòng)一次。那么 440Hz 呢,當(dāng)然就是每秒振動(dòng) 440 次,這個(gè)聲音就是音樂(lè)中的標(biāo)準(zhǔn) A 音,是樂(lè)器定音的標(biāo)準(zhǔn)。而鋼琴中央 C 的頻率則是 261.63Hz。

我們?nèi)说亩淠軌蚵?tīng)到的頻率范圍,是 20Hz 到 20000Hz。低于這個(gè)頻率范圍的聲音叫次聲波,而高于這個(gè)頻率范圍的聲音叫做超聲波。所以我們能聽(tīng)到的音樂(lè)的頻率,即都在人耳可聽(tīng)到的這個(gè)范圍之內(nèi),約從 20Hz 到 20KHz。

比如,下面的表格中是我們常見(jiàn)的一些人聲的基頻范圍
? 男低音 80-320Hz
? 男中音 96-387Hz
? 男高音 122-488Hz
? 女低音 145-580Hz
? 女高音 259-1034Hz

根據(jù)傅立葉分析,任何聲音可以分解為數(shù)個(gè)甚至無(wú)限個(gè)正弦波,而它們往往又包含有無(wú)數(shù)多的諧波分量。而它們又往往是時(shí)刻在變化著。所以一個(gè)聲音的構(gòu)成其實(shí)是很復(fù)雜的。將聲音的頻率分量繪制成曲線,就形成了頻譜。

對(duì)頻譜進(jìn)行分析的儀器就是頻譜分析儀,早期頻譜儀都是模擬分析的。頻譜儀的原理就是將聲音以信號(hào)通過(guò)一系列不同中心頻率的模擬帶通濾波器。每個(gè)帶通濾波器相當(dāng)于一個(gè)共振電路,其特性由中心頻率(步進(jìn)的)、頻帶寬度及響應(yīng)時(shí)間表示。在聲音信號(hào)通過(guò)濾波器后,經(jīng)過(guò)平方檢波器,并進(jìn)行平均之后,在每個(gè)頻率上測(cè)定所傳輸?shù)墓β?#xff0c;從而得到信號(hào)的頻譜。然而,傳統(tǒng)的頻譜儀受到濾波器性能的制約,因?yàn)槟M電路本身的特性所局限,濾波器的帶寬和響應(yīng)時(shí)間成反比,也就是說(shuō)模擬濾波器的頻率分辨力與時(shí)間分解能力之間存在矛盾。因?yàn)轭l譜儀所測(cè)量的往往都是非穩(wěn)態(tài)聲,一般來(lái)說(shuō),都是使用若干個(gè)濾波器來(lái)覆蓋整個(gè)頻率范圍,并將信號(hào)同時(shí)并聯(lián)地輸入到這些濾波器上去。或者使用中心頻率能夠從低到高連續(xù)變化的濾波器。

隨著科學(xué)技術(shù)的不斷進(jìn)步,現(xiàn)在我們所使用的基本不再是那些笨重而不準(zhǔn)確的模擬儀器的頻譜儀,取而代之的是基于處理器的軟件分析法。它分析的數(shù)據(jù)來(lái)源其實(shí)是經(jīng)過(guò)了 ADC(模數(shù)轉(zhuǎn)換器件)轉(zhuǎn)換后得出的數(shù)字信號(hào),所以頻譜儀軟件所測(cè)量的信號(hào)準(zhǔn)確度,很大程度取決于數(shù)模轉(zhuǎn)換電路的性能。比起模擬濾波器,數(shù)字濾波器應(yīng)該要更加迅速和精確。

2) 什么是均衡器和音樂(lè)頻譜顯示?在我們欣賞音樂(lè)的過(guò)程中有什么樣的作用?

對(duì)于錄音棚等專業(yè)級(jí)別的音樂(lè)制作來(lái)說(shuō),通常都需要對(duì)錄制的音頻信號(hào)進(jìn)行頻譜分析來(lái)輔助音頻的加工制作。當(dāng)然對(duì)于我們普通的愛(ài)好者來(lái)說(shuō),不需要那么精確的頻譜分析,我們更多的是用來(lái)略顯音樂(lè)節(jié)奏,美化環(huán)境,增添氣氛。于是,大多數(shù)的音樂(lè)播放軟件(如圖一),手機(jī),mp3,高檔的音箱設(shè)備等,都有了音樂(lè)頻譜顯示。

圖一 千千靜聽(tīng)播放音樂(lè)時(shí)的頻譜顯示

當(dāng)高級(jí)組合音響在工作時(shí),你可以看到其中有一個(gè)部件上有一排一、二十個(gè)高高低低的推式調(diào)紐按頻率高低自左而右排列,顯示一種頻率分布圖;或者是還有一、二十個(gè)高高低低的光柱在不斷地上下跳,時(shí)而中間起一個(gè)高峰,時(shí)而并排突起兩、三個(gè)高峰,而且與音樂(lè)的高低和強(qiáng)度同步,高音越是強(qiáng),高峰就偏右邊;低音越強(qiáng),高峰就偏左邊,這就是均衡器及其聯(lián)結(jié)的頻譜顯示。有時(shí),也用一排色彩不同的條紋來(lái)顯示,條紋的色彩亮度隨聲音的強(qiáng)弱而同步地改變。

我們知道,實(shí)際上每一種音樂(lè)聲,包括哪怕是一個(gè)人的獨(dú)唱,一件樂(lè)器的獨(dú)奏,都包括了一系列從低到高不同頻率的聲波,更不要說(shuō)是樂(lè)隊(duì)演奏了。如果聲音中低頻成分多,聽(tīng)起來(lái)就較厚實(shí);如果是高音成分多,聽(tīng)起來(lái)就比較明亮。有的人喜歡聽(tīng)低音成分多些,有些人喜歡聽(tīng)高音成分多些,各不相同。因此,以前的收錄機(jī)上就有一個(gè)調(diào)節(jié)高低音的旋鈕。把旋鈕指向高音部位,高音就比較強(qiáng);把旋鈕指向低音部位,低音就比較強(qiáng),這就是一個(gè)簡(jiǎn)單的均衡器

好的聲音效果,其各段頻率成分應(yīng)該有一定的比例,錄音的時(shí)候,錄音師操作調(diào)音臺(tái)就可以使各段頻率的成分得到調(diào)整。由于各種樂(lè)器的基頻高低是不同的,所以,也可以使各種樂(lè)器之間的聲音比例得到調(diào)整,常見(jiàn)的是把頻率由低至高分成 5 段或 7 段、10 段或 15 段,有經(jīng)驗(yàn)的錄音師或音樂(lè)家能聽(tīng)出哪里(哪個(gè)頻率段)“空”了,即這個(gè)頻段弱。哪里“鼓了個(gè)包”,即這個(gè)頻段過(guò)強(qiáng)。通過(guò)均衡器可以把這些予以彌補(bǔ)。又因?yàn)槊總€(gè)人對(duì)音樂(lè)中頻率分布的欣賞標(biāo)準(zhǔn)是不同的,因此,各位錄音師掌握的尺度也不同,顯示出各自的風(fēng)格。

錄音師也可以在錄音時(shí)做些“手腳”,例如,有的錄音機(jī)低音部分不太好,于是在錄音時(shí)就把低音部分加強(qiáng),這樣,在這臺(tái)錄音機(jī)上播放時(shí),低音就得到了補(bǔ)嘗,因此,你播放購(gòu)買(mǎi)收錄機(jī)隨機(jī)奉送的“試機(jī)帶”時(shí),聽(tīng)起來(lái)常常總是非常動(dòng)人的,但在播放正常的磁帶時(shí),往往就不行了。所以在正式試驗(yàn)整機(jī)和評(píng)比設(shè)備、磁帶、唱片時(shí),是不準(zhǔn)用均衡器而且要用標(biāo)準(zhǔn)試機(jī)帶的。由于每個(gè)人的欣賞和愛(ài)好的不同,有人喜歡低音“濃”些,有人則崇尚自然,也有人有時(shí)要強(qiáng)調(diào)某種樂(lè)器。因此在高級(jí)的放音設(shè)備上也有均衡器,可以根據(jù)每人不同的愛(ài)好去隨心所欲地調(diào)整頻率響應(yīng)。同時(shí),這也可以彌補(bǔ)錄音帶質(zhì)量上的某些缺陷,例如,除了頻響不平衡外,可以抑制某個(gè)頻段上突出的噪聲等。

3) 制作音樂(lè)頻譜顯示需要用到什么基礎(chǔ)知識(shí)

首先,我們采用是基于微處理器的軟件分析法,微處理器是本制作的核心部分,因此,選擇一個(gè)合適的性能與配置的微處理器是關(guān)鍵,我選擇增強(qiáng)型的 8051 單片機(jī)便能夠滿足本次制作的要求。軟件上的分析法核心是快速傅立葉算法,簡(jiǎn)稱 FFT。

4) 什么是 FFT?

FFT(Fast Fourier Transform)即離散傅立葉變換的快速算法。在數(shù)字信號(hào)處理中常常需要用到離散傅立葉變換(DFT),以獲取信號(hào)的頻域特征。盡管傳統(tǒng)的 DFT 算法能夠獲取信號(hào)頻域特征,但是算法計(jì)算量大,耗時(shí)長(zhǎng),且要求相當(dāng)大的內(nèi)存,不利于計(jì)算機(jī)實(shí)時(shí)對(duì)信號(hào)進(jìn)行處理,限制了DFT 的應(yīng)用。直到 Cooley& Tukey 在1965 年提出的快速離散傅立葉計(jì)算方法被發(fā)現(xiàn),快速傅立葉變換算法才在實(shí)際的工程中得到廣泛應(yīng)用。需要強(qiáng)調(diào)的是,FFT 并不是一種新的頻域特征獲取方式,而是 DFT 的一種快速實(shí)現(xiàn)算法,可用來(lái)將一個(gè)信號(hào)從時(shí)域變換到頻域。多數(shù)的復(fù)雜信號(hào)在進(jìn)行頻域變換之后,變換的目的實(shí)際上是從頻域里來(lái)看同一個(gè)信號(hào),從而容易分析出其信號(hào)的特性。這也是很多信號(hào)分析采用 FFT 變換的一個(gè)重要原因。另外,
FFT 能將一個(gè)信號(hào)的頻譜提取出來(lái),這在頻譜分析方面也是經(jīng)常使用的。

5) 如何使用 FFT?

首先,我們用 ADC 去采樣一個(gè)模擬信號(hào)之后,使之變?yōu)閿?shù)字信號(hào)。根據(jù)采樣定理,因音頻信號(hào)的最高頻率約為 20Khz,若 adc 的采樣頻率設(shè)置為 40Khz,既有采樣頻率大于信號(hào)頻率的兩倍,就能基本滿足要求。其次,將采樣得到的數(shù)字信號(hào),送入 FFT 進(jìn)行變換處理。通常,若我們?nèi)?N 個(gè)采樣點(diǎn),經(jīng)過(guò) FFT 運(yùn)算之后,就可以得到 N 個(gè)點(diǎn)的 FFT 結(jié)果。但通常為了方便進(jìn)行 FFT 運(yùn)算,通常 N 取 2 的整數(shù)次
方。設(shè) Fs 為 ADC 的采樣頻率,N 為傅立葉變換的點(diǎn)數(shù).則有最小分辨頻率 f=Fs/N,因此頻譜顯示的最低頻率就是 f Hz,以后每向右移一個(gè)點(diǎn),頻率值將增加 f Hz. 由于 FFT 結(jié)果的對(duì)稱性,通常只使用前 N/2 個(gè)采樣點(diǎn)的結(jié)果。

簡(jiǎn)而言之,使用 A/D 轉(zhuǎn)換器對(duì)輸入的音頻信號(hào)進(jìn)行采樣以后,經(jīng)過(guò) FFT 變換,然后取某些頻率項(xiàng)的幅值,量化顯示,驅(qū)動(dòng) LED 點(diǎn)陣,點(diǎn)亮相應(yīng)的 LED 燈。

關(guān)于采樣點(diǎn)數(shù)的選擇,要根據(jù)自己選擇單片機(jī)的實(shí)際資源情況。比如STC12A32S2 單片機(jī),只有 1280B RAM,我們?nèi)?64 點(diǎn)的 FFT 就可以滿足要求,還達(dá)到更好的視覺(jué)效果,更高的刷新頻率,以及為以后軟件擴(kuò)展留下余地。

(二)電路原理圖

  • 幾個(gè)電路設(shè)計(jì)亮點(diǎn)
  • 雙音頻插孔設(shè)計(jì),不影響正常的音頻輸出,省去了音頻分線器;

    去掉音頻輸入處理的電平移動(dòng)電路,簡(jiǎn)化電路,并加入軟自動(dòng)增益控制,實(shí)現(xiàn)自動(dòng)根據(jù)音樂(lè)的聲音大小調(diào)節(jié)顯示幅度;

    采用食人魚(yú) LED 來(lái)顯示,不僅特別的亮,而且比用普通的草帽狀 LED 效果更美,耐電流也更大,還省去了部分限流電阻,食人魚(yú) LED 有四個(gè)引腳,便于手工焊接,大量減少跳線

    圖二 MCU 部分的原理圖

    圖三 點(diǎn)陣驅(qū)動(dòng)電路圖

    (三)編程思路

  • 在主函數(shù)中,單片機(jī)通過(guò) AD 對(duì)音頻數(shù)據(jù)采樣,然后存放到數(shù)據(jù)緩存區(qū)進(jìn)行預(yù)處理,完成 AD 濾波處理,自動(dòng)增益控制信息掃描以及其他信息處理。接著,將緩存區(qū)數(shù)據(jù)送入 快速傅立葉變換(FFT)處理子函數(shù)進(jìn)行運(yùn)算。處理完后,從緩存區(qū)取出運(yùn)算結(jié)果,根據(jù)得到幅值計(jì)算出點(diǎn)陣的顯示數(shù)據(jù),并存儲(chǔ)到顯示緩存區(qū)。

  • 在中斷函數(shù)中,根據(jù)顯示緩沖區(qū)的內(nèi)容對(duì)點(diǎn)陣顯示屏進(jìn)行實(shí)時(shí)刷新點(diǎn)亮。

  • (四) 程序流程圖

    總結(jié)

    以上是生活随笔為你收集整理的51DIY音乐频谱显示的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。