STM32音樂頻譜分析要點(diǎn)_第1頁(yè)
STM32音樂頻譜分析要點(diǎn)_第2頁(yè)
STM32音樂頻譜分析要點(diǎn)_第3頁(yè)
STM32音樂頻譜分析要點(diǎn)_第4頁(yè)
STM32音樂頻譜分析要點(diǎn)_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余10頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、INPUT1 orR110也470 pFINPUT2 oC1100|iF薩6 1£!C0.R34.7LF5 JL c o" J47TSTM32音樂頻譜分析2011-12-11 03:06:03| 分類:制作類|標(biāo)簽:|舉報(bào)字號(hào)大中小訂閱呵呵,在昨天的基礎(chǔ)上,進(jìn)行了改進(jìn)。采樣頻率為12.3Khz,256點(diǎn)FFT。視頻:其實(shí)這玩意不難做,音頻信號(hào)采集,我的方法是將電腦出來(lái)的信號(hào)用TDA2822放大,然后給單片機(jī)AD 口,剩下就是軟件上的了說(shuō)起TDA2822,還是挺不錯(cuò)的一款功率放大芯片,本只想用來(lái)做信號(hào)放大用的,但baidu 了下它和看它的數(shù)據(jù)手冊(cè),都多用來(lái)做小功率功放。呵呵,

2、那就也做一個(gè)吧。TDA2822的典型應(yīng)用電路如下:C3100 iiF這電路很普通,沒什么特別,參數(shù)也不用調(diào)整,直接搭出來(lái),就正常的工作。接下來(lái)就是將放大后的信號(hào)給單片機(jī),這里問題就來(lái)了,電路中 C4 ,C5 是干什么,給單片機(jī)的話要不要加?于是開始 baidu , google ,但沒找到合適解答,于是翻了翻模電書,里面還真講到功率放大器,TDA2822 是 OTL 功放,輸出電容起耦合作用,因?yàn)?OTL 功放在在靜態(tài)時(shí)輸出端都會(huì)有 Vcc/2 伏的輸出,這樣會(huì)搞壞喇叭, 所以需要加個(gè)電容,隔離。單片機(jī)處理的話就不用輸出電容了。如果用示波器一看,結(jié)果就很明顯,如下圖,下面的信號(hào)是加了電容,上面

3、是沒加。壓?做好電路后理所當(dāng)然的準(zhǔn)備將功放輸出端接到單片機(jī)上,但突然一想,不對(duì)啊,功放我給11.1V供電,那輸出不就有 5V左右電而STM32是3.3V ! 不燒了才怪!幸好TDA2822工作電壓范圍在1.812V間,所以就給它3.3V行了這樣一來(lái)基本就沒問題了VCCGNDGNDINIIN2R?RPotL10K >4lOOuIR?RPotL10KC?6O.luFTT?R?4.7O.luF±C?GNDGND第二個(gè)的輸出電容還是保留,作個(gè)對(duì)比。好了,接下來(lái)就是程序了IOuF+ c?I10uF|plOuFTTTDA2822(-J-R?GNDGNDGND首先就得確定采樣率,就是間隔多久

4、采一個(gè)點(diǎn)剛開始不是很懂,用的40kHz,也成,但要是做音頻頻譜分析沒必要那么高了這里有些資料:音頻的頻率范圍及表現(xiàn)力度音頻的頻率范圍、音質(zhì)的評(píng)價(jià)標(biāo)準(zhǔn)一般認(rèn)為20Hz 20kHz是人耳聽覺頻帶,稱為 聲頻”這個(gè)頻段的聲音稱為 可聞聲”,高于20kHz的 稱為超聲”,低于20Hz的稱為次聲。所謂聲音的質(zhì)量,是指經(jīng)傳輸、處理后音頻信號(hào)的保真度。目前,業(yè)界公認(rèn)的聲音質(zhì)量標(biāo)準(zhǔn)分為4級(jí),即:數(shù)字激光唱盤 CD-DA質(zhì)量,其信號(hào)帶寬為10Hz20kHz ;調(diào)頻廣播FM質(zhì)量,其信號(hào)帶寬為 20Hz15kHz ;調(diào)幅廣播AM質(zhì)量,其信號(hào)帶寬為 50Hz7kHz ;電話的話音質(zhì)量,其信號(hào)帶寬為200Hz3400H

5、z??梢?,數(shù)字激光唱盤的聲音質(zhì)量最高,電話的話音質(zhì)量最低。除了頻率范圍外,人們往往還用其它方法和指標(biāo)來(lái)進(jìn)一步描述不同用途的音質(zhì)標(biāo)準(zhǔn)。音頻頻率范圍一般可以分為四個(gè)頻段,即:低頻段(30 150HZ);中低頻段(30 150HZ);中低頻(150 500HZ);中高頻段(500 5000HZ);高頻段(5000 20kHZ )。30 150HZ頻段:能夠表現(xiàn)音樂的低頻成分,使欣賞者感受到強(qiáng)勁有力的動(dòng)感。150 500HZ頻段:能夠表現(xiàn)單個(gè)打擊樂器在音樂中的表現(xiàn)力,是低頻中表達(dá)力度的部分。500 5000HZ頻段:主要表達(dá)演唱者或語(yǔ)言的清淅度及弦樂的表現(xiàn)力。5000 20kHZ頻段:主要表達(dá)音樂的明

6、亮度,但過多會(huì)使聲音發(fā)破。所以我選則12kHz左右的采樣率。US.ERE-L廠;i;u.>lullj-田-It!-e田adnledx3264LED.Cmain.CDSPJibSI iirstm32x斟 PrD_C_tm32.c圍 cr4_fft_64 _stm 3 2'?£ cr4_fft_2 5 &_stm 3 2 *s 方 cr4_fFt_ 1C 24 _ stm 3 2 .sIS fir_stm32,5iirarma_stm32,s固 PID_stm32下面的DSP_Lib文件夾就是ST公司提供的DSP庫(kù)。FFT,PID等都是用匯編寫的6.2.2Fast

7、Fourier transform (FFT)Table 14. Complex radix 4f 16-bit FFTt coefficients in Flash memoryFFT(ASM fund.)24 MHz 0 wait state48 MHz1 wait state72 MH;2 wait stacycle counttimecycle counttimecycle count64 points38470J6 ms4 4720.093 ms5 661(256 points21 0390.876 ms24 9640.52 ms31 527<1024 points100 18

8、04.174 ms114 3502.382 ms153 9304Table 15- Complex radix 4t 16-bit FFT, coefficients in RAMFFT(ASM funct)24 MHz 0 wait state48 MHz1 wait state72 MHJ2 wait stacycle counttimecycle counttimecycle count64 points3 0470.16 ms4 0250X)84 ms4 764(256 points21 0390.876 ms22 1760,462 ms26 065(1024 points100 18

9、04J74 ms102 0572.126 ms127 318將ST提供的FFT表加載到內(nèi)存中,速度是快一些,1024點(diǎn)只需1.7ms左右,我覺得效率算是蠻高了接下來(lái)就是代碼了:#i nclude vstm32f10x_lib.h>#in clude <math.h>#include "stm32_dsp.h"#i nclude "table_fft.h"#include "sys.h"#include "usart.h"#i nclude "delay.h"#i nclude

10、"timer.h"#i nclude "LED.h"#i nclude "ADC.h"#include "3264LED.h"#defi ne NPT 256/ FFT poi nt#defi ne FAST 1指示條下落速度#defi ne SLOW 50/綠點(diǎn)下落速度#defi ne STOP 35綠點(diǎn)停頓速度u16 TableFFT;u16 AD_Count=0;u16 time,time2;void powerMag(void);/計(jì)算幅值u32 Data_INNPT;/* Complex input ve

11、ctor */u32 Data_OUTNPT;/* Complex output vector */u32 lBUFMAGNPT/2;/* 保存幅值 */u16 Result64;/ 最終結(jié)果u8 Pos64=0;/ 綠點(diǎn)位置u8 Dot64=0;/記錄每點(diǎn)停頓時(shí)間u32 TMP;int main(void)u16 i,k;s16 tmp;Stm32_Clock_Init(9);/ 系統(tǒng)時(shí)鐘設(shè)置 72Mhzdelay_init(72);/延時(shí)初始化Timer3_Init(5,7199);/0.6ms 中斷一次 LED 顯示Timer4_Init(7,760);/ 約 74us 中斷一次, AD

12、 采集LED_Init();LEDs_Init();/ 點(diǎn)陣初始化Adc_Init();time=time2=0;AD_Count=0;while(1)cr4_fft_256_stm32(Data_OUT, Data_IN, NPT);/做 256 點(diǎn) fft 運(yùn)算powerMag();/ 算幅值for(i=1;i<65;i+)r/點(diǎn)平移 ,去除靜態(tài)波動(dòng)tmp=lBUFMAGi/2-5;/ 顯示幅值為實(shí)際幅值的一半并減去 5,這樣效果較好if(tmp<0)tmp=0; else if(tmp>31)tmp=31; if(tmp>=Resulti-1)Resulti-1=

13、tmp;/得到每列上綠點(diǎn)的高度if(Resulti-1>=Posi-1)Doti-1=0;Posi-1=Resulti-1;/ 更新綠點(diǎn)高度f(wàn)or(i=0;i<64;i+)for(k=0;k<32;k+)/畫紅點(diǎn)if(k<Resulti) Draw_Point(i,k,RED,2);else Draw_Point(i,k,0,0);Draw_Point(i,Posi,GREEN,2);/ 畫綠點(diǎn)if(time2>FAST&&Resulti>=1) Resulti-;if(Doti>=STOP)/ 停頓判斷 if(time>SLOW

14、&&Posi>=1) Posi-; Doti+;if(Doti>=250)Doti=250;if(time>SLOW) time=0;if(time2>FAST) time2=0;else time2+;/* Calculate powermag* 計(jì)算各次諧波幅值* 先將 lBUFOUT 分解成實(shí)部 (X) 和虛部 (Y) ,然后計(jì)算幅值 (sqrt(X*X+Y*Y)*/void powerMag(void)s32 lX,lY;u32 i;float X,Y,Mag;for(i=0;i<65;i+)/ 只顯示 64 個(gè)點(diǎn),所以計(jì)算得到前面 65

15、個(gè)點(diǎn)的幅值就行了。lX = (Data_OUTi << 16) >> 16;lY = (Data_OUTi >> 16);X= (float)lX) /64;Y= (float)lY) /64;Mag = sqrt(X*X + Y*Y)/NPT;lBUFMAGi = (u32)(Mag * 65536);void TIM4_IRQHandler(void)ADC1->SQR3&=0XFFFFFFE0;ADC1->SQR3|=2;ADC1->CR2|=1<<22;TMP=ADC1->DR;Data_INAD_Coun

16、t=TMP<<16;AD_Count+;if(AD_Count>255) AD_Count=0;TIM4->SR&=(1<<0);/定時(shí)器 4 中斷服務(wù)程序 約 74us 中斷一次/規(guī)則序列 1/ 通道 2 采集/啟動(dòng)規(guī)則轉(zhuǎn)換通道/ 清除中斷標(biāo)志位void TIM3_IRQHandler(void) / 定時(shí)器 3 中斷服務(wù)程序 u16 i;if(TIM3->SR&0X0001)/ 溢出中斷oe=0;/ 關(guān)顯示for(i=0;i<64;i+)/ 移出緩存區(qū)的上半屏一行數(shù)據(jù)wr_595(SBFLinei);for(i=0;i<64;i+

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論