




已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于STM32 DSP庫(kù)的音樂(lè)頻譜設(shè)計(jì)成員:游政園 劉亞?wèn)| 彭 譽(yù) 黃文卓 程 劍 張瓊燕班級(jí):電子信息科學(xué)與技術(shù)1211班指導(dǎo)老師:張靜目錄一、設(shè)計(jì)任務(wù)和性能指標(biāo)31.1 設(shè)計(jì)任務(wù)31.2 性能指標(biāo)3二、設(shè)計(jì)方案32.1 系統(tǒng)總體方案設(shè)計(jì)32.2 硬件設(shè)計(jì)42.2.1主控MCU模塊42.2.2電阻觸摸液晶顯示模塊52.2.3音頻采集模塊72.2.3按鍵輸入模塊72.2.4 整體電路布局8三、系統(tǒng)軟件介紹83.1 軟件實(shí)現(xiàn)思路83.2 各部分軟件實(shí)現(xiàn)思路93.2.1 硬件初始化93.2.2 音頻信號(hào)的采集10四、測(cè)試結(jié)果124.1 64分頻,即64點(diǎn)基4-FFT頻譜與電腦對(duì)比測(cè)試124.2 256分頻,即256點(diǎn)基4-FFT頻譜與電腦對(duì)比測(cè)試134.3 64分頻,即64點(diǎn)基4-FFT頻譜與電腦對(duì)比測(cè)試13五、結(jié)束語(yǔ)14參考文獻(xiàn)14基于STM32 DSP庫(kù)的音樂(lè)頻譜設(shè)計(jì)報(bào)告摘要:本作品是基于STM32和DSP庫(kù)的音樂(lè)頻譜的設(shè)計(jì),能夠?qū)Σ杉囊纛l信號(hào)進(jìn)行分頻處理并顯示在液晶屏上。本設(shè)計(jì)主控芯片采用的是大容量增強(qiáng)型ARM Cortex-M3 內(nèi)核STM32F103ZET6芯片,其運(yùn)行頻率高,運(yùn)算速度快,主頻為72MHZ,可超頻至128MHZ,在移植了ST官方的DSP庫(kù)后運(yùn)算能力非常強(qiáng),音頻采樣使用的是其內(nèi)部12 位逐次逼近型的模擬數(shù)字轉(zhuǎn)換器,采樣速度快,轉(zhuǎn)換時(shí)間短,精度高,同時(shí)顯示用的是用FSMC控制的TFT液晶屏,可以達(dá)到非常好的顯示效果。關(guān)鍵字:STM32;DSP庫(kù),音樂(lè)頻譜一、設(shè)計(jì)任務(wù)和性能指標(biāo)1.1 設(shè)計(jì)任務(wù)設(shè)計(jì)一個(gè)音樂(lè)頻譜,帶有FFT-64點(diǎn)和FFT-256點(diǎn)的音樂(lè)柱狀顯示。用Altium Designer畫(huà)出原理圖,繪出程序流程圖,規(guī)范化程序設(shè)計(jì)。實(shí)現(xiàn)基本功能。1.2 性能指標(biāo)1、音樂(lè)頻譜顯示柱狀更新速度快,能實(shí)時(shí)顯示當(dāng)前音樂(lè)頻譜分布。2、整體抗干擾能力強(qiáng),功能穩(wěn)定,精度高。二、設(shè)計(jì)方案2.1 系統(tǒng)總體方案設(shè)計(jì)本系統(tǒng)有如下部分:STM32F103ZET6單片機(jī)核心控制模塊、按鍵輸入模塊、電阻觸摸屏輸入模塊、ADC音頻采樣輸入模塊,Ili9325主控TFT液晶屏顯示輸出模塊。硬件原理模塊框圖如下圖:Ili9325主控TFT液晶屏顯示輸出(FSMC通訊)MCU大容量增強(qiáng)型ARM Cortex-M3 內(nèi)核STM32F103ZET6芯片ADC采樣輸入(內(nèi)部集成12位高精度ADC)觸摸屏控制(SPI通訊)按鍵輸入2.2 硬件設(shè)計(jì) 2.2.1主控MCU模塊此模塊為核心控制模塊,采用的芯片是ST公司大容量增強(qiáng)型ARM Cortex-M3 內(nèi)核STM32F103ZET6芯片為主控,其供電可直接采用鋰電池進(jìn)行供電,其接口電路如下圖所示;2.2.2電阻觸摸液晶顯示模塊顯示模塊采用的是ili9325控制的256色TFT電阻觸摸液晶屏,通過(guò)STM32的FSMC控制器接口控制。 其接口電路如下圖所示;為了節(jié)省資源就把用XPT2046控制的電阻觸摸屏和TFT液晶顯示屏設(shè)計(jì)在一起,觸摸屏是通過(guò)SPI和STM32進(jìn)行通訊,觸摸屏是可以當(dāng)作按鍵來(lái)使用實(shí)現(xiàn)物理按鍵的功能,其內(nèi)部結(jié)構(gòu)如下圖所示;2.2.3音頻采集模塊音頻采集模塊是通過(guò)電腦音頻輸出口的音頻傳輸線(xiàn)直接將音頻信號(hào)接入STM32的PA2口,由其內(nèi)部12 位逐次逼近型的模擬數(shù)字轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換,基準(zhǔn)電壓源VREF+采用的是AMS1117-3.3輸出的3.3V,VREF-采用的是接地的方式。2.2.3按鍵輸入模塊按鍵輸入可以實(shí)現(xiàn)多功能復(fù)用,既可以當(dāng)普通按鍵使用實(shí)現(xiàn)功能切換,也可以作為STM32的待機(jī)喚醒鍵。2.2.4 整體電路布局三、系統(tǒng)軟件介紹3.1 軟件實(shí)現(xiàn)思路整個(gè)軟件設(shè)計(jì)共有五個(gè)部分,分別是硬件初始化,ADC音頻信號(hào)采集,讀取ADC采樣結(jié)果并進(jìn)行轉(zhuǎn)換(數(shù)據(jù)采樣處理),對(duì)采集的數(shù)據(jù)進(jìn)行分頻處理(用的是DSP庫(kù)函數(shù),快速傅立葉變換64點(diǎn)FFT或256點(diǎn)FFT)、將處理過(guò)的數(shù)據(jù)轉(zhuǎn)換成在液晶屏上顯示的點(diǎn)數(shù)進(jìn)行顯示。為了保證對(duì)音頻信號(hào)采樣的有效性必須使采樣頻率是信號(hào)頻率的兩倍以上。3.2 各部分軟件實(shí)現(xiàn)思路硬件初始化軟件設(shè)計(jì)流程圖如下圖所示;ADC采樣讀取ADC采樣結(jié)果并進(jìn)行轉(zhuǎn)換等待轉(zhuǎn)換完成轉(zhuǎn)換完成對(duì)采集的數(shù)據(jù)進(jìn)行分頻處理(64點(diǎn)FFT或256點(diǎn)FFT)將處理過(guò)的數(shù)據(jù)轉(zhuǎn)換成在液晶屏上顯示的點(diǎn)數(shù)進(jìn)行顯示3.2.1 硬件初始化首先配置STM32的時(shí)鐘,使能外部8MHZ晶振9倍頻作為時(shí)鐘源,使其工作在最大頻率72MHZ,并開(kāi)啟其內(nèi)部RCC功能,即對(duì)STM32的RCC進(jìn)行初始化,STM32在進(jìn)行數(shù)據(jù)處理和運(yùn)算時(shí)需要用到,初始化按鍵,初始化TFT觸摸液晶屏并清屏,初始化ADC選擇PA2作為ADC音頻采樣通道。硬件初始化函數(shù)如下;void DSPDemoInit(void)SysTick-CTRL&=(12);/SYSTICK使用外部8MHZ晶振9倍72MHz ErrorStatus HSEStartUpStatus = ERROR;/定義時(shí)鐘狀態(tài)標(biāo)志 /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration -*/ /* RCC system reset(for debug purpose) */ RCC_DeInit();/開(kāi)啟RCC并復(fù)位 /* Enable HSE */ RCC_HSEConfig(RCC_HSE_ON);/RCC時(shí)鐘配置為HSE /* Wait till HSE is ready */ HSEStartUpStatus = RCC_WaitForHSEStartUp();/等待時(shí)鐘穩(wěn)定 if(HSEStartUpStatus = SUCCESS)/RCC內(nèi)部寄存器相關(guān)配置 /* Enable Prefetch Buffer */ FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); /* Flash 2 wait state */ FLASH_SetLatency(FLASH_Latency_2); /* HCLK = SYSCLK */ RCC_HCLKConfig(RCC_SYSCLK_Div1); /* PCLK2 = HCLK */ RCC_PCLK2Config(RCC_HCLK_Div1); /* PCLK1 = HCLK/2 */ RCC_PCLK1Config(RCC_HCLK_Div2); /* PLLCLK = 8MHz * 9 = 72 MHz */ RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); /* Enable PLL */ RCC_PLLCmd(ENABLE); /* Wait till PLL is ready */ while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) = RESET); /* Select PLL as system clock source */ RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); /* Wait till PLL is used as system clock source */ while(RCC_GetSYSCLKSource() != 0x08); /*- Drivers Initialization -*/ /* Initialize the LCD */ STM3210E_LCD_Init();/初始化液晶屏Adc_Init();/初始化ADC; /* Clear the LCD */ LCD_Clear(Black);/液晶屏清屏3.2.2 音頻信號(hào)的采集1,采樣信號(hào)處理函數(shù)如以下代碼void MygSin(long nfill, long Ampli)/ nfill 采樣點(diǎn)數(shù),Ampli數(shù)據(jù)處理是的放大倍數(shù) uint32_t i; for (i=0; i nfill; i+)/采樣數(shù)據(jù)填充輸入緩存lBUFINi=Ampli*(Get_Adc_Average(2,1);/將PA2通道采集的AD值放大后寫(xiě)入輸入緩存 2,計(jì)算各次諧波幅值,此部分為固定模版,只需改動(dòng)運(yùn)算點(diǎn)數(shù)nfill的值先將lBUFOUT分解成實(shí)部(X)和虛部(Y),然后計(jì)算幅值(sqrt(X*X+Y*Y)void powerMag(long nfill) int32_t lX,lY; uint32_t i; for (i=0; i nfill; i+)/ nfill 采樣點(diǎn)數(shù) lX= (lBUFOUTi16; / 將lBUFOUT分解成實(shí)部(X) lY= (lBUFOUTi 16); / 將lBUFOUT分解成虛部(Y) float X = nfill *(float)lX)/32768; float Y = nfill *(float)lY)/32768; float Mag = sqrt(X*X+ Y*Y)/nfill; 計(jì)算幅值(sqrt(X*X+Y*Y) lBUFMAGi = (uint32_t)(Mag*65536);/使得數(shù)據(jù)符合浮點(diǎn)運(yùn)算規(guī)律 3,進(jìn)行快速傅立葉變換void MyFFT_NPT(uint32_t freqinc1) /freqinc1為采樣分辨率,N=256, Fs = 47.619khz(STM32的/AD的采樣率) Fs/N=180Hz, u32 freq; for (freq=20; freq 20000; freq+=freqinc1)/對(duì)音頻信號(hào)頻率掃描;音頻信號(hào):20-20KHZ; MygSin(NPT, 6.6);/音頻信號(hào)最大值為1V,最小值為0V,振幅為(1+0)/2=0.5,放大倍/數(shù)為3.3/0.5=6.6cr4_fft_256_stm32(lBUFOUT, lBUFIN, NPT);/DSP庫(kù)函數(shù)基4-256點(diǎn)FFT,輸入lBUFIN,輸/出lBUFOUT,點(diǎn)數(shù)NPT powerMag(NPT);/幅值計(jì)算; displayPowerMag();/幅值顯示 4,幅值顯示void displayPowerMag( ) uint16_t aScale;/掃秒高度即要顯示的幅值 uint16_t cln; /掃秒寬度即要顯示的柱狀寬度 for (cln=NPT/2; cln =232)aScale=232;/當(dāng)大于232時(shí)顯示232,防止?jié)M屏 LCD_DrawLine(aScale, (2*cln)+32-256 ,240-aScale,Vertical);/清除以前的柱狀點(diǎn);LCD_DrawLine(aScale+2, (2*cln)+32-256 ,1 ,Vertical);/清除柱狀上的漂浮物; LCD_SetTextColor(Red); /設(shè)置柱狀顯示顏色 LCD_DrawLine(0, (2*cln)+32-256 ,aScale ,Vertical);/以柱狀形式顯示幅值LCD_SetTextColor(Green); /設(shè)置漂浮物顯示顏色LCD_DrawLine(aScale+2, (2*cln)+32-256 ,1 ,Vertical);/顯示柱狀上的漂浮物 四、測(cè)試結(jié)果4.1 64分頻,即64點(diǎn)基4-FFT頻譜與電腦對(duì)比測(cè)試可能是因?yàn)殡娔X對(duì)數(shù)據(jù)的處理的和我們不一樣所以圖中頻譜有些不一樣4.2 256分頻,即256點(diǎn)基4-FFT頻譜與電腦對(duì)比測(cè)試4.3 64分頻,即64點(diǎn)基4-FFT頻譜與電腦對(duì)比測(cè)試此次測(cè)試是64點(diǎn)全顯示,由此可看出音頻信號(hào)經(jīng)FFT變換后具有對(duì)稱(chēng)性如下圖所示;五、結(jié)束語(yǔ)本系統(tǒng)由于硬件接線(xiàn)原因?qū)е乱纛l信號(hào)有波動(dòng),對(duì)信號(hào)采集產(chǎn)生干擾,還有就是雖然移植的是DSP庫(kù),但由于代碼優(yōu)化不夠?qū)е逻\(yùn)算一次FFT時(shí)間稍有延遲,另外系統(tǒng)的功能有點(diǎn)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 終止解除租房合同協(xié)議書(shū)
- 礦用泵體鑄件采購(gòu)合同及安全認(rèn)證標(biāo)準(zhǔn)
- 韻達(dá)物流合同協(xié)議書(shū)
- 高新專(zhuān)利轉(zhuǎn)讓合同協(xié)議書(shū)
- 項(xiàng)目股權(quán)合同協(xié)議書(shū)范本
- 單位搬遷合同協(xié)議書(shū)范本
- 合租房協(xié)議書(shū)合同電子版
- 課件作品介紹模板
- 獲獎(jiǎng)?wù)f課課件
- 2025中外合資企業(yè)勞動(dòng)合同
- T/CCS 060-2023智能化煤礦運(yùn)維組織架構(gòu)管理規(guī)范
- DB32/T 4205-2022鄉(xiāng)村公共空間治理規(guī)范
- DB31/T 920-2015產(chǎn)業(yè)園區(qū)服務(wù)規(guī)范
- 福建百校聯(lián)考2025屆高三5月高考押題卷-物理試卷(含答案)
- 2025安全生產(chǎn)月安全知識(shí)競(jìng)賽題庫(kù)三(35ye)
- 讓深度學(xué)習(xí)真實(shí)發(fā)生-學(xué)習(xí)任務(wù)群在小學(xué)語(yǔ)文教學(xué)中的探究和運(yùn)用
- 個(gè)體商合伙協(xié)議書(shū)
- 商場(chǎng)消防設(shè)施管理與維護(hù)措施
- 貴州省煙草專(zhuān)賣(mài)局(公司)筆試試題2024
- 職業(yè)健康告知協(xié)議書(shū)
- 《煤礦安全基礎(chǔ)知識(shí)》課件
評(píng)論
0/150
提交評(píng)論