基于FPGA的音頻信號分析儀設(shè)計(含完整程序)_第1頁
基于FPGA的音頻信號分析儀設(shè)計(含完整程序)_第2頁
基于FPGA的音頻信號分析儀設(shè)計(含完整程序)_第3頁
基于FPGA的音頻信號分析儀設(shè)計(含完整程序)_第4頁
基于FPGA的音頻信號分析儀設(shè)計(含完整程序)_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于fpga的音頻信號分析儀本科畢業(yè)論文(設(shè)計)題 目 基于fpga的音頻信號分析儀 學生姓名 專業(yè)名稱 電子信息科學與技術(shù) 指導(dǎo)教師 教師職稱 2009年12月10日基于fpga的音頻信號分析儀基于fpga的音頻信號分析儀摘要:本音頻信號分析儀以fpga為核心,通過前級信號調(diào)理電路和12位a/d轉(zhuǎn)換芯片,對音頻信號進行正確采樣,把連續(xù)信號離散化。然后通過基于altera cyclone ii 系列fpga嵌入高性能的nios ii處理器,代替?zhèn)鹘y(tǒng)的dsp芯片和高性能mcu,實現(xiàn)了基于fft的音頻信號分析儀,并在時域和頻域?qū)σ纛l信號各個頻率分量以及功率等指標進行分析和處理。最后采用高分辨率的彩

2、色液晶對信號的功率譜等信息進行顯示并通過觸摸屏控制整個系統(tǒng)的運行。該系統(tǒng)能夠精確測量的音頻信號頻率范為100hz-10khz,其幅度范圍為100mvpp-5vpp,分辨力分為100hz和20hz兩檔,測量功率精確度高達5%,是理想的音頻信號分析儀的解決方案。關(guān)鍵詞:fft;fpga;nios ii ;頻譜;信號功率;the audio signal analyzer based on fpgaabstract: the audio signal analyzer is based on fpga, through the signal processing circuit and 12bit

3、a / d converter chip for audio signal sampling, the continuous signal discrete. instead of using dsp or mcu, we use high performance nios ii embedded processor for fft fast fourier transform computing and in the time domain and frequency domain of the various audio frequency signal weight and power,

4、 and other indicators for analysis and processing. at last through the high-resolution touch screen lcd display the signal power spectrum and control the operation of the entire system. the system can accurately measure the audio signal frequency range of 100hz - 10 khz, the range of 100mvpp-5vpp, r

5、esolution of 100 hz and 20 hz correspondent. power measurement accuracy up to 5%, is the ideal audio signal analyzer solution.keyword: fft;fpga;nios ii ;spectrum;signal power;目 錄1 前言11.1音頻分析原理11.2音頻分析方法11.3音頻參數(shù)測量及分析12 系統(tǒng)方案設(shè)計32.1系統(tǒng)設(shè)計要求32.2系統(tǒng)方案論證32.2.1 系統(tǒng)整體方案選擇32.2.2 系統(tǒng)核心處理器的選擇33 系統(tǒng)硬件設(shè)計53.1 fpga與nios

6、ii介紹53.2 fpga核心板電路設(shè)計53.2.1 fpga電源電路63.2.2fpga時鐘電路73.2.3fpga配置電路93.3前級信號調(diào)理電路103.4ad采樣電路設(shè)計133.5系統(tǒng)電源電路設(shè)計143.6彩色液晶電路設(shè)計143.7觸摸屏電路設(shè)計154系統(tǒng)軟件設(shè)計174.1niosii集成開發(fā)環(huán)境介紹174.2系統(tǒng)主程序設(shè)計174.3ad轉(zhuǎn)換驅(qū)動程序184.4觸摸屏識別程序194.5 fft算法的c語言實現(xiàn)204.5.1 fft的matlab仿真與分析204.5.2倒位序算法分析234.5.3實數(shù)蝶形運算算法234.5.4 ditfft算法的基本思想分析245 系統(tǒng)調(diào)試與測試結(jié)果265.

7、1系統(tǒng)調(diào)試265.2測試方案與測試結(jié)果265.2.1測試電路265.2.2兩路信號總功率測量275.2.3單個頻率分量測量275.3誤差分析286結(jié)束語29參考文獻30附 錄31附錄一31附錄二35附錄三36附錄四42附錄五43附錄六44謝 辭46iii基于fpga的音頻信號分析儀1 前言1.1 音頻分析原理音頻是多媒體中的一種重要媒體。我們能夠聽見的音頻信號的頻率范圍大約是20hz-20khz,其中語音大約分布在300hz-4khz之內(nèi),而音樂和其他自然聲響是全范圍分布的。聲音經(jīng)過模擬設(shè)備記錄或再生,成為模擬音頻,再經(jīng)數(shù)字化成為數(shù)字音頻。這里所說的音頻分析就是以數(shù)字音頻信號為分析對象,以數(shù)字

8、信號處理為分析手段,提取信號在時域、頻域內(nèi)一系列特性的過程。音頻分析的原理主要涉及數(shù)字信號處理的基本理論、音頻分析的基本方法以及音頻參數(shù)測量和分析內(nèi)容,其中數(shù)字信號處理是音頻分析的理論基礎(chǔ)。傅立葉變換和信號的采樣是進行音頻分析時用到的最基本的技術(shù)。傅立葉變換是進行頻譜分析的基礎(chǔ),信號的頻譜分析是指按信號的頻率結(jié)構(gòu),求取其分量的幅值、相位等按頻率分布規(guī)律,建立以頻率為橫軸的各種“譜”,如幅度譜、相位譜。在以計算機為中心的測試系統(tǒng)中,模擬信號進入數(shù)字計算機前先經(jīng)過a/d變換器,將連續(xù)時間信號變?yōu)殡x散時間信號,稱為信號的采樣。然后再經(jīng)幅值量化變?yōu)殡x散的數(shù)字信號。這樣,在頻域上將會出現(xiàn)一系列新的問題,

9、頻譜會發(fā)生變化。由模擬信號變成數(shù)字信號后,其傅立葉變換也變成離散傅立葉變換,涉及到采樣定理、頻率混疊、截斷和泄漏、加窗與窗函數(shù)等一系列問題。1.2 音頻分析方法通常在對某音頻設(shè)備音頻測量分析時,該設(shè)備被看成是一個具有輸入端口和輸出端口的黑箱系統(tǒng)。將某種己知信號輸入該系統(tǒng),然后從輸出端獲取輸出信號進行分析,從而了解該系統(tǒng)的一些特性,這就是音頻分析的一般方法。輸入音頻設(shè)備的信號,稱作激勵信號。激勵信號可以是正弦、方波等周期信號,也可以是白噪聲、粉紅噪聲等隨機信號,還可以是雙音、多音、正弦突發(fā)等信號。最常用的檢測分析方法有正弦信號檢測、脈沖信號檢測、最大長度序列信號檢測等。1.3 音頻參數(shù)測量及分析

10、音頻測量一般包括信號電壓、頻率、信噪比、諧波失真等基本參數(shù)。大部分音頻參數(shù)都可以由這幾種基本參數(shù)組合而成。音頻分析可以分為時域分析、頻域分析、時頻分析等幾類。由于信號的諧波失真對于音頻測量比較重要,因此將其單獨歸類為失真分析。以下分別介紹各種音頻參數(shù)測量和音頻分析。音頻測量中需要測量的基本參數(shù)主要有電壓、頻率、信噪比。電壓測試可以分為均方根電壓(rms)、平均電壓和峰值電壓等幾種。頻率是音頻測量中最基本的參數(shù)之一。通常利用高頻精密時鐘作為基準來測量信號的頻率。測量頻率時,在一個限定的時間內(nèi)的輸入信號和基準時鐘同時計數(shù),然后將兩者的計數(shù)值比較后乘以基準時鐘的頻率就得到信號頻率。隨著微處理芯片的運

11、算速度的提高,信號的頻率也可以利用快速傅立葉變換通過軟件計算得到。信噪比是音頻設(shè)備的基本性能指標,是信號的有效電壓與噪聲電壓的比值。在實際測量中,為方便起見,通常用帶有噪聲的信號總電壓代替信號電壓計算信噪比。時域分析通常是將某種測試信號輸入待測音頻設(shè)備,觀察設(shè)備輸出信號的時域波形來評定設(shè)備的相關(guān)性能。最常用的時域分析測試信號有正弦信號、方波信號、階躍信號及單音突變信號等。例如將正弦信號輸入設(shè)備,觀察輸出信號時域波形失真就是一種時域分析方法。頻域分析是音頻分析的重要內(nèi)容,頻域分析的主要依據(jù)是頻率響應(yīng)特性曲線圖。頻率響應(yīng)曲線圖反映了音頻設(shè)備在整個音頻范圍內(nèi)的頻率響應(yīng)的分布情況。一般來說曲線峰值處的

12、頻率成分,回放聲壓大、聲壓強;曲線谷底處頻率成分聲壓小、聲音弱。若波峰和波谷起伏太大,則會造成較嚴重的頻率失真。諧波失真的測量方法有兩種,一種是以正弦信號輸入待測設(shè)備,然后分析設(shè)備響應(yīng)信號的頻率成分,可以得到諧波失真。另一種更簡單的測量方法是首先利用帶阻濾波器濾除響應(yīng)信號中的基頻成分,然后直接測量剩余信號的電壓,將其與原響應(yīng)信號作比較,就可以得到諧波失真。顯然第二種方法得到的諧波失真是thd+n,由于采用了信號的總電壓值代替了基頻分量電壓值,因此得到的諧波失真比實際值偏小,且實際的諧波失真越大,誤差越大。在實際的音頻測量時,通常在一定的頻率范圍內(nèi)選取若干個頻率點,分別測量出各點的諧波失真,然后

13、將各諧波失真數(shù)值以頻率為橫坐標連成一條曲線,稱為諧波失真曲線。2 系統(tǒng)方案設(shè)計2.1 系統(tǒng)設(shè)計要求本系統(tǒng)是在2007年全國大學生電子設(shè)計競賽a題音頻信號分析儀的基礎(chǔ)上進行設(shè)計的,題目的基本部分要求如下:(1)輸入阻抗:50ohm(2)輸入信號電壓范圍(峰-峰值):100mv5v(3)輸入信號包含的頻率成分范圍:200hz10khz(4)頻率分辨力:100hz(可正確測量被測信號中,頻差不小于100hz的頻率分量的功率值。)(5)檢測輸入信號的總功率和各頻率分量的頻率和功率,檢測出的各頻率分量的功率之和不小于總功率值的95%;各頻率分量功率測量的相對誤差的絕對值小于10%,總功率測量的相對誤差的

14、絕對值小于5%。(6)分析時間:5秒。應(yīng)以5秒周期刷新分析數(shù)據(jù),信號各頻率分量應(yīng)按功率大小依次存儲并可回放顯示,同時實時顯示信號總功率和至少前兩個頻率分量的頻率值和功率值,并設(shè)暫停鍵保持顯示的數(shù)據(jù)。2.2 系統(tǒng)方案論證2.2.1 系統(tǒng)整體方案選擇音頻信號分析儀可分為模擬式音頻信號分析儀和數(shù)字式音頻信號分析儀。方案一:以fft為基礎(chǔ)的的數(shù)字音頻信號分析儀。通過對信號的頻域分析可以很方便的得到輸入信號的各種信息,如功率譜、頻率分量以及周期性等。外圍電路少,實現(xiàn)方便,精度高。方案二:以模擬濾波器為基礎(chǔ)的模擬式頻譜分析儀。掃描濾波法、有并行濾波法、小外差法等。因為受到模擬濾波器濾性能的限制,此種方法實

15、現(xiàn)起來比較困難。所以選用方案一作為本系統(tǒng)的實現(xiàn)方式。2.2.2 系統(tǒng)核心處理器的選擇方案一:以普通單片機為核心進行相關(guān)算法的處理。從發(fā)展歷史看,單片機的發(fā)展已經(jīng)有比較長的時間,應(yīng)用比較廣泛,各種技術(shù)都比較成熟,但單片機處理速度不是很快,存儲器資源不夠,沒有實現(xiàn)數(shù)字信號處理的dsp模塊。故不采用普通單片機。方案二:采用dsp處理器進行處理。和普通單片機相比,dsp的處理速度快,存儲器資源,很適合fft算法的實現(xiàn)。但是dsp處理器芯片的結(jié)構(gòu)有點復(fù)雜,開發(fā)難度大。方案三:在fpga中嵌入nios ii處理器,通過軟件實現(xiàn)。nios ii 支持c語言編程方式,普通的c語言版的fft稍加改正即可應(yīng)用到本

16、方案中,而且altera cyclone ii fpga內(nèi)部有豐富的硬件乘法器和存儲器資源,開發(fā)難度低,速度快??紤]到本系統(tǒng)對處理器的處理速度要求不是很高。為了減小開發(fā)難度,采用了方案三。音頻信號先經(jīng)過由運放和電阻組成的50ohm阻抗匹配電路以滿足輸入阻抗50 ohm的系統(tǒng)要求,這樣方便信號功率的計算。為了保證所處理的信號被不失真的采樣,信號還要通過截止頻率為10khz的抗混疊低通濾波器。最后為了ad能正確的采樣,信號還要通過信號抬高電路。經(jīng)過12位a/d轉(zhuǎn)換芯片max144轉(zhuǎn)換后的數(shù)字信號經(jīng)由基于fpga的niosii處理器進行fft變換和處理,分析各個頻率點的功率值,并將這些值顯示在分辨率

17、320*240的彩色液晶上。圖1 系統(tǒng)總體框圖3 系統(tǒng)硬件設(shè)計3.1 fpga與nios ii介紹現(xiàn)場可編程門陣列(fpga)是一種半導(dǎo)體器件,可以在制造完成后進行編程。fpga硬件功能不是預(yù)先確定好的,而是針對產(chǎn)品特性和功能進行編程,以適應(yīng)新標準,即使產(chǎn)品已經(jīng)在現(xiàn)場使用了,也可以針對某些應(yīng)用重新配置硬件因此,叫做“現(xiàn)場可編程”。也可以使用fpga來實現(xiàn)專用集成電路(asic)完成的任何邏輯功能,而且在產(chǎn)品發(fā)售后也能夠?qū)δ苓M行更新,在很多應(yīng)用中都具有一定優(yōu)勢。與以前使用可編程邏輯和互聯(lián)i/o的fpga不同,現(xiàn)在的fpga含有各種可配置嵌入式sram、高速收發(fā)器、高速i/o、邏輯模塊和走線。特

18、別是,fpga含有名為邏輯單元(le)的可編程邏輯,以及分層的可配置互聯(lián),支持le的物理連接。您可以配置le來完成復(fù)雜的組合功能,或者只是簡單的and和xor等邏輯門。在大部分fpga中,邏輯模塊含有存儲器單元,例如簡單的觸發(fā)器或者較復(fù)雜的存儲器模塊等。niosii系列軟核處理器是altera的第二代fpga嵌入式處理器,其性能超過200dmips,在altera fpga中實現(xiàn)僅需35美分。altera的stratix、stratixgx、 stratix ii和 cyclon系列fpga全面支持nios ii處理器,以后推出的fpga器件也將支持nios ii。自altera于2000年推

19、出第一代16位nios處理器以來,已經(jīng)交付了13000多套nios開發(fā)套件,nios成為最流行的軟核處理器。剛推出的nios ii系列采用全新的架構(gòu),比第一代nios具有更高水平的效率和性能。和第一代相比,nios ii核平均占用不到50%的fpga資源,而計算性能增長了1倍。3.2 fpga核心板電路設(shè)計系統(tǒng)采用的是altera公司的cyclon ii 系列型號為ep2c8q208c8的fpga芯片。cyclon ii器件采用了90nm工藝制造,其增加了硬的dsp塊,在芯片總體性能上要優(yōu)于第一代產(chǎn)品cyclon系列器件。fpga核心板電路圖主要由fpga電源電路(圖2)、時鐘電路(圖3)、配

20、置電路(圖4)和sdram和flash電路(圖5)組成四部分組成。3.2.1 fpga電源電路本系統(tǒng)的fpga核心板需要3.3v和1.2v兩種電壓。cyclonii器件的每個bank都有vref引腳,可用來獨立支持任一種基準電壓標準,其具有兩重功能,如果某一i/obank不使用基準電壓標準,那么vref引腳作為可用的i/o引腳。每個bank也有專用的vccio引腳,每個cyclonii器件都支持1.5v,1.8v,2.5v和3.3v的接口,各個獨立的bank也支持不同的i/o電壓標準。每個i/obank通過多個vccio引腳為輸入輸出提供多種標準,例如當vccio為3.3v時,該bank為輸入

21、輸出引腳提供lvttl,lvcoms和3.3vpci。在i/obank中可使用許多單端和差分標準,只要他們使用相同的vref和適當?shù)膙ccio值。cyclonii的架構(gòu)支持多電壓i/o接口,這就允許cyclonii器件為多系統(tǒng)提供不同的電壓。cyclonii器件帶有一組vcc引腳(vccint),用于驅(qū)動內(nèi)部邏輯門陣列和使用lvpecl,lvds,hstl或者sstli/o標準的輸入緩沖器。還有4組或者8組的vcc引(vccio)用于驅(qū)動輸出i/o引腳和使用lvttl,lvcmos或者pcii/o標準的輸入緩沖器。cyclonii器件的vccint引腳必須接1.2v的電源,如果vccint接的

22、是1.2v,那么輸入引腳允許接1.5v,1.8v,2.5v或者3.3v。vccio引腳能從1.5v,1.8v,2.5v或者3.3v的電源中任選,依賴于輸出的需求。輸出電平可以與系統(tǒng)的電源相容。(例如當vccio接了1.5v的電源,輸出電平就會調(diào)整為1.5v的系統(tǒng))。當vccio引腳接了3.3v的電源,輸出最高為3.3v并且與3.3v的系統(tǒng)兼容。由于fpga核心板要驅(qū)動ad轉(zhuǎn)換芯片和彩色液晶,而ad轉(zhuǎn)換芯片和彩色液晶都需要與3.3v電壓兼容的電平。所以vccio引腳接了3.3v的電源的電壓。圖2 fpga核心板電源電路3.2.2 fpga時鐘電路(1)全局時鐘網(wǎng)絡(luò)在整個cyclonii器件中有1

23、6或者8個全局時鐘網(wǎng)絡(luò)驅(qū)動器,專用的時鐘引腳(clk ),pll輸出,邏輯陣列和兩用的時鐘引腳(dpclk)都能驅(qū)動全局時鐘網(wǎng)絡(luò)。如果這些專用的時鐘引腳沒有用來提供給全局時鐘網(wǎng)絡(luò),那么他們可以被用作普通的輸入引腳提供給邏輯陣列作為多通道連接。不過,如果他們被用作普通目的的輸入引腳,他們沒有可用的i/o寄存器,必須用le-based寄存器來代替。cyclonii器件總有20個或8個有雙重用處的時鐘引腳,dpclk19.0或者dpclk7.0,較大的器件有20個,左右兩邊各4個,上下兩邊各6個。角落的cdpclk引腳在進入時鐘控制模塊之前首先被復(fù)用。直到有信號通過一個多路復(fù)用器饋送到時鐘控制模塊之

24、前,這些信號到時鐘控制模塊產(chǎn)生的延時要大于其他直接饋送到時鐘控制模塊的dpclk引腳。在較小的cyclonii器件中(如ep2c5和ep2c8)有8個dpclk引腳,器件的每邊各兩個。一個可編程的延時信道從dpclk引腳到他的扇出終點是可見的,要設(shè)置從dpclk引腳到他扇出終點的延時,要使用quartusii軟件中的input delay from dual-purpose clock pinto fan-out destinations assignment設(shè)置。這些雙重作用的引腳能連接到全局時鐘網(wǎng)絡(luò)作為高扇出控制信號,例如時鐘,異步清零,預(yù)設(shè),時鐘使能,或者協(xié)議控制信號如pci的trdy和

25、irdy,外部存儲接口dqs。全局時鐘網(wǎng)絡(luò)可以為器件內(nèi)部的所有資源提供時鐘,例如ioes,les,存儲模塊和內(nèi)部乘法器。全局時鐘線也可被控制信號使用,例如時鐘使能和通過外部引腳同步或異步清除反饋,也可用于ddrsdram或者qdriisram的dqs信號接口。內(nèi)部邏輯也能驅(qū)動全局時鐘網(wǎng)絡(luò)內(nèi)部產(chǎn)生全局時鐘和異步清零,時鐘使能,或者其他帶大扇出的控制信號。 (2)時鐘控制模塊cyclonii器件有一個可見的時鐘控制塊來控制全局時鐘網(wǎng)絡(luò)。這些時鐘控制模塊被分配到器件的外圍,每個cyclonii器件最多有16個可見時鐘控制模塊,器件的每邊有4個,稍小一些的cyclonii器件(ep2c5或ep2c8)

26、有8個時鐘控制模塊,器件的左右各4個。這些控制模塊有以下功能:1動態(tài)全局時鐘網(wǎng)絡(luò)時鐘源選擇;2動態(tài)使能或禁用全局時鐘網(wǎng)絡(luò)在cyclonii器件中,專用的clk引腳,pll計數(shù)器輸出,pdclk引腳和內(nèi)部邏輯都可以向全局時鐘塊提供源。時鐘模塊的輸出又反饋給相應(yīng)的全局時鐘網(wǎng)絡(luò)。以下幾個源可以作為時鐘控制模塊的輸入:在同一邊的4個時鐘引腳作為時鐘控制模塊;一個pll輸出三個pll時鐘引腳;四個dpclk引腳(包括cdpclk引腳)在同一邊作為時鐘控制模塊;四個內(nèi)部產(chǎn)生信號在這些源中,只有兩個時鐘引腳,兩個pll時鐘輸出,一個dpclk引腳,和一個內(nèi)部邏輯信號可以被器件選擇輸入到時鐘控制模塊,除了這六

27、個輸入,兩個時鐘引腳和兩個pll輸出引腳可以被動態(tài)的選擇提供給全局時鐘網(wǎng)絡(luò)。時鐘控制模塊支持從dpclk和內(nèi)部邏輯信號中靜態(tài)選擇。圖3 fpga核心板的時鐘電路3.2.3 fpga配置電路cyclonii器件使用sram單元存儲配置信息,由于sram存儲器是易失性的,所以每次上電后配置信息都會重新加載到cyclonii芯片中??梢允褂胊s(actionserial)配置方式,這需要dclk的頻率達到40mhz的情況下,配置cyclonii芯片。也可使用ps(passiveserial)和jtag(jointtestactiongroup)方式來配置。此外,cyclonii芯片還能接收壓縮的配置

28、信息比特流,在運行過程中解壓這些數(shù)據(jù),來降低存儲要求和配置時間??梢酝ㄟ^cyclonii芯片的msel引腳的高低來選擇哪中配置方式,msel引腳是有其所在bank的vccio引腳驅(qū)動的,msel1.0引腳有9k歐的內(nèi)部下拉電阻始終有效。在上電復(fù)位和重新配置時,msel引腳肯定是出于lvttlvil或者vih電平,分別被看作邏輯低和邏輯高。因此,為了避免因使用了錯誤的配置方法而產(chǎn)生問題,需要將msel引腳連接到其所在的i/obank的vccio和gnd,不需要連上拉或下拉電阻。mesl引腳不需要處理器或其他的器件來驅(qū)動。表1 cyclonii配置模式配置模式msel1mselo描述as(20mh

29、z)00串行配置器件ps01增強配置器件fastas(40mhz)10as模式j(luò)tag*下載電纜和微機 圖4 fpga的配置電路3.3 前級信號調(diào)理電路前級信號調(diào)理電路由前級阻抗匹配電路、低通濾波器和信號抬高電路組成。信號輸入后通過r5,r6兩個100ohm的并聯(lián)電阻和一個高精度低噪聲運放op07實現(xiàn)跟隨作用,由于集成運放的輸入阻抗很大,所以輸入阻抗即為:r5/r6=50ohm。op07閉環(huán)帶寬600khz,電壓噪聲密度10個單位,充分滿足系統(tǒng)的設(shè)計要求。圖5 前級阻抗匹配電路系統(tǒng)要求音頻信號頻率為20hz10khz,根據(jù)奎斯特定律,我們至少要保證20k的采樣頻率,才能保證所處理的信號被不失真

30、的采集,否則會發(fā)生混疊現(xiàn)象(還原信號時,被采樣的低頻信號與高頻信號無法區(qū)分),現(xiàn)在就是要設(shè)計這樣一個濾波器,能夠很好的濾去10khz以上的頻率,考慮到設(shè)計難度與實際情況,放棄了制作20hz10khz帶通濾波器的想法,轉(zhuǎn)而制作一款高性能的低通濾波器,截止頻率10khz。低通濾波器的制作方法很多,有源,無源,查表,同時還可以借助豐富的濾波器設(shè)計軟件驗證自己的設(shè)計,結(jié)合自己的實際制作經(jīng)驗,選用一款開關(guān)電容濾波器芯片max293來完成本次設(shè)計低通濾波環(huán)節(jié)。max293是一款8階低通橢圓開關(guān)電容濾波器芯片,有兩種驅(qū)動方式,一種是時鐘驅(qū)動,從clk腳輸入一個頻率為f的信號,即可得到截止頻率為f/100的低

31、通濾波器,第二種是在clk腳對地并一個電容,截止頻率與電容的關(guān)系大約為f=100000/3c??紤]到防止時鐘信號的串擾和簡化設(shè)計,采用第二種方式。圖6 低通濾波電路系統(tǒng)要求能測試的音頻信號的峰峰值為5v,而ad轉(zhuǎn)換電路只能采樣正信號,所以需要把信號至少抬高2.5v才能讓ad轉(zhuǎn)換電路正確的采樣。并且ad的參考電壓為+5v,如果信號的最大幅值超過+5v將不能被ad轉(zhuǎn)換電路正確采樣。因此,信號抬高電路只有把輸入信號抬高2.5v才能滿足以上兩個要求。根據(jù)疊加定理:vout(=(1+r7/r8)*(r11/(r11+r10)*vin+(1+r7/r8)*(r10/(r11+r10)*5=vin+2.5。

32、圖7 信號抬高電路3.4 ad采樣電路設(shè)計為了提高系統(tǒng)的精度,ad轉(zhuǎn)換芯片我選用的是maxim公司生產(chǎn)的新型12位串行模數(shù)轉(zhuǎn)換器max144。max144是美國maxim公司生產(chǎn)的新型雙通道12位串行模數(shù)轉(zhuǎn)換器,它具有自動關(guān)斷和快速喚醒功能,且內(nèi)部集成有時鐘電路,采樣/保持電路;同時具有轉(zhuǎn)換速率高、功耗低等優(yōu)點,特別適合于由電池供電且對體積和精度有較高要求的智能儀器儀表產(chǎn)品。圖8 ad采樣電路3.5 系統(tǒng)電源電路設(shè)計根據(jù)系統(tǒng)的要求,本系統(tǒng)需要+5v,-5v兩種電壓,考慮到實際調(diào)試情況和電路的升級,在系統(tǒng)電源設(shè)計的時候加上了正負電壓可調(diào)的電源電路。直流穩(wěn)壓電源一般由電源變壓器、整流濾波電路及穩(wěn)壓

33、電路所組成。其中+5v,-5v兩種電壓由穩(wěn)壓芯片cw7805和cw7905產(chǎn)生,正負可調(diào)電壓由lm317和lm337產(chǎn)生。圖9 系統(tǒng)電源電路3.6 彩色液晶電路設(shè)計為了讓音頻信號功率譜顯示的更清晰,本系統(tǒng)采用了2.2寸分辨率為320*240的彩色液晶。這款液晶的驅(qū)動芯片采用的是nec公司pd161704a。pd161704a有1382400位的顯示ram(240pixelsx18bitsx320lines)。圖10彩色液晶驅(qū)動電路3.7 觸摸屏電路設(shè)計為了讓系統(tǒng)人機界面的操作性更好,在彩色液晶上面還加了一塊觸摸屏。觸摸屏的驅(qū)動芯片采用的是ti公司的ads7843。ads7843是4線電阻觸摸屏

34、轉(zhuǎn)換接口芯片。它是一款具有同步串行接口的12位取樣模數(shù)轉(zhuǎn)換器。ads7843的工作原理就是通過連結(jié)觸摸屏x+將觸摸信號輸入到ad轉(zhuǎn)換器同時打開y+和y-驅(qū)動,然后將數(shù)字化的x+的電壓,從而得到當前y位置的測量結(jié)果。同理也得到x方向的坐標。圖11觸摸屏驅(qū)動電路4 系統(tǒng)軟件設(shè)計4.1 niosii集成開發(fā)環(huán)境介紹niosii集成開發(fā)環(huán)境(ide)是niosii系列嵌入式處理器的基本軟件開發(fā)工具。所有軟件開發(fā)任務(wù)都可以niosii ide下完成,包括編輯、編譯和調(diào)試程序。niosii ide提供了一個統(tǒng)一的開發(fā)平臺,用于所有niosii處理器系統(tǒng)。僅僅通過一臺pc機、一片altera的fpga以及一

35、根jtag下載電纜,軟件開發(fā)人員就能夠往niosii處理器系統(tǒng)寫入程序以及和niosii處理器系統(tǒng)進行通訊。niosii ide基于開放式的、可擴展eclipseideproject工程以及eclipsec/c+開發(fā)工具(cdt)工程。4.2 系統(tǒng)主程序設(shè)計主程序包括ad轉(zhuǎn)換驅(qū)動程序,lcd初始化與顯示,觸摸屏驅(qū)動與觸摸識別和fft運算。主程序流程圖如圖12所示,程序見附錄。圖12主程序設(shè)計流程圖4.3 ad轉(zhuǎn)換驅(qū)動程序為了讓ad轉(zhuǎn)換電路正確地采樣數(shù)據(jù)和niosii軟核cpu正確地讀取數(shù)據(jù),整個ad轉(zhuǎn)換驅(qū)動程序由一個時鐘控制模塊,串行數(shù)據(jù)轉(zhuǎn)并行數(shù)據(jù)模塊,16位的加法器,一個12位d觸發(fā)器緩沖模

36、塊和max144的狀態(tài)機模塊組成。圖13 quartusii軟件下設(shè)計的max144驅(qū)動的頂層原理圖由于本系統(tǒng)采用的是12位串行ad,對時序要求很嚴格。所以必須嚴格按照max144的數(shù)據(jù)手冊上時序,利用狀態(tài)機編寫驅(qū)動程序。max144的兩個模擬輸入通道ch0與ch1可連接到兩個不同的信號源上。上電復(fù)位后,max144將自動對ch0通道的模擬信號進行a/d轉(zhuǎn)換,轉(zhuǎn)換完畢又自動切換到ch1通道,并對ch1通道模擬信號進行a/d轉(zhuǎn)換,之后交替地在ch0和ch1通道間進行切換和轉(zhuǎn)換。輸出數(shù)據(jù)中包含的一個通道標志位chid,用以確定該數(shù)據(jù)為哪一通道轉(zhuǎn)換得到。如果只有一路模擬信號,可以將ch0與ch1連接

37、在一起作為一個輸入通道,但輸出的數(shù)據(jù)中仍包含有通道標志位chid。將cs/shdn設(shè)置為低電平可啟動a/d轉(zhuǎn)換過程,在cs/shdn的下降沿,內(nèi)部采樣/保持電路將進入采樣模式,此時如果sclk為高電平,則選擇內(nèi)部時鐘模式;若為低電平則選擇外部時鐘模式。當串行時鐘頻率小于100khz或大2.17mhz時,應(yīng)選擇內(nèi)部時鐘模式。當工作于外部時鐘模式時,由于外部時鐘不僅要移出數(shù)據(jù),而且要驅(qū)動模數(shù)轉(zhuǎn)換,因此,a/d轉(zhuǎn)換必須在140s內(nèi)完成,否則采樣/保持電路中電容上電壓的降低可能導(dǎo)致轉(zhuǎn)換結(jié)果精度的降低。轉(zhuǎn)換結(jié)束后,內(nèi)部振蕩電路被關(guān)閉,dout變?yōu)楦唠娖?此時即可讀取轉(zhuǎn)換數(shù)據(jù)。圖14 max144的時鐘模

38、式時序圖圖15 max144驅(qū)動的狀態(tài)轉(zhuǎn)移圖4.4 觸摸屏識別程序當觸摸屏幕時,penirq就被拉低,然后發(fā)送y軸或者x軸的控制字節(jié),再延時消除抖動,接著就循環(huán)8次讀取y軸或者x軸的坐標值并且取其平均值,這樣得到的值就是比較精確的坐標值。最后判斷penirq是否為高,如果為高,再判斷一次。這樣通過判斷兩次的方法可以克服觸摸屏信號的抖動。如果兩次都為高,則發(fā)送控制字節(jié)返回到開始繼續(xù)判斷penirq是否為低。如果兩次判斷有一次不為高電平,則發(fā)送x軸控制字節(jié),讀取x軸的坐標值。圖16 觸摸屏的觸摸識別流程圖4.5 fft算法的c語言實現(xiàn)4.5.1 fft的matlab仿真與分析信號經(jīng)過adc采樣后得

39、到的數(shù)字信號,就可以做fft變換了。n個采樣點,經(jīng)過fft之后,就可以得到n個點的fft結(jié)果。為了方便進行fft運算,通常n取2的整數(shù)次方。 假設(shè)采樣頻率為fs,信號頻率f,采樣點數(shù)為n。那么fft之后結(jié)果就是一個為n點的復(fù)數(shù)。每一個點就對應(yīng)著一個頻率點。這個點的模值,就是該頻率值下的幅度特性。假設(shè)原始信號的峰值為a,那么fft的結(jié)果的每個點(除了第一個點直流分量之外)的模值就是a的n/2倍。而第一個點就是直流分量,它的模值就是直流分量的n倍。而每個點的相位呢,就是在該頻率下的信號的相位。第一個點表示直流分量(即0hz),而最后一個點n的再下一個點(實際上這個點是不存在的,這里是假設(shè)的第n+1

40、個點,也可以看作是將第一個點分做兩半分,另一半移到最后)則表示采樣頻率fs,這中間被n-1個點平均分成n等份,每個點的頻率依次增加。例如某點n所表示的頻率為:fn=(n-1)*fs/n。由上面的公式可以看出,fn所能分辨到頻率為fs/n,如果采樣頻率fs為1024hz,采樣點數(shù)為1024點,則可以分辨到1hz。1024hz的采樣率采樣1024點,剛好是1秒,也就是說,采樣1秒時間的信號并做fft,則結(jié)果可以分析到1hz,如果采樣2秒時間的信號并做fft,則結(jié)果可以分析到0.5hz。如果要提高頻率分辨力,則必須增加采樣點數(shù),也即采樣時間。頻率分辨率和采樣時間是倒數(shù)關(guān)系。假設(shè)fft之后某點n用復(fù)數(shù)

41、a+bi表示,那么這個復(fù)數(shù)的模就是,相位就是pn=atan2(b,a)。根據(jù)以上的結(jié)果,就可以計算出n點(n1,且n=n/2)對應(yīng)的信號表達式為:an/(n/2)*cos(2*pi*fn*t+pn),即2*an/n*cos(2*pi*fn*t+pn)對于n=1點的信號,是直流分量,幅度即為a1/n。由于fft結(jié)果的對稱性,通常我們只使用前半部分的結(jié)果,即小于采樣頻率一半的結(jié)果。假設(shè)我們有一個信號,它含有2v的直流分量,頻率為50hz、相位為-30度、幅度為1.5v的交流信號,以及一個頻率為75hz、相位為90度、幅度為2v的交流信號。用數(shù)學表達式就是如下:s=2+1.5*cos(2*pi*50

42、*t-pi*30/180)+2*cos(2*pi*75*t+pi*90/180)式中cos參數(shù)為弧度,所以-30度和90度要分別換算成弧度?,F(xiàn)在以256hz的采樣率對這個信號進行采樣,總共采樣256點。按照上面的分析,fn=(n-1)*fs/n,每兩個點之間的間距就是1hz,第n個點的頻率就是n-1。信號一共有3個頻率:0hz、50hz、75hz,應(yīng)該分別在第1個點、第51個點、第76個點上出現(xiàn)峰值,其它各點應(yīng)該接近0。 圖17 原始信號的波形圖圖18 原始信號經(jīng)過fft后的波形圖從上圖中可以看到,在第1點、第51點、和第76點附近有比較大的值,經(jīng)過fft后三點的幅值分別為512、192和25

43、6,三點附近的數(shù)據(jù)的幅值都近似為零。 按照公式,可以計算出直流分量為:512/n=512/256=2;50hz信號的幅度為:192/(n/2)=192/(256/2)=1.5;75hz信號的幅度為256/(n/2)=256/(256/2)=2。可見,從頻譜分析出來的幅度是正確的。4.5.2 倒位序算法分析按時間抽?。╠it)的fft算法通常將原始數(shù)據(jù)倒位序存儲,最后按正常順序輸出結(jié)果x(0),x(1),.,x(k),.。假設(shè)一開始,數(shù)據(jù)在數(shù)組floatdatar128中,我們將下標i表示為(b6b5b4b3b2b1b0)b,倒位序存放就是將原來第i個位置的元素存放到第(b0b1b2b3b4b5

44、b6)b的位置上去.由于c語言的位操作能力很強,可以分別提取出b6、b5、b4、b3、b2、b1、b0,再重新組合成b0、b1、b2、b3、b4、b5、b6,即是倒位序的位置。這種算法充分利用了c語言的位操作能力。程序段如下(假設(shè)128點fft):int b0=b1=b2=b3=b4=b5=6=0;b0=i&0x01;b1=(i/2)&0x01;b2=(i/4)&0x01;b3=(i/8)&0x01;b4=(i/16)&0x01;b5=(i/32)&0x01;b6=(i/64)&0x01;invert_pos=x0*64+x1*32+x2*16+x3*8+x4*4+x5*2+x6;4.5.3

45、實數(shù)蝶形運算算法圖19蝶形圖蝶形公式:x(k) = x(k) + x(k+b)wpn x(k+b) = x(k) - x(k+b) wpn其中wpn= cos(2p/n)- jsin(2p/n)。設(shè) x(k+b) = xr(k+b) + jxi(k+b), x(k) = xr(k) + jxi(k),有:xr(k)+jxi(k)= xr(k)+jxi(k)+ xr(k+b) + jxi(k+b)* cos(2p/n)-jsin(2p/n);繼續(xù)分解得到下列兩式: xr(k)= xr(k)+ xr(k+b) cos(2p/n)+ xi(k+b) sin (2p/n) (1)xi(k)= xi(k

46、)-xr(k+b) sin(2p/n)+xi(k+b)cos (2p/n) (2) 需要注意的是: xr(k)、xr(k)的存儲位置相同,所以經(jīng)過(1)、(2)后,該位置上的值已經(jīng)改變,而下面求x(k+b)要用到x(k),因此在編程時要注意保存xr(k)和xi(k)到tr和ti兩個臨時變量中。同理: xr(k+b)+jxi(k+b)= xr(k)+jxi(k)- xr(k+b)+jxi(k+b) * cos(2p/n)-jsin(2p/n)繼續(xù)分解得到下列兩式:xr(k+b)= xr(k)-xr(k+b) cos(2p/n)- xi(k+b) sin (2p/n) (3)xi(k+b)= xi

47、(k)+ xr(k+b) sin(2p/n)- xi(k+b) cos (2p/n) (4)注意: 在編程時, 式(3)、(4)中的xr(k)和 xi(k)分別用tr和ti代替。 經(jīng)過式(3)后, xr(k+b)的值已變化,而式(4)中要用到該位置上的上一級值,所以在執(zhí)行式(3)前要先將上一級的值xr(k+b)保存。 在編程時, xr(k)和 xr(k), xi(k)和 xi(k)使用同一個變量。通過以上分析,我們只要將式(1)、(2)、(3)、(4)轉(zhuǎn)換成c語言語句即可。要注意變量的中間保存,詳見以下程序段。tr=datark;ti=dataik;temp=datark+b;datark=d

48、atark+datark+b*cos_tabp+dataik+b*sin_tabp;dataik=dataik-datark+b*sin_tabp+dataik+b*cos_tabp;datark+b=tr-datark+b*cos_tabp-dataik+b*sin_tabp;dataik+b=ti+temp*sin_tabp-dataik+b*cos_tabp;4.5.4 ditfft算法的基本思想分析n點fft運算可以分成logn2級,每一級都有n/2個碟形。ditfft的基本思想是用3層循環(huán)完成全部運算(n點fft)。第一層循環(huán):由于n=2m需要m級計算,第一層循環(huán)對運算的級數(shù)進行控制

49、。第二層循環(huán):由于第l級有2l-1個蝶形因子(乘數(shù)),第二層循環(huán)根據(jù)乘數(shù)進行控制,保證對于每一個蝶形因子第三層循環(huán)要執(zhí)行一次,這樣,第三層循環(huán)在第二層循環(huán)控制下,每一級要進行2l-1次循環(huán)計算。第三層循環(huán):由于第l級共有n/2l個群,并且同一級內(nèi)不同群的乘數(shù)分布相同,當?shù)诙友h(huán)確定某一乘數(shù)后,第三層循環(huán)要將本級中每個群中具有這一乘數(shù)的蝶形計算一次,即第三層循環(huán)每執(zhí)行完一次要進行n/2l個碟形計算。可以得出結(jié)論:在每一級中,第三層循環(huán)完成n/2l個碟形計算;第二層循環(huán)使第三層循環(huán)進行2l-1次,因此,第二層循環(huán)完成時,共進行2l-1*n/2l=n/2個碟形計算。實質(zhì)是:第二、第三層循環(huán)完成了第

50、l級的計算。幾個要注意的數(shù)據(jù):在第l級中,每個碟形的兩個輸入端相距b=2l-1個點。同一乘數(shù)對應(yīng)著相鄰間隔為2l個點的n/2l個碟形。第l級的2l-1個碟形因子wpn中的p,可表示為:p=j*2m-l其中j=0,1,2,.,(2l-1-1)5 系統(tǒng)調(diào)試與測試結(jié)果5.1 系統(tǒng)調(diào)試在完成本系統(tǒng)的過程中,我是按照模塊化的思想來制作和調(diào)試的,這樣大大地提高了系統(tǒng)制作效率,同時也給調(diào)試帶來了很大的方便。然后在保證各指標和性能的前提下把做好的模塊逐步級聯(lián)起來。最后對整個系統(tǒng)進行調(diào)試直至滿足設(shè)計要求。(1)前級信號調(diào)理電路調(diào)試前級電路的每個模塊,在信號的處理中都不能引入噪聲,每個模塊都要都用通過示波器觀察輸

51、出的波形有沒有出現(xiàn)失真和雜波干擾等現(xiàn)象。在處理低頻信號的系統(tǒng)中,電源的噪聲對系統(tǒng)的影響比較大,高頻干擾一般比較小,所以每個模塊的電源端都要加電容濾掉電源噪聲。同時在每個模塊級與級的連接上一定考慮阻抗匹配的問題。(2)系統(tǒng)電源電路的調(diào)試電源對系統(tǒng)的重要性是不言而喻的,一個系統(tǒng)的電源不僅要很穩(wěn)定,同時電源的紋波也要非常小。所以電源調(diào)試過程中,先通過萬用表測試電源的輸出電壓是否穩(wěn)定,然后還要通過示波器觀察輸出的電壓有沒有很大的紋波。(3)系統(tǒng)整體聯(lián)調(diào)在各模塊調(diào)試通過后將各模塊按系統(tǒng)電路圖正確組裝,將各模塊程序進行合理綜合,調(diào)試系統(tǒng)直到系統(tǒng)功能實現(xiàn)。5.2 測試方案與測試結(jié)果5.2.1 測試電路信號疊

52、加電路采用反向求和電路,將2路信號求和后輸出,以便系統(tǒng)對多路信號進行測試,運放采用高精密、低噪聲的op07。圖20號疊加電路5.2.2 兩路信號總功率測量由于實驗室提供的能夠模仿音頻信號的且能方便測量的信號只有正弦信號,所以我們用信號發(fā)生器產(chǎn)生的兩路信號通過疊加電路,然后進行測量,發(fā)現(xiàn)總功率相對誤差的絕對值都小于5%。表2兩路信號總功率測量頻率(hz)信號總功率最大功率次大功率測量總功率誤差f1=10k,f2=9k0.04978w0.03953w0.00900w0.04930w2.5%f1=1k,f2=3k0.05021w0.03990w0.01010w0.05000w0.4%f1=200,f

53、2=1000.05034w0.03925w0.01015w0.04940w1.9%f1=30,f2=200.05004w0.03900w0.01016w0.04916w1.7%5.2.3 單個頻率分量測量單個頻率分量測試時,峰峰值為100mv的電壓信號測試的功率的誤差明顯大峰峰值為2.5v的電壓信號,但整體誤差都在10%內(nèi),能滿足系統(tǒng)要求。表3單個頻率分量測量結(jié)果電壓峰峰值頻率實際功率測量功率誤差2.5v10k0.015625w0.014800w5.28%2.5v1k0.015625w0.015300w2.08%2.5v1000.015625w0.014950w4.32%1v10k0.0025

54、00w0.002298w8.08%1v1000.002500w0.002350w6.00%100mv1k0.000025w0.000023w8.00%100mv1000.000025w0.000023w8.00%5.3 誤差分析本系統(tǒng)誤差,經(jīng)分析可見由以下幾部分組成:數(shù)據(jù)后期處理計算誤差;a/d轉(zhuǎn)換器量化誤差;fft運算頻譜泄露誤差;顯示誤差。上述誤差中項誤差主要由計算引入。對此部分誤差,通過反復(fù)測量,最終通過軟件進行修正。項誤差由a/d量化的誤差,以及通道噪聲引入。項誤差由于對數(shù)據(jù)進行加窗取樣,產(chǎn)生截斷效應(yīng)造成。當取樣時間不為周期信號整數(shù)倍時經(jīng)fft后其頻率分量將泄漏。項誤差是因為lcd屏幕

55、大小有限,分辨力不夠,顯示時可能造成觀察上的微小誤差。6 結(jié)束語本次畢業(yè)設(shè)計是在2007年全國大學生電子設(shè)計競賽a題音頻信號分析儀的基礎(chǔ)上進行的設(shè)計制作的,基本完成了系統(tǒng)設(shè)計的要求。在系統(tǒng)的研制過程中,我深切體會到,理論聯(lián)系實際的重要性。本次設(shè)計是對我四年所學知識的一次綜合性檢測和考驗,無論是動手能力還是理論知識運用能力都得到了提高,同時加深了我對網(wǎng)絡(luò)資源認識,大大提高了查閱資料的能力和效率,使我有充足的時間投入到電路設(shè)計當中。參考文獻1康華光.電子技術(shù)基礎(chǔ)模擬部分m(第四版).北京:高等教育出版社,1999.2康華光.電子技術(shù)基礎(chǔ)數(shù)字部分m(第四版).北京:高等教育出版社,2000.3謝自美.電子線路設(shè)計實驗測試m(第三版).武漢:華中科技大學出版社,2006.4張永瑞.電子測量技術(shù)基礎(chǔ)m(第二版)西安:西安電子科技大學出版社,2009.5譚浩強.c程序設(shè)計m北京:清華大學出版社,2006.6丁玉美,高西全.數(shù)字信號處理m(第二版

溫馨提示

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

評論

0/150

提交評論