• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      一種基于STM32F103C8T6單片機(jī)DSP庫(kù)的音樂頻譜

      2020-05-16 09:15:56謝志平
      軟件 2020年4期
      關(guān)鍵詞:全彩顯示屏音頻

      謝志平

      (廣東省技師學(xué)院,廣東 惠州 516100)

      0 引言

      任何周期函數(shù),都可以看作是不同振幅,不同相位正弦波的疊加。利用C語(yǔ)言編程的FFT算法[2]可以把對(duì)波形采樣回來的數(shù)據(jù)進(jìn)行轉(zhuǎn)換,一個(gè)模擬信號(hào),假設(shè)對(duì)其以某個(gè)采樣率采樣了N個(gè)數(shù)據(jù),經(jīng)過FFT換算以后,就可以獲得這段波形里面含有的不同頻率的特征,這就是頻譜。

      對(duì)于音頻信號(hào)的采集轉(zhuǎn)換,傳統(tǒng)的51單片機(jī)的ADC轉(zhuǎn)換速度雖然可以滿足要求,C語(yǔ)言編程的FFT算法比較容易編寫,但帶來的缺點(diǎn)就是執(zhí)行效率低。而且同時(shí)要滿足ADC轉(zhuǎn)換、FFT運(yùn)算及LED屏幕的數(shù)據(jù)刷新顯示和其他附加功能時(shí)會(huì)非常困難了。使用 STM32F103單片機(jī)官方的 DSP庫(kù)[2],采用里面的256位FFT變換,用匯編語(yǔ)言編寫,代碼執(zhí)行效率高,使用時(shí)只要調(diào)用接口函數(shù)即可,能同時(shí)滿足多種任務(wù)運(yùn)行功能。

      整個(gè)系統(tǒng)分為音頻采集與信號(hào)處理,紅外按鍵和顯示輸出部分,系統(tǒng)結(jié)構(gòu)如圖1所示。

      圖1 系統(tǒng)結(jié)構(gòu)框圖Fig. 1 System structure diagram

      1 硬件電路

      1.1 音頻選擇與音頻處理

      通過選擇開關(guān)可以對(duì)外置麥克風(fēng)和外部輸入音源進(jìn)行采集放大。外部話筒信號(hào)采集到聲音后,經(jīng)過三極管放大后,經(jīng)過選擇開關(guān)可進(jìn)入集成運(yùn)放進(jìn)行 10倍的反相放大。經(jīng)過放大后輸入到單片機(jī)的A/D轉(zhuǎn)換端口。外部音頻輸入J1同樣可以經(jīng)過選擇開關(guān)接入到10倍的反相放大電路進(jìn)行放大。該反相放大采用的是軌至軌運(yùn)算放大器[3]GS8551。該芯片是一種微功率,低零點(diǎn)漂移的CMOS運(yùn)算放大器,放大器有著1.8 MHz的帶寬,軌對(duì)軌輸入和輸出,單電源提電從1.8 V到5.5 V。靜態(tài)電流低至180 μA,電路見圖2。

      圖2 音頻選擇與音頻處理電路Fig.2 Audio selection and audio processing circuits

      1.2 單片機(jī)外圍與顯示屏接口電路

      外部輸入電源經(jīng)過穩(wěn)壓芯片進(jìn)行穩(wěn)壓,得到3.3 V電壓給單片機(jī)、紅外接收頭、ISP程序下載供電。采集到的音頻信號(hào)通過PA0口輸入到單片機(jī)內(nèi)部進(jìn)行轉(zhuǎn)換。一體化紅外接收頭采用普通的通用接收頭,用來接收來自遙控器的信號(hào),方便對(duì)頻譜顯示效果進(jìn)行切換。全彩點(diǎn)陣屏采用的是HUB-75B接口的室內(nèi)全彩屏。

      圖3 單片機(jī)外圍與顯示屏接口電路Fig.3 MCU peripheral interface with the display circuit

      該類型顯示屏接口定義如下:

      表1 全彩HUB-75B接口定義Tab.1 Full color hub-75b interface definition

      2 編程算法

      如果要進(jìn)行256點(diǎn)的轉(zhuǎn)換。首先使用定時(shí)器進(jìn)行定時(shí)(設(shè)置40 KHZ采樣率,最高能捕捉20 KHZ的信號(hào)),設(shè)置每次定時(shí)器溢出的時(shí)候自動(dòng)觸發(fā)一次ADC轉(zhuǎn)換。轉(zhuǎn)換完成后的數(shù)據(jù)由 DMA[4]自動(dòng)搬運(yùn)到內(nèi)存指定位置,這個(gè)采樣過程無需CPU干預(yù),提高了效率。在完成256次頻率的轉(zhuǎn)換后,等256點(diǎn)全部傳輸完才會(huì)進(jìn)入到 DMA的中斷,這樣保證了每個(gè)采樣點(diǎn)的間隔時(shí)間一致。在中斷里面將處理完成標(biāo)志置為1后再繼續(xù)轉(zhuǎn)換。

      每次轉(zhuǎn)換完成的數(shù)據(jù)用 DSP進(jìn)行 FFT換算,DSP換算成的FFT輸出結(jié)果相當(dāng)于一個(gè)復(fù)數(shù),將該復(fù)數(shù)進(jìn)行求模/2處理后,就代表了該頻率點(diǎn)對(duì)應(yīng)上的幅度值了,然后分別送入兩個(gè)數(shù)組,一個(gè)用來做柱形效果,一個(gè)用來做漂浮點(diǎn)效果。

      2.1 ADC采集

      單片機(jī)通過ADC接口讀取音頻信號(hào)的電壓值,音樂信號(hào)的頻率范圍為 20-20 KHz。由采樣定理:為采樣頻率,為頻率分辨率,N為采樣點(diǎn),所以一般情況給定了和F0時(shí)也就限制了N范圍:,信號(hào)的最高頻率為20 KHz。則FS= 4 0 KHz。為如果對(duì)信號(hào)進(jìn)行128點(diǎn)的采樣,分辯率為312 Hz。如果采樣點(diǎn)改為256,則F0= 1 56 Hz。即設(shè)置定時(shí)器溢出為0.025 ms,采樣點(diǎn)N通過宏定義即可在 DSP庫(kù)函數(shù)里 cr4_fft_256_stm32(FFT_OUT,F(xiàn)FT_IN,NPT)來實(shí)現(xiàn)。使用stm32cubemx[5]去配置這些硬件,生成基礎(chǔ)代碼即可完成相應(yīng)的功能。

      圖4 ADC轉(zhuǎn)換流程圖Fig.4 ADC conversion flow chart

      2.2 FFT算法

      ADC采集到的數(shù)據(jù)產(chǎn)生中斷后,就可以直接轉(zhuǎn)換了,通過單片機(jī)內(nèi)部的DSP進(jìn)行運(yùn)算處理,運(yùn)行DSP庫(kù)里的FFT算法函數(shù)[6]即可完成轉(zhuǎn)換。DSP官方庫(kù)里的FFT算法有三個(gè)函數(shù)庫(kù)分別為:

      cr4_fft_64_stm32.s/cr4_fft_256_stm32.s/cr4_fft_1024_stm32.s。

      以256點(diǎn)為例,F(xiàn)FT算法的過程為:首先STM32庫(kù)中給出的FFT函數(shù)格式如下:

      Void cr4_fft_1024_stm32(FFT_OUT, FFT_IN, NPT);

      其中,NPT為采樣點(diǎn),通過修改宏定義來修改NPT代表的值,此處為256;FFT_OUT和FFT_IN均是長(zhǎng)度為NPT的32位長(zhǎng)整型的數(shù)組,高16位為實(shí)部,低 16位為虛部,F(xiàn)FT_OUT [NPT]用于保存FFT之后的輸出值;FFT_IN[NPT]用于保存輸入的數(shù)值。

      對(duì)原始數(shù)據(jù)進(jìn)行FFT之后,需要對(duì)輸出數(shù)據(jù)進(jìn)行處理。設(shè)置一個(gè)循環(huán)語(yǔ)句,將要采集的頻率范圍包含在里面,去掉直流分量。將FFT_OUT [NPT]32位的值分別賦予兩個(gè)變量,一個(gè)是實(shí)部,一個(gè)是虛部。再將其求均方根后除以2就是該頻率點(diǎn)對(duì)應(yīng)的信號(hào)幅度值。

      2.3 LED數(shù)據(jù)刷新顯示

      得到了信號(hào)的幅度值后,再將這個(gè)幅度值進(jìn)行轉(zhuǎn)換成LED適合的顯示方式就形成了頻譜效果。點(diǎn)陣的分辨率比較高時(shí),為了提高系統(tǒng)的運(yùn)行效率,采用定時(shí)器中斷掃描顯示的方法來完成頻譜的刷新顯示。

      3 系統(tǒng)測(cè)試

      利用函數(shù)信號(hào)發(fā)生器,輸出接上揚(yáng)聲器,將函數(shù)信號(hào)發(fā)生器產(chǎn)生正弦波,幅度調(diào)到合適的值,從0 Hz到20 KHz開始測(cè)試,利用MIC輸入采集聲音,調(diào)節(jié)音量電位器,達(dá)到合適的靈敏度,顯示屏頻譜顯示基本可以做到準(zhǔn)確地跟蹤,在 LED顯示模式上,改變顯示刷新方式,通過紅外遙控器上的功能按鍵做相應(yīng)的設(shè)置,可以進(jìn)行不同的顯示方式,增加多種效果。

      4 結(jié)語(yǔ)

      通過使用 STC8系列單片機(jī)單周期指令的速度優(yōu)勢(shì)和內(nèi)部強(qiáng)大的ADC轉(zhuǎn)換功能并結(jié)合FFT算法。完成對(duì)音樂信號(hào)的頻譜采集并通過 LED全彩顯示屏進(jìn)行顯示,能對(duì)普通的聲音信號(hào)進(jìn)行簡(jiǎn)單的頻譜分析。同時(shí),對(duì)日常生活音影設(shè)備增加了美感。

      猜你喜歡
      全彩顯示屏音頻
      廣告目次
      山東化工(2024年7期)2024-06-11 02:54:48
      廣告目次
      山東化工(2024年6期)2024-05-16 21:00:14
      廣告目次
      山東化工(2024年1期)2024-03-17 19:06:10
      一塊布就是一個(gè)顯示屏?
      軍事文摘(2022年10期)2022-06-15 02:29:30
      蒼蠅迷戀顯示屏
      必須了解的音頻基礎(chǔ)知識(shí) 家庭影院入門攻略:音頻認(rèn)證與推薦標(biāo)準(zhǔn)篇
      基于Daubechies(dbN)的飛行器音頻特征提取
      電子制作(2018年19期)2018-11-14 02:37:08
      雷佟CP
      意林彩版(2018年8期)2018-07-06 03:09:27
      音頻分析儀中低失真音頻信號(hào)的發(fā)生方法
      電子制作(2017年9期)2017-04-17 03:00:46
      未來五年LED顯示屏出貨將保持16%增長(zhǎng)
      岑溪市| 昭通市| 淳化县| 安庆市| 芜湖市| 勃利县| 桑日县| 万全县| 连山| 茂名市| 龙口市| 昌江| 黑山县| 吉隆县| 吴川市| 寿阳县| 马边| 北川| 襄樊市| 广灵县| 清流县| 贵溪市| 合江县| 社会| 恭城| 锡林浩特市| 堆龙德庆县| 山东省| 民和| 图木舒克市| 卓尼县| 沁阳市| 方正县| 双城市| 寿宁县| 北京市| 丽水市| 阳新县| 公安县| 大关县| 贞丰县|