亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Arduino平臺的數(shù)字音符實時顯示設計*

        2016-06-01 00:46:50郭之亨王帥李良榮
        關鍵詞:音調音符

        郭之亨,王帥,李良榮

        (貴州大學 大數(shù)據(jù)與信息工程學院, 貴陽 550025)

        ?

        Arduino平臺的數(shù)字音符實時顯示設計*

        郭之亨,王帥,李良榮

        (貴州大學 大數(shù)據(jù)與信息工程學院, 貴陽 550025)

        摘要:國內(nèi)外在音頻顯示領域早已有研究,但都停留在用柱狀圖定性顯示音調高低層面。為了能實時定量顯示音調的高低,通過對音頻信號進行快速傅里葉變換(FFT),提取基波頻率,并將基波頻率轉化為音符(文中音符都指的是C調下的數(shù)字音符),最終用音符在LCD屏幕上顯示音頻中音調的高低。本設計的創(chuàng)新點是在前人研究基礎上,讓音頻以近似于音樂簡譜的形式呈現(xiàn)出來,方便音樂愛好者的認知與學習。

        關鍵詞:Arduino;FFT;音符;音調

        引言

        科技的發(fā)展讓人們的生活學習變得更方便,其中“智能化”是當前科技發(fā)展的一個主要趨向,之前需要人工完成的工作,現(xiàn)在越來越多的交由計算機完成。本設計的目的是用單片機技術,實現(xiàn)以音樂簡譜的形式在屏幕上顯示音頻中的音調高低,替代之前的人工“翻譯”工作,以降低音樂愛好者學習的難度。

        設計用到的設備有Arduino開發(fā)板、音頻傳感器和LCD顯示器。其中,Arduino具有使用類似Java、C語言的Processing/Wiring開發(fā)環(huán)境[1]。硬件連接示意圖如圖1所示。

        圖1 數(shù)字音符實時顯示硬件連接示意圖

        1實現(xiàn)原理

        發(fā)音物體有規(guī)律地振動而產(chǎn)生的具有固定音高的音稱為“樂音”,比如鋼琴、小提琴、二胡等都是能發(fā)出樂音的樂器。從聲學的角度分析,樂音有3個主要特征[2]:響度、音調和音色,其中音調由每個樂音的基波頻率決定[3],用音符來表示,比如基波頻率為494 Hz的樂音對應的音符為。通過使用快速傅里葉變換(FFT)對任意樂音信號進行分析可知,在變換后的各頻率中基波頻率對應的幅值最大[4]。利用這一特性就可把基波頻率提取并經(jīng)過后續(xù)一系列換算,最終將其轉化為音符顯示出來。

        2實現(xiàn)方法

        2.1信號的輸入以及對信號的采樣

        由奈奎斯特采樣定理[5]可以知道,采樣頻率必須大于等于信號最高頻率的2倍才不會發(fā)生信號混疊,由于本次設計測量的音頻信號主要為2 000 Hz以下的中低頻,所以選擇采樣頻率為5 120 Hz(即每隔約195 μs采樣一個點)。通過音頻傳感器將被測聲音轉換為音頻信號輸入到Arduino的ADC(A0)接口,對輸入的信號每隔250 ms進行一次采樣,每次采樣點數(shù)為256點、用fs、n、f0分別表示采樣頻率,采樣點數(shù)和頻率分辨率、則f0=fs/n,所以對音頻信號做256點FFT變換之后的頻率分辨率為20 Hz。

        2.2基波頻率的提取

        對采樣之后的數(shù)據(jù)做FFT變換,將變換之后幅值最大的點對應的序號賦值給num變量,num變量乘以頻率分辨率20 Hz即為基波頻率,用公式表示為fn=num× f0(其中,fn為基波頻率,本次設計f0=20Hz)。

        2.3音符的顯示

        本次設計所能顯示的音符為十六分音符,八分音符和四分音符。假定十六分音符的時長為250 ms,則根據(jù)各音符之間的時值關系,八分音符和四分音符的時長分別為500 ms和1 s。

        將提取的基波頻率先按設定的音符范圍轉化為對應的數(shù)字,然后每16個數(shù)字作為一組數(shù)據(jù)按先后順序依次放入一個大小為16的整型數(shù)組m[]中。對m[]中相鄰且相同的元素進行合并,將合并后的元素乘以10,進行兩次循環(huán)合并。合并之后的元素若不能被10整除,則對應顯示的音符下面加“=”;若能被10整除且不能被100整除,則音符下面加“-”。當下一組數(shù)據(jù)到來時,m[]清空之前的數(shù)據(jù),重新接收下一組數(shù)據(jù)。因為相鄰兩個基波頻率的提取時間間隔約為0.25 s,所以每組數(shù)據(jù)的提取以及每組音符在LCD上顯示的時間約為4 s(16×0.25 s)。

        2.4主要程序

        音符實時顯示程序如下:

        for (int i = 0 ; i < 512 ; i += 2){//采樣256個點

        delayMicroseconds(195);//采樣時間間隔為195 μs

        while(!(ADCSRA & 0x10)); //開始采樣

        ADCSRA = 0xf5;

        byte m = ADCL;

        byte j = ADCH;

        int k = (j << 8) | m;

        k -= 0x0200;

        k <<= 6;//形成一個16位的整型數(shù)據(jù)

        fft_input[i] = k;//將采樣得到的數(shù)據(jù)放置在

        //fft_input[]的實部中

        fft_input[i+1] = 0;//將fft_input[]虛部置零

        }

        fft_window();fft_reorder();//調整fft_input[]中的數(shù)

        //據(jù)以便進行FFT變換

        fft_run();

        //對fft_input[]中的數(shù)據(jù)進行FFT變換

        fft_mag_lin();//將FFT變換之后的各頻率幅

        //值按次序存入fft__lin_out()

        for (byte i = 3,max=0,num=3 ; i < 128 ; i++){

        /*提取最大值點對應的頻率的序號,為排除直流信號的影響,i從3開始而不是從0*/

        if(fft_lin_out[i]>max) max=fft_lin_out[i],num=i;

        }

        if(i==127){ //將num變量轉換為其代表的頻率所對應的數(shù)字

        if(2

        else if(12

        //限于篇幅,結構相似的程序用省略號代替

        ……

        else if(num>94) {m[l]=117;l=l+1; }

        }

        for(byte i=0;i<16;i++){

        //合并數(shù)組中相鄰且相同的元素,將合并后的元素乘以10

        for(byte i=0;i<16;i++){

        if(m[i]==m[i+2]&m[i+1]==0){m[i]=0;m[i+2]=10*m[i+2];}

        for(byte i=0;i<16;i++){

        if(m[i]==m[i+1]){m[i]=0;m[i+1]=10*m[i+1];}

        }

        }

        }

        3實現(xiàn)效果

        將程序代碼寫入計算機中的Arduino IDE中,通過USB連接線將Arduino開發(fā)板與計算機連接。將程序編譯并下載入開發(fā)板中,將信號發(fā)生器產(chǎn)生的單一頻率正弦信號輸入到Arduino開發(fā)板中,LCD屏幕準確地按信號所處的頻段范圍顯示出對應音符。將單一頻率正弦信號轉換為通過音頻傳感器輸入的不斷變化的音頻信號,由于受到環(huán)境噪聲的影響和Arduino本身運算速率的限制,LCD

        Digital Notes Real-time Display Design Based on Arduino

        Guo Zhiheng,Wang Shuai,Li Liangrong

        (College of Big Data and Information Engineering,Guizhou University,Guiyang 550025,China)

        Abstract:There have been researches about the audio display,however,all those researches just care about how to show the pitch using the histogram.In order to display the tone more precise in real-time,the fundamental frequency should be extracted after the fast Fourier transform(FFT) of the audio signals.Then the fundamental frequency is converted into the digital notes of C tone.At last,the tone of audio is displayed on the LCD screen in the form of notes.This design makes the audio show approximate to the form of music,which can help people learn and study music.

        Key words:Arduino;FFT;notes;tone

        中圖分類號:TP391.4

        文獻標識碼:A

        * 基金項目:項目研究受國家自然科學基金項目(61361012)資助。

        猜你喜歡
        音調音符
        春的呼喚
        新航空(2024年3期)2024-06-03 22:25:26
        一串快樂的音符
        春天的音符
        劉濤《音調未定的儒家——2004年以來關于孔子的論爭·序》
        名作欣賞(2017年25期)2017-11-06 01:40:12
        音符(兩首)
        讀寫算(上)(2016年9期)2016-02-27 08:44:58
        決定音調高低的因素
        20世紀十大超囧的發(fā)明
        源流(2012年1期)2012-04-29 00:44:03
        變臉
        女优av性天堂网男人天堂| 日韩无码无播放器视频| 美女高潮流白浆视频在线观看| 亚洲av成人久久精品| 青青草亚洲视频社区在线播放观看| 国产又色又爽又黄的| 亚洲另类国产综合第一| 国产一级r片内射免费视频| 性生大片免费观看性少妇| 亚洲国产成人精品无码区在线秒播| 在线永久看片免费的视频| 国产精品欧美成人片| 日韩在线不卡一区三区av| 丰满的人妻hd高清日本| 亚洲国产精品久久久久久久| 日本熟妇精品一区二区三区| 久久国产在线精品观看| 精品亚洲成a人片在线观看| 欧美成人久久久| 手机在线观看成年人视频| 免费a级毛片无码a∨蜜芽试看| 性动态图av无码专区| 欧亚精品无码永久免费视频| 91九色国产老熟女视频| 久久视频在线| 国产午夜无码视频免费网站| 东京热东京道日韩av| 亚洲小说区图片区色综合网| 台湾佬娱乐中文22vvvv| 中文人妻av大区中文不卡| 国产一区二区三区在线大屁股| 孕妇特级毛片ww无码内射| 在线观看网址你懂的| 亚洲一区二区三区在线高清中文| 精品国产乱码久久久久久婷婷 | 日韩一欧美内射在线观看| 久久精品国产一区二区涩涩| 亚洲男人在线无码视频| 国产在线av一区二区| 狠狠躁天天躁中文字幕| 无码人妻少妇久久中文字幕蜜桃|